CS ( Computer Science )/네트워크 (Networking)

[Net] 네트워크 기본 요약

JABHACK 2024. 12. 6. 18:34

꼭 기억하기

  1. 네트워크 통신은 HTTP로 이루어진다.
  2. HTTP는 무상태 프로토콜이며 비연결성 특징을 가지고 있다.
  3. HTTP Message 구조
    1. HTTP Method
    2. 상태코드
    3. HTTP Header
  4. HTTP API는 Restful 하게 설계해야 한다. 최소 성숙도레벨 2를 지켜야 한다.
  5. Servlet은 Java에서 Request, Response를 쉽게 다루게 해주는 객체이다.
  6. Servlet Container는 Servlet 객체를 싱글톤으로 관리한다.
  7. WAS는 다중 요청 처리를 위해 Multi Thread를 지원한다.
  8. SSR 방식은 서버에서 동적인 페이지를 완성하여 응답한것을 브라우저에서 화면을 출력한다.

CSR은 HTTP API 통신으로 얻은 결과를 통해 브라우저에서 동적으로 화면을 출력한다.

 

[1] 네트워크 기본 개념

  • Packet: 데이터는 패킷이라는 작은 단위로 쪼개져 전송됩니다. 패킷은 헤더, 페이로드, 트레일러로 구성되며, 패킷을 구성하는 각 요소는 데이터가 정확하게 전송되도록 돕습니다.
    • 배달 예시: 패킷은 배달되는 소포에 해당합니다. 소포는 수신자의 이름과 주소(헤더), 내용물(페이로드), 배송 확인 스티커(트레일러)가 있습니다.
  • HTTP: HyperText Transfer Protocol에서 데이터를 주고받는 프로토콜입니다. 클라이언트와 서버 간의 요청과 응답 방식으로 동작합니다.
    • 배달 예시: HTTP는 배달 요청서배송 알림에 해당합니다. 클라이언트가 요청서를 보내면 서버는 해당 요청에 맞는 배송 알림을 보냅니다.
  • DNS (Domain Name System): DNS는 도메인 이름을 IP 주소로 변환하는 시스템입니다.
    • 배달 예시: DNS는 배달에 필요한 주소 안내서와 같습니다. 클라이언트가 도메인 이름을 입력하면, DNS는 그것을 실제 주소로 바꿔주는 역할을 합니다.
  • URI (Uniform Resource Identifier): URI는 웹 자원의 주소를 식별하는 방법입니다.
    • 배달 예시: URI는 배달 주소와 같습니다. 웹 자원을 정확하게 식별하고 위치를 알려줍니다.
  • Port: 네트워크 통신에서 특정 애플리케이션을 식별하는 숫자입니다.
    • 배달 예시: 포트는 집의 방 번호와 같습니다. 소포가 도착한 주소에서 어떤 방으로 가야 할지 알려줍니다.
  • Cache: 캐시는 자주 사용하는 데이터를 임시 저장하여 빠르게 접근할 수 있도록 돕습니다.
    • 배달 예시: 캐시는 자주 사용하는 물건을 미리 준비해두고, 필요할 때 바로 꺼내서 배송하는 것과 같습니다.

[2] 웹 서버와 WAS (Web Application Server)

  • Web Server: 웹 서버는 클라이언트의 요청을 받아 **정적 파일(HTML, CSS, JS)**을 응답하는 서버입니다.
    • 배달 예시: 웹 서버는 택배 회사입니다. 택배 회사는 소포를 받은 후, 내용물이 정해져 있는 소포를 정확하게 배달합니다.
  • WAS (Web Application Server): WAS는 동적인 웹 애플리케이션을 처리하는 서버로, 웹 서버보다 더 복잡한 비즈니스 로직을 처리합니다.
    • 배달 예시: WAS는 주문을 받고 복잡한 가공을 거쳐 배송하는 업체입니다. 클라이언트가 주문한 후, 상품을 가공하여 최종 결과물을 배송합니다.

