- Spring Boot ํ๋ก์ ํธ ์์ฑ: IntelliJ์์ ํ๋ก์ ํธ ์์ฑ.
- ์์กด์ฑ ์ถ๊ฐ: Spring Web, Spring Data JPA, Thymeleaf, Spring Security, MySQL ์ถ๊ฐ.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ :
application.properties
ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์ .
- TMDB API ํค ๋ฐ๊ธ: TMDB์ ๊ฐ์ ํ๊ณ API ํค ๋ฐ๊ธ๋ฐ๊ธฐ.
- ์ธ๋ถ API ํธ์ถ ์ค์ :
RestTemplate
๋ก TMDB API ์ค์ . - ์ํ ๋ชฉ๋ก ํ์ด์ง ๊ตฌํ: TMDB API์์ ๋ฐ์์จ ์ํ ๋ชฉ๋ก์ ์น ํ์ด์ง์ ํ์.
- ์ํ ์ธ๋ถ ์ ๋ณด ํ์ด์ง ๊ตฌํ: ์ ํํ ์ํ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์น ํ์ด์ง์ ํ์.
- Review ์ํฐํฐ ์์ฑ: Builder ํจํด๊ณผ DTO๋ฅผ ์ฌ์ฉํ์ฌ ์ํ, ์ฌ์ฉ์, ๋ฆฌ๋ทฐ ๋ด์ฉ, ํ์ ๋ฑ์ ์ ์ฅํ๋ ์ํฐํฐ ์ค๊ณ.
- ReviewDTO ์์ฑ: ๋ฆฌ๋ทฐ ์์ฑ ๋ฐ ์กฐํ์ ํ์ํ ์ ๋ณด๋ฅผ ๋ด์ DTO(Data Transfer Object) ์์ฑ.
- Review Repository ๊ตฌํ: ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ ์ ์๋ JPA ๋ ํฌ์งํ ๋ฆฌ ๊ตฌํ.
- ๋ฆฌ๋ทฐ ์์ฑ ํผ ๊ตฌํ: ์ฌ์ฉ์๊ฐ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ ์ ์๋ HTML ํผ ์์ฑ (Thymeleaf ์ฌ์ฉ).
- ๋ฆฌ๋ทฐ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ: ์์ฑ๋ ๋ฆฌ๋ทฐ๋ฅผ DTO๋ก ๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ์๋น์ค ๊ตฌํ.
- ๋ฆฌ๋ทฐ ์์ ๊ธฐ๋ฅ ๊ตฌํ: ์ฌ์ฉ์๊ฐ ์์ฑํ ๋ฆฌ๋ทฐ๋ฅผ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ ์ ๊ณต (DTO ์ฌ์ฉ).
- ๋ฆฌ๋ทฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ: ์ฌ์ฉ์๊ฐ ์์ ์ ๋ฆฌ๋ทฐ๋ฅผ ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ์ํ ์์ธ ํ์ด์ง์ ๋ฆฌ๋ทฐ ํ์: ํด๋น ์ํ์ ๋ฆฌ๋ทฐ ๋ชฉ๋ก์ ์ํ ์์ธ ํ์ด์ง์ ํ์ (๋ฆฌ๋ทฐ ๋ชฉ๋ก์ DTO๋ก ๋ณํํ์ฌ ์ ๋ฌ).
- ํ์ ๋ถ์ฌ ๊ธฐ๋ฅ ๊ตฌํ: ๋ฆฌ๋ทฐ ์์ฑ ์ ํ์ ์ ์ ๋ ฅํ ์ ์๋ ๊ธฐ๋ฅ ์ถ๊ฐ (๋ณ์ ๊ธฐ๋ฅ ํฌํจ).
- Genre ์ํฐํฐ ์์ฑ: ์ํ์ ์ฅ๋ฅด ๊ฐ์ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ์ํ ์ฅ๋ฅด ์ํฐํฐ ์ค๊ณ (Builder ํจํด ๋ฐ DTO ์ ์ฉ).
- Actor ์ํฐํฐ ์์ฑ: ์ํ์ ๋ฐฐ์ฐ ๊ฐ์ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ์ํ ๋ฐฐ์ฐ ์ํฐํฐ ์ค๊ณ (Builder ํจํด ๋ฐ DTO ์ ์ฉ).
- Director ์ํฐํฐ ์์ฑ: ์ํ์ ๊ฐ๋ ๊ฐ์ ๋ค๋์ผ ๊ด๊ณ๋ฅผ ์ํ ๊ฐ๋ ์ํฐํฐ ์ค๊ณ (Builder ํจํด ๋ฐ DTO ์ ์ฉ).
- DirectorDTO, ActorDTO, GenreDTO ์์ฑ: ํด๋น ์ํฐํฐ๋ค์ ์ํ DTO ์์ฑ.
- Repository ๊ตฌํ:
Director
,Actor
,Genre
์ํฐํฐ์ ๊ด๋ จ๋ JPA ๋ ํฌ์งํ ๋ฆฌ ๊ตฌํ. - ์ํ ์์ธ ํ์ด์ง์ ๊ฐ๋ , ๋ฐฐ์ฐ, ์ฅ๋ฅด ํ์: ์ํ ์ ๋ณด์ ๊ฐ๋ , ๋ฐฐ์ฐ, ์ฅ๋ฅด ์ ๋ณด๋ฅผ ํจ๊ป ํ์ํ๋๋ก ์์ .
- Thymeleaf ํ ํ๋ฆฟ ์์ : ๊ฐ๋ , ๋ฐฐ์ฐ, ์ฅ๋ฅด ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ UI ๊ตฌ์ฑ.
- User ์ํฐํฐ ๋ฐ ํ ์ด๋ธ ์์ฑ: ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์ํฐํฐ์ ํ ์ด๋ธ ์ค๊ณ. Builder ํจํด ๋ฐ DTO ์ ์ฉ.
- ํ์๊ฐ์ ํ์ด์ง ๊ตฌํ: ์๋ก์ด ์ฌ์ฉ์๋ฅผ ๋ฑ๋กํ ์ ์๋ ํ์๊ฐ์ ํ์ด์ง ์์ฑ.
- ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ํ์ด์ง ๊ตฌํ: ์ฌ์ฉ์ ๋ก๊ทธ์ธ ๋ฐ ๋ก๊ทธ์์ ํ์ด์ง ๊ตฌํ.
- Spring Security ์ค์ : ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ๋ก๊ทธ์์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ๊ถํ ์ค์ .
- ๋ฆฌ๋ทฐ ์์ฑ ๊ถํ ์ค์ : ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ง ๋ฆฌ๋ทฐ ์์ฑ, ์์ , ์ญ์ ๊ฐ๋ฅํ๋๋ก ์ค์ (Spring Security ์ค์ ).
- ํ์ ๋ถ์ฌ ๊ธฐ๋ฅ ๊ตฌํ: ์ฌ์ฉ์๊ฐ ๋ฆฌ๋ทฐ ์์ฑ ์ ํ์ ์ ์ ๋ ฅํ ์ ์๋ ๊ธฐ๋ฅ ์ถ๊ฐ.
- ํ๊ท ํ์ ๊ณ์ฐ: ๊ฐ ์ํ์ ๋ฆฌ๋ทฐ์ ๋ฐ๋ฅธ ํ๊ท ํ์ ์ ๊ณ์ฐํ์ฌ ํ์.
- ํ์ ์ ์ ๋ ฌ ๊ธฐ๋ฅ ๊ตฌํ: ์ํ ๋ชฉ๋ก์ ํ์ ์์ผ๋ก ์ ๋ ฌํ๋ ๊ธฐ๋ฅ ๊ตฌํ.
- Thymeleaf ํ ํ๋ฆฟ ์ค์ : ์ํ ๋ชฉ๋ก, ๋ฆฌ๋ทฐ ๋ชฉ๋ก, ๋ฆฌ๋ทฐ ์์ฑ ํ์ด์ง๋ฅผ ์ํ ํ ํ๋ฆฟ ๊ตฌํ.
- ์ํ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ: ์ํ ์ ๋ชฉ์ด๋ ํค์๋๋ก ๊ฒ์ํ ์ ์๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ํ์ด์ง๋ค์ด์ ๊ตฌํ: ์ํ ๋ชฉ๋ก๊ณผ ๋ฆฌ๋ทฐ ๋ชฉ๋ก์ ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฅ ์ถ๊ฐ.
- ๊ด๋ฆฌ์ ๊ถํ ์ค์ : Spring Security๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ์ ๊ถํ ๋ถ์ฌ.
- ์ํ ์ถ๊ฐ/์์ /์ญ์ ๊ธฐ๋ฅ: ๊ด๋ฆฌ์๊ฐ ์ํ๋ฅผ ์ถ๊ฐ, ์์ , ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ๋ฆฌ๋ทฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ: ๊ด๋ฆฌ์๊ฐ ๋ชจ๋ ์ฌ์ฉ์์ ๋ฆฌ๋ทฐ๋ฅผ ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ์ถ์ฒ ๊ธฐ๋ฅ ๊ตฌํ: ํ์ ์ด ๋์ ์ํ๋ ๋ฆฌ๋ทฐ๊ฐ ๋ง์ ์ํ๋ฅผ ์ถ์ฒํ๋ ๊ธฐ๋ฅ ์ถ๊ฐ.
- ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ: ์ฌ์ฉ์๊ฐ ์ํ๋ฅผ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ชฉ๋ก์ ์ถ๊ฐํ ์ ์๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ: ๊ตฌ๊ธ, ํ์ด์ค๋ถ ๋ฑ์ ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ.