๐Ÿฐ FE๊ฐœ๋ฐœ์ž๊ฐ€ ๋””์ž์ธ, ์„œ๋ฒ„๊นŒ์ง€ ๋‹ค ํ•ด ๋ณธ ์ฐ ํ‘ผ๋‹ค.

meowยท2022๋…„ 12์›” 30์ผ
98

Project

๋ชฉ๋ก ๋ณด๊ธฐ
8/9
post-custom-banner

FE Github README updated!
Server Github README updated!

DJ๋ธ”๋ž™๋ฒ„๋‹ˆ ์‹ ๋…„์นด๋“œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ(2023.01.26. ์„œ๋น„์Šค ์ข…๋ฃŒ) ๐Ÿ”—

2023๋…„ ๊ณ„๋ฌ˜๋…„์„ ๋งž์ดํ•˜์—ฌ, ์ฃผ๋ณ€ ์นœ๊ตฌ์™€ ์ง€์ธ์—๊ฒŒ ๋งˆ์Œ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•‘๊ณ„๊ฑฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. DJ๋ธ”๋ž™๋ฒ„๋‹ˆ์—์„œ ์˜ˆ์œ ๊ฒ€์€ ํ† ๋ผ ์นด๋“œ๋„ ์ปค์Šคํ…€ํ•ด๋ณด๊ณ  ์ƒˆํ•ด์ฒซ๊ณก๋„ ๊ณจ๋ผ ์„ ๋ฌผํ•ด๋ณด์„ธ์š”.

์‹œ์ž‘์€ ๋ณ„๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์—†์—ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์ผ์„ ํ•˜๊ฒŒ ๋œ์ง€ ๋งŒ 2๋…„, ์ด์ œ ์ƒˆ๋กœ์šด ํ”ผ์ณ๋ฅผ ๋”ฐ๊ณ , ๋ฒ„๊ทธ๋ฅผ ํ”ฝ์Šคํ•˜๋Š” ๊ฒƒ์€ ์ต์ˆ™ํ•œ ์ผ์ด ๋˜์—ˆ๊ณ , ์ ์  ์ดˆ๋ฐ˜์˜ ์—ด์ •์ด ์‹์–ด๊ฐ€๋˜ ์‹œ์ ์ด์—ˆ๋‹ค. ๋ญ”๊ฐ€ ์ „ํ™˜์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

์–ธ์ œ ๊ฐœ๋ฐœ์ด ์žฌ๋ฏธ๊ฐ€ ์žˆ์—ˆ๊ณ , ์‹ค๋ ฅ์ด ๋Š˜์—ˆ๋‚˜?

์งˆ๋ฌธํ•ด๋ณด์•˜๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋งŒ๋“ค ๋•Œ, ๊ทธ ๊ณผ์ •์—์„œ ๋งˆ์ฃผํ•˜๋Š” ์ƒˆ๋กœ์šด ์ด์Šˆ๋“ค์„ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋ฉฐ ๋‚˜์˜ ์ปดํฌํŠธ์กด์„ ๋Š˜๋ ค๊ฐ”๋˜๊ฒŒ ๊ธฐ์–ต์ด ๋‚ฌ๋‹ค.

๊ทธ๋ž˜! ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฑธ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์ž!

๋‹ค์†Œ ์†Œ๋…€๋งŒํ™”๊ฐ™์€ ์‹œ์ž‘์ด์ง€๋งŒ ๊ทธ๋Ÿฌํ–ˆ๋‹ค. ์˜ค๋žœ๋งŒ์— ๋งŒ๋“ค๊ณ  ์‹ถ์€๊ฒŒ ๋ญ”์ง€ ํ•˜๋ฃจ์ข…์ผ ์ƒ๊ฐํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ฏธ๋Œ€๋ฅผ ๋‚˜์™”๋Š”๋ฐ, ํ•™๋ถ€์‹œ์ ˆ ๊ณผ์ œ ์ฃผ์ œ๋ฅผ ๊ณ ๋ฏผํ•˜๋˜ ๋‚˜์˜ ๋ชจ์Šต์ด ์˜ค๋ฒ„๋žฉ๋๋‹ค. ํ•™์ƒ ๋•Œ๋Š” "๋ฌด์—‡์„ ์ž‘์—…ํ•ด์•ผํ• ๊นŒ"์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š”๊ฒŒ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋Š”๋ฐ, ์ง€๊ธˆ์€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ด๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ์ƒ๊ธฐ๋‹ˆ ๋‚ด๊ฐ€ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ฃผ์ œ๋“ค์ด ๋งˆ๊ตฌ ๋– ์˜ฌ๋ž๋‹ค!

(์‚ฌ์‹ค ํฌ๋ฆฌ์Šค๋งˆ์Šค ๊ด€๋ จ ํ”„๋กœ์ ํŠธ์˜€์œผ๋‚˜ ์‹œ๊ฐ„์ƒ ๋ฌธ์ œ๋กœ ์‹ ๋…„ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜์—ˆ๋‹ค ^^...)

์ด ๊ณผ์ •์—์„œ ๋””์ž์ด๋„ˆ ์นœ๊ตฌ๋ฅผ ์ƒ๋‹นํžˆ ๊ท€์ฐฎ๊ฒŒ ํ–ˆ๋Š”๋ฐ ๊ฐœ์˜์น˜์•Š๊ณ  ๋‹ค ๋ฐ›์•„์ค˜์„œ ๊ณ ๋ง™๋‹ค๊ณ  ์ „ํ•˜๊ณ  ์‹ถ๋‹ค.

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

ํ”„๋กœ์ ํŠธ ๊ณผ์ •

01 ๊ธฐํš

ํšŒ์‚ฌ์—๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” PM์ด ์กด์žฌํ•˜์ง€๋งŒ, .. ์˜ค๋Š˜! ์—ฌ๊ธฐ! ๋ฌด๋ฒ•์ง€! ๊ทธ ๋ง์ธ ์ฆ‰์Šจ, ๋‚ด๋ง˜๋Œ€๋กœ ํ•˜๋ฉด ๋˜์ง€๋งŒ ์ฑ…์ž„๋„ ๋‚ด๊ฐ€ ์ง€๋Š” ๊ฒƒ... ์ผ์ • ๊ด€๋ฆฌ๊ฐ€ ์•ˆ๋œ๋‹ค๋ฉด ์—ด์‹ฌํžˆ ๋””์ž์ธํ•˜๊ณ  ๊ฐœ๋ฐœ๋„ ๋‹ค ํ–ˆ๋Š”๋ฐ ์ œ๋•Œ ๋ฐฐํฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๊ฐ€ ์ •๋ง ์ค‘์š”ํ–ˆ๋‹ค.

12์›” ์ค‘์ˆœ ์ฏค ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์™„๋ฒฝํ•œ ๋””์ž์ธ์„ ๋ฐ›๊ณ  ์›น๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ์—๋Š” ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ•œ ์ƒํ™ฉ์ด์—ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ๊ทธ๋ž˜ํ”ฝ์„ ๋งก์€ ์นœ๊ตฌ์—๊ฒŒ ์™„์„ฑ๋œ ๋””์ž์ธ์„ 12์›” 25์ผ๊นŒ์ง€ ๋ฐ›๊ธฐ๋กœ ํ•˜๊ณ  ๋””์ž์ธ์ด ์—†์–ด๋„ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ๋ฐ DB๋ฅผ ๋จผ์ € ์ž‘์—…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

