2025 겨울방학 학습공동체 토이프로젝트
크리스마스 분위기에 어울리는 영화를 추천해주는 설문 기반 콘솔 프로그램입니다.
사용자의 선택을 바탕으로 장르 점수를 계산하고, 가장 선호도가 높은 Top 장르를 선정하여
해당 장르의 영화 TOP 3를 추천합니다.
설문, 추천 로직, 영화 데이터를 패키지와 클래스 단위로 분리하여
확장과 수정이 용이한 구조로 설계되었습니다.
- 설문 진행
- 장르 점수 누적
- 선호 장르(Top 1) 선정
- 영화 TOP 3 추천
- 결과 출력
- 프로그램의 시작점
- 설문 → 추천 → 결과 출력까지 전체 실행 흐름 제어
Survey
- 설문 전체 흐름 관리
- 질문을 순서대로 출력하고 답변 수집
Question
- 질문 내용과 선택지(a~d) 관리
- 선택지별 장르 점수 반환
InputHandler
- 사용자 입력 처리
- a~d 이외 입력에 대한 유효성 검사
Answer
- 사용자의 선택 저장
- 장르별 점수 누적 관리
UserProfile
- 사용자 장르 선호도 저장 및 조회
ScoreCalculator
- 설문 답변을 기반으로 장르 점수 계산
RecommendationRule
- 추천 장르를 결정하는 규칙 인터페이스
TopOneGenreRule
- 가장 점수가 높은 Top 1 장르 선정
MovieRecommender
- 추천 규칙을 적용해 최종 추천 장르 결정
Movie
- 영화 제목과 장르 정보를 담는 도메인 클래스
Genre
- 장르 코드와 장르명을 매핑한 enum
Mood
- 영화 분위기 표현용 enum
MovieRepository
- 영화 목록 관리
- 장르별 영화 조회 기능 제공
ResultPrinter
- 추천 결과 출력
- 추천 장르와 영화 목록, 안내 문구 출력
src/main/java/com/christmas/movie
├─ Main.java
│
├─ movie
│ ├─ Genre.java
│ ├─ Mood.java
│ ├─ Movie.java
│ ├─ MovieRepository.java
│ └─ ResultPrinter.java
│
├─ recommender
│ ├─ MovieRecommender.java
│ ├─ RecommendationRule.java
│ ├─ ScoreCalculator.java
│ ├─ TopOneGenreRule.java
│ └─ UserProfile.java
│
└─ survey
├─ Answer.java
├─ InputHandler.java
├─ Question.java
└─ Survey.java
- IntelliJ에서 프로젝트 열기
Main.java실행- 질문에 a~d 중 하나 입력
- 추천 결과 확인
Q1. 크리스마스에 어떤 분위기의 영화를 원하시나요? 입력 > b
Q2. 누구와 함께 보시나요? 입력 > b
🎁 추천 장르 : FAMILY
🎬 추천 영화 TOP 3
Home Alone
The Polar Express
Klaus
| 이름 | 담당 기능 | 주요 역할 |
|---|---|---|
| 이채연 | recommender | 추천 로직 및 점수 계산 |
| 박서은 | survey, Main | 설문 흐름 및 전체 실행 관리 |
| 장은주 | movie | 영화 데이터 관리 및 결과 출력 |
- 기능별 브랜치에서 작업 후
main브랜치로 Pull Request 병합 - Pull Request 기반 코드 리뷰 진행