섹션3는 Spring MVC에 관한 내용이다. 첨엔 정말 어려웠다.(하지만 지금도..)
그치만 이걸로 밥벌어먹고 살려면 알아야한다. 그리고 잘해야한다. 시작해보자!
ㅇ Spring MVC란?
Spring 의 모듈중에서 서블릿API를 기반으로 클라이언트의 요청을 처리하는 모듈이다. --- 사실 이걸보고 뭔소리지? 했다.
Spring Web MVC 지만 줄여서 Spring MVC라고 한다. 그리고 웹 프레임워크의 종류이기 때문에 Spring MVC Framework라고도 한다. 근데 첫문장의 서블릿은 뭘까? -- 바로 밑에서 설명함^^
ㅇ 서블릿(Servlet) Iran?
지식이 얕아서 한줄로 설명하자면 클라이언트의 요청을 처리하도록 특정 규약에 맞춰 Java 코드로 작성하는 클래스 파일이라고 한다.
ㅇ MVC - Model
클라이언트의 요청을 전달받고 요청사항의 작업처리 결과 데이터를 Model이라고함. 클라이언트의 요청사항을 처리하는 영역을 서비스 계층, 실제로 요청사항을 처리하기 위한 코드는 비지니스 로직이라고 함.
ㅇ MVC - View
Model데이터를 이용해 웹브라우저같은 클라이언트 애플리케이션의 화면에 보여지는 리소스를 제공하는 역할. 다양한 View 기술이존재함. - HTML 페이지의 출력, PDF,Excel 등의 문서형태로 출력, XML, JSON등 특정형식의 포맷으로 변환함. (여기서 우리는 JSON형식으로~)
ㅇ MVC - Controller
Controller는 클라이언트 측의 요청을 직접적으로 전달받는 엔드포인트로써 Model과 View중간에서 상호작용함.
MVC가 각각무엇인지 이해했는가?
이제 이게 어떻게 작용할까? 내가 이해한대로 설명하자면,
클라이언트가 요청을 보낸다. -> Controller이 요청 데이터를 수신, 비지니스로직처리 -> 처리한 작업결과는 Model. -> Controller이 View로 전달 -> View는 클라이언트에 보여지도록 변환시킨다.
이런 프로세스로 이해했다.
다음은 패키지 구조를 살펴보자.
첫번째 내가 사용하게 된 기능기반 패키지 구조다.
예시로
ㅁ coffee -->패키지
Coffee --->클래스
CoffeeController
CoffeeDTO
CoffeeRepository
CoffeeService
ㅁ member -->패키지
Member --->클래스
MemberController
MemberDTO
MemberRepository
MemberService
이런식으로 리소스 별로 나누는 구조가 기능기반 패키지 구조.
두번째는 계층기반 패키지 구조
ㅁ controller
CoffeeController
MemberController
ㅁ dto
CoffeeDTO
MemberDTO
ㅁ model
Coffee
Member
ㅁ repsitory
CoffeeRepository
MemberRepository
ㅁ service
CoffeeService
MemberService
이런식이다. 우리가 기능기반 패키지 구조를 사용하는 이유는 테스트 리팩토링이 용이하고, 마이크로 서비스 시스템으로의 분리가 용이하기 때문이라고 하는데 난 잘 모르겠다. 시키는대로 일단 해봐야지ㅎ
코드 작성에 들어가기 앞서 2편에 마저써야겠다ㅎ
- 2편에서 계속 -
'부트캠프 > 백' 카테고리의 다른 글
Section3-2 (0) | 2023.02.01 |
---|---|
클라우드 컴퓨팅, AWS의 중요개념들 (1) | 2023.02.01 |
Reactive Programming (0) | 2023.01.28 |
12.6 Framework, SpringFramework, POJO (0) | 2022.12.10 |
11.29 네트워크,HTTP (0) | 2022.11.29 |