책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. TCP 커넥션 모든 HTTP 통신은 TCP/IP를 통해 이루어진다. 이렇게 이루어진 TCP/IP 커넥션 덕에 메시지들이 손실되지 않고 올바른 순서로 목적지에 도달할 수 있다. 예시 다음 URL을 브라우저에 입력하여 목록을 가져온다고 하자. http://2...
책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. 메시지의 흐름 HTTP 메시지는 HTTP 애플리케이션 사이를 이동하는 데이터 블럭이다. 메시지는 클라이언트, 서버, 프록시 사이를 오간다. 메시지는 원 서버를 인바운드로 송신된다 메시지는 원(original) 서버를 인바운드로 송신됐다가, 처리가 끝나면 사용자에게 (아웃바운드로) ...
책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. 모든 것에는 표준화 된 이름이 있다. 책의 ISBN 번호, 버스의 노선 번호, 은행 계좌의 계좌 번호 처럼 말이다. 이러한 표준 덕에 한 사람이 특정 대상을 지칭할 때, 다른 사람들도 그 사람이 무엇을 가리키는 것인지를 알 수 있다. 마찬가지로 URL(Uniform Resource Loc...
책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. HTTP 오늘날 수많은 데이터가 인터넷 상에서 이동한다. 이 과정에서 HTTP(Hypertext Transfer Protocol)는 웹서버에서 사용자의 브라우저로 데이터를 옮겨준다. HTTP는 신뢰성 있는 데이터 전송(reliable data-transmission) 프로토콜을 사용하는데...
개요 Undefined behavior, unspecified behavior, implementation-defined behavior는 C/C++ 언어에서 프로그램이 특정 상황에 어떻게 동작해야하는지를 나타내는 용어이다. Undefined behavior 개념 언어 명세가 프로그램의 동작을 명시하지 않은 상황을 가리킨다. 프로그램의...
개요 Nginx는 리버스 프록시, 로드 밸런서, HTTP 캐시로도 작동하는 인기 있는 오픈 소스 웹 서버 소프트웨어이다. 2002년 이고르 시소예프(Igor Sysoev)가 만들었으며 2004년에 처음 출시되었다. 높은 성능, 안정성, 낮은 리소스 사용으로 유명하며 넷플릭스, 드롭박스, 에어비앤비, 깃허브, Wordpress 등의 웹사이트와 웹 ...
프록시 (Proxy) 개념 클라이언트와 서버 사이에서 대리로 통신을 수행하는 것 이러한 중개 기능을 하는 서버를 프록시 서버(proxy server)라고 한다. 주로 보안을 강화하고 성능을 향상시키거나 익명성을 제공하기 위해 사용된다. 주요 기능 캐싱 (caching) 필터링 (filer...
Git 커밋 메시지 관련 지침을 다룸. 개요 커밋 메시지를 일관되고 표준화된 방식으로 형식화하여 작성하기 위한 지침 사용 목적 명확성 다른 개발자가 특정 커밋에서 변경된 내용을 더 쉽게 이해할 수 있다. 코드 변경 내역을 리뷰하거나 문제를 파악할 때 특히 유용하다. 기록 ...
기본 설정 docker-compose.yml 개념 다중 컨테이너 도커 애플리케이션을 정의하는 YAML 파일 확장자 yml과 yaml은 기능상의 차이는 없다. yml은 과거 Windows의 확장자 3자리 규칙 때문에 사용하던 확장자 ...
3계층 구조(3-tier architecture) 개념 소프트웨어 개발에서 규모있고 유지보수 가능한 애플리케이션을 만들 때 흔히 사용하는 디자인 패턴 하나의 애플리케이션을 세 개의 구분되는 티어로 나눈다. 구성 프레젠테이션 계층 (또는 사용자 인터페이스(UI)) ...