ํ•„์š”ํ•œ API ๊ณ„ํš์ด๋ž‘ DB ๊ตฌ์„ฑ์€ ๊ทธ๋ƒฅ ๋Œ€์ถฉ ๋…ธ์…˜ ํ…Œ์ด๋ธ” ์‚ฌ์šฉํ•ด์„œ ํ–ˆ๋‹ค.

์•„๋ž˜๋Š” ์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋งŒ๋“ค์—ˆ๋˜ ๊ณ„ํšํ‘œ๋‹ค. ํšŒ์‚ฌ์™€ ๋ณ‘ํ–‰ํ•ด์•ผํ•˜๋‹ˆ ๋Œ€๋ถ€๋ถ„ ํ‡ด๊ทผ ํ›„, ์ฃผ๋ง์— ๊ฐœ๋ฐœํ–ˆ๋‹ค. ์ด์ œ์™€์„œ ๋งํ•˜์ง€๋งŒ ํ•„์ž์˜ ๊ฒŒ์œผ๋ฆ„์œผ๋กœ ์ธํ•ด ๊ณ„์† ์ผ์ •์ด ๋ฐ€๋ ค ๋ฐฐํฌ ์ฃผ์—” ์ฃฝ๋Š”์ค„ ์•Œ์•˜๋‹ค.

02 ๋ ˆ์ด์•„์›ƒ, UXUI ๋””์ž์ธ

์นœ๊ตฌ๋Š” ๋ ˆํ„ฐ๋ง๊ณผ ์นด๋“œ ๊ทธ๋ž˜ํ”ฝ ์ž‘์—…์„ ํ•˜๊ธฐ๋กœ ํ•ด์„œ ์•ฑ ์ „๋ฐ˜์ ์ธ UXUI ์ž‘์—…์€ ๋‚˜์˜ ๋ชซ์ด์—ˆ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ค ํ”Œ๋กœ์šฐ๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ์œ ์ €๊ฐ€ ๋ฌด์‚ฌํžˆ ์นด๋“œ๋ฅผ ์™„์„ฑํ•˜๊ณ  ์นœ๊ตฌ์—๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์„์ง€๋ฅผ ๊ณ ๋ฏผํ–ˆ๋‹ค. ์ด์ „์— ๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ถ€๋ถ„์€ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ–ˆ๊ณ , ์ด์ƒ์ด ์žˆ๋Š” ๋ถ€๋ถ„์€ ๊ฐœ๋ฐœํ•˜๋ฉฐ ๊ณ ์ณ๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋ ˆ์ด์•„์›ƒ๊ณผ ์œ ์ € ํ”Œ๋กœ์šฐ ๊ธฐํš์€ ํ”ผ๊ทธ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋””์ž์ธ์ด๋‚˜ CSS ๋ณ€์ˆ˜๋Š” ๊ทธ๋ž˜ํ”ฝ์ด ๋‚˜์˜ค๋ฉด ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””์ž์ธ์ด ๋‚˜์˜ค๊ณ  ๋‚˜๋ฉด ์ž‘์—…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ๋ผ๋„ ๋ ˆ์ด์•„์›ƒ์„ ์žก๊ฒŒ ๋˜๋ฉด, ์‹ค์ œ ๊ฐœ๋ฐœ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ”Œ๋กœ์šฐ์— ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€, ํ™”๋ฉด์„ ๋งˆ์ฃผํ•œ ์œ ์ €๊ฐ€ ์–ด๋–ค ๊ฐ์ •์„ ๋Š๋‚„์ง€๋ฅผ ๋ฏธ๋ฆฌ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ผ์šฐํŒ… ์ž‘์—… ๋‹ค ํ•˜๊ณ , ๋กœ์ง๋„ ๋‹ค ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๋ง‰์ƒ ์„œ๋น„์Šค๋ฅผ ํ…Œ์ŠคํŠธํ• ๋•Œ "์Œ..? ์ด๊ฒŒ... ๋ญ์ง€?" ํ•˜๋Š” ์‚ฌํƒœ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ ๋””์ž์ด๋„ˆ์—๊ฒŒ๋„ ์ด๋Ÿฐ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋””์ž์ด๋„ˆ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ๋Š” ๋””์ž์ด๋„ˆ๊ฐ€ ์›ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ชจ์…˜ ๋“ฑ์„ ์บ์น˜ํ•ด์„œ ๋ฏธ๋ฆฌ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ• ์ง€ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ๋„ ํฌํ•จ๋˜์—ˆ๋‹ค. ํ˜ผ์ž ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด๋ผ๋„ ๊ผญ UI๋Š” ๋ฏธ๋ฆฌ ๊ตฌ์ƒํ•˜๊ณ  ๋‚˜์„œ ๊ฐœ๋ฐœ์— ๋“ค์–ด๊ฐ€์‹œ๊ธธ ๊ฐ•๊ถŒํ•˜๋Š” ๋ฐ”์ด๋‹ค! ํŠนํžˆ ํ”ผ๊ทธ๋งˆ๋Š” ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋งค์šฐ ์‰ฌ์šด ํˆด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ถ”์ฒœํ•œ๋‹ค.

03 ์„œ๋ฒ„ ๊ฐœ๋ฐœ

๋ฏธ๋ฆฌ ์ด์•ผ๊ธฐํ•˜์ž๋ฉด, ํ•„์ž๋Š” node.js๋กœ ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ ์ •๋„๋งŒ ์ž‘์„ฑํ•ด๋ณด์•˜์ง€ ์›น ์„œ๋ฒ„ ์ž‘์—…์„ ํ•ด๋ณธ ์ ์€ ์—†์—ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ด๊ฒƒ ์ €๊ฒƒ ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค ๊ทธ๋ƒฅ ์œ ํŠœ๋ธŒ ๋ณด๊ณ  ๋”ฐ๋ผํ–ˆ๋‹ค. ใ…‹ใ…‹ใ…‹ ์กฐ์ฝ”๋”ฉ ์œ ํŠœ๋ธŒ ์ข‹์•˜์Œ..

Spotify Search API

์ดˆ๋ฐ˜ ๊ธฐํš์€ Spotify API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์ €๊ฐ€ ์Œ์•…์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ณ ๋ฅด๊ฒŒ๋” ํ•˜๋ ค ํ–ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๋ณด๋‹ˆ ์„ ํƒ์ง€๋ฅผ ์ฃผ๋Š”๊ฒŒ ์œ ์ € ๊ฒฝํ—˜์— ๋” ๋‚ซ๊ฒ ๋‹ค๋Š” ํŒ๋‹จ์ด ๋˜์—ˆ๊ณ , ์Œ์•… ๋ฆฌ์ŠคํŠธ๋ฅผ ํ”„๋ก ํŠธ์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค.

๋˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ธŒ๊ธˆ์„ ์žฌ์ƒํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, ์Šคํฌํ‹ฐํŒŒ์ด๋Š” ์ €์ž‘๊ถŒ ์ด์Šˆ๊ฐ€ ์žˆ์–ด ์Šคํฌํ‹ฐํŒŒ์ด๋ณด๋‹ค๋Š” ์œ ํŠœ๋ธŒ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ชฝ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค.

Spotify API๋กœ ๋งŒ๋“  ๊ฒ€์ƒ‰ ํ•จ์ˆ˜๋Š” ์ˆ˜์ •ํ•˜์—ฌ ์ดํ›„ ์ƒˆํ•ด ์ฒซ๊ณก ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ–ˆ๋‹ค.

์นด๋“œ POST, GET API

