File size: 12,359 Bytes
e221c83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

---
## ๐Ÿš€ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด ๋ฐ ๊ฐœ๋ฐœ ์˜ˆ์ • (Upcoming Tasks)

1.  **๋‹ฌ๋ ฅ ๋””์ž์ธ ๊ฐœ์„ :** ํˆฌ๋ช… ์Šคํƒ€์ผ์—์„œ ๊ฐ€๋…์„ฑ ๋†’์€ '๋ชจ๋˜ ์นด๋“œ(Modern Card)' ์Šคํƒ€์ผ๋กœ ๋ณ€๊ฒฝ.
2.  **๊ฐ์ • ์ด๋ชจ์ง€ ํ†ค ๋งค์นญ:** ์ €์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌ์Šฌ(Orb) ์ƒ‰์ƒ์„ ๊ฐ์ •๋ณ„ ๋ถ„์œ„๊ธฐ์— ๋งž๊ฒŒ ์„ธ๋ถ€ ์กฐ์ •.
3.  **์šฉ์–ด ์ง๊ด€ํ™”:** ์ถ”์ฒœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ช…์นญ ๋ณ€๊ฒฝ ('์ˆ˜์šฉ/์ „ํ™˜' โ†’ **'๊ณต๊ฐ/ํ™˜๊ธฐ'**) ๋ฐ ๊ด€๋ จ ๋กœ์ง ๋™๊ธฐํ™”.
4.  **์ €์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ณ ๋„ํ™”:** ๊ตฌ์Šฌ์ด ํ†ตํ†ต ํŠ€๊ธฐ๋‹ค(Bouncing) '๋‚˜์˜ ์ผ๊ธฐ' ๋ฉ”๋‰ด๋กœ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋‚ ์•„๊ฐ€๋Š”(Super Jump) ํšจ๊ณผ ๊ตฌํ˜„.
5.  **๋งˆ์ดํŽ˜์ด์ง€ '๊ธฐ์–ต์˜ ์œ ๋ฆฌ๋ณ‘' ์‹œ๊ฐํ™” ๊ตฌํ˜„.**

---

## ๐Ÿ“… 2025๋…„ 11์›” 27์ผ
### ์ฃผ์ œ: UI ๋””ํ…Œ์ผ ์™„์„ฑ๋„ ํ–ฅ์ƒ & ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ณ ๋„ํ™” (Polishing)

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

#### 1. ๋งค์ง ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” (Magic Capsule Navbar)
-   **๋””์ž์ธ:** ๊ธฐ์กด ํ…์ŠคํŠธ ๋‚˜์—ด ๋ฐฉ์‹์„ ํƒˆํ”ผํ•˜์—ฌ, ๊ณต์ค‘์— ๋–  ์žˆ๋Š” **์บก์А ํ˜•ํƒœ์˜ ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜(Glassmorphism)** ๋””์ž์ธ ์ ์šฉ.
-   **์ธํ„ฐ๋ž™์…˜:** ๋งˆ์šฐ์Šค์˜ ์›€์ง์ž„์— ๋”ฐ๋ผ ํ•˜์–€์ƒ‰ ํ•˜์ด๋ผ์ดํŠธ ๋ฐ”(`nav-marker`)๊ฐ€ ๋ฉ”๋‰ด ์‚ฌ์ด๋ฅผ ๋ฌผ ํ๋ฅด๋“ฏ ๋”ฐ๋ผ๋‹ค๋‹ˆ๋Š” **Sliding Magic Line** ํšจ๊ณผ ๊ตฌํ˜„.

