๋น๊ฐ๋ฐ์์ ํด๋ก๋ ์ฝ๋ ์ฝ์ง ํ๊ธฐ ์ 2ํ
์ง๋ 1ํธ์์ ๋ด๊ฐ ์ผ์ฃผ์ผ๊ฐ ๋ฐ์ด๋ธ์ฝ๋ฉ์ผ๋ก ๋ง๋ค์ด๋ณธ ๊ฒ๋ค์ด ๋ค์๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํ์๋ค.
- 50๋ ์ด์์ ์๋์ด๋ค์ด ์ฌ์ฉํ ์ ์๋ ์๋จ ์ถ์ฒ ๋ชจ๋ฐ์ผ ์ฑ <- 1ํธ์์ ์ด๋ฏธ ๋ค๋ฃธ
- ๋ฆฌ๋์ด(์ฐ๋ฆฌ ํ์ฌ์์ ์ฐ๋ ํ์คํฌ ๋งค๋์ง๋จผํธ ํด)์ ํฐ์ผ ๋ด์ฉ์ ๋๊ธ์ /translate์ ๋จ๊ธฐ๋ฉด ์->ํ, ํ-> ์ ๋ฒ์ญํด์ฃผ๋ ๋ด
- 54์ผ์ 5๋จ ๋ฌต์ฃผ๊ธฐ๋๋ฅผ ๋์์ฃผ๋ ๋ชจ๋ฐ์ผ ์ฑ
- ๊ฐ์ธ ๋ธ๋ก๊ทธ (์ง๊ธ ์ด ์ฌ์ดํธ! >.<)
- ์นํ๋ก์ฐ์์ CMS ์์ดํ ๋ค์ ์ฝ๊ฒ ์ ๋ฐ์ดํธํ ์ ์๊ฒ ํด์ฃผ๋ ์ฌ๋๋ด
๊ทผ๋ฐ ์์งํ 2๋ 3์ ์ข ๋ผ์ดํธํ ํธ์ด์๊ณ 1, 4, 5๊ฐ ์ข ๋นก์ ๋๋ฐ 1์ ๋ํด์ ์ง๋ ํธ์์ ์ถฉ๋ถํ ๊ธฐ์ ํ ๊ฒ ๊ฐ์ผ๋ ์ค๋ ํธ์์๋ 2, 3์ ํฉ์ณ์ ๋ค๋ฃจ๊ณ ๊ทธ ๋ค์ ํธ์์ 4, 5์ ๋ํด ๋ค๋ค๋ณผ๊น ํจ. (ํนํ 4๊ฐ ์๊ฐ ๋ง์ด ๊ฑธ๋ ธ์์,,) 3์ด ๊ทธ๋๋ 2๋ณด๋ค๋ ์ฌ์ ์ผ๋ 3 -> 2 ์์ผ๋ก ์ค๋์ ์ ์ด๋ณผ ์์ .
์ต๊ทผ ๋ค์ด์ ๊ฐ์๊ธฐ coddy tech๋ผ๋ ์ฌ์ดํธ๋ฅผ ํตํด์ c ์ธ์ด ๊ณต๋ถํ๋ ๊ฑฐ์ ๋ ๊ฝํ๊ฐ์ง๊ณ ์ ์ ๋ฐ์ด๋ธ ์ฝ๋ฉ์ maintenance ๋ฐ ํ์ฌ์์ ํ์ํ ๊ฒ๋ค ์ ์ ํ๋ ์ ๋๋ก๋ง ์ฐ๋ ์ค์ด๋ผ ์๋กญ๊ฒ ๋ญ๊ฐ ๋ง๋ ๊ฒ์ ์๋๋ฐ ์ฐ์ 1~5๊น์ง๋ฅผ ๊ธ๋ก ์ข ์ ๋ฆฌํด์ ๋จ๊ฒจ๋๊ณ ๋ ์ด์ด์ ๋์ ํด๋ณผ๊น ํ๋ค. ์ด๊ฑฐ ๊ธ๋ก ์ ๋ฆฌํด์ ๋จ๊ธฐ๋ ๊ฒ๋ ์๋นํ ์๊ฐ ์์๊ฐ ํ์ํ ์ผ์ด๊ตฐ..
๊ทธ๋๋ ๋๋ฆ ๋ด ์ฑ์ฅ์ ๊ธฐ๋ก์ด๋ผ๊ณ ์๊ฐํด์ ์ ์ ๋ฆฌํด๋๊ณ ์ถ์์จ. ๋์ค์ ๋ค์ ์ฝ์ด๋ณด๋ฉด ๊ทธ ๋ ๊ทธ๋ฌ์ง ํ๋ฉด์ ์์ ๋ ์ด ์ค๊ฒ ์ง(?)
54์ผ์ ๋ฌต์ฃผ๊ธฐ๋๋ฅผ ๋์์ฃผ๋ ์ฑ, "๊ณ ์"
์ฌ์ค ๋๋ ์ฐฝ์๋ ฅ์ด 0์ ์๋ ดํ๋ ์ฌ๋์ด๋ค. ์ฐฝ์ํ๋์ ์ข์ํ๋ ๊ฒ๊ณผ ์ฐฝ์๋ ฅ์ ์์ ๋ณ๊ฐ์ ์์ญ์ด๋ผ๋ ๊ฒ์ ISTP์ธ ๋๋ ์ ์๊ณ ์๋ค.
์ ๋ฒผ๊ฐ๋ฆฌ ๊ฐ์ ์๋ ์์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก ์ธ๊ฐ์ ๋๋ต 16๊ฐ์ง ์ ๋์ ์ ํ์ผ๋ก๋ ๊ตฌ๋ถํ ์ ์์ง ์์๊น ์ถ๋ค. ๋ฌผ๋ก ์ ํํ์ง ์๋๋ผ๋, ๋น์ทํ ๋ฉด์ ๊ฐ์ง ์ฌ๋๋ค๋ผ๋ฆฌ ๋ฌถ์ด์ 16๊ฐ์ ์ ํ์ผ๋ก ์ ๋ฆฌํ๋ ์ ๋๋ผ๋ฉด ๊ฝค ์ค์ฉ์ ์ด๋ผ๊ณ ๋ณธ๋ค.์ฌํํผ ISTP ์ค๋ช ์ ์ฝ์ ๋๋ง๋ค ๋๋ ๋น์ทํ๋ค๊ณ ๋๋ผ๋ ์ง์ ์ด ์๋๋ฐ, ๊ทธ๊ฑด ๋ฐ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์กฐ๋ฆฝํ๊ณ , ๋ง์ถฐ๋ณด๋ ๊ฑธ ์ข์ํ๋ ์ ํ์ด๋ผ๋ ์ ์ด๋ค.
์ค๋ช ์ ๋ณด๊ณ ์กฐ๋ฆฝํ๊ธฐ, ํผ์ฆ ๋ง์ถ๊ธฐ, ๊ทธ๋ฆฌ๊ณ (๋ ผ๋์ ์ฌ์ง๊ฐ ์๊ฒ ์ง๋ง) ์ฐ๊ธฐํ๊ธฐ ์ด๋ฐ ๊ฒ๋ค์ 0์์ ์์ํ๋ ์์ ์ด ์๋๋ผ์ ์ฌ๋ฐ๊ฒ ํ ์ ์๊ณ ํฅ๋ฏธ๋กญ์ง๋ง, ์์ ์๋ฌด ๊ฒ๋ ์ฃผ์ด์ง์ง ์์ ์ํ์์ ํด์ผ ํ๋ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ์ ๊ฐ์ ํ๋๋ค์ ์ ฌ๋ณ์ ๊ฐ๊น๋ค. ๊ทธ๋๊น ์ต์ํ ์ด๋ค ๊ฐ์ด๋๋ผ์ธ์ด๋ ์ผ์ข ์ ์ค๋ช ์๊ฐ ์์ด์ ๊ทธ๋๋ก ๋ญ๊ฐ๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ ๊ต์ฅํ ์ฌ๋ฐ์ดํ๋๋ฐ ์์ ์๋ฌด ๊ฒ๋ ์ฃผ์ด์ง์ง ์๊ณ '๋ ๋ง์๋๋ก ํด๋ผ' ํ๋ ์์ ํ๋์ ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง์กฐ์ฐจ ์ ๋ชจ๋ฅด๊ฒ ์ดํ๋ ์ฑ๊ฒฉ์.
๊ทธ๋์ ์ฒ์์ ๋ฐ์ด๋ธ ์ฝ๋ฉ์ ๋์ ํด๋ณด์! ํ์ ๋ ๋๋ ๋๋์ฒด ๋ญ ๋ง๋ค์ด์ผ ํ ์ง ์๋ฌด๋ฐ ์์ด๋์ด๊ฐ ์๋ ์ฌ๋์ด์๋ค.
์ธ์์ ์ด๋ฏธ ์ฐจ๊ณ ๋์น๋ ๊ฒ ์ฑ ๊ฐ์๋ฐ? ๋๋ ์ด๋ฉด์ ๋ฑํ ํฌ๊ฒ ๋ถํธํจ์ ๋๋ผ๋ ๊ฒ ์๋๋ฐ? ๋ด๊ฐ ์ฐ๋ ๊ฒ๋ค์ ์ด๋ฏธ ๋ด๊ฐ ๋ค ๊ฐ๊ณ ์๋๋ฐ? ๋ญ ํด์ผ ํ์ง? ์ด๋ฌ๊ณ ์์์. ๊ทธ๋์ ์ ์ผ ๋จผ์ ์๋งํํ ํน์ ํ์ํ ๊ฑฐ ์๋๊ณ ๋ฌผ์ด๋ดค๋๋ ๋ง๋ค์ด๋ฌ๋ผ๊ณ ํ๋ ๊ฒ 1ํ์์ ๊ธฐ์ ํ '๋ฐฅ์ฌ'์ด๋ผ๋ ์ฑ์ด์๊ณ , ์ด๋ฒ ํธ์์ ๊ธฐ์ ํ๋ ๊ธฐ๋ ์ฑ ์ญ์ ๊ฐ์ ์ฒ์ฃผ๊ต ์ ์์ธ ์ธ๋๊ฐ ํ์ํ๋ค๊ณ ํด์ ๋ง๋ค๊ธฐ ์์ํ ๊ฒ์ด์๋ค.
์ฌ์ค ๋ด ์ ์ฅ์์๋ "54 Days"๋ผ๋ ์์ฃผ ํ๋ฅญํ ์ฑ์ด ์ฑ์คํ ์ด์ ์์๊ณ , ๊ทธ๋์ ์ ์ฐ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ฐ ๋์ฆ๊ฐ ์์๋๋ฐ ๊ฐ์ด ๋ฌต์ฃผ๊ธฐ๋๋ฅผ ์์ํ ์ธ๋ ๋๋ถ์ ํด๋น ์ฑ์ด ๊ตฌ๊ธ ํ๋ ์ด์๋ ์ถ์๋์ง ์์๋ค๋ ์ถฉ๊ฒฉ์ ์ธ ์ฌ์ค์ ์๊ฒ ๋์๋ ๊ฒ์ด๋ค.
์ฌํผ ๊ทธ๋์ ์ฌ์ค ์ด ์ฑ์ ๋ง๋ค ๋๋ ํฌ๊ฒ ๊ธฐํํ ๊ฒ๋ ์์๊ณ , ์ ์ด์ ์ด๋ฒ์๋ ์ฑ์คํ ์ด๋ ๊ตฌ๊ธ ํ๋ ์ด์ ๋ฑ๋กํ ์๊ฐ๋ ์์๊ณ , ๊ทธ๋ฅ "54 Days"๋ ๋๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ฑ์ ์ด ์ธ๋๋ฅผ ์ํด ๋ง๋ค์ด์ apk๋ก ๋ณด๋ด์ฃผ์! ๊ฐ ๋ชฉํ์์. (์ฌ์ค ์ฑ์คํ ์ด์ 54 Days์ ๊ฐ๋ฐ์ ๋ถ๊ป ์ด๋ฉ์ผ๋ก ๊ตฌ๊ธ ํ๋ ์ด์ ์ถ์ํด์ฃผ์ค ์๊ฐ ์๋์ง๋ ๋ฌธ์๋๋ ธ๋๋ฐ ์๋ฌด ๋๋ต์ด ์์ผ์ ์ํ ใ _ใ ๋ง๋ค์ด์ฃผ์๋ฉด ์๋ ๊น์..? ์ ๋ ๊ฒ์ผ๋ฆ๋ฑ ์ด๋ผ์ ์ฑ์ ์ถ์ํ ์๊ฐ๋ ์๊ณ ๋น์ ์ ์ฑ ์์ด๋์ด๋ฅผ ๋์ ์งํ ์๊ฐ์ด ์๊ฑฐ๋ฑ์ฌ..)
์๋ก ์ด ๊ธธ์๋๋ฐ ๊ฐ์คํ๊ณ ...
54์ผ์ ๋ฌต์ฃผ๊ธฐ๋ ์ฑ์ ํฐ ํ์์ ์ด๋ฐ ๊ธฐ๋ฅ๋ค๋ง ์ ๊ณตํ๋ฉด ๋๋ค.
- 54์ผ๊ฐ ๊ธฐ๋ํ ์งํฅ ๊ธฐ๋ ์์ฑํ๊ณ ์ ์ฅํด๋๋ ๊ธฐ๋ฅ. (์์ ๋ ๊ฐ๋ฅํด์ผ ํจ)
- ๋ฌต์ฃผ๊ธฐ๋ ์์ ๋ ์ง๋ฅผ ์ค์ ํ๋ฉด ๋ง์ง๋ง ๋ ์ง๋ฅผ ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ.
- ๋ฌต์ฃผ๊ธฐ๋ ์์ ๋ ์ง๋ฅผ ์ค์ ํ๋ฉด ์ค๋์ด ๋ช์ผ์งธ์ธ์ง ์๋ ค์ฃผ๊ณ , ์ด๋ ๊ธฐ๋๋ฅผ ํ ์ฐจ๋ก์ธ์ง ์๋ ค์ฃผ๋ ๊ธฐ๋ฅ.
- ํด์ผ ํ๋ ๊ธฐ๋์ ๋ง์ถฐ์ ๊ธฐ๋๋ฌธ์ ์กฐํํ ์ ์๋ ๊ธฐ๋ฅ.
์ด ์ ๋๋ฉด ์ด๋ฏธ ๋ฐฅ์ฌ ์ฑ์ ๋นํ๋ฉด ์ ์ฌํ ๊ทธ ์์ฒด์๊ธฐ ๋๋ฌธ์ ๋์๊ฐ๋ง์ ๋๋ฑ ๋ง๋ค์์. ํํ.. ํด๋ก๋ ํญํ๋ ฅ ์์น(?)
๊ฐ๋ฐ ํ๋ ์์ํฌ๋ ์ด๋ฒ์๋ ๊ทธ๋ฅ Flutter. iOS ์ง์ ๊ณํ์ด ์์ผ์ ๋ฐ ๊ตณ์ด ์ ํ๋ฌํฐ๋ฅผ ์ฐ์ จ์ฃ ? ๋ผ๊ณ ๋ฌผ์ด๋ณธ๋ค๋ฉด..
๊ธ์์.. ๊ทธ๋ฅ ์ ํฌ ํ์ฌ ๋ชจ๋ฐ์ผ ์ฑ์ด ํ๋ฌํฐ๋ผ์ ํ๋ฌํฐ๊ฐ ์ ์ง ์น์ํ๊ฒ ๋๊ปด์ง๋๋ค...(?) ๊ทธ๋ฆฌ๊ณ ๋์์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ฐ ๊ฒ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋์ด ์๋ ๋๋์ด์ด์์...(?) ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ข์ ํ๋ ์์ํฌ ๊ฐ๋ค๊ณ ์๊ฐํด์์? ์ฌ์ค ๋ค๋ฅธ ๊ฑธ ๊ตณ์ด ์ ์จ๋ดค๊ธฐ ๋๋ฌธ์..? ํผํผ
๊ทธ ์ธ์๋... ์๋ฌด๋๋ ๊ธฐ๋ฅ ์์ฒด๊ฐ ์ฌํํ๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ด์ง์์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ตฌ์กฐ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค๋ ์๊ฐ์ด ๋ค์๊ณ , ๊ทธ๋ฐ ๋ฉด๋ค์์ ์์ฌ๊ฒฐ์ ์ ํด๋ก๋๋ ๋ํํ๋ฉด์ ์งํํ๋ค. (์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตณ์ด ๊ฐ๋ค ์ฐ์ง ๋ง๊ณ Flutter์ ๊ธฐ๋ณธ Stateful Widget์ ์ฌ์ฉํ์, ๋ฐ์ดํฐ๊ฐ ๋จ์ํ๊ณ ์๋ฒ ๋๊ธฐํ ๊ฐ์ ๊ฒ๋ ํ์ ์์ผ๋ shared_preferences๋ฅผ ์ฌ์ฉํ์ ๋ผ๋ ๊ฐ)
๋๋ค๋ฅธ ๊ณ ๋ฏผ ํฌ์ธํธ: ์๋ฌด๋๋ 54์ผ ๊ฐ ๊ธฐ๋๋ฅผ ๋์์ฃผ๋ ์ฑ์ด๋ค๋ณด๋ ๊ธฐ๋ ์งํ์ผ ๊ณ์ฐ ์ธก๋ฉด์์ "์ค๋"์ ๊ธฐ์ค์ด ์ค์ํ์ผ๋ฏ๋ก UTC +9์๊ฐ์ผ๋ก ํ๊ตญ ์๊ฐ๋๋ฅผ ์ ์ฉํ ์ ์๊ฒ ์ฒ๋ฆฌํ๊ธฐ (์ด๊ฑด ๋ญ๊ฐ ์ฑ ์คํ ์ด์ ๋ด๊ฐ ๊ณต๊ฐํ๊ฒ ๋๋ค๋ฉด ์์ ์ด ํ์ํ ๋ถ๋ถ์ผ ๋ฏํ๋ฐ ์ฐ์ ์ ํ๊ตญ์ ๊ฑฐ์ฃผํ๋ ์ ์ 1๋ช ๋ง์ ์ํด ๋ง๋ ์ฑ์ด๋ผ.. ใ ใ )
๊ทธ๋ฆฌ๊ณ ์์ผ๋ณ ์ ๋น ๊ธฐ๋๋ฌธ์ด ๋ค ๋ค๋ฅด๋๊น ์์ผ๋ณ๋ก ์ ๋น ๊ณ์ฐํ๊ฒํ๊ธฐ <- ์ด๊ฒ ๊ทธ๋๋ง ์ข ํฐ ๊ธฐ๋ฅ(?)์ด๋ผ๋ฉด ํฐ ๊ธฐ๋ฅ์ด์๊ณ ..
String getTodayMystery() {
final weekday = getNowKST().weekday;
switch (weekday) {
case DateTime.monday:
case DateTime.saturday:
return 'joyful'; // ํํฌ
case DateTime.tuesday:
case DateTime.friday:
return 'sorrowful'; // ๊ณ ํต
case DateTime.wednesday:
case DateTime.sunday:
return 'glorious'; // ์๊ด
case DateTime.thursday:
return 'luminous'; // ๋น
}
}
๊ทธ๋ฆฌ๊ณ ํ ํ๋ฉด์์๋ ์ ์ฅ๋ ๊ธฐ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ๊ธฐ๋ ์งํ ์ค์ธ ๊ฒฝ์ฐ, ๊ธฐ๋๊ฐ ์๋ฃ๋ ๊ฒฝ์ฐ๋ก ์ธ๊ฐ์ง๋ก ์ํ๋ฅผ ๋๋ ์ ํ๋ฉด ๊ตฌ์ฑ:
๋ฏธ์ค์ ์ํ: ๊ธฐ๋ ์์ ์๋ด ๋ฉ์์ง
์งํ ์ค: ์งํ๋ฅ ๋ฐ (XX/54์ผ, XX%), ์ค๋์ ์ ๋น ๊ฐ์กฐ ํ์, ์ฒญ์/๊ฐ์ฌ ๋จ๊ณ ํ์
์๋ฃ: ์ถํ ๋ฉ์์ง
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐ๋ก ์คํ๋์ ํ๋ฉด ๋๊ฐ ์ฑ ์ด๋ฆ๋ง ๋จ๊ฒ ํด์ ๋ณด์ฌ์ฃผ๊ธฐ ์ ๋...? ํ .. ์ญ์ ๋ณ๋ก ํ ๊ฒ ์์๋ ์ฑ์ด๋ผ ์ธ ๊ฒ๋ ๋ณ๋ก ์๊ตฐ.. ^_^;; ์ฌํผ ๋ณด๋ด๋๋ ธ๋๋ฐ ์ธ๋๊ฐ ์์ง๋ ๋งค์ผ๋งค์ผ ์ ์ฐ๊ณ ์๋ค๊ณ ํ๊ณ ๋ฒ๊ทธ๋ ์๋ ๊ฒ ๊ฐ๋ค๊ณ ํด์ ๋ฟ๋ฏํจ.
์ธ๋.. ์ ๊ฐ ๋น๋ก ๋์๊ฐ๋ง์ ๋ง๋ ๊ฑด ๋ง์ง๋ง ๊ทธ ๋์๊ฐ ์ฌ์ด์ ํ์์ด๋ฅผ ์ผ๋ง๋ ์ด์ฌํ ํ๋์ง ์์๋์? ^_ใ ์ ํด๋ก๋๋ ์ ๋ฅผ ๊ทนํํ ๊ฑฐ์ฌ์...
๊ทธ๋ฆฌ๊ณ ๋๋ง์ ์ธ๋ฒ์งธ ํ๋ก์ ํธ.. (์ฌ์ค ๋๋ง๊น์ง ์๋)
๋ฆฌ๋์ด ํฐ์ผ ๋ด์ฉ๊ณผ ๋๊ธ ๋ด์ฉ์ ์-> ํ, ํ -> ์ ๋ฒ์ญ ํด์ฃผ๋ ๋ด
์ฐ๋ฆฌ ํ์ฌ์์๋ ํ์คํฌ ๋งค๋์ง ํด๋ก Linear ๋ผ๋ ์ ํ์ ์ฐ๊ณ ์๋๋ฐ. ๋ญ ์ฌ๊ธฐ์๋ ์ฝ๊ฐ์ ์ก์ค์ ๋ง๋ถ์ด์๋ฉด... ์ Linear๋ฅผ ์ฐ๋๊ณ ๋๊ตฐ๊ฐ๊ฐ ๋ฌป๋๋ค๋ฉด ์๋ฌด๋๋ ๋น๊ฐ๋ฐ์๊ฐ ์ฐ๊ธฐ์ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ์ฌ์ด UI/UX์ฌ์? ๊ทธ๋์ ๊ฐ๋ฐ์ ์ ์ฅ์์ ์ ์ผ ํธํ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๊ณ ๋น๊ฐ๋ฐ์๋ค์ด ๊ฐ๋ฐ์๋ ๊ฐ์ด ์ผํ๊ธฐ์ ์ ์ผ ์ฌ์ด ํด์ธ ๊ฒ ๊ฐ๊ธด ํ๋ค. ๋ด๊ฐ ์ ์ฌ ์ ์๋ ์ง๋ผ๋ฅผ ์ฐ๊ณ ์์์ด์ ์ฒ์ ์ ์ฌํ์ ๋ ์ง๋ผ๋ฅผ ์ ๊น ์ฌ์ฉํด๋ดค์๋๋ฐ ๋๋ฌด ์ด๋ ค์ ์์ ^_ ใ ์ง๊ธ ์ฐ๋ผ๊ณ ํ๋ฉด ์ข ๋ค๋ฅผ์ง๋....?
๊ทธ๋ฆฌ๊ณ ๋ ํ๋ ์ข์ ์ ์ ์๋ค CS ์๋๊ฐ ์ฅ๋ ์๋. ๋ญ ์์ฒญํ๊ฑฐ๋ ์ง๋ฌธ์ ๋จ๊ธฐ๋ฉด ์ง์ง ์ด์คํผ๋๋ก ๋ต๋ณ์ด ์จ๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ธฐ๋ค์ด ์๊ฐํ์ ๋ ํ์ํ๋ค ์ถ์ผ๋ฉด ๊ตฌํ๋ ๊ต์ฅํ ๋นจ๋ฆฌ ํด์ค. ๊ทธ๋์ ๊ฝค ๋ง์กฑํ๋ฉด์ ์ฌ์ฉ์ ํ๊ณ ์๋ค.
์ฌํํผ~ ๊ทธ๋๋ Linear๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ช ๊ฐ์ง ๋จ์ ์ด ์๊ธด ํ๋ฐ, ๊ทธ ์ค์์ ๋ญ๊ฐ ๋ฐ์ด๋ธ ์ฝ๋ฉ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ฒ์ ๋ฆฌ๋์ด์ ํ์คํฌ ํฐ์ผ ๋ด์ฉ๊ณผ ๋๊ธ ๋ด์ฉ์ ๋ฒ์ญํด์ฃผ๋ ๋ด ์ ๋๊ฐ ์๋๊น ์๊ฐํ๋ค. ์๋ฌด๋๋ ์ฐ๋ฆฌ ํ์ฌ๋ ํด์ธ์์ ์ผํ์๋ ๋ถ๋ค๋ ๊ณ์๊ณ ๊ทธ๋ฌ๋ค๋ณด๋ ํ๊ตญ์ด ์ํต์ด ๋ ํธํ ํ๊ตญ์ธ ํ์ ๋ถ๋ค๊ณผ ์์ด๊ฐ ๋ ํธํ ํด์ธ ํ์ ๋ถ๋ค ๊ฐ์ ์ํต์ด ์ค์ํ ๋๊ฐ ์๋๋ฐ, ๊ทธ๋ด ๋ ๋งค๋ฒ ์ฑ์งํผํฐ ๊ฐ์ ๊ฑฐ์์ ๋ฒ์ญํด์์ ๋ถ์ฌ๋ฃ๊ณ ํ์๋ ๋ถ๋ค์ด ๊ณ์ จ์.
์ผ๋จ ์ด๊ฑฐ๋.. ๊ทธ๋๋ ์๊ฐ๋ณด๋จ ์๊ฐ ํฌ์๋ฅผ ๊ฝค ํ๋ฏ? ๋ณ ๊ฒ๋ ์๋ ๊ฑฐ ๊ฐ์๋๋ฐ ๋๋ฆ 46๊ฐ์ ์ปค๋ฐ์ ํด์ผ ํ์ผ๋ฉฐ.. ์ฒ์์ผ๋ก ๋ ์ผ์จ์ด๋ผ๋ ์๋น์ค๋ฅผ ๊ฐ์ ํด์ ์ฌ์ฉํด๋ณผ ๊ธฐํ๊ฐ ๋ ํ๋ก์ ํธ(?)์๋ค.
์์ฝํ์๋ฉด.. ๋ฆฌ๋์ด API <> Claude ์ฐ๊ฒฐํด์ OpenAI API (gpt-4o-mini ๋ชจ๋ธ)๋ฅผ ์ฌ์ฉํ ๋ฆฌ๋์ด ํฐ์ผ ๋ฐ ๋๊ธ ๋ฒ์ญ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ! ๋จ, ์๋ณธ๊ณผ์ ๋์กฐ๊ฐ ํญ์ ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ณธ ๋ํ ์ ์งํ ๊ฒ.
๊ฐ๋ฐ ๋จ๊ณ๋ณ ํ์คํ ๋ฆฌ
์ด๊ธฐ ๊ตฌํ
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ์ ๋ฒ์ญ ๋ด์ ๊ตฌํ
- Express ์๋ฒ ์ค์
- Linear ์นํ
์๋ํฌ์ธํธ (
/webhook/linear) - OpenAI๋ฅผ ํตํ ๊ธฐ๋ณธ ๋ฒ์ญ ๊ธฐ๋ฅ
/translate๋ช ๋ น์ด ๊ฐ์ง- Railway ํ๋ซํผ ๋ฐฐํฌ๋ฅผ ์ํ Procfile ์ถ๊ฐ
์ฃผ์ ๋์ ๊ณผ์ ์ ํด๊ฒฐ ๊ณผ์
- ๋น๋ฒ์ญ ์ฝ๋ฉํธ ์ฒ๋ฆฌ
/translate ์ธ์ ์ผ๋ฐ ์ฝ๋ฉํธ๋ ์นํ
์ผ๋ก ์์ ๋์ด ๋ถํ์ํ ์ฒ๋ฆฌ๊ฐ ๋ฐ์
ํด๊ฒฐ
// Silently ignore non-translate comments
if (!commentBody.toLowerCase().includes(TRANSLATE_COMMAND)) {
return res.status(200).send('ok');
}
- ์๋ฒ ๋(Embed) ๊นจ์ง ์ด์
Figma ๋ฑ ์๋ฒ ๋๋ ๋งํฌ๊ฐ ํ ์คํธ๋ก๋ง ํ์๋๊ณ ์๋ฒ ๋ ํํ๊ฐ ๊นจ์ง
์ด๊ฒ ์ ์ผ ๊น๋ค๋ก์ ๋๋ฐ.. ์ฌ์ค ์์ง๋ ํด๊ฒฐํ์ง ๋ชปํ ์ด์์. ๊ณ์ ์ฌ๋ฌ ์ฐจ๋ก ์๋๋ฅผ ํด๋ณด์์ผ๋ ๊ฒฐ๊ตญ ํด๊ฒฐํ์ง ๋ชปํด์ ๊ฐ๋ฐ์ ํ ๋ถ๊ป ๋์์ ์์ฒญ๋๋ ธ๋๋ฐ ์ ๊น ์ดํด๋ณด์ จ์ง๋ง ๋ ๋ค ์คํจํจ. ๊ทผ๋ฐ ๋ญ ๋ฒ์ญ ๊ธฐ๋ฅ ์์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฑด ์๋๊ณ , ๊ทธ๋ฅ ๋ค ๋ฒ์ญํ ๋ค์์ ์๋ฒ ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ ๊ฑฐ๊ธด ํด์ ์ฐ์ ํจ์คํ๊ฒ ๋์๋ค.
์ด์ ํด๊ฒฐ์ ์ํด ์๋ํด๋ณธ ๋ฐฉ์์:
- URL์ด ํฌํจ๋ ๋ผ์ธ์ ๊ทธ๋๋ก ์ ์งํ๋ ค ์๋
- ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ์๋ฒ ๋ ์ ์ง ์๋ - ๋งํฌ๋ค์ด ์ด๋ฏธ์ง ๋ฌธ๋ฒ
๋ณด์กด - URL ํฌํจ ๋จ๋ฝ ์คํต -> ์ด ๊ฒฝ์ฐ "์์ธํ ๋ด์ฉ์ ๋งํฌ ์ฐธ๊ณ : https://..." ๊ฐ์ ์ค์ํ ์ค๋ช ๋ ์คํต๋์ด๋ฒ๋ฆผ ใ ,ใ
- ๋งํฌ๋ค์ด ๋งํฌ๋ฅผ Raw URL๋ก ๋ณํ
- Linear ์ฒจ๋ถํ์ผ ์์ธ ์ฒ๋ฆฌ
์ผ๋จ ํด๊ฒฐ์ด ์ด๋ ค์ ๋ ์ด์ ๋... Linear API์ ํน์ฑ์ ์ด์ description์ ์ ๋ฐ์ดํธํ๋ฉด ์๋ฒ ๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ Title` ํํ๋ Linear์์ ์๋ฒ ๋๋ก ๋ณํ๋์ง ์๋ ๊ฒ.. ๋ฑ๋ฑ์ด ์์๋๋ฐ ์ฌํผ ๊ฒฐ๋ก ์ ์ผ๋ก๋ linear API์ ํ๊ณ๋ก ๋๊ธ์ ์์ ์๋กญ๊ฒ ๋ฒ์ญ์ ํด์ ๋ฌ์์ฃผ๋ ๊ฑฐ๋ฉด ๋ชฐ๋ผ๋ ํฐ์ผ ์์ฒด์ ๋ฒ์ญํ ๊ฒ์ ๋ฌ์์ฃผ๋ ๊ฒ์ ์๋ฒ ๋๋ฅผ ๊ณ ๋๋ก~ ๋ณด์กดํ๊ธฐ๊ฐ ํ๋ ๋ฏํ๋ค. ๋์ค์ ์ข๋ ํ๋ณด๊ธด ํ ํ ๋ฐ..
๊ทธ ์ธ.. ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๊ด๋ จํ ์ถ๊ฐ ์ด์๋ค?
-
startsWith์ฌ์ฉ โ/translate๊ฐ ๋ฌธ์ฅ ์ฒ์์ด ์๋๋ผ ์ค๊ฐ์ ์์ผ๋ฉด ๋ฌด์๋จ -
์ค๋ณต ์ฒ๋ฆฌ ์์ โ ์นํ ์ด ์ฌ๋ฌ ๋ฒ ์ค๋ฉด ์ฌ๋ฌ ๋ฒ ๋ฒ์ญ๋จ โ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ์ค๋ณต ๋ฐฉ์ง๋ ์๋ฒ๊ฐ ์ฌ์์๋๋ฉด ์ด๊ธฐํ๋์ด๋ฒ๋ ค์ DB(์ฝ๋ฉํธ) ๊ธฐ๋ฐ ์๊ตฌ ์ค๋ณต ๋ฐฉ์ง (the issue has been translated์ ๊ฐ์ด ๋ฒ์ญ ์๋ฃ ๋๊ธ์ ๋ด์ด ๋ฌ์์ฃผ๊ณ ์ด ์ด๋ฒคํธ๋ฅผ ํ์ธ)
-
๋ฒ์ญ ์๋ฃ ๊ฐ์ง ๋ฏธํก โ ์ด๋ฏธ ๋ฒ์ญ๋ ๊ฒ๋ ๋ค์ ๋ฒ์ญ ์๋
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ธ...
'Transaction Fee Modal์์ Priority Fee ์ค์ ์ ์ค๋ฅ ๋ฐ์'๊ณผ ๊ฐ์ด ๋์ฒด๋ก ์์ด์ธ ๊ฒฝ์ฐ์๋ ๋ฒ์ญ์ด ๋์ง ์๋ ์ด์๊ฐ ์์๋๋ฐ
์ด๊ธฐ isEnglish() ํจ์๊ฐ ์๋์ ๊ฐ์ด ๊ตฌํ๋์ด ์์์ด์ ๊ทธ๋ฌ์. ์ด๋ฅผ 95%๋ก ๋ณ๊ฒฝ.
javascript
function isEnglish(text) {
const englishChars = (text.match(/[a-zA-Z]/g) || []).length;
const nonEnglishChars = (text.match(/[^\x00-\x7F]/g) || []).length;
// ์์ด ๋น์จ 70% ์ด์์ด๋ฉด ์์ด๋ก ํ์
return englishChars / (englishChars + nonEnglishChars) > 0.7;
}
๊ตฌํ ์ค์ ํ์๋ค์ ์ํด UX์ ์ถ๊ฐ ํน์ ๋ณ๊ฒฝ๋ ๊ฒ
-
์ ์ฒด ํต์ผ๋ก ๋ฒ์ญํด์ ๋ฐ์ ๋ถ์ฌ๋ฃ๋ ๊ฒ๋ณด๋ค ๋ฌธ๋จ๋ณ๋ก ๋ฒ์ญํด์ ๋ฌธ๋จ ๋ฐ์ ๋ฒ์ญ๋ ๋ฒ์ ์ ๋ถ์ฌ์ฃผ๋ ๊ฒ์ด ์๋ก ์ดํดํ๋ ๋ฐ์ ๋ ์ฉ์ดํ๋ค๋ ํ๋จ, ๊ทธ๋์ ๋ฌธ๋จ๋ง๋ค ๋ฒ์ญํ๋๋ก ์์ .
-
์ด๊ธฐ์๋ ํ๊ตญ์ด โ ์์ด๋ง ์ง์ํ์ง๋ง, ์์ด โ ํ๊ตญ์ด๋ ํ์ํด๋ณด์ฌ์ ์ถ๊ฐ
-
์ ๋ ฅ ์ธ์ด ๊ฐ์ง๋ฅผ ์๋์ผ๋ก ํ๋๋ก ๋ณ๊ฒฝ
-
์ด์ ์ ํโ์ ๋ฒ์ญํ ์ด์๋ฅผ ๋ค์ ๋ฒ์ญํ๋ฉด ์ธ์ด ๊ฐ์ง๊ฐ ๋ฌ๋ผ์ง ์ ์์ด์ ๋ ๊ฐ์ง ํ์ธ ๋ฉ์์ง๋ฅผ ๋ชจ๋ ๊ฒ์ฌ
-
์ด๊ธฐ์๋ ํฐ์ผ ๋ณธ๋ฌธ ๋ฒ์ญ๊ธฐ๋ฅ๋ง ์ง์ํ๋๋ฐ ๋๊ธ ๋ฒ์ญ๋ ํ์ํด๋ณด์ฌ์ ๊ธฐ๋ฅ ์ถ๊ฐ โ ์ด ๊ฒฝ์ฐ, ๋๊ธ์ด ์๋ก ๋ฌ๋ฆฌ๋ ๊ฒ ์๋๋ผ ๋ฐ๋์ ํด๋น ๋๊ธ์ ๋๋๊ธ๋ก ๋ฒ์ญ๋ฌธ์ด ์ฒจ๋ถ๋๋๋ก ๊ตฌํ
๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ ํ๋ฉด์ ๊นจ๋ฌ์ ๊ฒ) [Debug] ๋ก๊ทธ๊ฐ ๋ฌธ์ ํด๊ฒฐ์ ํต์ฌ์ด ๋๋ฏ๋ก ๋ฐ๋์ ๋๋ฒ๊น
์ด ํ์ํด๋ณด์ด๋ ํผ์ณ๋ค์ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ์ ์ฐํ๋๋ก ์ค๊ณํ์...
๋ญ๊ฐ ํ .. ์ญ์ ๋๋ ๊ฒฐ๋ก ์ฐ๋ ๊ฒ ํญ์ ์ด๋ ค์ด ๋ฏํ๋ฐ ์ฌํํผ ํนํ ๋์์ธ ํ์ ๋ถ์ด ์์ฆ ๋ฒ์ญ๋ด ์ ์ฐ๊ณ ์๋ ๋ฏํด์ ๊ทธ๋ญ์ ๋ญ ๋ง์กฑ.. ์๋ฒ ๋ ์ด์๋ฅผ ๋๊น์ง ํด๊ฒฐํ์ง ๋ชปํ ๊ฒ ์ข ์์ฝ๊ธด ํ์ง๋ง.. ๋ฐ์ด๋ธ ์ฝ๋ฉ ์ด๋ณด์น๊ณ ๋ ๋์์ง ์์์ด(?) ๋ผ๊ณ ์ ์ ์น๋ฆฌ๋ฅผ ํด๋ณด๋ฉฐ...์ค๋์ ๊ธ์ ๋ง๋ฌด๋ฆฌํด๋ณธ๋ค.
๋ค์ ๊ธ์.. ์ด์ .. ๊ฐ์ฅ ํผ์ ์ ํ์ ๋คํด์(?) ํด๋ก๋์ ์ธ์์ผ๋ง ํ๋ ์ด ๋ธ๋ก๊ทธ ์ฌ์ดํธ๋ฅผ ๋ง๋ ๊ณผ์ ๊ณผ... ๊ทธ๋ฆฌ๊ณ ์นํ๋ก์ฐ permission ์ค์ ๊ฐ์ ์์ํ ๊ฒ๋ค์ด ์๊ฐ๋ณด๋ค ๊น๋ค๋ก์ ๋ ์นํ๋ก์ฐ๋ก ๋ง๋ ์น์ฌ์ดํธ๋ค์ ์ฝ๊ฒ ์ ๋ฐ์ดํธํ ์ ์๋ ์ฌ๋๋ด ๋ง๋ค๊ธฐ ๊ณผ์ ์ ๊ธฐ์ ํด๋ณด๊ฒ ๋ค! ๋๋ฅ ํฌ๋น ์ปจํฐ๋ด๋~_~