- [ 학습기록/CS 공부 ][네트워크/KOCW] Chap2. Application Layer2024-05-31 16:56:04네트워크 어플리케이션은 서로 다른 end system에서 실행되는 프로세스들이 네트워크를 통해 서로 통신하는 것을 의미한다. 웹 어플리케이션과 P2P 파일 공유 시스템이 대표적인 예다. 웹 어플리케이션은 클라이언트-서버 구조를 기반으로 한다. 서버는 on 상태를 유지하여 다수의 클라이언트가 보낸 요청을 처리한다. 클라이언트는 고정되고 잘 알려진 서버의 IP주소로 packet을 전송한다. P2P (= peer-to-peer) 구조는 서버를 거치지 않고 peer끼리 직접 통신하는 방식이다. 중앙 서버에 의존하지 않기 때문에 서버의 영향을 받지 않으며, 사용자가 많아질 수록 네트워크의 성능이 높아진다는 장점이 있다. (P2P 파일 공유 시스템은 자신의 리소스를 네트워크에 제공하는 동시에 다른 노드의 리소스도 ..
- [ backend/내가 만든 패키지 ][node] http 모듈 커스텀하기 3편2023-12-28 01:36:04http 파서에 개선할 점이 아주 많아요. 추후에 개선해 나갈 예정이니 과정만 참고 부탁드립니다. https://github.com/kimyu0218/custom-http 이번 포스트에서는 2편에서 다루지 못한 `HttpRequest`를 작성할 예정이다. 요청은 클라이언트가 서버로 보내는 메시지이기 때문에 HTTP 프로토콜을 준수하고 있는지 검사해야 한다. 유효성 검사가 끝나면 메서드를 이용하여 요청에 들어있는 정보를 쉽게 사용할 수 있도록 `HttpRequest`로 파싱할 것이다. HttpRequest를 위한 파서 만들기 요청은 크게 request-line, header, message-body로 구분된다. request-line에는 HTTP 메서드, 요청 대상, HTTP 버전이 들어있다. 요청 대상,..
- [ backend/내가 만든 패키지 ][node] http 모듈 커스텀하기 2편2023-12-24 01:47:22아직 부족한 게 많은 패키지에요. 핵심만 구현했으니 귀엽게(?) 봐주세요. http 모듈에는 어떤 게 들어있을까? http 모듈을 위한 코드를 작성하기에 앞서 http 모듈에 들어있는 객체들을 살펴보자. http 모듈은 HTTP 프로토콜을 다루기 위한 핵심 모듈이다. nodejs - http documentation (사실 캡처해서 가져오려고 했으나 너무 많아서 포기했다. 위 사이트 들어가서 확인해주세요) 내가 구현할 객체는 일부 상수와 HTTP 메시지 부분이다. 메시지 객체를 구현하기 위해서는 메서드와 상태코드 정보를 넘겨줘야 하기 때문에 `METHODS`, `STATUS_CODES`를 구현하기로 결정했다. http.METHODS http.STATUS_CODES http.IncomingMessage h..
- [ backend/내가 만든 패키지 ][node] http 모듈 커스텀하기 1편2023-12-23 22:43:16예비 개발자의 http 모듈 뜯어보기 웹의 3요소는 HTTP, HTML, URL이다. 웹 개발자가 되고 싶은 사람으로서 http 모듈은 뜯어봐야 되지 않겠냐라는 마인드로 http 모듈을 모방하기로 결심했다. 패키지는 npm에 배포된 상태이며, 소스코드는 깃허브 에서 확인할 수 있다. (아직 부족한 부분이 많기에 계속해서 수정할 예정이다.) 이번 포스트에서는 HTTP가 무엇인지 알아볼 것이다. HTTP가 뭐야? HTTP : Hyper Text Transfer Protocol 클라이언트 서버 구조 무상태 프로토콜 (stateless) 비연결성 (connectionless) HTTP는 HTML 문서와 같은 데이터들을 가져올 수 있도록 해주는 프로토콜로, 위와 같은 특징을 갖는다. 해당 특징들을 하나씩 자세히 ..