#### 2. ๋Œ€์‹œ๋ณด๋“œํ˜• ๋‹ฌ๋ ฅ (Modern Card Calendar)
-   **์Šคํƒ€์ผ:** ํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ ๋Œ€์‹  ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚œ **'๋ชจ๋˜ ์นด๋“œ(Modern Card)'** ์Šคํƒ€์ผ๋กœ ๋ณ€๊ฒฝ. ํ—ค๋”์— ํ…Œ๋งˆ ์ƒ‰์ƒ์„ ์ ์šฉํ•˜์—ฌ ์ง‘์ค‘๋„ ํ–ฅ์ƒ.
-   **๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”:** ์š”์ผ(Header)๊ณผ ๋‚ ์งœ(Grid)์˜ ์ •๋ ฌ์ด ์–ด๊ธ‹๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ CSS `flex-basis: 14.28%` ๊ฐ•์ œ ์ ์šฉ์„ ํ†ตํ•ด 1:1๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ๋งž์ถค.
-   **์‹œ๊ฐํ™”:** ๋‚ ์งœ ์•„๋ž˜์— ํ•ด๋‹น ์ผ๊ธฐ์˜ ๊ฐ์ •์„ ๋‚˜ํƒ€๋‚ด๋Š” **์ƒ‰์ƒ ์ (Dot)**์ด ์ž๋™์œผ๋กœ ํ‘œ์‹œ๋˜๋„๋ก ๊ตฌํ˜„.

#### 3. ์ €์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ณ ๋„ํ™” (Bouncing & Super Jump)
-   **๋ฌผ๋ฆฌ ํšจ๊ณผ:** ๋‹จ์ˆœํžˆ ๋‚ ์•„๊ฐ€๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ **"๋ฐ”๋‹ฅ์— ํ†ตํ†ต ํŠ€๊ธฐ๋‹ค๊ฐ€(Bouncing) ์—๋„ˆ์ง€๋ฅผ ๋ชจ์•„ ๋ชฉํ‘œ์ง€์ ์œผ๋กœ ์Šˆ์›… ๋‚ ์•„๊ฐ€๋Š”(Super Jump)"** ์—ญ๋™์ ์ธ ์‹œํ€€์Šค๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ.
-   **๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”:** CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ๊ฐ„(5.1์ดˆ)๊ณผ ์„œ๋ฒ„ ์ €์žฅ ์š”์ฒญ(`fetch`)์„ `Promise.all`๋กœ ๋™๊ธฐํ™”ํ•˜์—ฌ, ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ ์ €์žฅ์ด ์•ˆ์ „ํ•˜๊ฒŒ ์™„๋ฃŒ๋œ ํ›„ ํŽ˜์ด์ง€๊ฐ€ ์ด๋™๋˜๋„๋ก ๋กœ์ง ๊ฐ•ํ™”.

#### 4. ๊ฐ์„ฑ ๋””ํ…Œ์ผ ๋ฐ ์šฉ์–ด ๊ฐœ์„ 
-   **์šฉ์–ด ์ง๊ด€ํ™”:** ์ถ”์ฒœ ์นดํ…Œ๊ณ ๋ฆฌ ๋ช…์นญ์„ '์ˆ˜์šฉ/์ „ํ™˜'์—์„œ ๋” ๊ฐ์„ฑ์ ์ธ **'๊ณต๊ฐ/ํ™˜๊ธฐ'**๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ํ”„๋ก ํŠธ์—”๋“œ ํŒŒ์‹ฑ ๋กœ์ง์„ ์ด์— ๋งž์ถฐ ์ˆ˜์ •.
-   **์ถ”์ฒœ ์š”์•ฝ:** AI์˜ ๊ธด ์ถ”์ฒœ ์ด์œ ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ํ•ต์‹ฌ ์ •๋ณด(์ข…๋ฅ˜, ์ œ๋ชฉ)๋งŒ ๊น”๋”ํ•˜๊ฒŒ ๋ณด์—ฌ์ฃผ๋„๋ก ํ…์ŠคํŠธ ์ •์ œ ํ•จ์ˆ˜(`extractSummary`) ์ ์šฉ.
-   **ํ†ค ๋งค์นญ:** ์ €์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ ์ƒ์„ฑ๋˜๋Š” '๊ธฐ์–ต ๊ตฌ์Šฌ'์˜ ์ƒ‰์ƒ์„ ๊ฐ ๊ฐ์ •(๊ธฐ์จ=Gold, ์Šฌํ””=SteelBlue ๋“ฑ)์˜ ๊ณ ์œ  ๋ถ„์œ„๊ธฐ์— ๋งž์ถฐ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •.

