Skip to content

passtal/SweetBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“– ์ฑ„ํ„ฐ๋ถ (Chatterbook)

์นด์นด์˜คํ†ก ๋Œ€ํ™”๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์‹ค๋ฌผ ํฌํ† ๋ถ์œผ๋กœ ์ œ์ž‘ยท๋ฐฐ์†กํ•ด์ฃผ๋Š” ์›น ์„œ๋น„์Šค


1. ์„œ๋น„์Šค ์†Œ๊ฐœ

์ฑ„ํ„ฐ๋ถ์€ ์นด์นด์˜คํ†ก ๋Œ€ํ™” ๋‚ด๋ณด๋‚ด๊ธฐ ํŒŒ์ผ(.txt)์„ ์—…๋กœ๋“œํ•˜๋ฉด, ๋Œ€ํ™” ๋‚ด์šฉ์„ ์ž๋™ ํŒŒ์‹ฑํ•˜์—ฌ Book Print API๋ฅผ ํ†ตํ•ด ์‹ค๋ฌผ ์ฑ…์œผ๋กœ ์ œ์ž‘ยท์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์‹œ์—ฐ ์˜์ƒ

์ฑ„ํ„ฐ๋ถ ์‹œ์—ฐ ์˜์ƒ

โ–ถ YouTube์—์„œ ๋ณด๊ธฐ

ํƒ€๊ฒŸ ๊ณ ๊ฐ

  • ์—ฐ์ธยท์นœ๊ตฌยท๊ฐ€์กฑ ๊ฐ„์˜ ์†Œ์ค‘ํ•œ ๋Œ€ํ™”๋ฅผ ๋ฌผ๋ฆฌ์  ๊ธฐ๋…ํ’ˆ์œผ๋กœ ๊ฐ„์งํ•˜๊ณ  ์‹ถ์€ 20~30๋Œ€ MZ์„ธ๋Œ€
  • ์กธ์—…, ๊ธฐ๋…์ผ, ์ƒ์ผ ๋“ฑ ํŠน๋ณ„ํ•œ ๋‚ ์— ๊ฐ์„ฑ์ ์ธ ์„ ๋ฌผ์„ ์ฐพ๋Š” ์‚ฌ๋žŒ

์ฃผ์š” ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ค๋ช…
๋Œ€ํ™” ์—…๋กœ๋“œ ์นด์นด์˜คํ†ก ๋‚ด๋ณด๋‚ด๊ธฐ .txt ํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์œผ๋กœ ์—…๋กœ๋“œ
๋Œ€ํ™” ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŒŒ์‹ฑ๋œ ๋Œ€ํ™”๋ฅผ ์ฑ„ํŒ… ๋ฒ„๋ธ” ํ˜•ํƒœ๋กœ ์‹ค์‹œ๊ฐ„ ํ”„๋ฆฌ๋ทฐ
์ž๋™ ์ฑ… ์ƒ์„ฑ Book Print API๋ฅผ ํ™œ์šฉํ•œ ์ž๋™ ํฌํ† ๋ถ ์ƒ์„ฑ (ํ‘œ์ง€ + ๋‚ด์ง€)
ํŽ˜์ด์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์™„์„ฑ๋œ ์ฑ…์˜ ๊ฐ ํŽ˜์ด์ง€๋ฅผ ์ธ๋„ค์ผ๋กœ ๋ฏธ๋ฆฌ ํ™•์ธ
์ฃผ๋ฌธยท๋ฐฐ์†ก ๊ฒฌ์  ํ™•์ธ โ†’ ๋ฐฐ์†ก ์ •๋ณด ์ž…๋ ฅ โ†’ ์ถฉ์ „๊ธˆ ๊ฒฐ์ œ โ†’ ์‹ค๋ฌผ ๋ฐฐ์†ก
๋‚ด ์ฑ… ๊ด€๋ฆฌ ์ƒ์„ฑํ•œ ์ฑ… ๋ชฉ๋ก ์กฐํšŒ, ์ƒํƒœ ํ™•์ธ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์‚ญ์ œ
์ฃผ๋ฌธ ๋‚ด์—ญ ์ฃผ๋ฌธ ์กฐํšŒ, ๋ฐฐ์†ก ์ƒํƒœ ํ™•์ธ, ์ฃผ๋ฌธ ์ทจ์†Œ

