[HTTP] 1. 인터넷과 네트워크
인터넷 통신의 기본 개념을 바탕으로 IP 패킷 전달 방식과 한계(비연결성·비신뢰성·프로그램 구분)를 정리하고, 이를 보완하는 TCP/UDP 특징과 3-way handshake, 포트 개념, DNS의 역할까지 네트워크 기초 흐름을 설명한다.
인터넷 통신의 기본 개념을 바탕으로 IP 패킷 전달 방식과 한계(비연결성·비신뢰성·프로그램 구분)를 정리하고, 이를 보완하는 TCP/UDP 특징과 3-way handshake, 포트 개념, DNS의 역할까지 네트워크 기초 흐름을 설명한다.
URI/URL/URN의 차이와 URL 문법(scheme, host, port, path, query, fragment)을 정리하고, 브라우저가 URL 입력 후 DNS 조회 → TCP 연결 → HTTP 메시지 생성/전송 → 서버 응답 → 렌더링까지의 요청 흐름을 단계별로 설명한다.
HTTP는 거의 모든 데이터(HTML, 이미지, JSON 등)를 HTTP 메시지로 주고받는 클라이언트-서버 기반 프로토콜이다. 무상태(stateless)와 비연결성(connectionless)을 특징으로 하며, 요청/응답 구조와 메시지(시작라인·헤더·바디) 구성, 버전 발전 흐름(0.9~3)을 정리한다.
HTTP API 설계의 핵심인 리소스 식별을 바탕으로 GET·POST·PUT·PATCH·DELETE 메서드의 역할과 안전성·멱등성·캐시 가능 같은 주요 속성을 정리한다.
클라이언트-서버 데이터 전송 방식(쿼리 파라미터 vs 메시지 바디)과 폼/파일 업로드·AJAX에서의 Content-Type, 그리고 POST 컬렉션·PUT 스토어 기반 HTTP API 설계 예시를 정리한다.
HTTP 상태코드의 분류(1xx~5xx)와 주요 코드(200, 201, 204, 3xx 리다이렉션/PRG, 4xx, 5xx)의 의미와 사용 상황을 정리한다.
HTTP 헤더를 표현(메타데이터+데이터) 관점에서 정리하고 Content- 표현 헤더, 협상(Accept)과 전송 방식, 그리고 일반/특별/인증/쿠키 관련 주요 헤더의 역할을 정리한다.
HTTP 캐시의 기본 동작과 만료 이후 재검증 흐름을 설명하고 Last-Modified/ETag 검증 헤더와 If-* 조건부 요청, Cache-Control/프록시 캐시/CDN, 캐시 무효화 전략을 정리한다.
노션에서 글을 작성하고 상태를 변경하는 것만으로 블로그에 자동 배포되는 파이프라인을 구축한 과정을 공유합니다.
리액트 파이버 아키텍처란?
모듈에 대해 이야기 해보자. 문법 수준에서 모듈을 지원하기 시작한 것은 ES2015부터다. import/export 구문이 없었던 모듈 이전 상황을 살펴보는 것이 웹팩 등장 배경을 설명하는데 수월 할 것이다.
웹팩은 자바스크립트를 모듈로 만들어준다. 모든 시작점을 엔트리 or 엔트리포인트 라고 부른다.
웹팩이 js, png, sass, cjs 등 모두 모듈로 본다라고 했다. 이런것들 자바스크립트에서 모두 import해서 개발할수 있게끔 제공해준다. 이런 환경을 제공해주는 역할이 웹팩의 **로더**가 하는 역할이다.
웹팩이 각 모듈들이 로더가 처리한 후 웹팩이 처리된 파일들을 하나로 모은다. 하나로 만들어 내기 전에 후처리를 해준다. 빈칸을 줄이거나 변수명을 바꾸거나 이러한것들을 해주는 것이 **플러그인**이다.
바벨은 ECMAScript2015 이상의 코드를 적당한 하위 버전으로 바꾸는 것이 주된 역할이다. 이렇게 바뀐 코드는 인터넷 익스플로러나 구버전 브라우져처럼 최신 자바스크립트 코드를 이해하지 못하는 환경에서도 잘 동작한다.
스타일 따위를 점검하는 것을 [린트(Lint) 혹은 린터(Linter)](https://en.wikipedia.org/wiki/Lint_(software))라고 부른다