HTTP 메서드는 8개 이상의 요청방식이 있다.
그중 대표적으로 4개를 뽑자면
GET / POST / PUT / DELETE
가 있는데
이와 관련해서
자원(Resource)을 URL로 표현하고 행동(Action)은 HTTP 메서드로 구분하는 RESTful API 설계 방식이 떠오를 것이다.
중요한건 이 요청방식과 select / insert / update / delete가 그대로 대응될 것이라 생각이 들지만
실상은 그렇지 않다는 점이다.
이를 이해하기 위해서는 http 메서드와 SQL이 하는 일을 완전히 분리해서 이해해야 한다.
이론적으로 HTTP 메서드란 “해당 요청의 의도” 를 표현한 것으로 자원에 대해 어떤 행위를 하려는지를 의미하는 것이다.
SQL은 말 그대로 DB에 실제로 무슨 작업을 했는지 구현한 결과이다.
즉, 상황에 따라 의도와 구현결과는 다르게 설계될 수 있다는 점이다.
예를 들어보자
1. GET = SELECT
이는 사실 대부분 맞다. 하지만 get이라고 해서 항상 select만 하는 것은 아니다. insert나 update도 경우에 따라서 get이 될 수 있다. 용도는 "조회"이다. 즉, 서버상태를 바꾸지 않는 요청이다.
GET방식의 특징은 데이터가 URL 쿼리스트링에 붙어서 노출된다는 점이다. 그리고 캐싱이 가능하다.
2. POST = INSERT
이것은 명백히 틀렸다. post방식은 "처리요청"이지 insert가 아니다. 로그인(세션 생성), 검색 조건 전달, 파일업로드 등의 경우에 해당한다.
POST방식의 특징은 데이터가 URL에 보이지 않고 데이터 길이제한이 없다. 그리고 캐싱이 불가능하다
3. PUT = UPDATE
이 역시 틀렸다. UPDATE일 수도있고 DELETE + INSERT일 수도있다. 심지어 아예 DB 안 만질 수도 있다. 의도는
“이 자원을 이 상태로 맞춰라”이다.
4. DELETE = DELETE
가장 맞다에 가깝다. 하지만 실제 DELETE를 안 하고 DEL_YN = 'Y' 로 UPDATE 하는 경우도 이 DELETE(http메소드)에 해당한다.
'자바-백엔드' 카테고리의 다른 글
| [DBeaver] 디비버로 엑셀에 있는 데이터 DB테이블에 넣기 (0) | 2026.02.27 |
|---|---|
| QueryDSL은 왜 쓰는걸까? (0) | 2026.02.06 |
| 로그인 인증은 어느 계층에서 해야할까? (0) | 2025.11.14 |
| HTTP 상태 코드 Top 5 (0) | 2025.11.10 |
| GIS(Geographic Information System) 최신 기술 동향 (0) | 2025.10.16 |