2. ์‹คํ–‰ ๋ฐฉ๋ฒ•

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Java 23+
  • Node.js 18+
  • SweetBook Sandbox API Key (api.sweetbook.com์—์„œ ๋ฐœ๊ธ‰)

์„ค์น˜ ๋ฐ ์‹คํ–‰

# 1. ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/passtal/SWEETBOOK.git
cd SWEETBOOK

# 2. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • (ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ)
cp .env.example .env
# .env ํŒŒ์ผ์„ ์—ด์–ด BOOKPRINT_API_KEY์— ๋ฐœ๊ธ‰๋ฐ›์€ Sandbox API Key ์ž…๋ ฅ

# 3. ๋ฐฑ์—”๋“œ ์‹คํ–‰
cd backend
./gradlew bootRun
# โ†’ http://localhost:8080 ์—์„œ ์‹คํ–‰

# 4. ํ”„๋ก ํŠธ์—”๋“œ ์‹คํ–‰ (์ƒˆ ํ„ฐ๋ฏธ๋„, ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์—์„œ)
cd ../frontend
npm install
npm run dev
# โ†’ http://localhost:5173 ์—์„œ ์‹คํ–‰

๋ฐ๋ชจ ํ…Œ์ŠคํŠธ

  1. ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:5173 ์ ‘์†
  2. ๋งŒ๋“ค๊ธฐ ํด๋ฆญ โ†’ data/dummy/kakao_sample.txt ํŒŒ์ผ ์—…๋กœ๋“œ
  3. ๋Œ€ํ™” ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™•์ธ ํ›„ ๋‹ค์Œ
  4. ์ฑ… ์ œ๋ชฉยทํŒํ˜•ยทํ…œํ”Œ๋ฆฟ ์„ ํƒ ํ›„ ์ฑ… ์ƒ์„ฑ
  5. ์™„๋ฃŒ ํ›„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋กœ ํŽ˜์ด์ง€๋ณ„ ์ธ๋„ค์ผ ํ™•์ธ
  6. ์ฃผ๋ฌธ ํŽ˜์ด์ง€์—์„œ ๋ฐฐ์†ก ์ •๋ณด ์ž…๋ ฅ ๋ฐ ์ฃผ๋ฌธ

3. ์‚ฌ์šฉํ•œ API ๋ชฉ๋ก