---

## ๐Ÿ“… 2025๋…„ 11์›” 25์ผ
### ์ฃผ์ œ: ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ†ตํ•ฉ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •

`test_animation.html`์—์„œ ๊ฐœ๋ฐœ๋œ ์ฑ… ์ ‘๊ธฐ ๋ฐ ๊ตฌ์Šฌ ๋ฐ”์šด์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜์„ `main.html`์— ํ†ตํ•ฉํ•˜๊ณ  ๊ด€๋ จ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

#### 1. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ธฐ๋Šฅ ๊ฐœ์„  ๋ฐ ํ†ตํ•ฉ
-   **์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์ž‘ ๋ฌธ์ œ ํ•ด๊ฒฐ**: `playFullAnimation` ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋˜ ์ •์˜๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜(`rect`) ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹œ์ž‘๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
-   **๊ตฌ์Šฌ ๋ฐ”์šด์Šค ์ •๊ตํ™”**: ์ค‘์•™์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ํ™”๋ฉด ์˜ค๋ฅธ์ชฝ ๊ฐ€์žฅ์ž๋ฆฌ์—์„œ ์ •ํ™•ํžˆ ๋งˆ๋ฌด๋ฆฌ๋˜๋Š” 6ํšŒ ๋ฐ”์šด์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐ”์šด์Šค์˜ ์ˆ˜ํ‰ ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ž์—ฐ์Šค๋Ÿฌ์šด ์›€์ง์ž„์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
-   **์ฑ… โ†’ ๊ตฌ์Šฌ ๋ณ€์‹  ์ธํŠธ๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„**:
    -   ์ฑ…์ด ๊ตฌ๊ฒจ์ง€๋“ฏ ์ค‘์•™์œผ๋กœ ๋ชจ์—ฌ ๊ตฌ์Šฌ๋กœ ๋ณ€ํ•˜๋Š” 1.5์ดˆ(์ฑ… ์‘์ถ•) + 5์ดˆ(๊ตฌ์Šฌ ๋ฐ”์šด์Šค) = ์ด 6.5์ดˆ ๊ธธ์ด์˜ ์ธํŠธ๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
    -   ์ฑ…์ด ๋ชจ์ด๋Š” ๋™์•ˆ ๊ตฌ์Šฌ์˜ ๊ฐ์ • ์ƒ‰์ƒ์œผ๋กœ ๋ฐฐ๊ฒฝ์ƒ‰์ด ๋ณ€ํ•˜๋„๋ก ํ•˜์—ฌ ์‹œ๊ฐ์  ์—ฐ๊ฒฐ์„ฑ์„ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
    -   ์ฑ…์ด ๋ชจ์ด๋Š” ๋™์ž‘์€ '์ ‘ํžˆ๋Š”' ๋Œ€์‹  ํšŒ์ „ ์—†์ด '์ค‘์•™์œผ๋กœ ์‘์ถ•๋˜๋Š”' ๋А๋‚Œ์„ ์ฃผ๋„๋ก `transform` ์†์„ฑ์„ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    -   ์‘์ถ•๋˜๋Š” ์ฑ…์ด ์ตœ์ข…์ ์œผ๋กœ ๊ตฌ์Šฌ ๋ชจ์–‘๊ณผ ์ž˜ ์—ฐ๊ฒฐ๋˜๋„๋ก `borderRadius` ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋‹ค์‹œ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.
    -   ์ฑ…์ด ์‚ฌ๋ผ์ง€๋Š” ๋А๋‚Œ ์—†์ด ๊ตฌ์Šฌ๋กœ ์ „ํ™˜๋˜๋„๋ก, ์ฑ…์ด ์‚ฌ๋ผ์ง€๋Š” ๋™์•ˆ ๊ตฌ์Šฌ์ด ๋™์‹œ์— ๋‚˜ํƒ€๋‚˜๋Š” ํฌ๋กœ์ŠคํŽ˜์ด๋“œ(cross-fade) ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋“œ๋Ÿฌ์šด ๋ณ€์‹ ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