์„œ๋ฒ„๋Š” express๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์นด๋“œ ๋“ฑ๋ก, ์นด๋“œ ์กฐํšŒ ๋‘ ๊ฐœ์˜ API๋งŒ ์ž‘์—…ํ•˜๋ฉด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง„ ์•Š์•˜๋‹ค. ์‚ฌ์‹ค ์—๋Ÿฌ ํ•ธ๋“ค๋ง์„ ๋” ์„ธ์„ธํ•˜๊ฒŒ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ๋ง‰ํŒ์— ๋” ์šฐ์„ ์ˆœ์œ„ ์ด์Šˆ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š๋ผ ๋ฐ๋“œ๋ผ์ธ ์•ˆ์— ์ž‘์—…ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” 1์›” 1์ผ๋ถ€ํ„ฐ ์นด๋“œ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น id์˜ ์นด๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ์ƒˆํ•ด๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ๋ณด๋‚ด๋Š” ์ด์™€ ๋ฐ›๋Š” ์ด์˜ ์ •๋ณด๋งŒ์„ ๋‚ด๋ ค๋ณด๋‚ด ํ”„๋ก ํŠธ์— ๋…ธ์ถœํ•˜๋„๋ก ํ–ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ์นด๋“œ๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์€ ๋งํฌ์— ์ ‘์†ํ–ˆ์„ ๋•Œ ์ž์‹ ์˜ ์ด๋ฆ„์ด ๋…ธ์ถœ๋˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ณ  '๋‚˜'์—๊ฒŒ ํŽธ์ง€๊ฐ€ ์™”๋‹ค๋Š” ์ง์ ‘์ ์ธ ๋Š๋‚Œ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (๊ฐ‘์ž๊ธฐ UX ์–˜๊ธฐ..)

์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๋ณ„ ๋ฌธ์ œ ์—†์ด ์ง„ํ–‰๋˜์—ˆ์œผ๋‚˜, ๋ฐฐํฌ ํ›„์— ๋‚ด๊ฐ€ ์—„์ฒญ๋‚œ ์‹ค์ˆ˜๋ฅผ ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๊ฑด ๋ฐฐํฌ ์„น์…˜์—์„œ ์ด์•ผ๊ธฐ ํ•ด๋ณด๊ฒ ๋‹ค.

๋‚˜๋ฅผ ๊ดด๋กญํ˜”๋˜ ๊ฒƒ์€ ์ด ๋‹ค์Œ ๋ฌธ์ œ์˜€๋‹ค.

04 mongoDB Atlas

๋Œ€๋ง์˜ ๋ชฝ๊ณ ๋””๋น„.. ์„œ๋ฒ„ ๊ฐœ๋ฐœ๊นŒ์ง€๋Š” ์–ด๊นจ ๋„ˆ๋จธ๋กœ ๋งŽ์ด ๋ด์™€์„œ ์ต์ˆ™ํ–ˆ์ง€๋งŒ, DB๋Š” ๋ญ”๊ฐ€ ๋‹ค๋ฅธ ์„ธ์ƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ๋งŒ ํ•œ๋‹ค๋ฉด DB๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ผ์€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์—ฌ๋Ÿฌ ์„ ํƒ์ง€๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๊ฐ€์žฅ ์ž๋ฃŒ๊ฐ€ ๋งŽ์€ mongoDB Atlas๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋Œ์ด์ผœ๋ณด๋ฉด ์–ด์ด์—†์œผ๋ฆฌ๋งŒํผ ๊ฐ„๋‹จํ•œ ์ด์Šˆ์˜€๋Š”๋ฐ, ๋‹ต์„ ๋ชป์ฐพ์•„์„œ ํ•œ์ฐธ์„ ํ—ค๋งธ๋‹ค...

์ด์Šˆ 1

MongooseError [MongooseServerSelectionError]: connection <monitor> to ip address closed

์ด๋ฒˆ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋‹ค์‹œ ๋ฐฐ์šด๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ œ๋ฐœ.. ์ฝ์ž.
ํ•ด๋‹น ์ด์Šˆ๋Š” ํ˜„์žฌ MongoDB์— ์ ‘๊ทผํ•˜๋ ค๋Š” ip๊ฐ€ ํ—ˆ์šฉ๋œ ip๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ์–ด๋‚˜๋Š” ์ด์Šˆ์ด๋‹ค. ์ด๋Š” ๋ชฝ๊ณ ๋””๋น„์—์„œ ip๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ํ•ด๊ฒฐ์ด ๋œ๋‹ค.

Project - Network Access - [ ADD IP ADDRESS ] ๋ฒ„ํŠผ ํด๋ฆญ ํ›„ ๋…ธ์ถœ๋˜๋Š” ํŒ์—…์—์„œ [ ADD CURRENT IP ADDRESS ] ํด๋ฆญํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ip address์— 0.0.0.0 ์„ ์ž…๋ ฅํ•˜๋ฉด ๋ชจ๋“  ip๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์Šˆ 2

๊ทผ๋ฐ, ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”๋ฐ๋„ ์ ‘๊ทผ์ด ์•ˆ๋œ๋‹ค๊ตฌ์š”? ๋„ค ์ž˜ ์˜ค์…จ์Šต๋‹ˆ๋‹ค. ^^. ... ... .. .. .... .. ...

{ Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:197:19)
  errno: 'ENODATA',
  code: 'ENODATA',
  syscall: 'querySrv',                                           Blog/app.js:54:14
  hostname: '_mongodb._tcp.blog-cluster-0hb5z.mongodb.net' }

hoxy... .. .... ์นดํŽ˜์— ๊ณ„์‹ ๊ฐ€์š”? ํ˜น์‹œ.. ... .... ๋ณ„๋‹ค๋ฐฉ์ธ๊ฐ€์š”?

์Šคํƒ€๋ฒ…์Šค wifi ํ™˜๊ฒฝ์—์„œ mongoDB์— ์ ‘๊ทผ ์‹œ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ์ด๋Š” ํ•ด์™ธ์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ์ด์Šˆ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DNS๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ณ  ๊ทธ๋ƒฅ ์ง‘์—์„œ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค...๋Š” ๊ฒƒ๋„ ์ข‹์€ ์ดˆ์ด์Šค..

์•”ํŠผ ๋‚˜๋Š” ์œ„ ์ด์Šˆ ๋•Œ๋ฌธ์— ์†Œ์ค‘ํ•œ.. ใ… _ใ…  ํ”ผ๊ฐ™์€ ์ฃผ๋ง์„ ํ•˜๋ฃจ ๋‚ ๋ ธ๋‹ค. ๋„ˆ๋ฌด ์ŠฌํŽ์ง€๋งŒ ์ดํ›„ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” ์Šค๋ฒ… ์–ผ์”ฌ๋„ ์•ˆํ•œ ํƒ“์— ์ปคํ”ผ๊ฐ’์„ ์•„๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ํ›„๋ฌธ์ด.

์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ - ์Šคํƒ€๋ฒ…์Šค์—์„œ ๋ชฝ๊ณ ๋””๋น„ ์ ‘์†์ด ์•ˆ๋ผ์š” ํ‘ํ‘!

์—ฌ๋Ÿฌ ์‹œ๊ฐ„์˜ ์‚ฝ์งˆ ๋•Œ๋ฌธ์ธ์ง€ ์ฒ˜์Œ ๋ฐฑ์—”๋“œ์—์„œ ๋ชฝ๊ณ ๋””๋น„๋กœ insert ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ์งœ๋ฆฟํ•จ์€, ์ฒ˜์Œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๊ณ  ์„œ๋ฒ„์™€ ํ•‘ํ์„ ์„ฑ๊ณตํ–ˆ์„ ๋•Œ์™€ ๊ฐ™์•˜๋‹ค...! ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋Š” ํ•œ ์‹œ๊ฐ„์ด๋ฉด ๋š๋”ฑ ํ•˜๊ฒ ์ง€? ํ•˜ํ•ณ

