HTTP vs HTTPS
- HTTP(HyperText Transfer Protocol)는 데이터를 암호화 없이 "평문"으로 주고받기 때문에, 정보가 유출될 우려가 있어 요즘 대부분의 실제 서비스 환경에서는 잘 쓰이지 않습니다. 로그인, 결제 등 중요 정보를 다루는 서비스뿐만 아니라 일반 웹사이트도 대부분 HTTPS를 사용합니다. 내부 테스트, 사설망처럼 암호화 필요 없는 환경에서는 여전히 HTTP를 쓰기도 합니다.
- HTTPS(HyperText Transfer Protocol Secure)는 SSL/TLS로 데이터를 암호화해 전송하며, 훨씬 더 안전합니다. 신뢰성(인증서 기반)과 데이터 보호가 이유입니다.
SSL(Secure Sockets Layer)와 TLS(Transport Layer Security)는 인터넷에서 데이터를 "암호화하고 보호"하는 보안 프로토콜입니다.
SSL과 TLS란?
SSL은 1990년대부터 사용된 웹 보안 표준이었지만, 여러 취약점이 발견되어 지금은 거의 쓰이지 않습니다.
TLS는 SSL의 "업그레이드 버전"으로, 더 안전한 암호화와 인증 기능을 추가해 1999년 이후 보안 표준으로 자리잡았습니다. 현재는 TLS 1.2와 TLS 1.3 버전이 가장 많이 사용됩니다.
SSL과 TLS의 차이점
역할: 모두 브라우저와 서버 간에 데이터를 암호화해 안전하게 주고받는 기능을 담당합니다.
구조: TLS는 SSL에서 발견된 보안 문제를 개선해 성능과 안정성을 높였고, 더 강력한 암호화 알고리즘과 다양한 보안 옵션을 지원합니다.
SSL은 더 이상 보안상 사용되지 않으며, 거의 모든 웹사이트가 최신 TLS(1.2/1.3)를 사용합니다.
정리하면, SSL은 "과거 표준"이고 TLS가 그 자리를 완전히 대체한 "현대 웹 보안의 핵심 프로토콜"입니다.
실제 포트번호
- HTTP: 80번 포트
- HTTPS: 443번 포트 (브라우저에 입력 시 포트 생략 가능, 자동 연결됨)
DNS 동작 원리
기본적으로 컴퓨터, 서버, 스마트폰 등 모든 네트워크 장치는 각 기기를 고유하게 식별하는 번호인 IP 주소로 구분됩니다.
- DNS(Domain Name System)는 사람이 기억하기 쉬운 도메인 이름을 컴퓨터가 통신하는 데 쓰는 IP주소로 변환해주는 시스템입니다.
- 웹사이트 주소를 입력하면, 우선 로컬 캐시 → 지정 DNS 서버 → 여러 중계 DNS 서버를 거치면서 최종적으로 실제 IP주소를 받아옵니다.
- 이 과정이 자동으로 빠르게 처리되어, 사용자는 복잡한 IP주소 대신 도메인만 입력해도 쉽게 접속할 수 있습니다.
REST API와 gRPC 비교 및 정의
- REST API(Representational State Transfer)
- HTTP와 URL을 활용해 서버의 "자원"을 CRUD 방식(생성,조회,수정,삭제)으로 통신합니다.
- 텍스트 기반(JSON, XML 등), 시스템 간 느슨한 결합, 브라우저/앱 연동에 널리 이용.
- gRPC(Google Remote Procedure Call)
- 구글에서 개발, HTTP/2와 Protocol Buffers(바이너리 메시지) 기반의 고성능 통신 프레임워크입니다.
- 서비스(함수) 중심, 자동 코드 생성, 양방향 스트리밍 등 지원. 효율성과 대규모 서비스에 강점.
- 주로 마이크로서비스, 내부 시스템 등 백엔드 간 통신에 사용됨.
REST vs gRPC 요약표
| REST API | gRPC |
|---|
| 기반 프로토콜 | HTTP/1.1 (텍스트) | HTTP/2 (바이너리) |
| 메시지 형식 | JSON, XML | Protocol Buffers(기본), JSON(선택) |
| 결합도 | 느슨한 결합 | 긴밀한 결합(명세 공유) |
| 자동 코드 생성 | 없음 | 가능(명세 파일로 자동 생성) |
| 장점 | 유연함, 쉬운 연동 | 성능, 효율, 스트리밍, 다국어 지원 |
REST 보다 gRPC?
REST API는 HTTP와 JSON을 활용한 리소스 중심의 설계 방식으로, 웹 브라우저, 모바일 앱 등 범용 서비스에 적합합니다.
gRPC는 Google이 만든 고성능 프레임워크로, "Protocol Buffers(바이너리)"와 HTTP/2를 쓰면서 실시간/대용량/양방향 통신이 가능한 마이크로서비스에 강점을 보입니다.
gRPC가 REST의 단점을 보완해서 더 빠른 데이터 전송, 자동 코드 생성, 양방향 스트리밍 등 고급 기능을 제공하지만, "브라우저 연동·직관성" 등에서는 REST가 더 쉽고 범용성이 높습니다.
결과적으로, 많은 시스템에서 REST API와 gRPC를 상황에 따라 함께 사용합니다.
잘 정리되어 있어서 이해하기 좋았어요!