-   **`main.html` ํ†ตํ•ฉ**: ๊ฐœ๋ฐœ๋œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋กœ์ง์„ `src/templates/static/js/main_logic.js` ํŒŒ์ผ๋กœ ์ด์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์ด์ œ '์ผ๊ธฐ์žฅ์— ์ €์žฅํ•˜๊ธฐ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

#### 2. ๋ฆฌ๋””๋ ‰์…˜ ๋ฒ„๊ทธ ์ˆ˜์ •
-   **๋ฌธ์ œ**: ์• ๋‹ˆ๋ฉ”์ด์…˜ ์™„๋ฃŒ ํ›„ `main_logic.js`์—์„œ `/diary` ๊ฒฝ๋กœ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•  ๋•Œ 'Not Found' ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
-   **์›์ธ**: ๋ฐฑ์—”๋“œ์— `/diary` ๋ผ์šฐํŠธ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๊ณ , ์‹ค์ œ ์ผ๊ธฐ ๋ชฉ๋ก ํŽ˜์ด์ง€๋Š” `/my_diary` ๋ผ์šฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
-   **ํ•ด๊ฒฐ**: `main_logic.js` ํŒŒ์ผ ๋‚ด `window.location.href`์˜ ๊ฒฝ๋กœ๋ฅผ `/diary`์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ์ธ `/my_diary`๋กœ ์ˆ˜์ •ํ•˜์—ฌ ๋ฆฌ๋””๋ ‰์…˜ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

---
## ๐Ÿ“… 2025๋…„ 11์›” 23์ผ
### ์ฃผ์ œ: ๋ฉ”์ธ ํ™”๋ฉด UI/UX ๋Œ€๊ทœ๋ชจ ๊ฐœํŽธ & ์ธํ„ฐ๋ž™์…˜ ๊ฐ•ํ™”

์‚ฌ์šฉ์ž๊ฐ€ ์ผ๊ธฐ๋ฅผ ์“ฐ๋Š” ํ–‰์œ„์— ๋” ๊นŠ์ด ๋ชฐ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๋ฉ”์ธ ํ™”๋ฉด์˜ ๋””์ž์ธ ์–ธ์–ด๋ฅผ '๋””์ง€ํ„ธ'์—์„œ '์•„๋‚ ๋กœ๊ทธ ๊ฐ์„ฑ'์œผ๋กœ ์ „๋ฉด ๊ต์ฒดํ•˜๊ณ , ์ €์žฅ ๊ณผ์ •์— ์Šคํ† ๋ฆฌํ…”๋ง์„ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค.

