#7. Spring_ RequestMapping

박주현·2023년 11월 14일
0

Spring

목록 보기
7/12
post-thumbnail

최근 < 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 > 의 책을 보면서
간단한 스프링 프로젝트를 하면서 복습과 예습을 진행하고 있다.

게시판 만들기가 책의 주된 프로젝트 내용이다보니,
@RequestMapping , @PostMapping, @GetMapping을 많이 사용함에 따라 복습을 기록해보고자 한다.

1. @RequestMapping 이란

우리가 특정 url로 요청을 받을 경우에 Controller 가 처리하는 것을 판단해야하는데
이때, Controller와 매핑하여 url 요청을 수행하도록 지정하는 어노테이션이다.

이렇게만 작성하면, 이해가 쉽게 되지 않을 수 있으니 예시를 추가해보았다.

@RequestMapping(value = "/learn-request")

해당 코드처럼 작성할 경우에 localhost:8080/learn-request 라고 url 입력시 메서드가 실행된다.

    @RequestMapping("/main")   
    public String getMain() {      
    	return "This is getMain() method";  
    }

이런식으로 작성하면서 Controller와 매칭하여 url 요청을 수행한다.

2. @GetMapping 이란

HTTP GET요청을 특정 핸들러 메소드에 매칭하기 위한 주석이다.

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
}

이런식으로 사용하고 서버로부터 정보를 가져와야 하는 경우에 사용한다.
해당 정보를 클라이언트가 서버에게 요청 및 응답하여 데이터를 주고받기때문에, 사용자 정보를 생각하면 이해하기 쉽다.
우리가 웹상에서 로그인할 경우에 사용자 정보를 조회하고 회원가입이 필요한지 아닌지를 판단할때를 가정해보면
사용자 정보를 조회할때 쓰이는 것이 @GetMapping이다.

3. @PostMapping 이란

HTTP POST 메서드와 매칭되어 클라이언트가 요청한 데이터를 서버에 전달하는 역할을 한다.

@PostMapping("/users")
public ResponseEntity createUser(@RequestBody User user){
	return ResponseEntity.ok().build();
}

이런식으로 사용하며 앞서 말한 @GetMapping의 예시를 다시 떠올려보자.
만약 사용자가 회원가입이 필요한 경우에 회원가입을 진행하게되는데, 회원가입을 하여 생성된 사용자의 이름,ID,PW 같은 데이터를 서버로 보내는 역할을 @PostMapping 이라고 한다.


이렇듯 @GetMapping 과 @PostMapping을 사용하여 얻는 장점은
1. 간결한 코드
2. 명시적인 HTTP 메서드를 통해서 개발자가 직접 HTTP 메서드를 확인하지않고 자동으로 매핑해준다.
3. 데이터를 자동으로 파라미터에 바인딩하여 클라이언트가 보낸 데이터를 보다 쉽게 사용할 수 있다.
이러한 장점들로 인해서 현재 RESTApi는 대부분의 기업들이 사용중이며 취업 면접을 보는 경우에 자주 나오는 질문으로 뽑혀있다.

profile
빌드업 막 시작하는 개발자

0개의 댓글