본문 바로가기
🚀 데브 노트 (IT 지식 & 팁)

GET과 POST의 차이점, 딱 '이것' 하나만 기억하세요! (엽서와 편지봉투 비유)

by 데브프리 2026. 6. 19.

안녕하세요, 여러분의 든든한 IT 길잡이 데브프리입니다.

 

인터넷 주소창에 검색어를 입력하거나, 웹사이트에서 회원가입 버튼을 누를 때, 우리 눈에는 보이지 않지만 브라우저와 서버 사이에서는 바쁘게 데이터를 주고받는 통신이 일어납니다.

 

이때 데이터를 보내는 주된 두 가지 방법이 바로 GETPOST입니다.

 

개발 공부를 하거나 API 관련 명세서를 볼 때 지겹도록 마주치는 이 두 단어, "둘 다 서버에 데이터를 보내는 건 똑같은 거 아닌가요?"라고 생각하셨다면 오늘 글을 꼭 주목해 주세요. 기술 면접에서도 단골로 나오는 이 둘의 차이점, '엽서와 편지봉투' 비유로 평생 잊지 않게 정리해 드리겠습니다!

 

1. GET 방식: 내용을 모두가 볼 수 있는 '엽서'

GET은 말 그대로 서버로부터 정보를 '가져오기(조회)'를 할 때 사용하는 방법입니다. 네이버에 검색어를 치거나, 블로그 글 목록을 불러올 때 주로 사용되죠.

HTTP GET 메서드 엽서 비유
GET 방식은 데이터가 주소창에 그대로 노출되는 엽서와 같습니다.

일상생활에 비유하자면 GET은 '엽서'를 보내는 것과 같습니다.

엽서는 따로 봉투에 담지 않고 종이 뒷면에 글을 쓰기 때문에, 배달되는 과정에서 우체부 아저씨든 지나가는 사람이든 마음만 먹으면 누구나 내용을 읽을 수 있습니다.

 

웹에서도 마찬가지입니다. GET 방식을 사용하면 내가 보내는 데이터가 브라우저 주소창 뒤에 주렁주렁 붙어서 날아갑니다.

주소창 뒤의 ?query=스프링부트 부분이 바로 서버로 전달되는 데이터(Query String)입니다. 주소창에 다 보이기 때문에 로그인 비밀번호 같은 민감한 정보를 GET으로 보내면 절대로 안 됩니다. 또한, 주소창의 길이는 한계가 있어서 대용량 데이터를 보내기에도 적합하지 않습니다.

 

2. POST 방식: 속 내용을 안전하게 감춘 '편지봉투'

반면 POST는 서버의 데이터를 '생성하거나 변경'할 때 사용하는 방법입니다. 글쓰기 완료 버튼을 누르거나, 회원가입을 하거나, 쇼핑몰에서 결제를 진행할 때 사용됩니다.

HTTP POST 메서드 편지봉투 비유
POST 방식은 데이터를 안전한 패키지(Body) 안에 숨겨서 보내는 편지봉투와 같습니다.

일상생활에 비유하자면 POST는 '편지봉투'를 보내는 것과 같습니다.

편지지에 아무리 중요한 비밀번호나 개인정보를 적어도, 튼튼한 봉투에 넣고 풀로 붙여서(밀봉) 보내기 때문에 겉만 봐서는 내용물을 전혀 알 수 없습니다.

 

웹 상에서도 POST 방식을 쓰면 데이터가 주소창에 노출되지 않고, HTTP 요청의 'Body(본문)'라는 안전한 가방 안에 쏙 들어가서 전송됩니다. 눈에 보이지 않기 때문에 GET보다 보안성이 우수하며, 편지봉투 속 편지지는 수십 장을 넣어도 되듯 데이터의 크기 제한도 사실상 없습니다.

 

3. 면접 단골 질문: '멱등성(Idempotency)'이란?

GET과 POST를 비교할 때 면접관들이 가장 좋아하는 고난도 단어가 바로 '멱등성(Idempotency)'입니다. 말이 어려워서 그렇지 개념은 아주 간단합니다. "연산(요청)을 여러 번 반복해도 결과가 같은가?"라는 뜻입니다.

  • GET은 멱등합니다 (Idempotent): 인터넷 뉴스 기사(조회) 페이지를 10번 새로고침(GET 요청)해도 화면의 내용이 변하거나 서버의 데이터가 바뀌지 않습니다. 언제나 결과가 똑같기 때문에 안전합니다.
  • POST는 멱등하지 않습니다 (Non-Idempotent): 쇼핑몰에서 결제 버튼(POST 요청)을 실수로 10번 연달아 누르면 어떻게 될까요? 결제가 10번 중복으로 처리되거나 에러가 발생할 것입니다. 요청할 때마다 서버의 데이터가 새로 바뀌거나 생성되기 때문에 여러 번 누르면 위험합니다.

 

4. 한눈에 비교하는 요약표

비교 항목 GET (조회) POST (생성/변경)
핵심 목적 서버에서 자원을 가져올 때 서버의 자원을 생성/수정할 때
일상 비유 내용을 누구나 볼 수 있는 '엽서' 밀봉되어 속이 안 보이는 '편지봉투'
데이터 위치 URL 주소창 뒤 (?key=value) HTTP 요청 본문 (Body 안)
보안성 낮음 (주소창에 노출됨) 높음 (겉으로 보이지 않음)
데이터 제한 URL 길이 제한이 있음 (소량) 제한 없음 (대용량, 이미지 등 가능)
브라우저 캐싱 가능 (이전 페이지가 빠르게 열림) 불가능
멱등성 O (몇 번을 요청해도 안전함) X (중복 요청 시 데이터 누적/변형)

 

마무리

정리해 볼까요?

단순히 데이터를 화면에 보여달라고 요청하는 서랍 조회는 GET,

서버의 창고에 새 물건을 집어넣거나 바꾸는 작업은 POST입니다.

 

주소창에 데이터가 다 노출되는 엽서(GET)와 데이터가 가방 속에 숨겨져 날아가는 편지봉투(POST)의 차이점만 잘 기억하신다면, 백엔드 설계나 프론트엔드 통신 코드를 짤 때 상황에 맞는 올바른 메서드를 자신 있게 선택할 수 있을 것입니다.

 

오늘의 데브 노트가 유익하셨다면 공감과 댓글 부탁드립니다! 지금까지 데브프리였습니다. 감사합니다.