
안녕하세요.
오늘은 Spring, Spring Boot controller 영역에서 많이 사용하는 mapping 어노테이션에 대해 정리한 내용을 포스팅하려고 합니다. spring의 버전이 4.3 이상부터 지원되는 기능인 GetMapping, PostMapping, PutMapping, DeleteMapping 네 종류에 대해 정리해 봤습니다.
요즘은 frontend의 다양한 기술이 많이 나오면서 spring boot의 간단한 backend를 많이 사용하게 되는데요. spring boot를 간단하게 api로 많이 사용하기 때문에 mapping 어노테이션의 종류를 정리해 보는 것도 많은 도움일 될 것 같습니다. :)
그럼 어노테이션별로 어떤 특징이 있는지 알아보겠습니다.
@GetMapping
@GetMapping("/get/list")
public String getList() {
return "getList";
}
@GetMapping의 작성 예시입니다. 인자값으로는 controller의 경로를 넣어주면 됩니다.
해당 어노테이션의 특징은 호출하게 되는 서비스나 UI 영역에서 api로 전달하고자 하는 파라미터 정보를 url에 포함시켜 호출할 수 있습니다.
@GetMapping 어노테이션을 사용하는 경우는 일반적인 조회나 보안에 크게 문제 안 되는 파라미터를 전달하여 조회를 하게 되는 경우 사용하기에 적절합니다.
ex) '/get/list?name=test&age=12'
위의 예시처럼요!
그럼 다음은 @PostMapping 어노테이션을 알아보도록 하겠습니다.
@PostMapping
@PostMapping("/post/list")
public String postList() {
return "postList";
}
@PostMapping의 작성 예시입니다. 인자값에 경로를 넣는 것은 @GetMapping과 동일합니다.
해당 어노테이션의 특징은 @GetMapping과는 다르게 파라미터를 url로 받는 것이 아닌 내부적으로 post처리가 되어 호출해야 가능합니다. PostMapping 처리가 된 api의 경우는 호출하고자 하는 서비스 영역에서 method 타입을 반드시 post로 설정하여 호출해야 합니다.
@PostMapping 어노테이션을 사용하는 경우는 데이터를 신규로 등록할 때 사용하면 적절합니다.
@PutMapping
@PutMapping("/put/list")
public String putList() {
return "putList";
}
@PutMapping 어노테이션을 사용하는 경우는 데이터를 수정(업데이트) 처리할 경우 사용하면 적절합니다.
@DeleteMapping
@DeleteMapping("/delete/list")
public String deleteList() {
return "deleteList";
}
@DeleteMapping 어노테이션을 사용하는 경우는 데이터를 삭제 처리할 경우 사용하면 적절합니다.
마무리
| 어노테이션 | 특징 |
| @GetMapping | 데이터 정보를 조회할 때 사용 |
| @PostMapping | 데이터 정보를 신규 추가할 때 사용 |
| @PutMapping | 데이터 정보를 수정할 때 사용 |
| @DeleteMapping | 데이터 정보를 삭제할 때 사용 |
위와 같이 어노테이션 별로 정리를 할 수 있습니다. 저는 개인적으로 @GetMapping과 @PostMapping 두 종류 위주로만 대부분 사용을 해왔었는데, 이번 글을 정리하면서 @PutMapping과 @DeleteMapping도 업무에서 활용해 봐야겠다는 생각을 했습니다. 기능을 만든 이유는 다 있는 것이고, @GetMapping이나 @PostMapping으로만 CRUD 처리를 다 한다고 하면 결국 어떤 api가 데이터를 조회하는지 수정, 등록, 삭제하는지 상세 서비스 로직을 봐야 하기 때문에 mapping 어노테이션을 통해 기능을 분리해 개발하는 것이 바람직해 보입니다.
그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다. :)
'Java > Spring Boot' 카테고리의 다른 글
| [Spring Boot] 리액트 네이티브 bcrypt를 이용해서 암호화 검증하기 (0) | 2023.07.10 |
|---|---|
| [Spring Boot] 스프링부트에서 JSP Tiles3 연동하기 (0) | 2023.01.17 |
| Spring Boot + JSP 연동 (서버 재시작 없이 jsp 수정 사항 반영하기) (0) | 2023.01.04 |
| Spring Boot 프로젝트 생성 시작하기 (0) | 2023.01.03 |