05 Frontend

ํ”„๋ก ํŠธ์—”๋“œ... ๊ฐ€์žฅ ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์•˜๋‹ค. ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋ฐค๋„ ๋งŽ์ด ์ƒˆ๊ณ , ์›ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์•„ ๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์‹ญ๋ฒˆ ๋Œ๋ฆฐ ์‹œ๊ฐ„.

ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•ต๊ทค๋Ÿฌ๐Ÿซถ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ์นด๋“œ๋ฅผ ์ปค์Šคํ…€ํ•  ๋•Œ ์นด๋“œ, ๋ ˆํ„ฐ๋ง, ๋ฐฐ๊ฒฝ์ƒ‰, ๋ฐฐ๊ฒฝ ํšจ๊ณผ, ์นด๋“œ์˜ ๋‚ด์šฉ, ์Œ์•… ๋ชจ๋‘ ํผ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋„๋ก ์ž‘์—…ํ–ˆ๋‹ค. ์•ต๊ทค๋Ÿฌ๋Š” ํผ(form)์„ ์ž‘์—…ํ•˜๊ธฐ์— ๋„ˆ๋ฌด ํŽธํ•˜๊ฒŒ ์…‹ํŒ…๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (์—ฌ๊ธฐ ์•ต๋ฐœ์ž ์žˆ์–ด์š”...!)

์‹œ๊ฐ„์ด ์ข€ ๋” ๋งŽ์•˜๋‹ค๋ฉด ์•„ํ‚คํ…์ณ๋ฅผ ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ์ปดํฌ๋„ŒํŠธ๋กœ ์ž˜ ์ชผ๊ฐœ์–ด ์ž‘์—…ํ–ˆ์„ํ…๋ฐ, ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•œ๊ฒŒ ์ข€ ์•„์‰ฝ๋‹ค. 24์ผ์— ๊ทธ๋ž˜ํ”ฝ ์ž๋ฃŒ๋“ค์„ ๋ฐ›๊ณ  ๊ทธ๋•Œ๋ถ€ํ„ฐ UI ๊ตฌ์„ฑ์„ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งˆํฌ์—…๋งŒ ํ•˜๊ธฐ์—๋„ ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ–ˆ๋‹ค. ๊ฑฐ์˜ ์ž‘์—…ํ•˜๋ฉด์„œ ๋ฐ˜๋ณต๋˜๋Š” UI๋ฅผ ๊ทธ๋•Œ๊ทธ๋•Œ ๋”ฐ๋กœ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ–ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ค‘๋ณต๋  ๊ฒƒ๋“ค์„ ์ƒ๊ฐํ•ด๋‘๊ณ  ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์ž‘์—…ํ–ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

SVG

์ด๋ฒˆ์— ์ž‘์—…ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋‚˜๋ฅผ ํž˜๋“ค๊ฒŒ ํ–ˆ๋˜ SVG... ์˜์ƒ์ด ์•„๋‹Œ ์ˆœ์ˆ˜ ์ฝ”๋“œ๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋””์ž์ด๋„ˆ ์นœ๊ตฌ์—๊ฒŒ ๋ชจ๋“  ์ž๋ฃŒ๋ฅผ SVG๋กœ ์ „๋‹ฌํ•ด ์ค„ ๊ฒƒ์„ ์š”์ฒญํ–ˆ๋‹ค. (์™œ๊ทธ๋žฌ๋ƒ)

DJ๋ธ”๋ž™๋ฒ„๋‹ˆ์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ๋ณด๋ฉด, ์นด๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹จ๊ณ„์ ์œผ๋กœ ์นด๋“œ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” ์นด๋“œ์˜ ๋ชจ์–‘, ๊ทธ ๋‹ค์Œ์—” ์นด๋“œ์— ์˜ฌ๋ผ๊ฐˆ ๋ ˆํ„ฐ๋ง, ๋ฐฐ๊ฒฝ, ์Œ์•…, ํŽธ์ง€ ์ˆœ์ด๋‹ค. ๋•Œ๋ฌธ์— ์ด ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ๊ฐ์˜ ์ด๋ฏธ์ง€๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด ๋งŽ์€ ์—์…‹์ด ํ•„์š”ํ•˜๋‹ค.

์นด๋“œ๊ฐ€ ์ด ์—ฌ์„ฏ ์ข…๋ฅ˜,
๋‘ ๊ฐ€์ง€ ๋ ˆํ„ฐ๋ง,
๋„ค ๊ฐ€์ง€ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ

6 x 2 x 4 ...

๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋Š”๋ฐ, ๋‚˜๋Š” ์ด๋ฅผ ์ตœ์†Œํ™” ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์นด๋“œ๋งˆ๋‹ค ๋ ˆํ„ฐ๋ง์ด ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜๋‚˜ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ์— ์นด๋“œ ์—ฌ์„ฏ ๊ฐœ๋ฅผ ๋‘๊ณ  ๊ทธ ์œ„์— ๋ ˆํ„ฐ๋ง ์—์…‹์„ ์˜ฌ๋ฆด ์ˆ˜๋Š” ์—†์—ˆ๋‹ค. ์นด๋“œ์˜ ์—์…‹์ด ๋ฐ”๋€๋‹ค๋Š” ๋Š๋‚Œ์„ ์œ ์ €๊ฐ€ ๋Š๋ผ์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด๊ฒƒ์„ SVG๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์š”์ฒญํ•˜์—ฌ ๋ฐ›์€ ํŒŒ์ผ ์—์…‹์ด๋‹ค. ์šฐ์ธก์˜ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด 4๊ฐ€์ง€์˜ ์ด๋ฏธ์ง€ ๊ทธ๋ž˜ํ”ฝ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ ์•ˆ์— ๊ฒน์ณ์žˆ๋Š” ์ƒํƒœ๋กœ ๋“ค์–ด์žˆ๋‹ค.

svg๋Š” ๋งˆ์น˜ iframe์œผ๋กœ ํ™”๋ฉด์„ ๊ทธ๋ ค์ฃผ๋“ฏ์ด ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๋‹น ์—์…‹์„ ๋กœ๋“œํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, svg ๋‚ด๋ถ€์˜ style ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด๋ฅผ ํŽธ์ง‘ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํด๋ž˜์Šค ๋ณ„๋กœ ๊ฐ๊ฐ์˜ 4๊ฐœ์˜ ์ด๋ฏธ์ง€ visibility ๋งŒ์„ ์กฐ์ •ํ•ด์คŒ์œผ๋กœ์จ ์ด๋ฏธ์ง€๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์ „ํ™˜๋˜๋„๋ก ์„ค์ •ํ•˜์˜€๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ngSwitch, ngSwitchCase ๋””๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋“œ์˜ ์ข…๋ฅ˜๋ฅผ ์„ ํƒํ•˜๊ณ , ๊ฐ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋‚ด๋ถ€ SVG ์—˜๋ฆฌ๋จผํŠธ์— ์œ ์ €๊ฐ€ ์„ ํƒํ•œ ๊ฐ’์— ๋”ฐ๋ผ class๋ฅผ ๋‹ฌ๋ฆฌ ์ฃผ์–ด ๋…ธ์ถœํ•  ์นด๋“œ์˜ visibility๊ฐ€ ์ˆ˜์ •๋˜๋„๋ก ํ–ˆ๋‹ค.

  objectLoaded(e: any) {
  	const svgElement = e.target?.contentDocument?.querySelector(
  		'svg'
  	) as SVGGraphicsElement;

  	this._svgElement = svgElement;

  	svgElement.classList.add(this.letteringClassName);
  }
