개발자 기술면접 꼬리물기 질문
  • 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와 HTTPS의 주요 차이점은 무엇인가요?
  • Q. HTTPS에서 사용하는 SSL/TLS는 어떤 방식으로 동작하나요?
  • Q. SSL/TLS 핸드셰이크 과정에 대해 자세히 설명해주실 수 있나요?
  • Q. HTTPS를 사용할 때의 장단점은 무엇인가요?
  1. 네트워크

Http와 Https

Q. HTTP와 HTTPS의 주요 차이점은 무엇인가요?

HTTP와 HTTPS의 주요 차이점에 대해 말씀드리겠습니다. 먼저, HTTP는 Hypertext Transfer Protocol의 약자로, 웹 상에서 정보를 주고받는 프로토콜입니다. 반면, HTTPS는 HTTP Secure의 약자로, HTTP에 보안 계층을 추가한 프로토콜입니다.

가장 큰 차이점은 보안에 있습니다. HTTP는 평문으로 데이터를 전송하기 때문에 중간에 누군가가 데이터를 가로챌 경우 내용을 쉽게 볼 수 있습니다. 하지만 HTTPS는 SSL 또는 TLS라는 보안 프로토콜을 사용해 데이터를 암호화합니다. 이로 인해 데이터가 노출되더라도 내용을 쉽게 해독할 수 없죠.

또한, 사용하는 포트도 다릅니다. HTTP는 80번 포트를, HTTPS는 443번 포트를 기본적으로 사용합니다. URL 구조도 차이가 있는데요, HTTP는 'http://'로 시작하고 HTTPS는 'https://'로 시작합니다.

HTTPS의 또 다른 장점은 인증 기능입니다. SSL/TLS 인증서를 통해 접속한 웹사이트가 신뢰할 수 있는 곳인지 확인할 수 있습니다.

데이터 무결성 측면에서도 HTTPS가 우수합니다. 전송 중 데이터가 변조되었는지 감지할 수 있기 때문이죠. 마지막으로 성능 면에서는 HTTPS가 암호화/복호화 과정 때문에 약간 느릴 수 있지만, 최근에는 그 차이가 거의 없어졌습니다.

결론적으로, HTTPS는 HTTP에 비해 보안성이 크게 향상되어 데이터의 기밀성과 무결성을 보장하며, 현대 웹 환경에서 그 중요성이 계속 커지고 있습니다.


Q. HTTPS에서 사용하는 SSL/TLS는 어떤 방식으로 동작하나요?

SSL/TLS는 공개키 암호화와 대칭키 암호화 이 두 가지 암호화 방식을 혼합해서 사용합니다. 먼저, 초기 연결 단계에서는 공개키 암호화를 사용합니다. 이 방식은 안전하게 키를 교환할 수 있지만, 계산 비용이 높아 대량의 데이터를 처리하기에는 적합하지 않습니다. 그래서 실제 데이터 전송 단계에서는 대칭키 암호화를 사용합니다. 대칭키 암호화는 공개키 암호화에 비해 훨씬 빠르기 때문이죠. 초기 핸드셰이크 과정에서 공개키 암호화를 이용해 안전하게 대칭키를 교환합니다. 이렇게 교환된 대칭키를 이용해 이후의 모든 통신을 암호화하는 거죠. 이런 방식을 통해 SSL/TLS는 보안성과 효율성을 모두 확보할 수 있습니다. 안전하게 키를 교환하면서도, 실제 데이터 전송은 빠르게 이루어질 수 있는 것이죠.


Q. SSL/TLS 핸드셰이크 과정에 대해 자세히 설명해주실 수 있나요?

SSL/TLS 핸드셰이크는 다음과 같은 단계로 진행됩니다:

  1. 클라이언트가 서버에 연결을 요청하며 지원 가능한 암호화 방식 목록을 전송합니다.

  2. 서버는 암호화 방식을 선택하고, SSL 인증서를 클라이언트에게 전송합니다.

  3. 클라이언트는 서버의 인증서를 확인하고, 세션 키 생성에 사용할 랜덤 데이터를 전송합니다.

  4. 서버와 클라이언트는 각자 세션 키를 생성합니다.

  5. 이후 통신은 이 세션 키를 사용하여 암호화됩니다.


Q. HTTPS를 사용할 때의 장단점은 무엇인가요?

HTTPS의 장점은 데이터 암호화로 인한 보안 강화, 데이터 무결성 보장, 사용자 신뢰도 향상, 그리고 SEO 개선 등이 있습니다. 단점으로는 SSL 인증서 구입 및 갱신에 따른 비용, 초기 연결 시 약간의 속도 저하, 그리고 서버 리소스 사용량 증가 등이 있습니다.

Previous네트워크 계층 (Network Layer)NextIP(Internet Protocol)

Last updated 8 months ago