๋ฉ”์„œ๋“œ ์—”๋“œํฌ์ธํŠธ ์šฉ๋„
GET /book-specs ํŒํ˜•(์ฑ… ๊ทœ๊ฒฉ) ๋ชฉ๋ก ์กฐํšŒ
GET /book-specs/{uid} ํŒํ˜• ์ƒ์„ธ ์กฐํšŒ (pageMin/pageMax/pageIncrement)
GET /templates ํ…œํ”Œ๋ฆฟ ๋ชฉ๋ก ์กฐํšŒ (ํ‘œ์ง€/๋‚ด์ง€ ํ•„ํ„ฐ)
GET /templates/{uid} ํ…œํ”Œ๋ฆฟ ์ƒ์„ธ ์กฐํšŒ (ํŒŒ๋ผ๋ฏธํ„ฐ ์ •์˜)
POST /books ์ƒˆ ์ฑ… ์ƒ์„ฑ (draft)
GET /books ์ฑ… ๋ชฉ๋ก ์กฐํšŒ / ๋‹จ๊ฑด ์กฐํšŒ (?bookUid=)
DELETE /books/{bookUid} ์ฑ… ์‚ญ์ œ
POST /books/{bookUid}/cover ํ‘œ์ง€ ์ƒ์„ฑ (ํ…œํ”Œ๋ฆฟ + ํŒŒ๋ผ๋ฏธํ„ฐ + ์ด๋ฏธ์ง€)
POST /books/{bookUid}/contents ๋‚ด์ง€ ์ถ”๊ฐ€ (๋Œ€ํ™” ํ…์ŠคํŠธ + ์ด๋ฏธ์ง€)
DELETE /books/{bookUid}/contents ๋‚ด์ง€ ์ดˆ๊ธฐํ™”
POST /books/{bookUid}/finalize ์ฑ… ์ตœ์ข…ํ™”
POST /render/page-thumbnail ํŽ˜์ด์ง€ ์ธ๋„ค์ผ ๋ Œ๋”๋ง ์š”์ฒญ
GET /render/thumbnail/{bookUid}/{fileName} ๋ Œ๋”๋ง๋œ ์ธ๋„ค์ผ ์ด๋ฏธ์ง€ ์กฐํšŒ
POST /orders/estimate ์ฃผ๋ฌธ ๊ฒฌ์  ์กฐํšŒ
POST /orders ์ฃผ๋ฌธ ์ƒ์„ฑ (์ถฉ์ „๊ธˆ ๊ฒฐ์ œ)
GET /orders ์ฃผ๋ฌธ ๋ชฉ๋ก ์กฐํšŒ
GET /orders/{orderUid} ์ฃผ๋ฌธ ์ƒ์„ธ ์กฐํšŒ
POST /orders/{orderUid}/cancel ์ฃผ๋ฌธ ์ทจ์†Œ
GET /credits ์ถฉ์ „๊ธˆ ์ž”์•ก ์กฐํšŒ

4. AI ๋„๊ตฌ ์‚ฌ์šฉ ๋‚ด์—ญ

AI ๋„๊ตฌ ํ™œ์šฉ ๋‚ด์šฉ
GitHub Copilot (Claude Opus 4.6) React + Spring Boot ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์„ค๊ณ„, ๊ธฐ๋Šฅ ๊ตฌํ˜„, ์—๋Ÿฌ ์ˆ˜์ •
GitHub Copilot (Claude Sonnet 4.6) ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ์›์ธ ๋ถ„์„ ๋ฐ ์ˆ˜์ •
Google Gemini (Gemini 3.1) ์นด์นด์˜คํ†ก ๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ž‘์„ฑ (kakao_sample.txt)
Claude Code (Claude Opus 4.6) UX/UI ๊ฐœ์„  โ€” TossยทSendy ์Šคํƒ€์ผ ๋””์ž์ธ ์ฐธ๊ณ  ๋ฐ CSS ์ž‘์„ฑ ๋ณด์กฐ

5. ์„ค๊ณ„ ์˜๋„

์™œ "๋Œ€ํ™”๋ฅผ ์ฑ…์œผ๋กœ"์ธ๊ฐ€?

