πŸ–ΌοΈ λ‚˜μ˜ ν•˜λ£¨λ₯Ό λ‹΄λ‹€,
AI기반 일기 생성 μ„œλΉ„μŠ€ ν•˜λ‹΄

α„‘α…­α„Œα…΅

✍🏻 ν”„λ‘œμ νŠΈ κ°œμš”

2023-2024 κ°€μ²œλŒ€ν•™κ΅ μ‘Έμ—…μž‘ν’ˆ 5μ‘°

λ°”μœ μ‚Άμ—μ„œ 일기λ₯Ό 맀일맀일 κΈ°λ‘ν•˜κΈ°λž€ 쉽지 μ•ŠμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 어렀움을 κ²ͺλŠ” μ‚¬λžŒλ“€μ„ μœ„ν•΄, ν•˜λ‹΄μ€ κ°„λ‹¨ν•œ ν‚€μ›Œλ“œ μž…λ ₯으둜 μƒμ„±ν˜• AIλ₯Ό μ΄μš©ν•΄ 일기λ₯Ό μƒμ„±ν•˜κ³ ,

μƒμ„±ν˜• 이미지λ₯Ό 톡해 μ‹œκ°μ μœΌλ‘œλ„ ν•˜λ£¨μ˜ 기둝을 λ‹΄μ•„μ£ΌλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.


✨ νŒ€μ› μ†Œκ°œ

λ°•μ§€μ˜(ziiyouth)
πŸš€ Back-end Developer

πŸ“” 핡심 κΈ°λŠ₯

μ†Œμ…œ 둜그인 κΈ°λŠ₯

μΉ΄μΉ΄μ˜€ν†‘ μ†Œμ…œ λ‘œκ·ΈμΈμ„ 톡해 κ°„νŽΈν•œ νšŒμ›κ°€μž…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 1

일기 생성 κΈ°λŠ₯

λ‚ μ§œ, μ‹œκ°„, μž₯μ†Œ, μ‚¬λžŒ, 감정, κ²½ν—˜μ„ ν‚€μ›Œλ“œ ν˜•μ‹μœΌλ‘œ κ°„νŽΈν•˜κ²Œ μž…λ ₯λ°›μ•„ gpt λͺ¨λΈμ„ μ΄μš©ν•œ 일기λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 2-1 ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 2-2

일기에 μ–΄μšΈλ¦¬λŠ” 이미지 생성 κΈ°λŠ₯

μž‘μ„±λœ 일기에 μ–΄μšΈλ¦¬λŠ” μƒμ„±ν˜• 이미지λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 2-3

λ‚ μ§œλ³„ 쑰회 κΈ°λŠ₯

달 별 λŒ€ν‘œ 일기λ₯Ό 메인 ν™”λ©΄μ—μ„œ μŠ¬λΌμ΄λ“œ ν˜•μ‹μœΌλ‘œ, 일 별 일기λ₯Ό μ›ν•˜λŠ” μ •λ ¬ 순으둜 κ²€μƒ‰ν•˜κ³  μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 3

일기 재발견 κΈ°λŠ₯

달λ ₯을 톡해 Nλ…„ μ „ λ‚˜μ˜ ν•˜λ£¨λ₯Ό λŒμ•„λ³Ό 수 있고, ν˜„μž¬ λ‚˜μ˜ 감정을 톡해 였늘과 λΉ„μŠ·ν•œ 과거의 일기λ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 4-2

일기 μ’‹μ•„μš” κΈ°λŠ₯

λͺ¨μ•„보고 싢은 일기에 μ’‹μ•„μš”λ₯Ό 눌러 λ³„λ„λ‘œ 보관할 수 μžˆμŠ΅λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 4-1

λ§ˆμ΄νŽ˜μ΄μ§€ κΈ°λŠ₯

μžμ‹ μ˜ 정보λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ᄀᅒᄇᅑᆯᄒᅒᆨ삼가능 5

πŸͺ 기술 μŠ€νƒ

πŸ–₯ Backend

μ—­ν•  μ’…λ₯˜
Framework RED RED
Database RED
Database Service RED
Programming Language RED
API REST
Version Control Git GitHub
CICD

πŸ–₯ Common

μ—­ν•  μ’…λ₯˜
ν˜‘μ—… 관리 RED
λ””μžμΈ RED
μ†Œν†΅

