前端 luavis' dev story

devops · June 08, 2020 · 14 hits
.share-link { display: none ! important; }
  • Jun 21, 2019

    최근에 Presto 를 쓰면서 G1 GC 를 기본값으로 설정하라는 설명을 보고선 2015 년경에 번역을 허락 맡았던 글이 기억났다. 그 당시에는 무슨 객기로 번역을 허락 맡았는지 모르겠지만 지금에 와서 자바의 GC 는 Parallel GC 를 기본으로 사용했지만, Java 9 부터는 G1 GC 가 기본값으로 설정되면서 번역을 할 원동력이 생겨서 번역을 해본다. 다만 원본 글이 오래된 글이고, 이를 보충하기...

  • React, Typescript, Webpack 환경에서 번들링 속도 올리기

    Jun 7, 2019

    제니퍼소프트에서 진행하는 프로젝트에서 Webpack 과 TypeScript, React 를 사용하고 있다. SPA 는 필수적인 선택지였다. classic 한 개발 방식으로는 web page 는 몰라도 web application 을 개발하기엔 부적합하다. 그 중에서도 React 를 선택한 이유는 훌륭한 레퍼런스들과 안정적인 소스 관리, 무엇보다 가장 잘 쓸줄 아는 것을 선택했다. Webpack 은 그 외의 선택의 여지가 약하기 때문에 webpack 을 선택했지만, 이 프로젝트를 시작하면서...

  • Athena 를 Zeppelin 과 함께 쓰기

    Mar 14, 2019

    회사 업무 중에 대용량의 데이터를 조회하고 분석할 일이 생겼다. 데이터는 DynamoDB 에 쌓여있다. DynamoDB 에서는 복잡한 조건을 갖고 쿼리를 할 수 있는 구조가 아니고, 가격과 성능 문제도 있기 때문에, 선택할 수 있는 도구에 대해서 수소문 해봤고, Google cloud platform 에서 제공하는 BigQuery 나 AWS 에서 제공하는 Athena 가 가장 편하고 흔하게 사용하는 듯 하다. 하지만 모든...

  • 타원곡선 디피 헬만

    Feb 17, 2019

    AES 나 DES 와 같은 암호화 알고리즘을 이용해서 보안 통신을 하기 위해서는 암호키가 필요하다. 암호키를 통해서 제 3 자가 이를 해독하기 어렵게 만드는것이다. 암호키를 제 3 자가 알면 암호를 깨고 데이터를 복호화할 수 있기 때문에 안전하게 암호화 키를 공유할 필요가 있다. 디피 헬만은 위와 같은 암호화 통신에서 안전하게 키를 교환하는 방법 중 하나로 TLS 에서...

  • 알아두면 쓸데없는 신비한 TLS 1.3

    Dec 15, 2018

    이 글은 계간 잡지 마이크로소프트웨어 394 호에 기고된 글입니다. TLS 우리가 개발하는 서비스 중에서 인터넷에 연결이 필요 없는 서비스는 거의 없다고 봐야한다. 이런 서비스는 우리가 만든 앱 혹은 웹을 통해서 데이터를 받아 서버에 저장한다. 오프라인 모드로 즐기는 게임마저도 장애 로그 또는 통계 데이터를 인터넷 연결로 받는 사례가 늘고있다. 다만 이 데이터에는...

  • Static type 의 맹점

    Aug 10, 2018

    이 글은 “Programming JavaScript Applications” (O’Reilly) 의 저자 Eric Elliott 의 The Shocking Secret About Static Types 을 번역한 글 입니다. TL;DR 정말 버그를 줄이고 싶다면 TDD 를 사용하세요. 멋진 툴과 함께 하고 싶은것 이라면 static type 을 사용해보세요. static type 은 만병통치약인가? Typescript 의 인기는 폭발적으로 증가해왔습니다. 저는 Typescript 와 static type 을 좋아합니다.(사내 프로젝트를 Typescript 로 진행했고 typing 을...

  • 알아두면 쓸데없는 신비한 TLS

    Jun 22, 2018

    TLS 란, 초기에 HTTP 통신은 암호화되지 않은 통신이었다. 당연히 문제가 되었고, 이 문제를 보완하고자 Netscape 사는 browser 에서 사용하기 위한 규격인 SSL 을 제작했다. SSL 은 널리 보급되었고, 나중엔 HTTP 외에 다른 Application layer protocol 에서도 사용가능하도록 만든 protocol 이 TLS(Transport Layer Security) 다. TLS 는 크게 2 단계로 구분할 수 있는데, 서로 protocol 버전과 암호화할 키를 주고 받는 handshake...

  • COW(Copy-on-write) 가 발생하는 Python garbage collection

    Dec 21, 2017

    tl;dr 이 글은 Instagram 의 블로그 글을 번역하고, 저의 개인적인 생각을 담은 글입니다. 혹시 이전 시리즈에 대한 번역은 이 문서에서 확인할 수 있습니다. Instagram 팀은 GC 를 끔으로써 이슈를 해결했던 방법이 문제점이 있는 것을 파악하고 새로운 API 를 추가해서 이를 해결했습니다. 해당 API 는 Python 3.7 에 새롭게 들어간 gc.freeze 입니다. 해당 API 가 어떤 맥락에서 추가되었는지 어떤...

  • 리눅스 서버 60 초안에 상황파악하기

    Aug 23, 2017

    넷플릭스의 Linux performance analysis in 60,000ms 에 대해서 부분적으로 번역한 글입니다. 리눅스 서버에 성능 이슈로 인해서 로그인했을 때 우리가 가장 먼저 체크해봐야할 사항은 어떤것들일까? 넷플릭스는 많은 사람들이 알고 있는것 처럼 아마존 EC2 리눅스 서버를 사용하고 있다. 이런 대규모 서버를 모니터링하고 성능을 체크하는데에는 툴을 사용하는데 클라우드 전체의 모니터링에는 Atlas, 하나의 EC2 instance 의...

  • Python 의 메모리 할당

    Aug 21, 2017

    tl;dr Python 은 pymalloc 이란 이름의 커스텀 메모리 관리법이 있습니다. 메모리를 arena 란 이름의 큰 블럭을 만들고 그 안에 풀을 다시 만들어서 512 바이트 보다 작은 오브젝트에 대해서는 대부분 이곳에 생성합니다. 문제의 서막 친구가 매우 흥미로운 글 하나를 번역한 뒤에 포스팅하여 읽어보았다. 파이썬에서 bytes 로 객체를 하나 생성하고 이를 /proc/../mem 을 이용해서 수정하는 이야기에 관한 글이다....

  • Pex 를 이용한 배포

    May 31, 2017

    tl;dr pex 는 Python application 을, 하나의 실행파일로 만들어주는 라이브러리입니다. 설치는 pip 을 이용하거나 github.com 에 있는 manual 을 이용해서 빌드 설치도 가능합니다. 간단한 사용법을 살펴보면. $ pex requests flask 'psutil>2,<3' -o flask-python 위와 같은 방법으로 requests 와 flask 특정 버전의 psutil 이 기본 설치된 flask-python 이라는 이름의 python 실행 바이너리를 얻을 수 있습니다. 아래와 같이 위에서 생성한...

  • CSS3 transfrom 은 진짜 좋을까?

    May 17, 2017

    이번에 블로그 디자인을 리뉴얼하면서 스크롤 이벤트에 따른 애니메이션이 들어가게되었고, 이를 위해서는 JS 를 이용한 애니메이션기법 외에는 답이 없다는 판단을 했습니다. 따라서 JS 를 이용한 고전적인 event 를 받고 이를 top 값을 바꿔 움직이는 애니메이션을 구현했습니다. transform 을 이용하면 조금 더 간단하고 성능도 우월한 개발이 가능하지 않을까 생각하여, 코드를 수정해서 퍼포먼스를 비교해봤습니다. 처음 웹을 공부할때만 해도...

  • Instagram 이 Python garbage collection 없앤 이유

    Mar 21, 2017

    TL;DR 이 글은 Instagram 의 블로그 글을 번역하고, 저의 개인적인 생각을 담은 글입니다. GC 를 없애면 Instagram 에서는 10% 의 성능 향상을 얻었다고 합니다. 이는 GC 를 사용하지 않은것인데요, CPU LLC cache hit 율을 높이고 메모리 사용률을 줄일 수 있다고 주장합니다. Instagram 에서 서버가 동작하는 방법 Instagram 의 웹서버는 Django 의 multi-process mode 로 동작합니다. application 서버는 pre-fork 모드를 이용해서 uWSGI...

  • Adobe Lightroom retina diplay problem

    Sep 3, 2016

    너무느렸다… 최근에 아이맥 레티나 5K 27 인치 (중급형) 를 구매하고 퍼포먼스에는 크게 문제를 못 느끼면서 사용하고 있었다. 램 부족 증상을 느껴서 32GB 램을 구매해서 장착한 이후에는 크롬탭으로 램 구이 (?) 를 해도 크게 문제를 느끼지 못했다. 하지만 이전에는 데스크탑으로 작업해오던 Lightroom 사진작업을 아이맥에서 하는 순간 이게 왜 이럴까 싶을 정도로 심각한 퍼포먼스 문제를 겪었다. 이전에...

  • ADB 와 Genymotion

    Aug 19, 2016

    사실 안드로이드 쪽은 주력 분야도 아니고 간단 간단하게 개발할때만 사용했지만 일신상의 이유로 이번에 react-native 의 버프를 받아 좀 더 힘차게 개발하고 있다. 하지만 역시나 수 많은 버그가 떨어졌고 (사실 react-native 로는 아이폰만 개발하는게 정신건강에 이로운듯 하다.. 아직까지는), 조금 황당한 문제가 생겨서 해결법을 올려본다. 문제의 발생 react-native 를 사용하면서 adb 커맨드와 친해졌는데 $ adb start-server...

  • GPG 로 Git 커밋 사인

    Aug 3, 2016

    GPG RSA 가 개발되고 나서 취약했던 프로토콜들이 RSA 암호화 기술을 덮어 씌워져서 비교적 안전한 통신이 가능하도록 만든 사례가 많다. 우리가 쉽게 발견할 수 있는 사례로는 HTTPS 가 있다. GPG 의 원조격인 PGP(Pretty Good Privacy) 는 원래 이메일을 RSA 로 암호화 해주는 프로그램이였고 이 아이디어를 바탕으로 오픈소스로 개발된것이 GPG(Gnu Privacy Guard) 다. 한국에서도 샾메일이라고 메일 암호화를 개발한적이...

  • github 2 차 비밀번호 커멘드 라인

    Aug 1, 2016

    Github 에서 지원하는 Two-factor password(2 차 비밀번호) 가장 활발하게 많은 오픈소스 프로젝트들이 운영되고 있는 Github 에서는 보안성을 위해서 OTP 형식의 2 차 비밀번호를 지원한다. 나 또한 외주 프로젝트를 비롯해서 소프트웨어 마에스트로 등 여러 활동에서 생성한 프로젝트를 관리하기 위해서 github 를 이용하기 때문에 보안에 문제가 생기면 안된다. 구글 계정 같은 경우에는 예전부터 2 차 비밀번호를 사용했고 github 계정도...

  • 커밋메세지 수정

    Mar 23, 2016

    사건의 경위 소마에서 아는 사람이 팀원으로 있는 프로젝트 팀이 있었다. 이 팀의 repository 의 커밋 메세지가 순위권에 들어갈 만큼 좋지 않은 이름의 커밋 메세지를 볼 수 있었다. 나는 지나가다가 이것을 수정해볼것을 의뢰받았지만 커밋메세지를 수정해본적은 없기때문에, (amend commit 과 같이 바로 이전 커밋에 오타가 있어 수정하고 싶은 경우정도는 있었다.)(이런 흑마법은 쓰지 말라고 배웠습니다…!!)...

  • amed commit 취소

    Mar 16, 2016

    사건의 경위 소마에서 게임 프로젝트를 진행 중인데 언리얼 엔진을 사용 중이고 이를 git 과 git lfs 를 이용해서 소스제어를 하고 있었다. 오늘 아침 너무 피곤한데 수업도 재미없어서 rdp 를 연결하고 (이것도 학교에서 포트를 막아둬서 ssh 터널링을 이용해서 연결할 수 있었다.). 이전에 작업해둔걸 커밋을 올리는데 나오는 메시지의 내용은 초기 커밋시 user.email 정보와 user.name 정보를 설정해주세요....

  • A20 gate

    Dec 2, 2015

    A20 Gate 최근 OS 공부를 하면서 실습을 해보고 있는데요.(github.com/Luavis/PotatOS) 가장 무난한 platform 이 x86 이다 보니 x86 으로 작성중입니다. 아직 보호모드로의 접근밖에 안되는 만든것도 아닌상태이지만 보호모드로 접근하고 나니 A20 게이트라는 특이한 기능을 보았습니다. A20 게이트는 21 번째 address bus line 에 있는 and gate 를 말합니다. 문제는 이곳에 왜 and 게이트가 있는가입니다. IBM 이 PC 를 만들던 시절인 80 년대를 거슬러...

  • Linux Virtual Memory

    Nov 23, 2015

    SW Maestro 6th 연수를 진행하면서 멘토님에게 들은 리눅스의 가상메모리 관련 정보를 정리해보고자 작성해봤습니다. 아래글은 Intel Arch 와 linux x64 커널울 기준으로 서술한 내용이지만 대부분의 아키텍쳐와 커널레벨에서 유사하게 동작합니다. 가상메모리는? Intel 기준으로 리얼모드 (real mode, 16bit) 에서 보호모드 (protect mode, 32bit) 로 넘어가면서 새롭게 생긴 기능으로 ARM, PPC 등 다양한 마이크로 프로세서에서 지원하는 기능입니다. 이 기능을 이용해서...

  • Mosh(Mobile shell)

    Oct 4, 2015

    Tech video Mosh SSH 의 진화된 대체품으로 개발된 Mosh 라 하는 애플리케이션에 대해서 SSH 에 비해서 좋은 점과 간단한 사용법을 알아보겠습니다. What is Mosh? Mosh 는 원격터미널 애플리케이션으로 (SSH 와 같은..) 로밍이나 네트워크 상황이 좋지 않은 상황에서도 훌륭하게 돌아가는것을 목표로하고 있습니다. SSH 는 일단 커넥션을 맺고 사용자의 키 입력이 있으면 이를 지속적으로 서버에 전송하면서 응답을 대기하고 변경사항만이...

  • RFC 7540(HTTP 2) 전체적인 동작방식

    Aug 16, 2015

    HTTP/2 의 전체적인 동작방식 일단 글쓴 나도 솔직히 아직 전 text 를 다 읽지 않고 앞부분과 구현에 필요한 부분만 조각조각 읽어 완벽하지는 않지만, 여태까지 쓴 글들이 거의 직번역인 글이 많고 두서없이 쓴 경우가 대부분이라… 전체적으로 정리해서 써보기로 했다. HTTP/2 는 표준에 서론부분에서도 이야기하고 있듯이 의미적인 부분보다는 데이터를 주고 받는부분에서 큰 변화가 있다. 기본적으로는...

  • RFC 7540(HTTP 2) Frame Type 下

    Aug 14, 2015

    PUSH_PROMISE PUSH_PROMISE frame(type=0x5) 는 피어에게 31bit 의 stream identifier 를 주어 앞으로 push 할 스트림의 id 를 알려준다, 또한 푸시할 stream 의 내용에대한 헤더정보도 같이 보낸다. PUSH_PROMISE 는 stream 을 idle 상태에서 reserved 된 상태로 만들게 된다. 구조 +---------------+ |Pad Length? (8)| +-+-------------+-----------------------------------------------+ |R| Promised Stream ID (31) | +-+-----------------------------+-------------------------------+ | Header Block Fragment (*) ... +---------------------------------------------------------------+ | Padding (*)...

  • RFC 7540(HTTP 2) Frame Type 上

    Aug 8, 2015

    HTTP/2 에서는 Frame 을 기본 단위로 하여 통신을 한다. 이런 Frame 에는 여러가지의 타입이 있는데 현재 정의되어 있는 타입은 전체 10 개다. 이 타입은 Frame 의 구조에 Type(8 bit) 에 표시되어 있고 각 타입마다 Frame 구조의 Payload 에 들어가는 구조가 따로 정의되어 있다. flag 는 지정된 값을 0 에서 부터 하나하나 더하여 (OR 연산을 구현해도 비트수가 각기 다르기 때문에 더하기와 같은...

  • RFC 7541(HTTP 2/HPACK) HPACK

    Aug 3, 2015

    HPACK 기존 http 에서는 content-encoding header 를 통하여 http 통신에서 주고 받는 contents 를 gzip 혹은 deflate 압축을 통하여 압축할 수 있었다. 하지만 웹의 발전과 함께 cookie 나 user-agent 같은 헤더들의 값이 굉장히 커짐에 따라 비효율적인 통신이 지속되게 되었다. 이러한 문제점을 보강하기 위하여 http2 에서는 헤더의 압축과 indexing 을 지원하고 있고 이 기술을 hpack 이라 부르고 이를 RFC7541 에 기술해두었다....

  • Python PEP 3333

    Aug 3, 2015

    PEP 3333 은 WSGI 에 대해서 설명하고 있는 PEP 문서이다, 원 버전은 PEP 0333 인데, python 3.x 의 지원과 community errata addenda clarifications 을 추가한 문서이다. Overview WSGI 는 “server” 혹은 “gateway” 측과 “application”, “framework” 두가지로 나누어진다. server side 에서는 appliction side 에서 제공된 object 를호출한다. 이 런 object 들이 어떻게 제공되는지에 대한 spec 은 server side 에 나온다. 추가로, 순수한 server/gateway 와...

  • RFC 7540(HTTP 2) Stream Identifiers

    Aug 2, 2015

    Stream Identifiers 스트림들은 31 비트의 정수형 문자로 식별된다. 클라이언트에 의해서 생겨나는 stream 의 식별자는 홀수로, 서버에 의해서 생기는 스트림은 짝수로해야한다. stream 의 식별자 0 은 connection control 을 위한 메세지에 사용된다. HTTP/2 로 이동하기 위한 HTTP/1.1 의 request 는 stream identifier 0x1 로 응답된다. HTTP/2 로 버전업이 완료된 후에는 0x1 의 stream 식별자는 클라이언트에게 half-closed (local) 상태이다. 따라서, 0x1 은 HTTP/1.1 에서 버전업 된...

  • RFC 7540(HTTP 2) Starting HTTP/2

    Aug 2, 2015

    HTTP/2 의 시작 HTTP/2 에서는 전송계층의 프로토콜로 HTTP/1 과는 다르게 TCP 를 사용한다고 명시되어 있다. 또한 HTTP/2 는 http 와 https 의 URI scheme 을 HTTP/1.1 과 동일하게 사용하고 포트 번호도 기본 설정을 80 번 https 는 443 번을 사용한다. HTTP/2 는 1.1 과 동일하게 TLS 위에서 동작하는 h2 와 cleartext TCP 위에서 동작하는 h2c 로 나뉘게된다. h2: HTTP/2 에서는 TLS 1.2 버전 혹은 그 이상의 버전을 요구하고 있다. 이...

  • RFC 7540(HTTP 2) Streams State

    Aug 2, 2015

    Streams and Multiplexing HTTP 2.0 에서의 스트림은 양방향성의 독립된 client 와 server frame 을 교환할 수 있는 통로입니다. 스트림들은 몇가지 중요한 특징이 있습니다. 하나의 HTTP/2 connection 에는 여러개의 stream 이 있을 수 있습니다. 각각의 endpoint 에서는 frame 을 multistream 으로 보낼 수 있습니다. stream 은 설치될 수 있고, 일방적으로 사용되거나 클라이언트나 서버가 공유할 수 있습니다. stream 은 각각의 endpoint 에서 닫을...

  • Compare HTTP 1.1 to 1.0

    Aug 1, 2015

    HTTP 1.1 은 HTTP 1.0 의 부족한 점을 보강하고자 정해진 표준으로 1999 년에 RFC 2616 으로 등록되어 있다. 1.0 의 HTTP 버전 설명에 나와있듯, 몇 가지 용어에 대해서 정의가 변경되거나, 확장되었을 뿐 기본적인 프로토콜의 메세지 구조는 똑같다.(다른 그것을 보고 싶다면 HTTP/2 를…) 따라서 이 장에서는 전체적인 해석보다는 부분적으로 달라진 점에 대해서 확인해 볼 것이다. Missing Charset...

  • RFC 1945(HTTP 1.0) 요약 下

    Jul 29, 2015

    Request HTTP-message = Simple-Request ; HTTP/0.9 messages | Simple-Response | Full-Request ; HTTP/1.0 messages | Full-Response Full-Request = Request-Line ; Section 5.1 *( General-Header ; Section 4.3 | Request-Header ; Section 5.2 | Entity-Header ) ; Section 7.1 CRLF [ Entity-Body ] ; Section 7.2 Full-Response = Status-Line ; Section...

  • RFC 1945(HTTP 1.0) 요약 上

    Jul 29, 2015

    HTTP VERSION HTTP 버전은 <major version>.<minor version> 으로 이루어 진다. <minor>가 올라가는 경우는 파싱 알고리즘의 차이는 없고, 헤더의 추가나 기능의 추가를 나타낸다. <major> 프로토콜의 파싱 알고리즘에 큰 변화가 있을 경우에 올라간다. HTTP 의 버전은 "HTTP" "/" "1*DIGIT" . "1*DIGIT"같은 형식으로 표기한다. 또한, HTTP/2.4 는 HTTP/2.13 에 비해 낮은 버전이다 minor version 은 소숫점이 아니라...

  • Python Flake 8 for Sublime Text

    Jul 29, 2015

    Python 코드 작성 시 일반적인 컨벤션에 대해서 서술하고 있는 PEP 8 에 대해서 한번 읽어보는게 좋다. 하지만 이걸 외우면 좋겠지만 사람인지라 실수를 할 수도 있어, 그걸 잡아주는 유틸인 Flake8 이 있다. Note: 이런 기능을 하는 유틸리티에는 PyFlakes 외에 PyLint PyChecker 등 여러가지 lint 유틸리티가 존재한다. Flake8 은 여러가지 에디터 플러그인 형태로 지원하지만, 제가 주로...

  • Python string concat

    Jul 29, 2015

    Python 으로 string concat 할 일이 많아 질 것으로 보여서 미리 찾아 봤는데, 역시나 str 객체에 += 연산자로 concat 하는 방식은 객체를 계속 재생산하는 방식이다.. 사이트를 뒤져보니 여러 제안이 있고 테스트 코드도 작성되어 있어서 조금 커스텀해서 작성했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

  • Python range and xrange

    Jul 29, 2015

    Sublime 에서 syntax 설정이 python 으로 되어 있을때, for 문을 입력하면 자동 완성으로 1 2 for x in xrange(1,10): pass 이렇게 완성되는데 xrange 와 그냥 range 의 차이에 대해서 궁금해 졌고 stackoverflow 에 같은 질문을 한 글을 볼 수 있었다. 중요한건 언제나 답변인데, range creates a list, so if you do range(1, 10000000) it creates a list...

  • RFC 7540(HTTP 2) Frame code

    Jul 28, 2015

    HTTP2 Frame HTTP2 의 Frame 에 대해서 공부하고 포스팅 안한 부분에 대한 공부까지 합쳐서 일단 코드를 짜고 보았다. 개인적으로 Flow control 을 보고 있지만 빠른 시간내로 포스팅 할 것을 목표로하고 일단 코드를 써봤는데.. python 으로 작성했고 Frame 이란 클래스를 작성하여 추후에 코드 재사용을 목표로 하고는 있지만… 여튼 frame 의 사이즈 제한 정책에 따라 data 를 설정할 때...

  • Python PEP 8

    Jul 26, 2015

    PEP 8 에대해서 번역된 글이 있어 퍼왔습니다. 약간 수정된 사항이 있지만 jekyll 에서 보기 편하도록 몇가지 Markdown 문법을 수정한것 외에는 내용상 차이는 없습니다. 원본을 확인하고 싶거나 번역에 참여하고 싶다면 아래 번역링크에 들어가서 확인해주시기 바랍니다. --- 이 문서는 현재 여기에서 공동 번역이 이루어지고 있습니다. 관심 있는 분들의 참여 부탁드립니다. PEP: 8 Title: Style...

  • RFC 7540(HTTP 2) Frame size and header compression

    Jul 25, 2015

    Frame Size frame 의 payload 의 최대 사이즈는 수신자 측의 SETTINGS_MAX_FRAME_SIZE 만큼으로 제한되어 있다. 이 설정은 2^14 (16,384) 과 2^24-1 (16,777,215) 값 사이에 정해져야한다. 모든 HTTP/2.0 의 구현체는 9 바이트의 frame 헤더와 2^14 바이트의 payload 의 길이를 최소한 받을 수 있어야한다. frame header 의 크기는 frame 사이즈에 포함되어 있지 않다. Note: PING 과 같은 frame 의 타입은 payload data 의 사이즈에는 프레임에...

  • RFC 7540(HTTP 2) Frame

    Jul 25, 2015

    용어 설명 client: HTTP/2 의 끝부분에서 커넥션을 시작하는 부분입니다. Client 는 HTTP 요청을 보내고 응답을 받습니다. endpoint: connection 의 Server 와 client 를 말한다. connection: 두 endpoint 간의 전송계층의 연결을 말한다. connection error: HTTP/2 연결에서 발생하는 모든 에러. frame: HTTP/2 connection 의 가장작은 단위의 통신 메세지이다. peer: 특정 endpoint 를 말할때, 이야기하고 있는 endpoint 의 remote 를 이야기한다. receiver: frame 을...

  • Changing standard (Python) test discovery

    Jul 25, 2015

    이 외의 pytest 관련 문서 Python fixture Python hoook Changing directory recursion ini-file 에 norecursedirs 을 이용하여 테스팅 파일 찾는 것을 막을수 있다. setup.cfg 가 프로젝트의 루트 폴더에 있다면: content of setup.cfg [pytest] norecursedirs = .svn _build tmp* 이를 통하여 .svn 이나 tmp 가 붙는 directory 에는 접근하지 않는다. Changing naming conventions 테스트 코드를 찾는 naming...

  • Python pytest easy to start

    Jul 25, 2015

    이 외의 pytest 관련 문서 Python fixture Python hoook 설치 설치는 pip 이나 easy_install 같은 명령어를 이용하여 설치할 수 있다. pip install -U pytest # or easy_install -U pytest 설치 후 올바른 버전이 설치되었는지를 확인해보기 위해서는 $ py.test --version –version 옵션을 이용하여 확인할 수 있다. Our first test run Let’s create...

  • Python pytest with unittest

    Jul 22, 2015

    이 외의 pytest 관련 문서 Python fixture Python hoook – @pyetst.mark.userfixture pytest 는 pythons 에서 기본지원하는 unittest 와의 연동을 지원한다. 예를들어 pytest 의 fixture 를 unittest 에서 사용할 수 있다. 그래서 아래와 같은 예제를 만들어 보았다. import pytest import unittest @pytest.fixture(scope="class") def fixt_test(request): request.cls.test = "Test fixture with unittest" @pytest.mark.usefixtures("fixt_test") class Unittest(unittest.TestCase): def test_case(self): assert 0,...

  • RFC 1945(HTTP 1.0) ABNF

    Jul 21, 2015

    이 외의 RFC 1945 관련 문서 HTTP Terminology HTTP overall operation ABNF 는 Augmented Backus-Naur Form 로 BNF(RFC 822) 이 확장된 것이다. ABNF 또한 이미 RFC 로 정의되어 있지만 (RFC 2234), 그보다 이전인 HTTP/1.0 스펙인 RFC 1945 에서 이미 간략하게 다루고있다. 우리는 RFC 1945, section 2.1 에 나와있는 스펙에 대해서 간략하게 정리하였다. Contents Constructs Basic Rules Constructs...

  • http 발표자료

    Jul 21, 2015

    5 월달에 동아리 내에서 세미나 발표를 위해 2 주정도 준비했던 HTTP 에 대한 발표자료이다. 나름 정리해보려고 만들었지만 사이즈를 생각하면 실패했다고 생각된다...ㅠ Http from Luavis Kang

  • Python pytest hook

    Jul 20, 2015

    이번 문서에서는 Pytest 의 hook 기능에 대해서 알아보고자 Pytest 공식 사이트의 latest 버전의 (2.4) hook reference 페이지를 번역해 보기로 했다. Note: Hook 함수들은 conftest.py 에 추가해야 동작한다. 이 외의 pytest 관련 문서 Python fixture Pytest with unittest Contents Hook specification and validation Initialization, command line and configuration hooks Generic “runtest” hooks Hook specification...

  • Python pytest fixture

    Jul 19, 2015

    우리가 흔히 사용하는 라이브러리에서는 일반적으로 unit test 기반의 테스팅 파일을 설치시 정상적인 설치가 되었는지 또 라이브러리를 PR 할 시에 이 라이브러리의 확장이 버그 없이 확장된것인지를 확인해주기 위해서 함께 업로드해 준다. python 에서는 보통 Pytest 를 사용하는데, 그 중 Fixture 기능에대해서 정리해보기 위해 Pytest 공식 사이트의 latest 버전의 (2.4) fixture 기능에 대해 나와있는 페이지를 번역해 보기로...

  • RFC 1945(HTTP 1.0) 전체적인 동작

    Jul 19, 2015

    두번째 파트에서는 HTTP 의 전체적인 동작의 흐름에 대해서 정리해보았다. 이 외의 RFC 1945 관련 문서 HTTP Terminology HTTP ABNF Request request 는 전 파트인 용어 설명에 번역되어 있듯이 클라이언트의 통신 요청이다. RFC 1945 에서는 이때에 Request 에 수반되는 data 들의 항목에 대하여 나열해 놓고 있다. Reuqest 방법 (request method) i.e. GET, POST, HEAD URI (Uniform...

  • RFC 1945(HTTP 1.0) 용어 설명

    Jul 19, 2015

    이 외의 RFC 1945 관련 문서 HTTP overall operation HTTP ABNF 우리가 지금 사용하고 있는 웹에서 가장 흔하게 볼 수 있는 프로토콜 중 하나를 뽑으라 하면 대부분의 개발자들이 주저없이 HTTP 를 선택할 것이다. 이 HTTP 의 기본적인 사양을 내포하고 있는 버전인 1.0 을 이번에 공부하기 위해 HTTP/1.0 의 spec 들에 관하여 서술하고 있는 RFC 1945 를...

avatar

Profile | About the blog

© 2015-2019 Luavis
Designed by shydah

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.