๊ธฐ์กด ํฌํ† ๋ถ ์„œ๋น„์Šค๋Š” ์‚ฌ์ง„ ์ค‘์‹ฌ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์นด์นด์˜คํ†ก ๋Œ€ํ™”์—๋Š” ์‚ฌ์ง„์œผ๋กœ ๋‹ด์„ ์ˆ˜ ์—†๋Š” ๊ฐ์ •, ์œ ๋จธ, ๋งฅ๋ฝ์ด ๊ณ ์Šค๋ž€ํžˆ ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ„ํ„ฐ๋ถ์€ ์ด ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฌผ๋ฆฌ์  ์ฑ…์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ, ๊ธฐ์กด ํฌํ† ๋ถ๊ณผ๋Š” ์ฐจ๋ณ„ํ™”๋œ ๊ฐ์„ฑ ๊ธฐ๋…ํ’ˆ ์‹œ์žฅ์„ ๊ณต๋žตํ•ฉ๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ€๋Šฅ์„ฑ

  • ์‹œ์žฅ: ์กธ์—… ์‹œ์ฆŒ, ๋ฐธ๋Ÿฐํƒ€์ธ๋ฐ์ด, ํฌ๋ฆฌ์Šค๋งˆ์Šค ๋“ฑ ์—ฐ๊ฐ„ ๋ฐ˜๋ณต๋˜๋Š” ์„ ๋ฌผ ์ˆ˜์š”์™€ ๋งž๋ฌผ๋ฆผ
  • ์ง„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ์€ UX: ์นด์นด์˜คํ†ก ๋Œ€ํ™” ๋‚ด๋ณด๋‚ด๊ธฐ โ†’ ํŒŒ์ผ ์—…๋กœ๋“œ โ†’ ์ฃผ๋ฌธ, ๋‹จ 3๋‹จ๊ณ„๋กœ ์™„๋ฃŒ
  • ํ™•์žฅ ๊ฐ€๋Šฅ: ์นด์นด์˜คํ†ก ์™ธ ์ธ์Šคํƒ€ DM, ๋””์Šค์ฝ”๋“œ, ๋ผ์ธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”์‹ ์ €๋กœ ํŒŒ์„œ ํ™•์žฅ ๊ฐ€๋Šฅ
  • ์ˆ˜์ต ๋ชจ๋ธ: Book Print API ์ œ์ž‘ ๋‹จ๊ฐ€์™€ ํŒ๋งค๊ฐ€์˜ ๋งˆ์ง„ + ํ”„๋ฆฌ๋ฏธ์—„ ํ…œํ”Œ๋ฆฟ ์˜ต์…˜

6. ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ์˜ ๊ฐœ์„ ์‚ฌํ•ญ

๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ด 18๊ฑด์˜ ์—๋Ÿฌ ์ˆ˜์ •, 9๊ฑด์˜ UX ๊ฐœ์„ , 2๊ฑด์˜ ๋ฐ์ดํ„ฐ ๊ฐœ์„ ์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ธ ๋‚ด์šฉ์€ developments.md์— ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์—๋Ÿฌ ์ˆ˜์ • ์‚ฌ๋ก€

# ์—๋Ÿฌ ์›์ธ ์š”์•ฝ ํ•ด๊ฒฐ
2 SSL PKIX ์ธ์ฆ์„œ ์˜ค๋ฅ˜ WebClient๊ฐ€ Sandbox SSL ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ๋ชปํ•จ InsecureTrustManagerFactory ์ ์šฉ
5 ํ…œํ”Œ๋ฆฟ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜๋ช… ๋ถˆ์ผ์น˜ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์ด ์‹ค์ œ API ์ŠคํŽ™๊ณผ ๋‹ค๋ฆ„ ํ…œํ”Œ๋ฆฟ ์ƒ์„ธ ์กฐํšŒ ํ›„ ๋™์  ๋งคํ•‘
10 ์ฑ… ๋‹จ๊ฑด ์กฐํšŒ 405 GET /books/{uid} ๋ฏธ์ง€์› ๋ชฉ๋ก ์กฐํšŒ ํ›„ ํ•„ํ„ฐ๋ง โ†’ ์ดํ›„ ๋‹จ๊ฑด ์กฐํšŒ API ์ถ”๊ฐ€
16 ๋‚ด์ง€ ๋นˆ ํŽ˜์ด์ง€ ์•Œ๋ฆผ์žฅB์— ๋ณธ๋ฌธ ํ…์ŠคํŠธ ํ•„๋“œ ์—†์Œ ์ผ๊ธฐ์žฅB(diaryText ๋ณด์œ ) ์ž๋™ ์„ ํƒ

์ฃผ์š” UX ๊ฐœ์„  ์‚ฌ๋ก€