#### 1. ํŽผ์ณ์ง„ ๋‹ค์ด์–ด๋ฆฌ (Book Spread Layout)
-   **๋ฌธ์ œ:** ๊ธฐ์กด์˜ ๋ถ„๋ฆฌ๋œ ์ž…๋ ฅ์ฐฝ(Left)๊ณผ ๊ฒฐ๊ณผ์ฐฝ(Right)์€ ์‹œ์„ ์ด ๋ถ„์‚ฐ๋˜๊ณ , '์ผ๊ธฐ์žฅ'์ด๋ผ๋Š” ์•ฑ์˜ ์ •์ฒด์„ฑ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ๋ถ€์กฑํ•จ.
-   **ํ•ด๊ฒฐ:** ํ™”๋ฉด ์ „์ฒด๋ฅผ ์•„์šฐ๋ฅด๋Š” **'ํŽผ์ณ์ง„ ๋‹ค์ด์–ด๋ฆฌ'** ํ˜•ํƒœ์˜ ๋ ˆ์ด์•„์›ƒ ๋„์ž….
-   **๊ตฌํ˜„ ๋””ํ…Œ์ผ:**
    -   **Wide Layout:** `max-width: 1600px`, `min-width: 1200px`๋ฅผ ์ ์šฉํ•˜์—ฌ ์‹ค์ œ ์ฑ…์ƒ ์œ„์— ๋…ธํŠธ๋ฅผ ํŽผ์นœ ๋“ฏํ•œ ์‹œ์›ํ•œ ๊ฐœ๋ฐฉ๊ฐ ํ™•๋ณด.
    -   **Clean UI:** ์ถ”์ฒœ ์ฝ˜ํ…์ธ ๊ฐ€ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ์Šคํฌ๋กค์€ ๋˜์ง€๋งŒ ์Šคํฌ๋กค๋ฐ”(Bar)๋Š” ์ˆจ๊ฒจ(`scrollbar-width: none`) ๊น”๋”ํ•จ ์œ ์ง€.
    -   **Line-clamp:** ์ถ”์ฒœ ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด `line-clamp`๋กœ ๋ง์ค„์ž„ ์ฒ˜๋ฆฌํ•˜๊ณ , Hover ์‹œ ์ „์ฒด ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ธํ„ฐ๋ž™์…˜ ์ถ”๊ฐ€.

#### 2. '๊ธฐ์–ต์˜ ๊ตฌ์Šฌ' ์ €์žฅ ์• ๋‹ˆ๋ฉ”์ด์…˜ (Memory Orb & Bouncing)
-   **๊ธฐํš ์˜๋„:** ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†ก(Submit)ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, **"๋‚˜์˜ ์†Œ์ค‘ํ•œ ํ•˜๋ฃจ๊ฐ€ ๊ธฐ์–ต์˜ ๊ตฌ์Šฌ์ด ๋˜์–ด ๋ณด๊ด€๋œ๋‹ค"**๋Š” ๋ฉ”ํƒ€ํฌ(์˜ํ™” *์ธ์‚ฌ์ด๋“œ ์•„์›ƒ* ๋ชจํ‹ฐ๋ธŒ)๋ฅผ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•จ.
-   **์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ๋‚˜๋ฆฌ์˜ค:**
    1.  **์‘์ถ• (Morph):** ์ €์žฅ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, ๊ฑฐ๋Œ€ํ–ˆ๋˜ ๋‹ค์ด์–ด๋ฆฌ๊ฐ€ ์ˆœ์‹๊ฐ„์— ์ž‘์•„์ง€๋ฉฐ ๋™๊ทธ๋ž€ ๊ตฌ์Šฌ๋กœ ๋ณ€์‹ .
    2.  **๊ฐ์ •์˜ ์ƒ‰:** AI๊ฐ€ ๋ถ„์„ํ•œ ๊ฐ์ •(๊ธฐ์จ=๋…ธ๋ž‘, ์Šฌํ””=ํŒŒ๋ž‘ ๋“ฑ)์— ๋งž์ถฐ ๊ตฌ์Šฌ์˜ ์ƒ‰์ƒ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™”.
    3.  **์—ญ๋™์  ์ด๋™ (Bouncing):** ๊ตฌ์Šฌ์ด ๋ฐ”๋‹ฅ์— ํ†ตํ†ต ํŠ€๊ธฐ๋ฉฐ(Squash & Stretch) ์—๋„ˆ์ง€๋ฅผ ๋ชจ์œผ๋‹ค, ๋งˆ์ง€๋ง‰์— ๋ฉ”๋‰ด(๋ณด๊ด€ํ•จ) ์ชฝ์œผ๋กœ ์Šˆ์›… ๋‚ ์•„๊ฐ.
