GET, POST 메서드

2025. 9. 22. 15:14개발/스프링

반응형

1. GET과 POST 기본 개념

✅ GET

  • 목적: 서버에서 데이터를 조회(Read) 할 때 사용.
  • 특징
    • URL에 쿼리스트링(Query String) (?key=value)으로 데이터 전달.
    • 요청 데이터가 주소창에 노출됨.
    • 브라우저 캐싱·북마크 가능.
    • 길이 제한 있음(브라우저·서버마다 다르지만 보통 2,000자 이내).
    • 서버 상태를 바꾸지 않는 요청에 사용 (idempotent: 같은 요청을 여러 번 해도 결과 같음).

✅ POST

  • 목적: 서버에 데이터를 등록(Create)하거나 수정(Update) 할 때 사용.
  • 특징
    • 데이터가 HTTP Body에 담겨 전달됨.
    • URL에 보이지 않음 → 보안상 더 안전.
    • 데이터 크기 제한 거의 없음.
    • 서버 상태를 바꾸는 요청에 사용 (ex. 회원가입, 글쓰기).
    • 같은 요청을 여러 번 보내면 결과가 달라질 수 있음.

2. Spring MVC에서의 GET/POST

스프링에서는 컨트롤러 메서드에 어노테이션으로 HTTP 메서드(GET/POST 등)를 명시합니다.

GET 매핑 예시

@Controller
public class MemberController {

    // 회원 등록 폼 조회 (화면 열기)
    @GetMapping("/members/new")
    public String createForm() {
        return "members/createMemberForm";  // HTML 템플릿 반환
    }

    // 회원 목록 조회
    @GetMapping("/members")
    public String list(Model model) {
        List<Member> members = memberService.findMembers();
        model.addAttribute("members", members);
        return "members/memberList";
    }
}
  • 주로 화면 보여주기, 조회 요청에 사용.

POST 매핑 예시

@Controller
public class MemberController {

    // 회원 등록 처리 (폼 전송)
    @PostMapping("/members/new")
    public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());

        memberService.join(member); // DB 저장

        return "redirect:/";  // 저장 후 홈으로 이동
    }
}
  • 폼 데이터 전송을 받아 DB에 저장/갱신할 때 사용.
  • @PostMapping은 Body에 담긴 form 데이터(application/x-www-form-urlencoded)를 MemberForm 객체로 자동 매핑해줌.

3. Spring에서 GET/POST와의 관련성 정리

어노테이션 @GetMapping, @RequestMapping(method=GET) @PostMapping, @RequestMapping(method=POST)
주 용도 조회, 화면 이동, 데이터 검색 데이터 등록, 수정, 삭제
데이터 위치 URL (쿼리스트링) HTTP Body
스프링 특징 파라미터를 @RequestParam 또는 DTO 객체로 바인딩 가능 폼/JSON 데이터를 DTO로 바인딩 가능
예시 회원 목록 보기, 검색하기 회원가입, 글쓰기

4. 정리

  • GET: 서버 상태에 영향을 주지 않고 단순히 조회 → 화면 이동, 리스트 보기, 검색 등에 적합.
  • POST: 서버 상태 변경(등록/수정/삭제) → 회원가입, 글쓰기, 결제 처리 등에 적합.
  • Spring MVC에서는 @GetMapping / @PostMapping으로 명확하게 구분해 작성하며, 이 방식으로 RESTful API를 구성할 수도 있음.
반응형

'개발 > 스프링' 카테고리의 다른 글

회원 관리 예제 - 웹 MVC 개발  (0) 2025.09.22
스프링 빈과 의존관계  (0) 2025.09.20
회원 관리 예제 - 백엔드 개발  (0) 2025.09.19
스프링 웹 개발 기초  (1) 2025.09.18
spring 환경설정  (1) 2025.09.08