# ๊ฐœ์„  ์„ค๋ช…
1 ์šฐํŽธ๋ฒˆํ˜ธ ๊ฒ€์ƒ‰ Daum ์šฐํŽธ๋ฒˆํ˜ธ ์„œ๋น„์Šค ์—ฐ๋™, ์ฃผ์†Œ ์ž๋™์ž…๋ ฅ
7 Toss/Sendy ์Šคํƒ€์ผ ๋””์ž์ธ Pretendard ํฐํŠธ, ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜ ๋„ค๋น„, ๋ผ์šด๋“œ ์ปดํฌ๋„ŒํŠธ
8 ํ™ˆํŽ˜์ด์ง€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ…์ŠคํŠธ ๋กœํ…Œ์ด์…˜, ์Šฌ๋ผ์ด๋“œ ๋ฐฐ๋„ˆ, ์Šคํฌ๋กค ํŽ˜์ด๋“œ์ธ, ์นด์šดํ„ฐ
9 ํŽ˜์ด์ง€ ์ธ๋„ค์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ Œ๋”๋ง API ์—ฐ๋™, ์ขŒ์šฐ ํ™”์‚ดํ‘œ ๋„ค๋น„๊ฒŒ์ด์…˜, ์ธ๋„ค์ผ ๊ทธ๋ฆฌ๋“œ

7. ๋” ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋‹ค๋ฉด

๋Œ€ํ™” ํ…์ŠคํŠธ ์Šคํƒ€์ผ๋ง

ํ˜„์žฌ ๋Œ€ํ™” ๋‚ด์šฉ์ด ํŽ˜์ด์ง€์— ๋‹จ์ˆœ ํ…์ŠคํŠธ ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐœ์‹ ์ž ์ด๋ฆ„, ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ, ์‹œ๊ฐ„์ด ๊ตฌ๋ถ„ ์—†์ด ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋˜์–ด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ณ , ํฌํ† ๋ถ์œผ๋กœ์„œ์˜ ๊ฐ์„ฑ์  ์™„์„ฑ๋„๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋” ์žˆ์—ˆ๋‹ค๋ฉด:

  • ๋ฐœ์‹ ์ž๋ณ„ ์ปฌ๋Ÿฌ ๊ตฌ๋ถ„ โ€” ์ฐธ์—ฌ์ž๋งˆ๋‹ค ๊ณ ์œ  ์ƒ‰์ƒ ๋ถ€์—ฌ, ์ฑ„ํŒ… ์•ฑ์ฒ˜๋Ÿผ ์‹œ๊ฐ์  ๊ตฌ๋ถ„
  • ๋ฉ”์‹œ์ง€ ๋ฒ„๋ธ” ๋ ˆ์ด์•„์›ƒ โ€” ์ขŒ/์šฐ ๋งํ’์„  ํ˜•ํƒœ๋กœ ๋Œ€ํ™” ํ๋ฆ„ ์žฌํ˜„
  • ์ปค์Šคํ…€ ํฐํŠธ ์ ์šฉ โ€” ์†๊ธ€์”จ ํฐํŠธ, ์„ธ๋ฆฌํ”„/์‚ฐ์„ธ๋ฆฌํ”„ ์„ ํƒ ์˜ต์…˜
  • ๋‚ ์งœ ๊ตฌ๋ถ„์„  โ€” ๋‚ ์งœ๊ฐ€ ๋ฐ”๋€” ๋•Œ ์‹œ๊ฐ์  ๊ตฌ๋ถ„์„  ์‚ฝ์ž…
  • ์ด๋ชจ์ง€/์ด๋ชจํ‹ฐ์ฝ˜ ๋ Œ๋”๋ง โ€” ํ…์ŠคํŠธ ์ด๋ชจ์ง€๋ฅผ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹œ๊ฐ์  ํ’์„ฑํ•จ ์ถ”๊ฐ€
  • ์‚ฌ์ง„ ๋ฉ”์‹œ์ง€ ์ธ๋ผ์ธ ํ‘œ์‹œ โ€” "์‚ฌ์ง„" ํ…์ŠคํŠธ ๋Œ€์‹  ์‹ค์ œ ์ด๋ฏธ์ง€ ์‚ฝ์ž… (์นด์นด์˜คํ†ก ๋ฏธ๋””์–ด ํŒŒ์ผ ์—ฐ๋™)