-   **๊ธฐ์ˆ ์  ๊ตฌํ˜„:**
    -   **Clone Node:** ์›๋ณธ DOM์„ ๊ฑด๋“œ๋ฆฌ๋ฉด ๋ ˆ์ด์•„์›ƒ์ด ๊นจ์ง€๋ฏ€๋กœ, `cloneNode`๋กœ ๋‹ค์ด์–ด๋ฆฌ์˜ ๋ณต์ œ๋ณธ์„ ์ƒ์„ฑํ•˜์—ฌ `fixed` ํฌ์ง€์…˜์œผ๋กœ ๋„์šด ๋’ค ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ.
    -   **Keyframes:** `0%`~`100%` ๊ตฌ๊ฐ„์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด ์œ„์น˜ ์ด๋™(`translate`)๊ณผ ํ˜•ํƒœ ๋ณ€ํ˜•(`scale`, `border-radius`)์„ ๋™์‹œ์— ์ œ์–ด.

#### ๐Ÿ”œ Next Step
-   ์ƒ๋‹จ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”(Navbar)์— 'Sliding Magic Line' ์ธํ„ฐ๋ž™์…˜ ์ ์šฉ ์˜ˆ์ •.
-   ๋งˆ์ดํŽ˜์ด์ง€ '๊ธฐ์–ต์˜ ์œ ๋ฆฌ๋ณ‘' ์‹œ๊ฐํ™” ๊ตฌํ˜„.

---


## ๐Ÿ“… 2025๋…„ 11์›” 21์ผ (UI/UX Refinement)

### Feature: ์ƒˆ๋กœ์šด ํ•˜๋‹จ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”
-   ๊ธฐ์กด ์ƒ๋‹จ ํ—ค๋”๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์ƒˆ๋กœ์šด SVG ๊ธฐ๋ฐ˜ ํ•˜๋‹จ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
-   ์ฃผ์š” ๊ธฐ๋Šฅ์ธ 'ํ™ˆ', '๋‚˜์˜ ์ผ๊ธฐ', '๋งˆ์ดํŽ˜์ด์ง€' ๋ฐ '๋กœ๊ทธ์•„์›ƒ' ๋ฒ„ํŠผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
-   ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ–ˆ์„ ๋•Œ๋งŒ ํ‘œ์‹œ๋˜๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

### Refactor: ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์ธํ„ฐ๋ž™์…˜ ๊ฐœ์„ 
-   **UI ์Šคํƒ€์ผ:** ํฐ์ƒ‰ ๋ฐฐ๊ฒฝ, ์–ด๋‘์šด ์ƒ‰์ƒ์˜ ์•„์ด์ฝ˜ ๋ฐ ํ™œ์„ฑ ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” '๋น› ํšจ๊ณผ(tubelight)'๋ฅผ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. 4๊ฐœ์˜ ์•„์ด์ฝ˜์— ๋งž๊ฒŒ ๋„ˆ๋น„๋ฅผ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
-   **์œ„์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ (CSS ๊ธฐ๋ฐ˜ ๋กœ์ง):** ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ '๋น› ํšจ๊ณผ'์˜ ์œ„์น˜๊ฐ€ ์–ด๊ธ‹๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๋ถˆ์•ˆ์ •ํ•œ JavaScript ํƒ€์ด๋ฐ ๋Œ€์‹  CSS๋งŒ์œผ๋กœ ์œ„์น˜๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋กœ์ง์„ ์ „๋ฉด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    -   ์„œ๋ฒ„์—์„œ ํ˜„์žฌ ํŽ˜์ด์ง€ ์ฃผ์†Œ(`request.endpoint`)์— ๋”ฐ๋ผ `<nav>` ํƒœ๊ทธ์— `active-main-home` ๊ณผ ๊ฐ™์€ ๋™์  ํด๋ž˜์Šค๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
    -   CSS๋Š” ์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ '๋น› ํšจ๊ณผ'์˜ ์ดˆ๊ธฐ `left` ์œ„์น˜๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋ฏ€๋กœ, ๋” ์ด์ƒ ๋ Œ๋”๋ง ์‹œ์ ์˜ ๊ฒฝ์Ÿ ์ƒํƒœ(Race Condition) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