🦾 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

πŸ“‚ 폴더 ꡬ쑰

πŸ“‚ src
┣ πŸ“‚ java.com.hadam.hadam
┃  ┣ πŸ“‚ domain
┃  ┃  ┣ πŸ“‚ sample
┃  ┃  ┃  ┣ πŸ“‚ controller
┃  ┃  ┃  ┣ πŸ“‚ domain
┃  ┃  ┃  ┣ πŸ“‚ dto
┃  ┃  ┃  ┃  ┣ πŸ“‚ request
┃  ┃  ┃  ┃  ┣ πŸ“‚ response
┃  ┃  ┃  ┣ πŸ“‚ service
┃  ┃  ┃  ┣ πŸ“‚ repository
┃  ┣ πŸ“‚ global
┃  ┃  ┣ πŸ“‚ common
┃  ┃  ┣ πŸ“‚ check
┃  ┃  ┣ πŸ“‚ error
┃  ┃  ┃  ┣ πŸ“‚ dto
┃  ┃  ┃  ┣ πŸ“‚ exception
┃  ┃  ┃  ┣ πŸ“‚ handler
┃  ┃  ┣ πŸ“‚ external
┣ πŸ“‚ resources
┃  ┣ application.yml
┣ HadamApplication.class

πŸ“‚ μ•„ν‚€ν…μ²˜ ꡬ쑰

α„‹α…‘α„α…΅α„α…¦α†¨α„Žα…₯

  • μ•ˆλ“œλ‘œμ΄λ“œμ™€ EC2 내에 μ˜¬λΌκ°„ μ„œλ²„κ°€ Restful APIλ₯Ό 톡해 ν†΅μ‹ ν•©λ‹ˆλ‹€.

  • μŠ€ν”„λ§κ³Ό fast api μ„œλ²„κ°€ 같은 RDS에 μ ‘μ†ν•˜κ²Œ 되며, mysql 기반의 DBλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • 일기 생성에 λŒ€ν•œ requestκ°€ λ“€μ–΄μ˜¬λ•ŒλŠ” fast api μ„œλ²„λ₯Ό 톡해 λͺ¨λΈμ΄ μž‘λ™ν•˜κ²Œ λ©λ‹ˆλ‹€.

  • 일기의 글은 GPTλ₯Ό, μ΄λ―Έμ§€λŠ” Stable Diffusion을 톡해 μƒμ„±ν•œ λ’€ s3에 μ—…λ‘œλ“œν•˜μ—¬ μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

  • λ°±μ—”λ“œ μ„œλ²„λŠ” μžλ°”17 기반의 μŠ€ν”„λ§λΆ€νŠΈ3을 μ΄μš©ν•΄ κ°œλ°œν–ˆμŠ΅λ‹ˆλ‹€.

  • μŠ€ν”„λ§ 데이터 JPAλ₯Ό μ‚¬μš©ν•΄ 객체-관계 λ§€ν•‘μ˜ μž₯점을 살리고 UI λ””μžμΈμ„ 기반으둜 ν•œ ERDλ₯Ό κ΅¬μƒν–ˆμŠ΅λ‹ˆλ‹€.

  • 이둜 RESTfulν•œ APIλ₯Ό κ°œλ°œν•˜λ©° νŠΈλžœμž­μ…˜ κ΄€λ¦¬λ‘œ DB μž‘μ—…μ— λŒ€ν•œ 일관성을 보μž₯ν–ˆμŠ΅λ‹ˆλ‹€.

  • κΉƒν—ˆλΈŒ μ•‘μ…˜κ³Ό 도컀 컴포즈λ₯Ό μ‚¬μš©ν•΄ CICDλ₯Ό κ΅¬μΆ•ν•˜κ³  블루-κ·Έλ¦° 무쀑단 배포λ₯Ό κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


πŸ“’ μ‹€ν–‰ 방법

  1. git clone을 μ§„ν–‰ν•œλ‹€.
  2. resources 폴더에 application.yml을 μΆ”κ°€ν•œλ‹€.
  3. build/libs λ””λ ‰ν„°λ¦¬λ‘œ 이동해 java -jar hadam-0.0.1-SNAPSHOT.jar λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•œλ‹€.