์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • ๋ฉ€ํ‹ฐ ๋ฉ”์‹ ์ € ์ง€์› โ€” ์ธ์Šคํƒ€ DM, ๋ผ์ธ, ๋””์Šค์ฝ”๋“œ ๋Œ€ํ™” ํŒŒ์„œ ์ถ”๊ฐ€
  • ์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ ๋นŒ๋” โ€” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒยท์ƒ‰์ƒยทํฐํŠธ๋ฅผ ์กฐํ•ฉํ•˜๋Š” ์—๋””ํ„ฐ
  • ๋Œ€ํ™” ํ†ต๊ณ„ ๋Œ€์‹œ๋ณด๋“œ โ€” ๋Œ€ํ™” ์ฐธ์—ฌ์ž๋ณ„ ๋ฉ”์‹œ์ง€ ์ˆ˜, ์ž์ฃผ ์“ด ๋‹จ์–ด, ํ™œ๋™ ์‹œ๊ฐ„๋Œ€ ๋ถ„์„ ํŽ˜์ด์ง€
  • ๋งŒ์กฑ๋„ ํ‰๊ฐ€ ์‹œ์Šคํ…œ โ€” ์ฃผ๋ฌธ ์™„๋ฃŒ ํ›„ ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐยท๋ณ„์  ์ˆ˜์ง‘ (DB ๋„์ž… ํ•„์š”)
  • ์‚ฌ์šฉ์ž ์ธ์ฆ โ€” ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…์œผ๋กœ ๊ฐœ์ธ๋ณ„ ์ฑ…ยท์ฃผ๋ฌธ ๊ด€๋ฆฌ
  • ์†Œ์…œ ๊ณต์œ  โ€” ์™„์„ฑ๋œ ์ฑ… ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋งํฌ๋ฅผ ์นด์นด์˜คํ†ก/์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ๋กœ ๊ณต์œ 

8. ๊ธฐ์ˆ  ์Šคํƒ

์˜์—ญ ๊ธฐ์ˆ 
Frontend React 19 (Vite 8 + TypeScript), MUI v7, React Router v7, Axios
Backend Spring Boot 3.4.4 (Java 23), WebClient (WebFlux), Gradle 8.12
API SweetBook Book Print API (Sandbox)
๋””์ž์ธ Pretendard Variable ํฐํŠธ, Toss/Sendy ์Šคํƒ€์ผ UI(๋ ˆํผ๋Ÿฐ์Šค)

9. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

