본문 바로가기
개인 프로젝트/Web Programming Term Project

[Web Programming] Spring boot Web 프로젝트에 MVC 모델 적용 ( Annotation 활용 )

by 데구르르르 2020. 3. 10.
728x90

이전 게시물에는 STS 기반의 웹 프로젝트에 깃허브를 연동한 모습을 포스팅 했었는데요
오늘은 웹 프로젝트에  MVC 모델을 적용한 모습을 포스팅 하려 합니다

사실 3학년 1학기때 이 프로젝트를 진행할 당시에는 MVC모델에 대하여 잘 알지도 못하였고 프로젝트의 퀄리티 보다는 완성이 목적이었어서, 제가 다룰수 있었던 Atom 툴을 기반으로 php 와 txt 파일로 프로젝트를 완성했었습니다.

이번에 이 프로젝트를 다시 정리하여 깃허브에 올리기로 마음을 먹으면서,
이왕 다시 하는거 아예 처음부터 db도 설계하고 MVC 모델을 적용하여 조금더 완성도 있게 만들기로 하였습니다.

MVC 모델은 Model, View, Controller 를 뜻하는데요.
위의 그림을 참고하시면 한눈에 이해하기 쉬우실 것입니다.
 + 이번 포스팅에서는 현재 제 웹 프로젝트의 진행상황을 보여줄 예정이므로 
MVC 가 무엇인지에 대한 자세한 부분은 추후에 새롭게 게시물을 작성하여 다루겠습니다.


저는 이번 웹 프로젝트를 Controller, Dao, Service, Vo ( Model ) 의 총 4가지 부분으로 나누었습니다


< Controller > 
@Controller는 클라이 언트로 부터 전달된 데이터를 가공하기 위한 Controller 임을 명시하는 표시로
 여기서는 @RequestMapping 어노테이션을 통해 경로설정을 하게 됩니다


< Dao > 
@Repository는 해당 클래스가 데이터베이스에 접근하는 클래스 임을 명시하는 어노테이션으로 
Dao 클래스에서는 CRUD ( Create, Read, Update, Delete ) 처리를 진행합니다.


< Service > 
@Service는 Repository ( Dao ) 를 통해 데이터베이스에서 데이터를 가져온 후 컨트롤러에게 전달해 주는 클래스임을 명시하는 어노테이션 입니다.  Service는 사용자의 요구에 맞게 DAO의 CRUD를 응용 조합해서 사용하는 기능으로 트랜잭션 단위라는 점에서 Dao 와의 차이를 가집니다.   또한 Service는 주로 인터페이스로 설계되며 ServiceImpl 에서 인터페이스에 대한 상세코드가 쓰여집니다.


< Vo ( Model ) > 
@Data 는 Lombok 에서 제공하는 어노테이션으로 클래스안의 모든 private 필드에 대해 @Getter와 @Setter를 적용하여 세터/게터를 만들어줍니다.


+ 추가적으로 @Autowrited 어노테이션은 의존 자동 주입 을 해주는 기능으로, 스프링이 알아서 의존객체를 찾아서 주며, 
   생성자, 필드, Set메소드 등에 적용할 수 있습니다.

728x90

댓글