[3] HTTP와 관련된 개념들

  • HTTP Method: HTTP 요청의 유형에는 GET, POST, PUT, DELETE 등이 있습니다.
    • 배달 예시: HTTP 메서드는 배달 요청 유형입니다. 예를 들어, GET은 단순히 "배달해주세요", POST는 "새로운 주문을 넣어주세요"와 같습니다.
  • HTTP Header: HTTP 헤더는 요청이나 응답에서 추가적인 정보를 담고 있는 부분입니다.
    • 배달 예시: 헤더는 배달 시 필요한 추가 정보입니다. 예를 들어, 요청자가 주문한 물건에 대한 배달 주소, 연락처 같은 정보입니다.
  • Cookie: 쿠키는 클라이언트 측에 저장된 세션 정보입니다.
    • 배달 예시: 쿠키는 배달 중간에 발생하는 특별한 메모입니다. 배달 중에 클라이언트가 이전 정보를 기억하여 다시 요청할 수 있게 돕습니다.
  • Cache: 캐시는 자주 요청되는 데이터를 로컬에 저장하여 응답 속도를 빠르게 만듭니다.
    • 배달 예시: 캐시는 자주 받는 물건을 미리 준비해 놓고 필요할 때 빠르게 배송하는 것과 같습니다.
  • Redirection (리다이렉션): 리다이렉션은 사용자가 요청한 자원이 다른 위치로 이동했을 때, 해당 자원을 새로운 위치로 안내하는 과정입니다.
    • 배달 예시: 리다이렉션은 주소지가 변경된 경우 새 주소로 다시 안내하는 것입니다.

[4] 서버와 클라이언트의 렌더링 방식

  • CSR (Client-Side Rendering): CSR은 클라이언트에서 HTML을 동적으로 생성하여 렌더링하는 방식입니다.
    • 배달 예시: CSR은 클라이언트가 주문을 받고 상품을 준비하여 직접 배달하는 것과 같습니다.
  • SSR (Server-Side Rendering): SSR은 서버에서 HTML을 미리 생성하여 클라이언트에게 전달하는 방식입니다.
    • 배달 예시: SSR은 서버가 모든 물건을 미리 포장하여 클라이언트에게 빠르게 배송하는 방식입니다.

[5] WAS 생명주기 모델

  • 생명주기: WAS의 생명주기는 애플리케이션의 시작, 실행, 종료 순으로 진행됩니다.
    • 배달 예시: WAS의 생명주기는 배달 준비 과정에 해당합니다. 주문 받기 → 배달 준비 → 배달 완료의 과정입니다.

[6] Thread와 관련된 개념들

  • Thread: 쓰레드는 프로그램 내에서 실행 단위를 말하며, 여러 쓰레드가 동시에 작업을 처리할 수 있습니다.
    • 배달 예시: 쓰레드는 여러 명의 배달 기사가 동시에 여러 주소로 배달하는 것에 해당합니다.
  • Servlet: 서블릿은 웹 애플리케이션 서버에서 요청을 처리하는 Java 기반의 기술입니다.
    • 배달 예시: 서블릿은 배달 기사가 주문을 받고, 그에 맞는 작업을 처리하여 고객에게 전달하는 역할입니다.

[7] 다른 주요 개념들

  • MSA (Microservices Architecture): MSA는 마이크로서비스 아키텍처로, 큰 애플리케이션을 작은 서비스들로 분할하여 관리하는 방법입니다.
    • 배달 예시: MSA는 여러 개의 물류 창고에서 각각의 물건을 처리하고, 모든 창고가 협력하여 배달을 완성하는 것과 같습니다.
  • Scale Up, Scale Out: Scale Up은 하드웨어 성능을 강화하는 방식이고, Scale Out은 서버를 추가하는 방식입니다.
    • 배달 예시: Scale Up은 더 큰 트럭을 구입하는 것이고, Scale Out은 배달 기사를 더 추가하는 것과 같습니다.
 
 
 
 

'CS ( Computer Science ) > 네트워크 (Networking)' 카테고리의 다른 글

[Net] API 설계  (0) 2024.12.12
[Net] Cookie / Session / Token / JWT / Filter  (0) 2024.12.12
[Net] Rendering  (1) 2024.12.05
[Net] Servlet  (1) 2024.12.04
[Net] Web Application  (1) 2024.12.03