SWEETBOOK/
โ”œโ”€โ”€ frontend/                  # React (Vite + TypeScript)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/        # UploadStep, PreviewStep, SettingsStep, CompleteStep, Layout
โ”‚   โ”‚   โ”œโ”€โ”€ pages/             # HomePage, CreatePage, BooksPage, BookPreviewPage,
โ”‚   โ”‚   โ”‚                      # OrderPage, OrdersPage
โ”‚   โ”‚   โ””โ”€โ”€ services/          # API ํด๋ผ์ด์–ธํŠธ (api.ts)
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ backend/                   # Spring Boot (Java)
โ”‚   โ”œโ”€โ”€ src/main/java/.../chatterbook/
โ”‚   โ”‚   โ”œโ”€โ”€ config/            # WebClient (SSL), CORS, GlobalExceptionHandler
โ”‚   โ”‚   โ”œโ”€โ”€ controller/        # BookController, BookSpecController, ChatParserController,
โ”‚   โ”‚   โ”‚                      # CreditController, OrderController, RenderController,
โ”‚   โ”‚   โ”‚                      # TemplateController
โ”‚   โ”‚   โ”œโ”€โ”€ service/           # BookPrintApiService (์™ธ๋ถ€ API ์—ฐ๋™)
โ”‚   โ”‚   โ”œโ”€โ”€ parser/            # ์นด์นด์˜คํ†ก ๋Œ€ํ™” ํŒŒ์„œ
โ”‚   โ”‚   โ””โ”€โ”€ dto/               # ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด
โ”‚   โ””โ”€โ”€ build.gradle
โ”œโ”€โ”€ data/dummy/                # ๋”๋ฏธ ๋ฐ์ดํ„ฐ (์นด์นด์˜คํ†ก ์ƒ˜ํ”Œ ๋Œ€ํ™” 303๊ฑด)
โ”œโ”€โ”€ developments.md            # ๊ฐœ๋ฐœ ๊ฐœ์„ ์‚ฌํ•ญ ์ƒ์„ธ ๊ธฐ๋ก (์—๋Ÿฌ 18๊ฑด, UX 9๊ฑด, ๋ฐ์ดํ„ฐ 2๊ฑด)
โ”œโ”€โ”€ .env                       # ํ™˜๊ฒฝ๋ณ€์ˆ˜ (API Key โ€” Git ๋ฏธํฌํ•จ)
โ””โ”€โ”€ README.md

์•„ํ‚คํ…์ฒ˜

[์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €]
     โ”‚
     โ”œโ”€โ”€ React SPA (Vite + TypeScript)
     โ”‚    โ””โ”€โ”€ Axios โ†’ /api/* (Vite ํ”„๋ก์‹œ โ†’ localhost:8080)
     โ”‚
[Spring Boot ์„œ๋ฒ„ :8080]
     โ”‚
     โ”œโ”€โ”€ ChatParserController โ€” ์นด์นด์˜คํ†ก ๋Œ€ํ™” ํŒŒ์‹ฑ
     โ”œโ”€โ”€ BookController โ€” ์ฑ… ์ƒ์„ฑยทํ‘œ์ง€ยท๋‚ด์ง€ยท์ตœ์ข…ํ™”
     โ”œโ”€โ”€ RenderController โ€” ํŽ˜์ด์ง€ ์ธ๋„ค์ผ ๋ Œ๋”๋งยท์กฐํšŒ
     โ”œโ”€โ”€ OrderController โ€” ๊ฒฌ์ ยท์ฃผ๋ฌธยท์ทจ์†Œ
     โ”œโ”€โ”€ CreditController โ€” ์ถฉ์ „๊ธˆ ์กฐํšŒ
     โ”œโ”€โ”€ BookSpecController โ€” ํŒํ˜• ์กฐํšŒ
     โ”œโ”€โ”€ TemplateController โ€” ํ…œํ”Œ๋ฆฟ ์กฐํšŒ
     โ”‚
     โ””โ”€โ”€ BookPrintApiService โ†’ WebClient (SSL)
              โ”‚
     [Book Print API (Sandbox)]

API Key ๋ณด์•ˆ

  • API Key๋Š” ๋ฃจํŠธ .env ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ .gitignore์— ๋“ฑ๋ก๋˜์–ด Git์— ํฌํ•จ๋˜์ง€ ์•Š์Œ
  • spring-dotenv ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐฑ์—”๋“œ์—์„œ ๋กœ๋“œ
  • ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋ฐฑ์—”๋“œ ํ”„๋ก์‹œ(/api/*)๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์™ธ๋ถ€ API์— ์ ‘๊ทผ
  • ํด๋ผ์ด์–ธํŠธ ์ธก์— API Key๊ฐ€ ์ ˆ๋Œ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์Œ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors