간단한 개념정리

코코몽압지·2022년 5월 24일
0

JPA란?

Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
자바 어플리케이션 에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함

DB를정리하려면 SQL언어를 사용해서 데이터를 가공해야하는데 ,
이를 JAVA언어로도 사용할수 있게해주는 일종의 번역기같은 개념이다.

DTO란?

DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다.

MVC란?

MVC 패턴이란?

MVC패턴은 Model-View-Controller의 약자로서 개발을 할 때 3가지 형태로 역학을 나누어 개발하는 방법론입니다.

Model

어플리케이션이 무엇을 할 것인지 정의하는 부분입니다. 즉 DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룹니다.

View

사용자에게 시각적으로 보여주는 부분입니다. (UI)

Controller

Model이 데이터를 어떻게 처리할지 알려주는 역할을 합니다. 사용자에 의해 클라이언트가 보낸 데이터가 있으면 모델을 호출하기전에 적절히 가공을 하고 모델을 호출합니다. 그런다음 모델이 업무 수행을 완료하면 그결과를 가지고 View에게 전달하는 역할을 합니다.
MVC 패턴을 사용하는 이유
사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 됩니다.

즉 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지는 효과를 가질수 있기 때문에 MVC 패턴을 사용합니다.

자 이제 MVC패턴을 알아 보았고 이제 스프링에서의 Controller가 뭔지 알아보도록 하겠습니다!

기본 웹 어플리케이션 계층 구조

- Controller : 웹 MVC의 컨트롤러 역할

- Service : 핵심 비즈니스 로직 구현

- Repository : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리

- Domain : 비즈니스 도메인 객체, ex) 회원,주문,쿠폰 등등 주로 데이터베이스에 저장하고 관리됨

Controller -> Service -> Repository -> DB

                  |

                  V

               Domain

(4개의 정확한 역할에 대한 느낌이 와닿지 않는다. 아래의 예제를 통해 느낌을 확실히 해보자

1) Controller

  • 웹 사이트에서 받은 사이트 주소를 Mapping 시키고, 받은 정보들 Service에 전달해주는 배달원 역할을 수행한다.

(주소 찾아서 정보 전달)

2) Domain

  • 쉽게 말하면 객체. 회원(id,name)/ 주문(id,order,member) /쿠폰(id,store,member) 등.

  • DB에 저장되어 관리되는 애들을 말한다.

3) Repository

  • 직접 DB를 건드는 애들. save, delete, find 등의 일이 수행된다.

  • 아직 db가 확정되지 않은 상황을 가정했으므로, 코드 바꿔치기가 수월하게 interface를 사용해서 작성하였다.

4) Serive

  • 회원 가입, 조회 등의 비즈니스 단 기능들이 수행되는 곳. 중복 검사 등도 이 곳에서 실행된다. 직접 DB에 접근하는 일은 없다. (repository를 거치기 때문)

참고 블로그
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

0개의 댓글