개발자 기술면접 꼬리물기 질문
  • Welcome
  • 01 Java
    • 01-01. Generic
    • Garbage Collection
    • 자료형과 객체 비교
    • 힙(Heap)과 메모리(Memory)
    • JDK 버전과 JRE
    • 스레드(Thread)
    • 예외(Throwable)
    • Call By Value와 Call By Reference
    • String, equals, StringBuffer
    • Thread와 비동기
  • 02 Spring
    • 02-01. Spring 동작 방식
    • @Autowired, @RequiredArgsConstructor
    • 인증(Authentication)과 인가(Authorization)
    • 트랜잭션(Transaction)
    • QueryDSL과 SQL Injection
    • SecurityContextHolder
    • @EqualsAndHashCode
  • 알고리즘과 자료구조
    • Set 자료구조
    • 정렬 알고리즘
    • 우선순위 큐 (Priority Queue)
    • DFS와 BFS
    • 힙(Heap) 자료구조
    • 스택(Stack)과 큐(Queue)
    • 암호화 알고리즘
    • LinkedList
    • 자료구조 - 해시 테이블(HashTable)
    • 자료구조 - ConcurrentHashMap
  • 데이터베이스
    • 기본
    • 인덱스 (Index)
    • 정규화 (Normalization)
    • 파티셔닝과 샤딩(Partitioning & Sharding)
    • 트랜잭션(Transaction)과 락(Lock)
    • 덤프(Dump)
    • Redis
    • 격리 수준(MySQL)
  • 네트워크
    • 전송 계층 (Transport Layer)
    • 네트워크 계층 (Network Layer)
    • Http와 Https
    • IP(Internet Protocol)
    • 프록시 서버
    • Http Protocol
    • 소켓(Socket)
    • 로드 밸런싱(Load Balancing)
  • 디자인 패턴
    • 전략 패턴 (Strategy Pattern)
    • 싱글톤 패턴 (Singleton Pattern)
    • 템플릿 메서드 패턴과 전략 패턴
    • 데코레이터 패턴 (Decorator pattern)
  • 웹
    • CORS 정책
    • 동시성 제어
    • N+1 문제
    • 웹 브라우저 동작원리
    • URI, URL, URN
    • 채팅 아키텍처 설계
  • 개발자
    • 개발 방법론 TDD
  • 운영체제
    • JIT & AOT 컴파일
    • 컨텍스트 스위칭(Context Switching)
    • 프로세스와 스레드
    • 싱글 스레드와 멀티 스레드
  • 코딩테스트
    • Stack / Queue (스택 / 큐)
    • Heap(우선 순위 큐)
    • DP(동적 계획법)
    • DFS(깊이 우선 탐색)
    • BFS(너비 우선 탐색)
    • Greedy(그리디 알고리즘)
    • 해시(Hash)
    • 투 포인터 알고리즘
    • Shortest path
    • 수학적 사고
Powered by GitBook
On this page
  • Q. HTTP 웹 프로토콜에 대해서 설명해주세요.
  • Q. PUT과 PETCH 매핑은 어떠한 차이점이 있나요?
  • Q. HTTP 1.1과 2, 3등 뒤에 숫자가 붙어있는 것을 볼 수 있는데 무엇을 의미하나요?
  1. 네트워크

Http Protocol

Q. HTTP 웹 프로토콜에 대해서 설명해주세요.

A. HTTP(하이퍼 텍스트 전송 프로토콜)웹에서 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜입니다. Http는 상태를 유지하지 않는(stateless) 프로토콜로, 클라이언트가 서버에 요청(request)을 보내면 서버는 이에 대한 응답(response)을 보내고 연결을 종료합니다. 이를 통해 HTML 문서, 이미지, JSON 등 다양한 리소스를 주고받을 수 있습니다.

주요 메서드로는 GET(데이터 조회), POST(데이터 전송 및 생성), PUT(데이터 수정), DELETE(데이터 삭제) 등이 있으며, 각 메서드는 특정한 목적에 맞게 사용됩니다. HTTP는 기본적으로 텍스트 기반이지만, 보안이 필요한 경우 SSL/TLS와 결합하여 HTTPS로 암호화된 통신을 할 수 있습니다.


Q. PUT과 PETCH 매핑은 어떠한 차이점이 있나요?

A. PUT과 PATCH는 모두 리소스를 수정하는 데 사용되지만, 그 방식에 차이가 있습니다.

  • PUT: 리소스의 전체를 교체하거나 수정할 때 사용됩니다. 클라이언트가 서버에 전달한 데이터로 리소스 전체를 덮어쓰므로, 누락된 필드는 기본값이나 null로 설정될 수 있습니다. 즉, 리소스의 완전한 대체를 의미합니다.

  • PATCH: 리소스의 일부를 수정할 때 사용됩니다. 클라이언트가 특정 필드만 수정하고 싶을 때, 해당 필드만 보내면 서버가 나머지 필드를 유지한 채로 변경사항만 반영합니다. 부분 업데이트에 더 적합한 방식입니다. 따라서 PUT은 전체 데이터를, PATCH는 부분 데이터를 수정하는 데 사용된다고 이해하면 됩니다.


Q. HTTP 1.1과 2, 3등 뒤에 숫자가 붙어있는 것을 볼 수 있는데 무엇을 의미하나요?

A. HTTP 뒤에 붙는 숫자는 프로토콜의 버전을 나타냅니다. 각 버전마다 성능 개선과 기능 추가가 이루어졌습니다.

  • HTTP/1.1: 가장 오랫동안 사용된 버전으로, 지속적인 연결을 유지하는 Persistent Connection과 Chunked Transfer Encoding 등을 도입해 성능을 개선했습니다. 그러나 요청과 응답을 순차적으로 처리해야 하므로 병목 현상이 발생할 수 있습니다.

  • HTTP/2: 성능 향상을 위해 등장한 버전으로, 멀티플렉싱을 통해 하나의 연결에서 여러 요청과 응답을 동시에 주고 받을 수 있습니다. 이를 통해 대기 시간을 줄이고, 헤더 압축과 서버 푸시 기능도 추가되어 네트워크 지원을 더 효율적으로 사용합니다.

  • HTTP/3: 최신 버전으로, 전송 계층에서 TCP 대신 QUIC(UDP 기반 프로토콜)을 사용합니다. 이를 통해 연결 설정 시간이 단축되고, 패킷 손실 시에도 개별 스트림만 재전송하여 성능이 향상됩니다. 특히 모바일 환경에서의 연결 안정성과 속도가 개선되었습니다. 각 버전은 웹의 속도, 안전성, 보안을 개선하기 위해 발전해왔습니다.

Previous프록시 서버Next소켓(Socket)

Last updated 7 months ago