소소한개발팁
반응형

아키텍처 개요

대부분의 중, 대규모 웹 애플리케이션은 효율적인 개발 및 유지보수를 위하여 계층화 하여 개발하는 것이 일반적이다.

사용자관리 프로젝트 아키텍쳐에서 기본적으로 가지는 계층은 프리젠테이션 계층,서비스 계층,데이터 액세스 계층 3계층과 모든 게층에서 사용되는 도메인 모델 클래스로 구성되어있다.

 

각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야 하며,  각 계층에서 담당해야 할 기능들이 있다.

 

프리젠테이션 계층 <-> 서비스 계층 <-> 데이터엑세스 계층

<----------------------도메인 모델 클래스--------------------->

 

위의 세 가지 계층은 독립적으로 분리할 수 있도록 구현해야 하며,일반적으로 각 계층 사이에서는 인터페이스를 이용하여 통신하는 것이 일반적이다.

 

프리젠테이션 계층

*브라우저 상의 웹 클라이언트의 요청 및 응답을 처리

*상위 계층 (서비스 계층,데이터 액세스계층)에서 발생하는 Exception 에 대한 처리

*최종 UI에서 표현해야 할 도메인 모델 사용

*최종 UI에서 입력한 데이터에 대한 유효성 검증 기능을 제공

*비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공

*@Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함

 

서비스 계층

*애플리케이션 비즈니스 로직 처리 와 비즈니스와 관련된 도메인 모델의 적합성 검증

*트랜잭션 처리

*프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 하여 애플리케이션의 유연성을 증가

*다른 계층들과 통신하기 위한 인터페이스를 제공

*Service 인터페이스와 @Service 어노테이션을 사용하여 작성된 Service 구현 클래스가 이 계층에 속함

 

데이터 액세스 계층

*영구 저장소 (관계형 데이터베이스)의 데이터를 조작하는 데이터 액세스 로직을 객체화.

*영구 저장소의 데이터를 조회 ,등록 ,수정 ,삭제

*ORM(Object Relational Mapping) 프레임워크 (Mybatis,Hibernate)를 주로 사용하는 계층

*DAO 인터페이스와 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이 계층에 속함

 

도메인 모델 클래스

*관계형 데이터 베이스의 엔티티와 비슷한 개념을 가지는 것으로 실제 VO(Value Object) 혹은 DTO(Data Transfer Object) 객체에 해당.

*도메인 모델 클래스는 3개의 계층 전체에 걸쳐 사용

*private으로 선언된 멤버변수가 있고, 그 변수에 대한 getter와 setter 메서드를 가진 클래스를 말함

 

 

반응형

'프레임워크 > Spring' 카테고리의 다른 글

AOP(2)  (0) 2020.01.12
AOP(Aspect Oriented Progamming)  (0) 2020.01.11
Bean 등록 메타정보 구성 전략 및 어노테이션  (0) 2020.01.08
Bean 의존관계 설정  (0) 2020.01.07
EL 과 JSTL  (0) 2020.01.06
profile

소소한개발팁

@개발자 뱅

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!