<ng-container [ngSwitch]="typeClassName">
  <div class="svg-container" [ngClass]="letteringClassName">
    <object
      *ngSwitchCase="'bunnya'"
      data="./assets/card/bunnya.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
    <object
      *ngSwitchCase="'bunnyb'"
      data="./assets/card/bunnyb.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
    <object
      *ngSwitchCase="'bunnyc'"
      data="./assets/card/bunnyc.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
    <object
      *ngSwitchCase="'heart'"
      data="./assets/card/heart.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
    <object
      *ngSwitchCase="'cloud'"
      data="./assets/card/cloud.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
    <object
      *ngSwitchCase="'oval'"
      data="./assets/card/oval.svg"
      height="100%"
      (load)="objectLoaded($event)"
    ></object>
  </div>
</ng-container>

์‚ฌ์‹ค ๊ทธ๋ƒฅ ๊ฐ๊ฐ ์—์…‹์„ ๋‘๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ๋  ๋ฌธ์ œ์˜€๊ณ , ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”๋„๊ฐ€ ๋†’์€ ํŒŒํŠธ๋Š” ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ํ•œ๋ฒˆ ์‹œ์ž‘ํ•˜๋‹ˆ ๊ดœํžˆ ๋๊นŒ์ง€ ๊ฐ€๋ณด์ž ์‹ถ์—ˆ๋‹ค. ์ฝ”๋“œ๋Š” ์‹ฌํ”Œํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ–ˆ๋˜ ๋ถ€๋ถ„์ด๋‹ค.

์ด์™ธ์—๋„ ์นด๋“œ์˜ ๋ด‰ํˆฌ๊ฐ€ ์—ด๋ฆฌ๋Š” ๋ชจ์…˜ ์—ญ์‹œ svg๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž‘์—…ํ–ˆ๋‹ค.
๋‹ค์Œ์—๋Š” ์ข€ ๋” ๋ณต์žกํ•œ ๋ชจ์…˜์„ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.

๋ชจ์…˜ ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ
https://www.instagram.com/p/Cm1ngwbq3td/

06 ๋ฐฐํฌ

FE๋Š” ๋งŒ๋งŒํ•œ Netlify, ์„œ๋ฒ„๋Š” Heroku๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
Heroku๋Š” ํ˜„์žฌ ๋ฌด๋ฃŒ ํ”Œ๋žœ์€ ์—†๊ณ  ์ตœ์†Œ 7$/mo ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

ํ˜ผ์ž์„œ index 0 ์ด ๋  ์นด๋“œ๋ฅผ ํ•˜๋‚˜ ์™„์„ฑํ•˜๊ณ  ๋‚˜์„œ DB์— ์ž˜ ์ €์žฅ์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์„ ํ•˜๊ณ , ๊ณต์œ ํ•˜๊ธฐ ๊ธฐ๋Šฅ๊นŒ์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋‹ค. ์ฒซ ์นด๋“œ๋Š” ๊ฐ™์ด ์ž‘์—…ํ–ˆ๋˜ ๋””์ž์ด๋„ˆ ์นœ๊ตฌ์—๊ฒŒ ์ „์†กํ–ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฅผ ๋งˆ์น˜๊ณ  ๋‚˜์„œ ์ธ์Šคํƒ€๊ทธ๋žจ๊ณผ ์—ฌ๋Ÿฌ ์†Œ์…œ๋ฏธ๋””์–ด์— ํ™๋ณด๋ฅผ ํ–ˆ๋‹ค.

12์›” 30์ผ๋ถ€ํ„ฐ ํŠธ์œ„ํ„ฐ ์‹ค์‹œ๊ฐ„ ํŠธ๋ Œ๋“œ์— ์ƒˆํ•ด ์ฒซ๊ณก์ด ๋‚˜์™”๋Š”๋ฐ, ์ด๋•Œ ํŠธ์œ„ํ„ฐ ๋ด‡๋งˆ๋ƒฅ ํ™๋ณด๋ฅผ ๊ฒ๋‚˜๊ฒŒ ํ–ˆ๋‹ค. ์‚ฌ์‹ค ํŠธ์œ„ํ„ฐ๋Š” ๊ฑฐ์˜ ์ •๋ณด ์ˆ˜์ง‘์šฉ ๋ˆˆํŒ…๊ณ„์˜€๋Š”๋ฐ, ๋‚ด ์ธ์ƒ ๊ฐ€์žฅ ๋งŽ์€ ํŠธ์œ—์„ ๋‚ ๋ฆฐ ๋‚  ^^...

๋‚ด๋…„์—๋Š” ํ™๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ์ข€ ๊ณ ๋ฏผํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ํ”„๋กœ๋•ํŠธ๋„ ์ค‘์š”ํ•œ๋ฐ, ํ™๋ณด๋Š” ๋ฐฐ๋กœ ๋” ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.. ์—ด์‹ฌํžˆ ๋งŒ๋“ค์–ด๋„ ์•„๋ฌด๋„ ์•ˆ์จ์ฃผ๋ฉด ๋ฌด์Šจ ์˜๋ฏธ๊ฐ€ ์žˆ๊ฒ ์–ด..

๋ชฝ๊ณ ๋””๋น„๋Š” UTC ๊ธฐ์ค€์œผ๋กœ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค˜์„œ ๋งคํŠธ๋ฆญ์Šค์—์„œ ๋…ธ์ถœ๋˜๋Š” ์‹œ๊ฐ„์— 9์‹œ๊ฐ„์„ ๋”ํ•ด์„œ ๋ด์•ผํ•œ๋‹ค.
30์ผ ์ €๋… ํŠธ์œ„ํ„ฐ ์‹คํŠธ์— ์ƒˆํ•ด์ฒซ๊ณก์ด ์˜ฌ๋ผ์˜ค๊ณ  ๋‚˜์„œ๋ถ€ํ„ฐ ์œ ์ž…์ด ํ™• ๋Š˜์—ˆ๊ณ , 1์›” 1์ผ ์นด์šดํŠธ๋‹ค์šด ์ง์ „์— ๊ฐ€์žฅ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋“ค์–ด์™”๋‹ค.

DB์˜ ์‚ฌ์ด์ฆˆ ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ‘œ. 1์›” 1์ผ ์ดํ›„์—๋„ 200 ์—ฌ๊ฐœ์˜ ์นด๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.
ํ”„๋ก ํŠธ์—”๋“œ๋งŒ ํ•˜๋‹ค๊ฐ€ ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ ๋ณด๋‹ˆ๊นŒ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์—ˆ๋‹ค. ์งœ๋ฆฟํ•ด ๋Š˜ ์ƒˆ๋กœ์›Œ.

07 ๋ฐฐํฌ ํ›„ ์ด์Šˆ ๋Œ€์‘

