Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
자바 어플리케이션 에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함
DB를정리하려면 SQL언어를 사용해서 데이터를 가공해야하는데 ,
이를 JAVA언어로도 사용할수 있게해주는 일종의 번역기같은 개념이다.
MVC패턴은 Model-View-Controller의 약자로서 개발을 할 때 3가지 형태로 역학을 나누어 개발하는 방법론입니다.
어플리케이션이 무엇을 할 것인지 정의하는 부분입니다. 즉 DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룹니다.
사용자에게 시각적으로 보여주는 부분입니다. (UI)
Model이 데이터를 어떻게 처리할지 알려주는 역할을 합니다. 사용자에 의해 클라이언트가 보낸 데이터가 있으면 모델을 호출하기전에 적절히 가공을 하고 모델을 호출합니다. 그런다음 모델이 업무 수행을 완료하면 그결과를 가지고 View에게 전달하는 역할을 합니다.
MVC 패턴을 사용하는 이유
사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 됩니다.
즉 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지는 효과를 가질수 있기 때문에 MVC 패턴을 사용합니다.
자 이제 MVC패턴을 알아 보았고 이제 스프링에서의 Controller가 뭔지 알아보도록 하겠습니다!
Controller -> Service -> Repository -> DB
|
V
Domain
(4개의 정확한 역할에 대한 느낌이 와닿지 않는다. 아래의 예제를 통해 느낌을 확실히 해보자
(주소 찾아서 정보 전달)
쉽게 말하면 객체. 회원(id,name)/ 주문(id,order,member) /쿠폰(id,store,member) 등.
DB에 저장되어 관리되는 애들을 말한다.
직접 DB를 건드는 애들. save, delete, find 등의 일이 수행된다.
아직 db가 확정되지 않은 상황을 가정했으므로, 코드 바꿔치기가 수월하게 interface를 사용해서 작성하였다.
참고 블로그
https://it-recording.tistory.com/31
-MVC
https://velog.io/@jybin96/Controller-Service-Repository-%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
-웹어플리케이션 계층구조
https://melonicedlatte.com/2021/07/24/231500.html
-DTO