Spring 애플리케이션 처음부터 끝까지 1) - 구조

june·2022년 1월 5일
0
post-thumbnail
post-custom-banner

전반적인 구조

구현하려는 것

회원정보를 관리하는 하는 웹사이트를 생성하는 것이 목적이다.

  • 구현하려는 Column: 회원 no, 회원아이디, 회원명, 이메일, 비밀번호
  • 구현 하려는 페이지: 목록/ 등록/ 변경/ 상세보기 / 삭제

Java Spring모델을 기반, View부분은 Thymeleaf.
DB: MySQL / 관리툴은 NaviCat
IDE: IntelliJ IDEA.

기능 목록

작업기능목록

기능설명
등록기능회원등록
업데이트 기능등록한 회원정보 변경
삭제 기능등록한 회원정보 삭제
목록표시등록한 회원정보 나열

URL 목록

기능설명URL
목록화면 표시GET/account
등록처리 실행POST/account/insert
업데이트 화면 표시GET/account./{id}
업데이트 프로세스 실행POST/account/update
삭제처리 실행POST/account/delete

애플리케이션 계층화

레이어 별로 나누어서 애플리케이션을 생성한다.
애플리케이션은 총 3개의 레이어로 나뉘는데

  • 애플리케이션 계층
  • 도메인 계층
  • 인프라 계층

엄밀한 DDD모델이라 할 수는 없으나, 그에 기반하여 생성한다.

이를 좀 더 자세히 보면 이러한 형태로 되어 있다.

애플리케이션 계층

  • Controller: 요청을 처리에 매핑하고 결과를 View에 전달하는 제어를 수행함. 주 처리는 Controller에서 실시하지 않고 도메인 계층의 Service를 호출함.
  • Form: 화면 입력양식을 표현. 화면에 입력한 값을 Controller로 전달하고 계층에 의존하지 않도록 Form에서 Domain Object로 변환하거나 Domain Object에서 Form으로 변환하는 것은 애플리케이션 계층에서 수행해야 함.
  • View: 외형 화면. Thymeleaf로 구현.

도메인 계층

  • Domain Object: “서비스 처리”를 실행하는데 필요한 자원.
  • Service: 애플리케이션의 “서비스처리” 그 자체.
  • Repository: Repository는 인터페이스. “데이터베이스에 대한 데이터 조작” 정의만 설명. 구현내용은 설명하지 않음.

인프라 계층

  • RepositoryImpl: 도메인계층으로 정한 Repository의 구현 클래스. O/R Mapper가 Repository의 구현클래스를 작성하는 경우도 있음.
  • O/R Mapper: 객체와 관계형데이터베이스의 데이터를 매핑함

컴포넌트 목록

레이어구성요소명칭비고
애플리케이션 계층Viewhtml 파일들외형, 화면
애플리케이션 계층ControllerAccountController제어역할
애플리케이션 계층FormAccountForm입력양식 표현
도메인 계층ServiceAccountService인터페이스 생성
도메인 계층ServiceImplAccountServiceImpl서비스 구현
도메인 계층Domain ObjectAccountEntity와 같은 역할은 함.
도메인 계층RepositoryAccountRepository인터페이스 생성
인프라 계층RepositoryImplO/R Mapper에 의해 자동으로 생성이 됨
인프라 계층O/R MapperSpring Data JDBC를 사용함.
profile
초보 개발자
post-custom-banner

0개의 댓글