-   **์• ๋‹ˆ๋ฉ”์ด์…˜ ํ”ผ๋“œ๋ฐฑ (JS):** `navigation.js` ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ์ดˆ๊ธฐ ์œ„์น˜ ๊ณ„์‚ฐ์„ ์ „ํ˜€ ํ•˜์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์•„์ด์ฝ˜์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ๋น›์„ ์›€์ง์ด๋Š” ๋‹จ์ˆœํ•œ ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋Œ€ํญ ์ถ•์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

### Feature: ํŽ˜์ด์ง€ ์ „ํ™˜ ํšจ๊ณผ (์ผ์‹œ์  ๋กค๋ฐฑ)
-   ๋ถ€๋“œ๋Ÿฌ์šด ํŽ˜์ด์ง€ ์ด๋™ ๊ฒฝํ—˜์„ ์œ„ํ•ด ํ™”๋ฉด ์ „์ฒด๋ฅผ ๋ฎ๋Š” '์ปคํŠผ' ๋ฐฉ์‹์˜ ์ „ํ™˜ ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
-   ํ•˜์ง€๋งŒ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ์˜ ์ง€์†์ ์ธ ์ถฉ๋Œ ๋ฐ ๋ถˆ์•ˆ์ •์„ฑ ๋ฌธ์ œ๋กœ, ์‚ฌ์ดํŠธ์˜ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์€ **์ผ์‹œ์ ์œผ๋กœ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ธ์Šต๋‹ˆ๋‹ค.** ํ˜„์žฌ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ํƒ์ƒ‰ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

---

## ๐Ÿ“… 2025๋…„ 11์›” 19์ผ
### ์ฃผ์ œ: AI ๋ชจ๋ธ ๊ฐœ์„  ์‹คํ—˜ & ์ดˆ๊ธฐ UI/UX ๊ตฌ์ถ•

#### 1. AI ๋ชจ๋ธ ๊ฐœ์„  ์—ฌ์ •
**์ดˆ๊ธฐ ๋ชจ๋ธ์˜ ํ•œ๊ณ„์™€ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด**
-   **๊ธฐ์กด ๋ชจ๋ธ ์ •ํ™•๋„:** `79.06%`๋กœ, ๋‹ค์†Œ ์•„์‰ฌ์šด ์„ฑ๋Šฅ.
-   **์ƒˆ๋กœ์šด ๊ฐ€์„ค:** NSMC๋Š” '๊ธ์ •/๋ถ€์ •' ๋ถ„์„์— ํŠนํ™”๋˜์–ด ์žˆ์–ด, ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ๋‹ค์ค‘ ๊ฐ์ • ๋ถ„๋ฅ˜(๋Œ€๋ถ„๋ฅ˜)์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จ. NSMC๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ˆ˜๋™ ๊ฐ€์ค‘์น˜๋กœ๋งŒ ํ›ˆ๋ จํ–ˆ์„ ๋•Œ, ์˜คํžˆ๋ ค **์ˆœ์ • ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์•˜์Œ.**
-   **๋ฐฉํ–ฅ ์ „ํ™˜:** ์‚ฌ์šฉ์ž์—๊ฒŒ AI๊ฐ€ ์˜ˆ์ธกํ•œ ๊ฐ์ • ํ™•๋ฅ ์„ ๋ณด์—ฌ์ฃผ๊ณ , ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์˜ ๊ฐ์ •์„ ๊ธฐ๋ณธ์œผ๋กœ ์ถ”์ฒœํ•˜๋˜ **์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ๊ถŒ**์„ ์ œ๊ณตํ•˜๋Š” UX์  ํ•ด๊ฒฐ์ฑ… ๋„์ž….

