컴퓨터 네트워크 7

RTP, RTCP

RTP 개요 실시간 음성 혹은 영상 전송에서 데이터 변형이나 분실 오류 복원은 상대적으로 중요하지 않음. 대신 데이터의 도착 순서나 수신 패킷의 지연 간격 그리고 데이터 압축에 의한 전송 정보량의 최소화가 중요함. 일반적으로 널리 사용되는 TCP/UDP는 실시간 서비스의 특성을 충분히 지원하지 못함 TCP의 경우에는 패킷 순서와 신뢰성이 지나치게 강조되어 재전송 기능과 복잡한 흐름 제어 기능으로 인해 실시간 환경에서는 적합하지 않음 UDP는 기능이 단순하지만, 데이터의 순서 보장을 충분히 지원하지 못함 따라서 UDP에 데이터 순서 번호 기능을 추가한 프로토콜인 RTP를 실시간 서비스에서 사용할 수 있음 특징 타임스탬프 방식을 사용하여 데이터의 순서를 정렬 프로토콜 내부에 위치하는 버퍼의 크기를 각 응용프..

NGINX

현재 근무하는 회사에서 모델 서빙 인프라를 구축하는 일이 있었습니다. BentoML 기반의 서빙 시스템을 구축하였고, NGINX와 Gunicorn을 사용해서 인프라를 구축해야 했습니다. 이 때 NGINX에 대해 많이 공부하였는데, 이 기회를 빌어서 NGINX에 대해 포스트를 작성하고자 합니다. 웹개발을 공부하는 사람이라면 NGINX에 대해 들어보았을 것입니다. 물론 본인도 웹 인프라를 구성할 때 NGINX를 사용하여야 한다는 것을 들었었고 파이썬을 사용하여 인프라를 구성한다면, Gunicorn과 NGINX를 사용하여야 하여야 한다는 것으로 알고 있었습니다. NGINX 일반적으로 NGINX는 WSGI의 앞단에서 위치하여 정적 파일 요청을 처리하고, 리버시 프록시 서버 역할도 수행한다고 합니다. 따라서 동적..

REST API

최근 기술면접에서 REST API를 질문받은 적이 있었다. 아마 대답을 했던 것 같은데, 완벽한 대답이었다고는 생각하지 않는다. 보통 백엔드 개발자라면 API를 개발하는 업무를 수행하고, 이 때 REST API혹은 RESTful API 아키텍처 형태로 개발할텐데 이에 대해서 정확히 알고 있지 못하는 것 같다. 따라서 본 포스팅을 통하여 REST API에 대해 자세히 정리를 하고 추후 API 설계를 할 때 도움을 받고자 한다. REST란 REpresentational State Transfer의 약자이다. REST는 프로토콜이나 표준이 아니라 아키텍처 원칙 세트인데, 따라서 REST API는 REST 아키텍처를 따르는 조건을 만족하여야 한다. 1. 클라이언트-서버 구조 2. 무상태성이어야 할 것 3. 캐시..

HTTP 상태 코드

본 포스팅은 인프런 김영한 강사님의 "모든 개발자를 위한 HTTP 웹 기본지식 정리" 강의 내용을 정리 및 요약 내용입니다. 상태코드 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청이 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정창 요청을 처리하지 못함 2xx - 성공 200 Ok: 요청 성공 201 Created: 요청 성공해서 새로운 리소스가 생성됨 202 Accepted: 요청이 접수되었으나 처리가 완료되지 않았음(예, 요청 접수 후 1시간 뒤 배치 프로세..

HTTP 메서드 및 URI 설계

본 포스팅은 인프런 김영한 강사님의 "모든 개발자를 위한 HTTP 웹 기본지식 정리" 강의 내용을 정리 및 요약 내용입니다. URI 설계 동사형 보다는 명사형으로 따라서 리소스의 개념을 이해하는 것이 좋음 예) 회원정보를 조회해라 -> 회원이 리소스 /get-members-list -> /members 참고로 계층 구조상 상위를 컬렉션으로 보고 복수 단어를 사용할 것을 권장함. HTTP 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체하고 해당 리소스가 없으면 생성 PATCH: 리소스 일부 변경 DELETE: 리소스 삭제 기타 메서드 HEAD: GET과 동일하지만 메세지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS: 대상 리소스에 대한 통신 가..

HTTP 통신

본 포스팅은 인프런 김영한 강사님의 HTTP 통신 강의 내용을 정리 및 요약 내용입니다. 웹 브라우저 요청 흐름 1. HTTP 요청 메세지 생성2. DNS 조회3. SOCKET 라이브러리를 통해 전달(TCP/IP 연결; 데이터 전달)4. TCP/IP 패킷 생성, HTTP 메세지 포함5. 네트워크 인터페이스를 통해 서버에 메세지 전달 패킷은 HTTP 메세지를 TCP/IP 패킷으로 감싸는 형태 HTTP(HyperText Transfer Protocol) HTML, TEXT, 이미지, 음성, 영상, 파일 등을 전송할 수 있음. JSON, XML 포맷으로 주고받을 수 있음 서버간의 데이터 통신도 대부분 HTTP를 사용 HTTP/2까지는 TCP 프로토콜을 사용하였으나, 3부터는 UDP도 사용되기 시작함. HTTP..

TCP/IP 프로토콜

본 포스팅은 인프런 김영한 강사님의 HTTP 통신 강의 내용을 정리 및 요약 내용입니다. 인터넷 프로토콜 스택의 4계층 애플리케이션 계층(HTTP, FTP) 전송계층(TCP, UDP) - OS 레벨 인터넷 계층(IP) - OS 레벨 네트워크 인터페이스 계층 (LAN 드라이버나 장비 등) 인터넷 프로토콜(IP)의 특징 지정한 IP 주소에 데이터 전달 패킷(packet)이라는 통신 단위로 데이터 전달 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성: 중간에 패킷이 사라지거나, 패킷이 순서대로 오지 않을 가능성이 있음 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 두개 이상이면 혼란 초래 전송제어 프로토콜(TCP , Transmission Control Protocal)의..