티스토리 뷰

기술면접

2. 네트워크

Howu 2023. 4. 17. 18:00

웹의 동작 방식

  • 사용자가 브라우저에 URL 입력 => 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음 => HTTP 프로토콜을 사용해 HTTP 요청 메시지를 생성 => TCP/IP 연결을 통해 HTTP 요청이 서버로 전송됨 => 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메시지를 생성 => TCP/IP 연결을 통해 요청한 컴퓨터 전송 => 도착한 HTTP 응답 메시지는 웹페이지 데이터로 변환되고 웹 브라우저에 의해 출력되어 사용자가 볼 수 있음

TCP와 UDP의 차이

  • TCP: 연결형 서비스, 전송 순서 보장, 수신 여부 확인, 신뢰성이 높고 속도가 느리다.
  • UDP: 비연결형 서비스, 전송 순사 바뀜, 수신 여부 확인X, 신뢰성이 낮고 속도가 빠르다.

GET과 POST의 차이

  • GET: 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식, URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함해서는 안된다.
  • POST: 데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식

HTTP 프로토콜

  • 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
  • HTTP: 평문 데이터를 전송하는 프로토콜로 비밀번호 또는 주민번호 주고 받을 시 보안 문제가 있음
  • HTTPS: HTTP에 암호화가 추가된 프로토콜로 대칭키 암호화와 비대칭키 암호화가 모두 사용.

3 Way-Handshake

  • 송신자와 수신자가 총 3번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태임을 확인

클라이언트에서 서버로 데이터 전송의 상황

  • 정적 데이터 조회: 쿼리 파라미터 없이 리소스 경로로 단순하게 조회가 가능하다. (GET)
  • 동적 데이터 조회: 쿼리 파라미터를 사용하여 주로 검색, 게시판 목록에서 정렬 필터 데이터 전송 (GET)
  • HTML Form을 통한 데이터 전송: 회원가입, 상품주문, 데이터 변경 등 (POST), GET/POST만 지원
    • multipart/form-data: 파일 업로드 같은 바이너리 데이터 전송시 사용
  • HTTP API를 통한 데이터 전송
    • 서버 to 서버의 백엔드 시스템 통신 방식
    • JS를 통한 AJAX 통신
    • application/json 주로 사용

REST API

  • web의 장점을 최대한 활용할 수 있는 아키텍처
  • 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해서 사용하는 인터페이스
  • 구성: 자원(URI), 행위(HTTP METHOD), 표현(Representations)
  • 특징
    • Stateless
    • Cacheable
    • Client-Server
    • 계층형 구조
  • 리소스명은 동사보다 명사를 사용
  • 장점: 확장성, 유연성, 독립성

* HTTP API 설계 예시

ex) 회원관리 시스템

  • 회원 목록 /members -> GET
  • 회원 등록 /members -> POST
  • 회원 조회 /members/{id} -> GET
  • 회원 수정 /members/{id} -> PATCH, PUT, POST
  • 회원 삭제 /members/{id} -> DELETE

ex) 파일관리 시스템

  • 파일 목록 /files -> GET
  • 파일 조회 /files/{filename} -> GET
  • 파일 등록 /files/{filename} -> PUT
  • 파일 삭제 /files/{filename} -> DELETE
  • 파일 대량 등록 /files -> POST

HTTP API - 컬렉션

  • POST 기반 등록
  • 서버가 리소스 URI 결정
  • 컬랙션: 서버가 관리하는 리소스 디렉터리

HTTP API - 스토어

  • PUT 기반 등록
  • 클라이언트가 리소스 URI 결정
  • 스토어: 클라이언트가 관리하는 자원 저장소

HTTP API - 문서

  • 단일 개념
  • ex) /members/100, /files/star.jpg

HTTP API - 컨트롤러

  • 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행
  • 동사를 직접 사용

HTML FORM 사용

  • 순수 HTML 사용
  • GET, POST만 지원

'기술면접' 카테고리의 다른 글

6. 프로그래밍 공통  (0) 2023.04.19
5. 자료구조  (0) 2023.04.19
4. OS  (0) 2023.04.18
3. Spring  (0) 2023.04.18
1. JAVA  (0) 2023.04.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함