[스프링 프레임워크 첫걸음] ( 9 / 9 ) - 1

박북velog·2023년 4월 29일
0

제 9장 애플리케이션 만들기

9.1 애플리케이션 설명

'OX 퀴즈' 애플리케이션 만들기

1. 작성할 기능 목록

No.기능설명
1등록 기능퀴즈를 등록합니다.
2갱신 기능등록된 퀴즈를 갱신합니다.
3삭제 기능등록된 퀴즈를 삭제합니다.
4목록 표시 기능등록된 퀴즈의 목록을 표시합니다.
5게임 기능퀴즈 게임을 실시합니다.

2. 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


레이어별 컴포넌트

  • 애플리케이션 레이어
    클라이언트에서 받은 요청을 제어하고 도메인 레이어를 사용하여 애플리케이션을 제어합니다.

  • 도메인 레이어
    도메인 객체에 대해 애플리케이션의 서비스 처리를 실행합니다.

  • 인프라스트럭처 레이어
    도메인 객체에 대해 CRUD 조작을 해서 데이터의 영속화를 담당한다.

애플리케이션 레이어, 인프라스트럭처 레이어 모두 도메인 레이어에 의존하지만 도메인 레이어는 다른 레이어에 의존해서는 안된다. 즉 도메인 레이어에 의해 애플리케이션 레이어의 변경은 허용하지만, 애플리케이션 레이어의 변경으로 도메인 레이어의 변경이 있어서는 안된다.

레이어별 컴포넌트 설명

1. 애플리케이션 레이어

  • Controller
    요청을 처리에 매핑하고 결과를 뷰에 넘겨주는 제어 역할. 주요 처리는 Controller 안에서 실행하는 것이 아닌 도메인 레이어의 'Service' 를 호출한다.

  • Form
    화면의 폼을 표현. 화면에서 입력한 값을 Controller 에 넘겨준다. 또한 Controller 에서 화면에 결과를 출력할 때도 사용한다. 도메인 레이어가 애플리케이션 레이어에 의존하지 않도록 Form에서 도메인 객체로 변환하거나 도메인 객체에서 Form으로 변환하는 것을 수행해야 한다.

  • View
    화면 표시 담당

2. 도메인 레이어

  • 도메인 객체
    서비스 처리를 실행할 때 필요한 자원 ( Entity 등 )

  • Service
    애플리케이션 서비스 처리 담당

  • Repository
    인터페이스, 데이터베이스의 데이터 조작 내용만 정의 ( 구현 내용은 작성하지 않는다. )

3. 인프라스트럭처 레이어

  • RepositoryImpl
    도메인 레이어에서 정의한 Repository의 구현 클래스.

  • O/R Mapper
    Object( 객체 ) 와 Realational ( 관계형 데이터베이스 )간의 데이터 매핑

생성할 컴포넌트 목록

No.레이어컴포넌트이름비고
1애플리케이션 레이어View-화면 표시
2애플리케이션 레이어ControllerQuizController제어 역할 담당
3애플리케이션 레이어FormQuizForm화면의 게임 폼을 표현
4도메인 레이어ServiceQuizService인터페이스로 생성
5도메인 레이어ServiceImplQuizServiceImplService를 구현
6도메인 레이어도메인 객체Quiz엔티티 역할
7도메인 레이어RepositoryQuizRepository인터페이스로 생성
8인프라스트럭처 레이어RepositoryImpl-O/R Mapper 로 자동 생성
9인프라스트럭처 레이어O/R Mapper-스프링 데이터 JDBC를 사용

9.2 OX 퀴즈용 데이터베이스 생성

9.2.1 데이터 베이스 생성

테이블 생성

칼럼타입제약설명
idserialPK퀴즈 정보 식별ID
questiontextNOT NULL퀴즈 내용
answerbooleanNOT NULL퀴즈 답
authorcharacter varying(20) / varchar(20)NOT NULL작성자
profile
느리지만 끝까지 해보자구

0개의 댓글