9-1 애플리케이션 설명
1장~8장 공부한 내용을 토대로 웹 애플리케이션을 만들어 보겠습니다.
9-1-1 기능 목록
'OX 퀴즈'애플리케이션 기능은 표에 정리한 다섯 가지입니다.
No | 기능 | 설명 |
1 | 등록 기능 | 퀴즈를 등록합니다. |
2 | 갱신 기능 | 등록된 퀴즈를 갱신합니다. |
3 | 삭제 기능 | 등록된 퀴즈를 삭제합니다. |
4 | 목록 표시 기능 | 등록된 퀴즈의 목록을 표시합니다. |
5 | 게임 기능 | 퀴즈 게임을 실시합니다. |
URL 목록
No | 역할 | HTTP 메서드 | URL |
1 | 퀴즈목록을 표시합니다. | GET | /quiz |
2 | 등록 처리를 실행합니다. | POST | /quiz/insert |
3 | 갱신 화면을 표시합니다. | GET | /quiz{id} |
4 | 갱신 처리를 실행합니다. | POST | /quiz/update |
5 | 삭제를 처리합니다. | POST | /quiz/delete |
6 | 퀴즈 화면을 표시합니다. | GET | /quiz/play |
7 | 퀴즈 답을 체크합니다. | POST | /quiz/check |
9-1-2 예제 애플리케이션의 레이어
MVC모델에서는 업무 기능이나 취급하는 데이터의 처리 요건이 복잡해지면 비즈니스 로직 처리를 담당하는 모델 부분이 많아져서 모델의 비대화라는 문제가 발생합니다. MVC모델은 설계 개념상 모델이 담당하는 부분자체를 주리는것은 안되기 때문에 모델안에서 역할 분담을 명확하게 하고 애플리케이션의 레이어구성을 적용하고 비대해지는 모델을 분할하는 것이 레이어를 나누는 목적입니다.
- 애플리케이션레이어
클라이언트에서 받은 요청을 제어하고 도메인레이어를 사용하여 애플리케이션을 제어합니다.
- 도메인 레이어
도메인 객체에 대해 애플리케이션의 서비스를 처리를 실행합니다.
- 인프라스트럭쳐 레이어
도메인 객체에 대해 CRUD 조작을 해서 데이터의 영속화(데이터를 영구저장하는)를 담당합니다.
9-1-3 레이어별 컴포넌트 설명
애플리케이션 레이어
- Controller
요청을 처리에 매핑하고 결과를 뷰에 넘겨주는 제어를 합니다. 주요 처리는 Controller 안에서 실행하지 않고 '도메인레이어'의 Service를 호출합니다.
- Form
화면의 폼을 표현합니다. 화면에서 입력한 값을 Controller에 넘겨줍니다. 또한 Controller에서 화면에 결과를 출력할 때도 사용합니다. 도메인 레이어가 애플리케이션 레이어에 의존하지 않도록 Form에서 도메인 객체로 변환하거나 도메인 객체에서 Form으로 변환하는것을 애플리케이션 레이어에서 수행해야 합니다.
- View
화면 표시를 담당합니다.
도메인 레이어
- 도메인 객체
서비스 처리를 실행할 때 필요한 자원입니다.
- Service
애플리케이션의 서비스 처리를 담당합니다.
- Repository
Repository는 인터페이스입니다. 데이터베이스의 데이터 조작내용만 정의합니다.(구현 내용은 작성하지 않습니다.).
인스파스트럭처 레이어
- RepositoryImpl
도메인 레이어에서 정의한 Repository의 구현클래스입니다. 'O/R Mapper'가 Repository의 구현 클래스를 생성하는 경우도 있습니다.
- O/R Mapper
O(Object: 객체)와 R(Renational; 관계형 데이터베이스)간의 데이터를 매핑합니다.
9-2 OX 퀴즈용 데이터베이스 생성
'OX'퀴즈 애플리케이션을 만들기전에 우선'OX' 애플리케이션용 데이터베이스와 테이블을 생성
'북스터디 > 스프링 프레임워크 첫걸음' 카테고리의 다른 글
8장 유효성 검사 기능 알아보기 (0) | 2023.04.12 |
---|---|
7장 요청 파라미터 취득하기 (0) | 2023.04.12 |
5장 MVC 모델 알아보기 (0) | 2023.04.09 |
4장 데이터베이스 작업 (0) | 2023.04.02 |
3장 스프링 프레임워크의 핵심 기능 알아보기 (0) | 2023.03.26 |