Spring MVC 패턴 학습
@RequestParam
과 @ModelAttribute
코드 컨벤션 숙지
1. 관심사 분리의 필요성
관심사 분리가 필요한 기준
→ 해야 할 작업
→ 공통(중복) 코드
→ 변하는 것과 자주 변하지 않는 것
관심사 분리란?
하나의 관심사에는 하나의 기능만 가지도록 구성하는 것. 즉, 프로그램을 하나의 단일 블록으로 작성하지 않고 작은 조각으로 나누어 각각 간단한 개별 작업을 완료할 수 있도록 만드는 것이다.
2. 객체지향 프로그래밍의 5가지 설계 원칙, SOLID
SRP : 단일 책임 원칙 / 하나의 메서드는 하나의 책임만 가져야 한다.
원칙을 준수하여 작성하게 되면 각 메서드의 구분이 확실하기 때문에 가독성이 좋다. 프로그램의 변경사항으로 영향을 받을 수 있는 영역 범위를 지정하는 데 도움이 되기 때문에 코드의 단순화 및 유지보수에서 더 높은 자유도를 가질 수 있다.
또한 여러 엔지니어에 의한 동시 개발에 용이하다. 서로 간섭하지 않도록 하기 위해 어떤 모듈을 진행 중인지 합의 후에 진행하면 된다.
3. 처음부터 객체지향적으로 완벽한 코드를 설계할 수 없다.
우선 기능을 만들고 코드를 리펙토링 해보며 기능을 분리하는 연습을 하는 것이 필요하다.
4. MVC 패턴
모델-뷰-컨트롤러(Model-View-Controlle) 세 가지 구성요소를 사용해 Client의 HTTP Request를 처리하는 아키텍처 패턴이다.
Model : 애플리케이션의 정보(데이터, Business Logic 포함)
View : 사용자에게 제공할 화면(Presentation Logic)
Controller : Model과 View 사이의 상호 작용을 관리
1) Client의 요청이 들어오면 DispatchServlet이 가장 먼저 요청을 받는다.
2) HandlerMapping이 요청에 해당하는 Controller를 return한다.
3) Controller는 비지니스 로직을 수행(호출)하고 결과 데이터를 ModelAndView에 반영하여 return한다.
4) ViewResolver는 view name을 받아 해당하는 View 객체를 return한다.
5) View는 Model 객체를 받아 rendering한다.