#### 2. UI/UX ๊ฐœ์„  ์‚ฌํ•ญ
**๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… UX ๊ฐœ์„ : Flip Animation**
-   **ํ•ด๊ฒฐ:** ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด์„ **ํ•˜๋‚˜์˜ '์ฑ…(Book)'** ์ฝ˜์…‰ํŠธ๋กœ ํ†ตํ•ฉ.
-   **๊ตฌํ˜„:** CSS `transform: rotateY(180deg)`๋ฅผ ํ™œ์šฉํ•œ 3D ์ฑ… ๋„˜๊น€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ๋‹จ์ผ ํŽ˜์ด์ง€ ํ„ด(Single Page Turn) ํšจ๊ณผ ์ ์šฉ.

**๊ฐ์ • ๋ถ„์„ ์ •ํ™•๋„ ๋ณด์™„: Emotion Selection UI**
-   **ํ•ด๊ฒฐ:** AI์˜ **ํ™•์‹ ๋„(Confidence Score)**์— ๋”ฐ๋ผ UI๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ.
    -   **ํ™•์‹  (80% ์ด์ƒ):** AI๊ฐ€ ์˜ˆ์ธกํ•œ ๊ฐ์ •์„ ์ •๋‹ต์œผ๋กœ ์ž๋™ ์ฑ„ํƒ.
    -   **๋ถˆํ™•์‹ค (80% ๋ฏธ๋งŒ):** ์ƒ์œ„ 3๊ฐœ ๊ฐ์ •๊ณผ ํ™•๋ฅ ์„ **'๊ฐ์ • ์นฉ(Chips)'** ํ˜•ํƒœ๋กœ ์ œ์•ˆํ•˜์—ฌ ์„ ํƒ๊ถŒ ๋ถ€์—ฌ.

**์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ณดํ˜ธ: ๋ถ„์„๊ณผ ์ €์žฅ ๋‹จ๊ณ„ ๋ถ„๋ฆฌ**
-   **๊ตฌํ˜„:** **`[๋ถ„์„] โ†’ [ํ™•์ธ/์ˆ˜์ •] โ†’ [์ €์žฅ]`** ํ”Œ๋กœ์šฐ ๊ตฌ์ถ•. ์ตœ์ข…์ ์œผ๋กœ '์ €์žฅํ•˜๊ธฐ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ๋งŒ DB์— ์ €์žฅ๋˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ณ  ๋กœ๋”ฉ UI ์ถ”๊ฐ€.

#### 3. KOTE ์‚ฌ์ „ ํ•™์Šต ๋ชจ๋ธ ์‹คํ—˜ ๊ฒฐ๊ณผ
> Colab ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉฐ, ๊ฒฐ๊ณผ๊ฐ€ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€๋Š” ์•Š์•˜์Œ.

-   **์‹คํ—˜ 1 (๊ธฐ๋ณธ):** F1 Score `0.6154`
-   **์‹คํ—˜ 2 (๊ฐ€์ค‘์น˜ ์ ์šฉ):** Accuracy `54.2%`
-   **์‹คํ—˜ 3 (๊ฐ€์ค‘์น˜ ์ œ๊ฑฐ):** Accuracy `58.45%`
-   **๊ฒฐ๋ก :** KOTE ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•œ ์‚ฌ์ „ ํ•™์Šต ๋ชจ๋ธ์€ ์•„์ง ๊ธฐ๋Œ€๋งŒํผ์˜ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์ง€ ๋ชปํ•จ. ์ถ”ํ›„ ๊ฐœ์„  ๋ฐฉํ–ฅ ์žฌ์„ค์ • ํ•„์š”.