๋ˆ„๊ฐ€ ๋ฐฐํฌํ•˜๋ฉด ๋์ด๋ž˜.. ๋ฐฐํฌํ•˜์ž๋งˆ์ž ๊ฐค๋Ÿญ์‹œ ์“ฐ๋Š” ์—„๋งˆ๊ฐ€ ๋…ธ๋ž˜ ์žฌ์ƒ์ด ์•ˆ๋œ๋‹ค๋ฉฐ ๋ฒ„๊ทธ ์ œ๋ณด๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. ์•ฑ๋“ฑ์ด์ธ ๋‚˜๋Š” ์•ˆ๋“œ ํฐ ํ…Œ์ŠคํŠธ๋„ ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ๊ทธ๋ƒฅ ๊ตฌ๊ธ€๋งํ•ด์„œ ์ˆ˜์ •ํ•ด๋ณด๊ณ  ๋ฐฐํฌํ•˜๊ณ  ๋ฌผ์–ด๋ณด๊ณ ์˜ ๋ฐ˜๋ณต์ด์—ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ..! ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๊ธฐ๊ณ„๋ฅผ ๊ตฌ๋น„ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋‹ค์งํ–ˆ๋‹ค.

๋ฒ„๊ทธ fix ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚˜๋„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋ฉด์„œ ๋ถˆํŽธํ•˜๋‹ค๊ณ  ๋Š๋ผ๋Š” ๊ฒƒ๋“ค์„ patch ํ–ˆ๋‹ค. ์นด๋“œ๊ฐ€ ์ €์žฅ๋  ๋•Œ ๋กœ๋”ฉํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, UX writing์„ ์ˆ˜์ •ํ•˜๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด ์นด๋“œ๋ฅผ ์ €์žฅํ•  ๋•Œ ๋…ธ์ถœ๋˜๋Š” ์–ผ๋Ÿฟ์˜ ๋ฌธ๊ตฌ์˜€๋‹ค.

PATCH: UX Writing

๋ช‡๋ช‡ ์นœ๊ตฌ๋“ค์ด ๋Œ€๋œธ ๋‚ด๊ฒŒ "์นด๋“œ ๋ฐ›์•˜์–ด?" ํ•˜๊ณ  ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
์•„๋‹ˆ, ๋„ค๊ฐ€ ๋งํฌ๋ฅผ ์•ˆ๋ณด๋ƒˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด๋ƒ๊ตฌ!!!!!!

๋‚ด๊ฐ€ ๋งŒ๋“  ์•ฑ์˜ ํ”Œ๋กœ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

์นด๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค โ†’ ์นด๋“œ๋ฅผ ์™„์„ฑํ•˜์—ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ•œ๋‹ค โ†’ ์ €์žฅํ•œ๋‹ค โ†’ ์นด๋“œ id path๋กœ ์ด๋™ํ•œ๋‹ค
โ†’ ๊ณต์œ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค โ†’ ์นœ๊ตฌ์—๊ฒŒ ๋งํฌ ๋˜๋Š” ์นด์นด์˜คํ†ก์œผ๋กœ ๊ณต์œ ํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์œ„์˜ [์ €์žฅํ•œ๋‹ค] ๋‹จ๊ณ„์—์„œ POST ์š”์ฒญ ์„ฑ๊ณต ์‹œ ํŒ์—…์œผ๋กœ "์ €์žฅ์„ ์„ฑ๊ณตํ–ˆ์–ด์š”!" ์–ผ๋Ÿฟ์„ ๋„์›Œ์ฃผ๋Š”๋ฐ, ์ž๊พธ ์นœ๊ตฌ๋“ค์ด ๋ฌธ๊ตฌ๋งŒ ๋ณด๊ณ  ํ™”๋ฉด์„ ๋‹ซ์•„๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. id๋ฅผ ๋ชจ๋ฅด๋ฉด ํ‰์ƒ ๊ทธ ์นด๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ตฌ ์นœ๊ตฌ์•ผ.. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ๋ฒˆ DB๋ฅผ ๋’ค์ ธ ์นด๋“œ ๋งํฌ๋ฅผ ์ฐพ์•„ ์นœ๊ตฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ณค ํ–ˆ๋‹ค.

์›์ธ์ด ๋ญ˜๊นŒ ๊ณ ๋ฏผ์„ ํ•ด๋ณด์•˜๋Š”๋ฐ, "์ €์žฅ์„ ์„ฑ๊ณตํ–ˆ์–ด์š”!"์˜ ๋ฌธ๊ตฌ๊ฐ€ ๋ฌธ์ œ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์นด๋“œ๋ฅผ ์ €์žฅ์€ ํ–ˆ์ง€๋งŒ, ์•„์ง ๋ชจ๋“  ๊ณผ์ •์ด ๋๋‚œ ๊ฒƒ์€ ์•„๋‹Œ๋ฐ ์„ฑ๊ณต์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ชจ๋“  ๊ณผ์ •์ด ๋๋‚ฌ๋‹ค๋Š” ๋Š๋‚Œ์„ ์ค€๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌธ๊ตฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ–ˆ๋‹ค.

์„ฑ๊ณต์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ €์žฅ์ด๋ผ๊ณ  ์ˆ˜์ •ํ•˜๊ณ , ์•„๋ž˜์— ํ™•์ธ์„ ํ•˜๊ณ  ๊ณต์œ ๋ฅผ ํ•˜๋Ÿฌ ๊ฐ€์ž๋Š” ๋‚ด์šฉ์„ ๋ง๋ถ™์—ฌ ๋ชจ๋“  ๊ณผ์ •์ด ์•„์ง ๋๋‚˜์ง€ ์•Š์•˜๊ณ , ๋‹ค์Œ ํŽ˜์ด์ง€์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋˜์กŒ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฌธ๊ตฌ๋งŒ ์ˆ˜์ •ํ•˜๋‹ˆ ์œ„์™€ ๊ฐ™์ด ์‹ค์ˆ˜ํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ๊ฑฐ์˜ ์‚ฌ๋ผ์กŒ๋‹ค. UX ๋ผ์ดํŒ…์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ๋‹ค์‹œ๊ธˆ ๊นจ๋‹ฌ์•˜๋‹ค.

HOTFIX: 2023๋…„์€ ์˜ค์ง€ ์•Š์•„...

๊ทธ๋ฆฌ๊ณ  ์ •๋ง ํฐ ์‹ค์ˆ˜ ํ•œ๊ฐ€์ง€...
12์›” 31์ผ ์ƒˆํ•ด๋งž์ด๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ํ˜„์žฌ์‹œ๊ฐ„์ด ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋กœ๊ทธ๋Š” ์ฐํžˆ๋Š”๋ฐ ๊ณ„์† 21์‹œ 52๋ถ„ 51์ดˆ ... ์‹์€ ๋•€์ด ๋‚ฌ๋‹ค.. ์ด๊ฒŒ ๋ญ์ง€?

์•Œ๊ณ ๋ณด๋‹ˆ, node.js์—์„œ ํ•จ์ˆ˜ ๋ฐ–์—์„œ ํ˜„์žฌ ๋กœ์ปฌ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ์ด๋ฅผ 2023-01-01 ... ์ƒˆํ•ด์™€ ๋น„๊ต๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ํ•จ์ˆ˜ ๋ฐ–์—์„œ ๋กœ์ปฌ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ์žˆ์œผ๋‹ˆ, ๋กœ์ปฌ ์‹œ๊ฐ„์€ ๋”ฑ ํ•œ๋ฒˆ, ์„œ๋ฒ„๊ฐ€ ๋นŒ๋“œ๋˜๊ณ  ๋ฐฐํฌ๋˜๋Š” ๊ทธ ์‹œ์ ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์—ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค. ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ์ƒˆํ•ด๊ฐ€ ๋˜๊ธฐ ์ „์—๋Š” ์„œ๋ฒ„์—์„œ ์นด๋“œ ๋‚ด์šฉ์„ ๋‚ด๋ ค์ฃผ์ง€ ์•Š๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋Œ€๋กœ๋ฉด ์ƒˆํ•ด๊ฐ€ ๋˜์–ด๋„ ์•„์ง ์ƒˆํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋…ธ์ถœ๋  ์ผ์ด์—ˆ๋‹ค.

