TCP vs UDP
·
Network
개발을 하다 보면 "TCP가 더 안정적인 프로토콜", "UDP는 속도가 빠르다" 같은 문장을 자주 보게 된다. 하지만 막상 언제 TCP를 써야 하고, 언제 UDP를 써야 하는지 또는 왜 성능 차이가 발생하는지, 네트워크 수준에서 무엇이 다른지를 정확하게 설명하기 어려운 경우가 많다. 이번 글에서는 TCP와 UDP의 구조적 차이, 동작 방식, 장단점, 실제 서비스에서의 선택 기준을 정리해봤다.TCP와 UDP는 ‘전송 계층’ 프로토콜OSI 7계층에서 TCP와 UDP는 Layer 4(전송 계층)에 있다.IP는 목적지까지 데이터 패킷을 전달하는 역할(L3)TCP/UDP는 “그 데이터를 어떻게 전달할까?”를 결정하는 역할(L4)즉, TCP/UDP는 데이터를 어떤 방식으로 보내고 받을지를 규정하는 규칙이다.핵심 비..
CORS
·
Network
CORS프론트엔드와 백엔드가 분리된 환경에서 개발하다 보면, “CORS 에러”라는 걸 자주 만납니다.콘솔에 이런 에러가 보인 적 있으신가요?Access to fetch at 'http://api.example.com/data' from origin 'http://localhost:3000' has been blocked by CORS policy:No 'Access-Control-Allow-Origin' header is present on the requested resource.처음 보면 당황스럽지만, 사실 원리는 단순합니다.1. CORS란?CORS (Cross-Origin Resource Sharing): 브라우저가 보안 때문에 다른 출처(origin)의 리소스를 제한하는 정책👉 출처(origin..
HTTP 상태 코드
·
Network
HTTP 상태 코드웹 개발을 하다 보면 HTTP 상태 코드를 자주 마주하게 됩니다.API 요청이 실패했을 때 "500 Internal Server Error"가 떴다거나, 인증 문제로 "401 Unauthorized"가 떴다거나 하는 경우죠.상태 코드는 사실 단순합니다. 서버가 클라이언트 요청에 대해 어떤 결과를 반환했는지 알려주는 신호예요.1. 상태 코드의 큰 분류HTTP 상태 코드는 앞자리 숫자로 구분됩니다.1xx (정보) → 거의 안 씀2xx (성공) → 요청 성공3xx (리다이렉트) → 다른 곳으로 이동4xx (클라이언트 오류) → 요청 잘못됨, 인증/권한 문제5xx (서버 오류) → 서버 내부 문제2. 자주 쓰는 상태 코드 + API 예시✅ 성공 (2xx)200 OKPOST /login HTTP..
클라이언트와 서버 간의 통신
·
Network
프로젝트 기획 중 전체적으로 파트 별 알림 기능이 필요하다고 판단했습니다.따라서 공통 기능으로 알림 기능을 구현해두려고 하려고 합니다. 알림 기능에 적합한 요청 방식을 채택하기 위해 웹 애플리케이션에서 클라이언트와 서버 간의 통신 방법에 대해 공부해봤습니다.짧은 폴링 / short Polling정의: 클라이언트가 주기적으로 서버에 요청을 보내어 새로운 데이터가 있는지 확인하는 방식입니다. 일정 간격으로 서버에 HTTP 요청을 보내고 응답을 받습니다. - 정기적 폴링:일정한 간격 또는 주기적으로 데이터를 확인하거나 갱신합니다.- 이벤트 기반 폴링:특정 이벤트가 발생했을 때만 데이터를 요청합니다. 특징:- 구현이 비교적 간단.- 클라이언트가 데이터를 주기적으로 요청하기 때문에 즉각적인 업데이트 힘듬. (실시..
운영체제 면접 질문 - 1
·
Network
출처: https://github.com/ksundong/backend-interview-question
네트워크 면접 질문 - 3
·
Network
출처: https://github.com/ksundong/backend-interview-question
네트워크 면접 질문 - 2
·
Network
출처: https://github.com/ksundong/backend-interview-question
네트워크 면접 질문 - 1
·
Network
출처: https://github.com/ksundong/backend-interview-question
[HTTP 웹 기본 지식] - HTTP 헤더2 (캐시와 조건부 요청)
·
Network
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 정리&복습캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다.인터넷 네트워크는 매우 느리고 비싸다.브라우저 로딩 속도가 느리다.느린 사용자 경험 캐시 적용최초 요청 시 응답 결과를 캐시에 저장 후 같은 요청 시 캐시에서 꺼내 온다.캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.비싼 네트워크 사용량을 줄일 수 있다.브라우저 로딩 속도가 매우 빠르다.빠른 사용자 경험 캐시 시간 초과캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다.이때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청1캐시 시간 초과캐시 유효 시간이 초과해서 서버에 다..
[HTTP 웹 기본 지식] - HTTP 헤더1 (일반 헤더)
·
Network
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 정리&복습 HTTP 헤더 개요Header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용)용도HTTP 전송에 필요한 모든 부가정보가 담겨있다.예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 분류General 헤더메시지 전체에 적용되는 정보Request 헤더요청 정보Response 헤더응답 정보Entity 헤더엔티티 바디 정보 HTTP 바디메시지 본문(message body)을 통해 표현 데이터 전달메시지 본문 = 페이로드(payload)표현은 요청이나 응답에서 전달할 실제 데이터표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공..
[HTTP 웹 기본 지식] - HTTP 상태코드
·
Network
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 정리&복습HTTP 상태코드 소개상태코드란 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능을 한다. 1xx (Informational): 요청이 수신되어 처리 중거의 사용하지 않으므로 생략한다. 2xx (Successful): 요청 정상 처리- 200 (OK): 요청 성공- 201 (Created): 요청 성공해서 새로운 리소스가 생성됨- 202 (Accepted): 요청이 접수되었으나 처리가 완료되지 않았음 배치 처리 같은 곳에서 사용 예) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리-204 (No Content): 서버가..
[HTTP 웹 기본 지식] - HTTP 메서드 활용
·
Network
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 정리&복습클라이언트에서 서버로 데이터 전송데이터 전달 방식은 크게 2가지로 나뉜다. 쿼리 파라미터를 통한 데이터 전송GET주로 정렬 필터(검색어) 등에 사용한다. 메시지 바디를 통한 데이터 전송POST, PUT, PATCH회원가입, 상품 주문, 리소스 등록, 리소스 변경 등에 사용 4가지 상황에 대한 예시1) 정적 데이터 조회이미지, 정적 텍스트 문서를 조회하는 경우에 해당한다.조회는 GET 사용하며 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능하다.2) 동적 데이터 조회주로 검색, 게시판 목록에서 정렬 필터(검색어)를 사용하는 경우에 해당한다.조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사..