0. 들어가면서
GET과 POST는 프론트엔드 개발자라면 너무 익숙한 개념이고 자주 쓰인ㄷ.
하지만 정작 저는 관성적으로, 혹은 습관적으로 이 둘을 사용해왔을 뿐
정확한 개념과 어떤 상황에 알맞는 메서드를 사용해야하는지 모른 채로 개발을 했었기에
이번 기회에 제대로 알아보고 정리하고 한다.
1. GET과 POST란?
먼저 개념 용어 정리를 해보겠다.
GET과 POST는 HTTP 요청 메서드 중 가장 기본적인 두 가지로,
클라이언트가 서버와 데이터를 주고받을 때 사용된다.
- GET: 데이터를 요청할 때 사용됨 (예: 웹 페이지를 열거나 특정 데이터를 조회할 때)
- POST: 데이터를 서버에 제출하거나 저장할 때 사용됨 (예: 회원가입, 로그인, 폼 제출 등)
2. GET과 POST의 차이점
GET과 POST의 차이점을 표를 통해 알아보겠습니다.
구분 | GET | POST |
목적 | 데이터 조회 | 데이터 전송 |
데이터 전달 방식 | URL에 쿼리 스트링(?key=value)으로 포함 | 요청 본문(Body)에 포함 |
보안 | URL에 노출되므로 민감한 데이터 전송에 부적합 | URL에 노출되지 않아 상대적으로 안전 |
캐싱 | 가능 (브라우저가 캐싱할 수 있음) | 불가능 (항상 서버에 요청) |
길이 제한 | 브라우저마다 다르지만, 일반적으로 2048자 이하 | 제한 없음 |
중복 요청 | 같은 요청이면 브라우저가 캐싱된 데이터를 반환할 수도 있음 | 항상 새 요청이 서버로 전송됨 |
3. 언제 GET을 사용해야 할까?
- 데이터를 변경하지 않고 조회할 때 (예: 뉴스 기사 보기, 검색 결과 보기)
- 동일한 요청에 대해 캐싱이 가능해야 할 때
- 브라우저 주소창에 저장하거나 공유해야 하는 데이터일 때
fetch("https://api.example.com/users?name=John")
.then(response => response.json())
.then(data => console.log(data));
4. 언제 POST를 사용해야 할까?
- 서버에 데이터를 저장하거나 변경할 때 (예: 회원가입, 게시글 작성)
- 중요한 데이터를 보낼 때 (예: 로그인, 결제 정보 전송)
- GET의 길이 제한을 초과하는 데이터를 전송할 때
fetch("https://api.example.com/users", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ name: "John", age: 25 })
})
.then(response => response.json())
.then(data => console.log(data));
5. 정리
- GET은 데이터를 조회할 때, POST는 데이터를 전송하거나 변경할 때 사용한다.
- GET은 URL에 데이터가 노출되므로 보안이 필요한 요청에는 부적합하다.
- POST는 데이터를 본문에 담아 전송하므로 보안상 더 적합하지만, 브라우저에서 캐싱되지 않는다.
- 각 메서드의 특성을 고려하여 적절한 상황에서 사용하는 것이 중요하다!
'React' 카테고리의 다른 글
[JavaScript]💡3. 비동기 처리의 핵심, Promise와 async/await (0) | 2025.04.02 |
---|---|
[React]📘2. Virtual DOM(가상 돔)이란? (0) | 2025.04.02 |
[React] 📝async/await + useEffect 내 순차 실행하기(비동기 제어 처리) (1) | 2025.03.24 |
[React] 💻 모바일 웹 반응형 디자인 하기 (4) | 2024.12.28 |
[React] 🛠 CORS 오류를 해결하자 (SSL? HTTPS? HTTP?) (0) | 2024.12.28 |