개발 블로그
Published 2023. 4. 15. 19:34
[TIL] DAY12 항해99

오늘 처음으로 스프링 학습에 들어갔는데 너무 당황스러웠다. 어노테이션이 등장하면서 내가 알던 자바의 법칙이 무너졌기 때문이다.

 

분명히 구현을 안 했는데 저 어노테이션 하나만 붙였더니 구현이 된 것처럼 동작하는 것을 보고 적지 않은 충격을 받았다.

 

그래서 오늘 수업에 나왔던 어노테이션에 대해서 정리해보고자 한다.

 

@RequestMapping

클라이언트로부터 온 요청(Request)을 Controller에서 구현한 특정 메서드와 매핑하기 위해서 사용하는 어노테이션이다. 

@RequestMapping(value, method) 형태로 사용을 할 수 있는데 꼭 메서드가 아니라 클래스에도 매핑을 해줄 수 있다.

 

클래스에 매핑할 때는 @RequestMapping(value) 형태로 사용을 하고 저 value가 곧 url 이라고 생각하면 된다.

그래서 클래스에 @RequestMapping 을 걸어주면 클라이언트의 요청이 클래스의 메서드들과 매핑될 때

 

클래스 매핑 url + 각 메서드 매핑 url 과 같이 매핑이 된다.

 

예를 들어 @RequestMapping("/course") 를 클래스에 매핑해주면 클래스에 속한 메서드들을 호출하는 url은 모두 /course 로 시작하게 되는 것이다.

 

 

@Getter & @Setter

클래스의 getter를 자동으로 만들어주는 어노테이션이다. 원래라면 public type get~() {return ~} 이런 식으로 getter 를 직접 구현해줘야 하는데 @Getter 어노테이션을 사용하면 스프링이 알아서 구현해준다.

@Setter 는 역시나 setter 를 자동으로 만들어주는 어노테이션이다.

 

@Getter 나 @Setter 는 데이터를 보관하는 객체 DTO 나 데이터 그 자체인 VO 등의 클래스를 만들 때 많이 사용한다.

 

 

@PostMapping & @GetMapping & @PutMapping & @DeleteMapping

http method 와 자동으로 매핑해주는 어노테이션이다.

@~~Mapping(api_url) 과 같은 방식으로 사용한다.

 

그래서 CRUD 작업을 할 메서드들을 구현하고 매핑해야 하는 http 메소드에 맞는 어노테이션을 붙여주면 손 쉽게 api를 만들어낼 수 있다.

 

 

@RestController

우리가 만든 클래스가 REST 를 위한 전용 Controller 라는 것을 나타내주는 어노테이션이다.

원래는 @Controller는 jsp와 같은 뷰를 넘겨주는 Controller를 의미했고 @ResponseBody 어노테이션을 메소드의 리턴 타입에 붙여서 REST방식의 DATA 자체를 넘겨줄 수 있도록 하였다.

 

@RestController는 이걸 혼합해서 아예 이 어노테이션이 붙은 클래스가 전부 REST 방식의 DATA 를 넘겨주는 메소드라는 것을 알려주는 것이다.

 

최근에는 서버단에서 jsp와 같은 뷰를 넘겨주는 게 아니라 json과 같이 데이터만 넘겨주면 프론트단에서 이 데이터를 이용해 구성한 뷰를 보여주기에 대부분 @RestController 를 많이 사용한다고 한다.

'항해99' 카테고리의 다른 글

[WIL] 항해 2주차  (0) 2023.04.17
[TIL] DAY 13  (0) 2023.04.16
[TIL] DAY 11  (0) 2023.04.13
[TIL] DAY 10  (0) 2023.04.12
[TIL] Day 9  (0) 2023.04.12
profile

개발 블로그

@하얀.손

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!