์ƒˆํ•ด ์ง์ „์ด์—ˆ๊ธฐ์— ๋งŽ์€ ์œ ์ž…์ด ์žˆ์—ˆ์ง€๋งŒ ๋ˆˆ๋ฌผ์„ ๋จธ๊ธˆ๊ณ  ์ด๋ฅผ ์ˆ˜์ •, ๋ฐฐํฌํ•  ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋‹ค.
์ด๋Ÿฐ ๋ฐ”๋ณด๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜๋‹ค๋‹ˆ ์ž๊ดด๊ฐ์ด ๋ฐ€๋ ค์™”์ง€๋งŒ, ํ”„๋ก ํŠธ ๊ฐœ๋ฐœํ•˜๋Š๋ผ ์ดˆ๋ฐ˜์— ๋งŒ๋“  ์„œ๋ฒ„๋ฅผ ๋”๋ธ” ์ฒดํฌํ•˜์ง€ ๋ชปํ•œ ๋‚ด ์ž˜๋ชป์ด์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ƒˆํ•ด ๋˜๊ธฐ ํ•œ์‹œ๊ฐ„๋ฐ˜ ์ „์— ์ฐพ์•˜์œผ๋‹ˆ ์–ผ๋งˆ๋‚˜ ๋‹คํ–‰์ธ์ง€. ํ˜„์žฌ ์‹œ๊ฐ„ ์ฝ˜์†”๋กœ๊ทธ๋กœ ์ฐ์€ ๋‚˜ ์นญ์ฐฌํ•ด..

์ฝ”์–ด์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‹ค์‹œ ๋ฐฐ์šฐ์ž ^^;

ํ”„๋กœ์ ํŠธ ๋ฆฌ๋ทฐ

์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•  ๋•Œ, ๋‚˜์˜ ๋ชฉํ‘œ๋Š” 500๊ฐœ์˜ ์นด๋“œ ์ƒ์„ฑ์ด์—ˆ๋‹ค. ์ ์–ด๋„ ๋‚ด ์ธ์Šคํƒ€๊ทธ๋žจ ์นœ๊ตฌ๋“ค ์ •๋„๋Š” ํ•ด์ฃผ์ง€ ์•Š์„๊นŒ ์‹ถ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ์‹œ๊ฐ„ ๊ธฐ์ค€ ์ด 1,916๋ช…์ด ์šฐ๋ฆฌ์˜ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์นด๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ง€์ธ์—๊ฒŒ ๊ณต์œ ํ–ˆ๋‹ค. (๋ชฉํ‘œ 3๋ฐฐ ์ด์ƒ ๋‹ฌ์„ฑ!) ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€์˜ ์ƒˆํ•ด๋ฅผ ์‘์›ํ•ด์ฃผ๊ณ  ํž˜์ด ๋  ๋…ธ๋ž˜๋ฅผ ๊ณจ๋ผ ์ฃผ๊ณ  ๋ฐ›๋Š”๊ฑธ ์„œ๋ฒ„๋กœ๊ทธ๋กœ ๋ณด์•˜๊ณ , ๊ทธ ๋ชจ๋“  ์นด๋“œ๋ฅผ ๋‚ด๊ฐ€ ๋ฐ›์€ ์–‘ ๊ฐ๋™ ๋ฐ›๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

์ฒ˜์Œ ํ”„๋กœ์ ํŠธ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฐ ๊ฒƒ์ด 12์›” 8์ผ, ์œ„ ๋ชจ๋“  ๊ณผ์ •์„ 3์ฃผ ์•ˆ์— ํ•ด๋‚ด์•ผ ํ–ˆ๋‹ค. ์ฃผ์ค‘์—๋Š” ํšŒ์‚ฌ ์ผ๋กœ ์‹œ๊ฐ„์„ ๊ฑฐ์˜ ๋‚ด์ง€ ๋ชปํ–ˆ๊ณ  ๋ง‰ํŒ์— ๋ฐฐํฌ ์ „ 3-4์ผ์€ ๋งค์ผ ์ƒˆ๋ฒฝ ๋‹ค์„ฏ์‹œ๊นŒ์ง€ ์ž‘์—…ํ•˜๊ณ  ์ชฝ์ž ์„ ์ž๋ฉฐ ๋‹ฌ๋ ธ๋‹ค. ๋งค์ผ ๊ฐ€๋˜ ์šด๋™๋„ ๊ฐ€์ง€ ๋ชปํ•˜๊ณ  ์—ฌ๋Ÿฌ๋ชจ๋กœ ์‚ฌ๋žŒ๊ผด์ด ๋ง์ด ์•„๋‹ˆ์—ˆ๋‹ค. ใ…‹ใ…‹ใ…‹

์„œ๋ฒ„, DB๋ฅผ ๋‹ค๋ค„๋ณด๋ฉด์„œ ๋‚ด ๊ฒฝํ—˜์น˜๋ฅผ ํ‚ค์› ๋‹ค๋Š”๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์–ด๋ ค์šด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋‚ด๊ฐ€ ๊ธฐํš๋ถ€ํ„ฐ ๋””์ž์ธ, ๊ฐœ๋ฐœ, ํ™๋ณด...๊นŒ์ง€ ํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ A-Z ์˜จ์ „ํžˆ ์ฑ…์ž„์ง€๋Š” ๊ฒฝํ—˜์ด์—ˆ๋‹ค. ์‹ค์ œ ์œ ์ €๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ณด๊ณ  ์ง์ ‘์ ์ธ ๋ฐ˜์‘๊ณผ ํ”ผ๋“œ๋ฐฑ์„ ์–ป์œผ๋‹ˆ ์งœ๋ฆฟํ–ˆ๋‹ค. ์ฒซ ํšŒ์‚ฌ์— ์ž…์‚ฌํ•˜๊ณ  ์ฒซ ๋ฐฐํฌ๋ฅผ ํ–ˆ์„ ๋•Œ ๋งˆ์น˜ ์˜ค๋žœ ๊ธฐ๊ฐ„ ์—ฐ์Šต์ƒ ์ƒํ™œ์„ ๋งˆ์น˜๊ณ  ๋ฌด๋Œ€์— ์„œ๋Š” ์•„์ด๋Œ์ด ๋œ ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ์„ ๋ฐ›์•˜๋Š”๋ฐ, ๊ทธ ๊ธฐ๋ถ„์ด ๋˜๊ฒŒ ์˜ค๋žœ๋งŒ์— ๋Š๊ปด์กŒ๋‹ค.

์•ž์œผ๋กœ์˜ ๊ณ„ํš

์—ฐ์ดˆ์—๋Š” DJBB ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. ๋ฐ”์œ ์ผ์ •์— ์ง€์ €๋ถ„ํ•œ ์ฝ”๋“œ๋„ ์™ธ๋ฉดํ•˜๋ฉฐ ๋‹ฌ๋ ธ๋‹ค! 21์ผ ์„œ๋น„์Šค ์ข…๋ฃŒ ํ›„ ํ•˜๋‚˜์”ฉ ๋œฏ์–ด ๊ฐœ์„ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค. ์•ž์œผ๋กœ๋„ ํ‹ˆํ‹ˆ์ด ๋‚ด๊ฐ€ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์„ ๋งŒ๋“ค์–ด๋ณด๋ ค ํ•œ๋‹ค. ๋””์ž์ธ์—๋„ ๋” ์š•์‹ฌ์ด ๋‚˜๊ณ , ์œ ์ €๋“ค์ด ์žฌ๋ฏธ์žˆ๊ฒŒ ๊ฐ–๊ณ  ๋†€ ์ˆ˜ ์žˆ๋Š” ์žฅ๋‚œ๊ฐ์„ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค.

