오늘 하루종일 스프링 강의를 듣고 인출해보는 시간을 가졌다. 어제 면접 인터뷰에서 집중해야 하는 3요소인 정의, 왜, 어떻게를 여기에 적용해보기로 했다. 정의는 아직 개념정리를 시작하지 않아서 확실하게 말할 수 없지만 오늘 느낀 왜 그리고 어떻게 사용할까?를 한번 정리해보려고 한다.
왜 쓰는가?
저번주차 HTTP Server에서는 path와 HTTP Exchange라는 핸들러를 이용해서 하나하나 우리가 직접 메서드로 페이지를 처리해주어야 했다. 하지만 스프링에서는 @getMapping, @postMapping등을 이용해 손쉽게 path와 응답 처리를 진행할 수 있다. 그리고 MVC패턴을 적용해 모델, HTML문서를 보여주는 뷰, 특정 path와 method를 처리하여 응답을 돌려주는 컨트롤러로 철저히 관심사의 분리가 가능하다. 역할이 분명하게 나눠지니 테스트 코드를 짤때도 어떤것을 짜야하는지 덜 헤맬 수 있었다.
어떻게 쓰는가?
사실 스프링 어노테이션들을 많이 학습하지 않아서 자세하게는 적지 못하지만 오늘 배운 Spring 어노테이션의 큼지막한 골자는 아래와 같다.
@SpringBootApplication -> @bean 메서드를 선언하는 configuration 클래스. auto-configuration과 component Scanning을 촉발한다.
@Controller -> View에 대한 처리를 할 수 있다. @RestController의 경우 응답에 대한 처리까지 지정해줄 수 있다.
@get(or post)Mapping("path") -> GET(or POST) path 요청에 응답하는 action 메서드를 제공한다.
@WebMvcTest -> 컨트롤러 테스트에서 MockMvc를 이용하여 응답을 직접 보고 처리할 수 있는 메서드를 제공한다.
3. 액션플랜
오늘 스프링을 보면서 느낀 점은 이전까지 배웠던 관심사의 분리의 끝판왕이라는 느낌이 들었다. 강의 중간에 Componenet에 대한 언급이 있었는데 이 부분에 대해서 좀 더 깊게 파보고자 한다. 거기에 스프링은 어노테이션이 굉장히 중요한 역할을 하므로 중요한 어노테이션 정리해보고자 한다., 내일 개념정리를 하면서도 정의, 왜 쓰는가, 어디에 쓰는가를 분류해두고 3가지 요소를 전부 채우는 개념노트를 작성해야겠다.
'TIL' 카테고리의 다른 글
검증된 것(22.09.26TIL) (0) | 2022.09.26 |
---|---|
다시 느낀 스프링(22.09.25TIL) (0) | 2022.09.25 |
면접(22.09.23TIL) (1) | 2022.09.23 |
데드라인(22.09.22TIL) (0) | 2022.09.22 |
고집 버리기(22.09.21TIL) (0) | 2022.09.21 |