๋””์ž์ด๋„ˆ๋กœ ์ฐธ์—ฌํ•œ ์นœ๊ตฌ๋„ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋Š”์ง€ ๋ฒŒ์จ 2024 ํ‘ธ๋ฅธ ์šฉ ๐Ÿ‰ ์˜ ํ•ด๋ฅผ ์ค€๋น„ํ•˜์ž๊ณ  ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค! 2024 ์‹ ๋…„ ํ”„๋กœ์ ํŠธ๋Š” 10์›”๋ถ€ํ„ฐ ๊ธด ํ˜ธํก์œผ๋กœ ์ค€๋น„ํ•ด์„œ ๋” ๋ฉ‹์ง„ ๋””์ž์ธ๊ณผ ๊ฐœ์„ ๋œ ์‚ฌ์šฉ์„ฑ์œผ๋กœ ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์˜ ์ด์•ผ๊ธฐ๋ฅผ ๋‹ด๊ณ  ์‹ถ๋‹ค.

ํ† ์ดํ”„๋กœ์ ํŠธ? ๊ทธ๊ฑฐ ๋ณ„๊ฑฐ ์•„๋‹˜! ๊ฑ ํ˜ผ์žํ•ด๋„ ๋จ! ใ…‡ใ…‡

3์ฃผ๋งŒ์— ๋งŒ๋“  DJ๋ธ”๋ž™๋ฒ„๋‹ˆ ํ•ด๋ณด๊ธฐ (2023.01.26 ์„œ๋น„์Šค ์ข…๋ฃŒ) ๐Ÿ”—

๊ฐœ๋ฐœ์— ๋„์›€์ด ๋˜์—ˆ๋˜ ๋งํฌ๋“ค
https://velog.io/@hyounglee/DJBB-links

๋งŒ๋“  ์‚ฌ๋žŒ๋“ค

์›น๊ฐœ๋ฐœ + UXUI ์„ค๊ณ„ ๋ฐ ๋””์ž์ธ : @playthings.kr
๋ ˆํ„ฐ๋ง + ๊ทธ๋ž˜ํ”ฝ๋””์ž์ธ : @pot_works

FE Github README updated!
Server Github README updated!

profile
๐ŸŒ™๏ฝ€ใ€ใ€๏ฝ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใ€ใ€ใƒฝใƒฝใ€๏ฝ€ใ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใƒฝใƒฝ๏ฝ€ ใƒฝ๏ฝ€ใ€๏ฝ€ใƒฝ๏ฝ€ใ€ใƒฝ๏ฝ€๏ฝ€ใ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใ€ใƒฝใƒฝ๏ฝ€ใƒฝใ€ใƒฝ ๏ฝ€ใƒฝใ€ใƒฝใƒฝ๏ฝ€ใƒฝ๏ฝ€ใ€๏ฝ€๏ฝ€ใƒฝ๏ฝ€ใƒฝใ€ใƒฝใ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใƒฝ ใ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใƒฝใ€ใƒฝใ€ใƒฝ๏ฝ€ใƒฝ๏ฝ€ใƒฝ ใ€ใƒฝใ€ใƒฝใ€ใƒฝ๏ฝ€๏ฝ€ใ€ใƒฝ๏ฝ€ใ€ใƒฝใƒฝ ๐Ÿšถโ€โ™€ ใƒฝ๏ฝ€๏ฝ€ใƒฝ๏ฝ€๏ฝ€ใ€ใƒฝ๏ฝ€ใ€
post-custom-banner

12๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 1์›” 6์ผ

๐Ÿ‘๐Ÿ‘๐Ÿ‘๐Ÿ‘

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2023๋…„ 1์›” 6์ผ

์•ˆ๋…•ํ•˜์„ธ์š” ์šฐ์—ฐํžˆ ๊ธ€ ์ฝ์—ˆ๋Š”๋ฐ, ๋„ˆ๋ฌด ๋Œ€๋‹จํ•˜์‹œ๋„ค์š”...!
์ €๋„ ๋ญ”๊ฐ€ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋ง‰ ๋“œ๋„ค์š” ใ…Žใ…Ž

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2023๋…„ 1์›” 11์ผ

์•„์ด๋””์–ด๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ ์™„์„ฑ, ๊ณต์œ , ๋ฒ„๊ทธํ”ฝ์Šค์— ๋ชฉํ‘œ์น˜ 3๋ฐฐ ๋‹ฌ์„ฑ๊นŒ์ง€ ...
์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ˆˆ์„ ๋–ผ์ง€ ๋ชปํ•˜๊ณ  ์ฝ์—ˆ์–ด์š” ์ •๋ง ๋Œ€๋‹จํ•˜์‹ญ๋‹ˆ๋‹ค ! :)

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2023๋…„ 1์›” 11์ผ

๋„ˆ๋ฌด ๊ท€์—ฌ์›Œ์š” ์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค! 2024๋…„๋„ ๊ธฐ๋Œ€๋˜๋„ค์š” ๊ทธ๋•Œ๋Š” ๊ผญ ์ด ์„œ๋น„์Šค๋กœ ์นด๋“œ ๋ณด๋‚ด๋ณด๊ณ  ์‹ถ์–ด์š” ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2023๋…„ 1์›” 17์ผ

๋ฐ˜๊ฐ€์šด ์ด๋ฆ„์ด ๋ฉ”์ผ๋ฆฌ์ŠคํŠธ์— ๋–ด๊ธธ๋ž˜ ๋ณด์•˜๋”๋‹ˆ ๋ฟŒ๋“ฏํ•œ ํ”Œ์  ํ•˜๋‚˜ ๋Ÿฐ์นญ ํ•˜์…จ๊ตฐ์š”! ๋ฉ‹์ง‘๋‹ˆ๋‹ค์š”. ๐Ÿ‘ ์ด์ œ ์„œ๋ฒ„๋ง›์„ ๋ณด์…จ์œผ๋‹ˆ ํ’€์Šคํƒ์˜ ๊ธธ๋กœ...! ใ…‹ใ…‹ใ…‹

  • ๊ตฌ) ์—์ด๋“  -
1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2023๋…„ 2์›” 2์ผ

์šฐ์™€ ์•ต๊ทค๋Ÿฌ๋กœ ๊ฐœ๋ฐœํ•˜์…จ๋”๋‹ˆ ใ…Žใ…Ž ์ €๋„ ์•ต๊ทค๋Ÿฌ ์ฐธ ์ข‹์•„ํ•˜๊ณ  ์‹ค๋ฌด์—์„œ๋„ ์“ฐ๊ณ ์žˆ๋Š”๋ฐ ์š”์ฆ˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ถ„์„ ๋งŒ๋‚˜๋‹ค๋‹ˆ ๋˜๊ฒŒ ๋ฐ˜๊ฐ‘๋„ค์š” ใ…Žใ…Ž! ์›น์‚ฌ์ดํŠธ๋„ ์ •๋ง ์˜ˆ์˜๊ณ  ์•„์ด๋””์–ด๋„ ์ข‹์€๊ฒƒ ๊ฐ™์•„์š” :) ๊ธ€ ์ž˜๋ณด๊ณ  ๊ฐ‘๋‹ˆ๋‹ค!

1๊ฐœ์˜ ๋‹ต๊ธ€