Knocking On Final Project's Door, ํšŒ๊ณ 

ytwiceyยท2021๋…„ 2์›” 6์ผ
0

CodeStates

๋ชฉ๋ก ๋ณด๊ธฐ
3/3
post-thumbnail

๐Ÿ–ฅ Cominciamo,

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

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

ํŠนํžˆ๋‚˜ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ์ˆ˜๊ฐ•์ƒ๋“ค์ด ๋งŽ์ด ์จ์คฌ์œผ๋ฉด ํ•˜๋‹ˆ๊นŒ ๋”๋”์šฑ!

knocknrole.com


Requirment

์•„๋‹ˆ ๋„๋Œ€์ฒด ๋ฌด์Šจ ํ”„๋กœ์ ํŠธ๊ธธ๋ž˜ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ์ˆ˜๊ฐ•์ƒ๋“ค์ด ์จ์คฌ์œผ๋ฉด ํ•˜๋Š”๊ฐ€.

์ฒ˜์Œ์— ์•„์ด๋””์–ด ํšŒ์˜๋ฅผ ํ•  ๋•Œ, ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. ๋ฌด์Šจ ์•„์ด๋””์–ด๋ฅผ ๋‚ด์•ผ ํ• ๊นŒ. ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค์„ ์ƒ๊ฐํ•ด๋ดค๋Š”๋ฐ,
๋Œ€๋ถ€๋ถ„ ์Šค์ผ€์ผ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜(ํ•ซํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋„ˆ๋ฌด ์Šค์ผ€์ผ์ด ์ž‘๋‹ค๊ฑฐ๋‚˜, ๋Œ€๋ฐ•์ธ ๊ฒƒ ๊ฐ™์€๋ฐ ์Šค์ผ€์ผ์ด ๋„ˆ์–ด๋ฌด ํฌ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋ฉด ์—ฌ์ง€์—†์ด ์ปท), ๋‚จ๋“ค๋„ ์ƒ๊ฐํ•  ๋ฒ•ํ•œ ๊ทธ๋Ÿฐ ์•„์ด๋””์–ด๋“ค ๋ฐ–์— ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค.

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

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

์•„์ด๋””์–ด๋Š”?

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

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๋”ํ•ด์„œ, ์ˆ˜๋ฃŒ๊ฐ€ ๋๋‚˜๊ฐ€๋‹ˆ๊นŒ ์Šค๋ฌผ์Šค๋ฌผ ๋งˆ์Œ ์†์— ๋ถˆ์•ˆ๊ฐ์ด ํ”ผ์–ด์˜ค๋ฅด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ํ˜๋Ÿฌ๊ฐ์—๋„ ๋‚ด ๋ง˜์—๋Š” ์ทจ์—…ํ•  ์ˆ˜ ์žˆ์„๊นŒ ๋ผ๋Š” ๋ฌผ์Œ์ด ์ž๊พธ ๋– ์˜ฌ๋ž๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊ทธ๋Ÿฐ ์œ„์••๊ฐ์— ๊ฐ•ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ ํ–ˆ๋˜ ๋‚ด ๋ง˜์—๋„ ํ˜๋Ÿฌ๋“ค์–ด์˜ค๋Š”๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์˜ค์ฃฝํ–ˆ์„๊นŒ. ๊ทธ๋ž˜์„œ ์ด์ „ ๊ธฐ์ˆ˜๋“ค์€ ์–ด๋• ๋Š”์ง€ ๋„ˆ์–ด์–ด์–ด๋ฌด ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฐ ์„ ๋ฐฐ ๊ธฐ์ˆ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋Š” ์ˆœ๊ฐ„์€ ์˜ค๋กœ์ง€ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต์œ ํšŒ๋ฟ์ด๋ผ ์•„์‰ฌ์› ๋‹ค.

๋˜, ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚˜๋ฉด ์Šคํ„ฐ๋””๋„ ํ•˜๊ณ  ์‹ถ๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด์•ผ ์‹ค๋ ฅ์ด ๋ถ€์ฉ ๋Š๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ด๋“œ ํ† ์ด ํ”„๋กœ์ ํŠธ๋„ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ ์ฐพ๊ธฐ๋„ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์€ ๊ณ ๋ฏผ์ด ๋“ค์—ˆ๋‹ค.

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

KNOCKNOCK!!!!

๋…น๋…น, ๋˜‘๋˜‘ ๋…ธํฌ๋งŒ ํ•˜๋ฉด, ์Šคํ„ฐ๋””, ํ”„๋กœ์ ํŠธ, ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ฌธ์ด ์—ด๋ฆฐ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด์•„์„œ ์ด๋ฆ„์„ ์ง€์—ˆ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ์ฃผ์ œ์™€ ์•„์ด๋””์–ด๋ฅผ ์ •ํ•˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ๊ทธ ๋‹ค์Œ์€ ์•„์ด๋””์–ด ๋ฑ…ํฌ์ธ ๋ณด๋ฌผ๊ฒฐ๋‹˜, ๋ฆฐ์ˆ˜๋‹˜, ์ฅฌ๋‹ˆ๋‹˜์˜ ๋จธ๋ฆฌ ์†์—์„œ ์ด๊ฒƒ์ €๊ฒƒ ๋‚˜์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ์ฐจ๋ก€๋Œ€๋กœ ์ด์ œ๋Š” ์ต์ˆ™ํ•˜๊ฒŒ, position set, wire frame, workflow, api, database schema ๋“ฑ์„ ๊ณ ๋ฏผํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

์šฐ๋ฆฌํŒ€์€ ๋„ท ๋ชจ๋‘ ์ฒ˜์Œ SR์— ์‹œ๊ฐ„์„ ๋” ์“ฐ์ž๋Š”๋ฐ ๋™์˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ž‘์—…์— ์—„์ฒญ ์˜ค๋žœ ์‹œ๊ฐ„ ํˆฌ์ž ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒซ ์ฃผ๋ง์€ 2์ฃผ ํ”„๋กœ์ ํŠธ๋กœ ํž˜๋“ค์—ˆ์œผ๋‹ˆ ์‰ด ๋ฒ•๋„ ํ•œ๋ฐ, ์ฃผ๋ง์— ๋ชจ์—ฌ์„œ ์ด ๊ธฐ๋ณธ ๋ฒ ์ด์Šค ์ž‘์—…์„ ํƒ„ํƒ„ํžˆ ๋‹ค์กŒ๋‹ค.

ํŒ€์ด๋ฆ„์€ OA3

์šฐ๋ฆฌ ํŒ€ ์ด๋ฆ„์€ OA3๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๊ฑด ๋‚ด ์˜๊ฒฌ์— ๋”ฐ๋ฅธ ๊ฑด๋ฐ, 2์ฃผ์ฐจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฆ„์„ ์ง€์—ˆ๊ณ , ์ƒ๊ฐ๋ณด๋‹ค ๊ดœ์ฐฎ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ํ–ˆ๋‹ค. ์‹ฌํ”Œํ•˜๊ฒŒ ํ˜ˆ์•กํ˜• Oํ˜•์ด ํ•œ ๋ช…, Aํ˜•์ด ์„ธ ๋ช…์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—... ๋ณ„๊ฑฐ ์•„๋‹Œ๋ฐ ๋ˆ„๊ฐ€ Oํ˜•์ธ์ง€ ์ƒ๊ฐ๋ณด๋‹ค ๊ถ๊ธˆํ•ดํ•˜๊ณ  ์žฌ๋ฐŒ์–ด ํ•˜๋”๋ผ. ๋ˆ„๊ฐ€ Oํ˜•์ผ๊นŒ?

Wire Frame

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

  1. ์ด๋ฒˆํ•ด ํŒฌํ†ค ์ปฌ๋Ÿฌ๋Š” ๋…ธ๋ž€์ƒ‰๊ณผ ํšŒ์ƒ‰.
  2. ๋…ธํฌํ•˜๋ฉด ๋ฌธ์ด ์—ด๋ฆฌ๋Š” ๋Š๋‚Œ์  ๋Š๋‚Œ

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ์˜ ์ฒซ ํ™”๋ฉด ์™€์ด์–ด ํ”„๋ ˆ์ž„์€ figma๋ฅผ ์ด์šฉํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฐ์ •๋˜์—ˆ๋‹ค. (๋‚˜์ค‘์— ์ง„์งœ ๊ท€์—ฝ๊ณ  ๋ฉ‹์ง€๊ฒŒ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ) ์•„๋ž˜ ์‚ฌ์ง„ ์™ธ ๋‹ค๋ฅธ ์™€์ด์–ดํ”„๋ ˆ์ž„์€ ๊นƒํ—™๋ ˆํฌ์ง€ํ† ๋ฆฌ ์œ„ํ‚ค์— ์žˆ์Œ!

Workflow

์›Œํฌ ํ”Œ๋กœ์šฐ๋Š” 2์ฃผ ํ”„๋กœ์ ํŠธ ๋•Œ๋Š” ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋ฒˆ์—” ๊ธฐ๋Šฅ์ด ๋” ๋ณต์žกํ•ด์ ธ์„œ ์ž‘์„ฑ์„ ๊ผญ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์—„์ฒญ ์ž์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ์ตœ๋Œ€ํ•œ ์œ ์ €์˜ ๋งˆ์Œ์œผ๋กœ ์“ฐ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๊ณ  ์—ฌ๊ธฐ์— ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•˜๋ฉด ์ข‹์„๊นŒ๋ฅผ ๊ณ ๋ฏผํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. (Miro์‚ฌ์šฉ)

Database Schema

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋Š” ์ด๋ฒˆ์—๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๊ฒŒ ๊ฐ€๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ ๊ธฐ์ค€์€ ๋ฌด์กฐ๊ฑด Many to Many๊ด€๊ณ„๋ฅผ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ์„ ๋„ฃ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ธฐ์ค€์€ ๊ฒฐ๊ตญ ๋‹ฌ์„ฑ ํ–ˆ๋‹ค.

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

API

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

์ด๋ ‡๊ฒŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ํ•ด์•ผํ•  ๊ฒƒ๋“ค์„ 1์ฃผ์ฐจ์— ์ง„ํ–‰ํ–ˆ๋‹ค. ์ด ์™ธ์—๋„ ํŒ€๋ฃฐ์„ ์ •ํ•˜๊ณ , pull request ๊ทœ์น™, git commit ๊ทœ์น™์„ ์ •ํ–ˆ๋‹ค. ์œ„ ๊ทœ์น™๋“ค์„ ์ •ํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ•œ ๋ˆˆ์— ๋ณด์•˜์„ ๋•Œ ์ดํ•ด๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€์˜€๋‹ค. ๊ทธ๋ž˜์„œ pull request, git commit์„ ํ•  ๋•Œ๋Š” ์•ž์— [์„œ๋ฒ„], [ADD], [MODIFY] ๋“ฑ์„ ๋ถ™์—ฌ์„œ ๋ฌด์Šจ ์ž‘์—…์„ ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ 4์ฃผ๊ฐ„์˜ ์—ฌ์ •์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค.

Position

2์ฃผ ํ”„๋กœ์ ํŠธ ๋•Œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋งก์•„์„œ ์ง„ํ–‰ํ–ˆ๋‹ค. React๊ฐ€ ์ž์‹ ์ด ์—†์–ด์„œ ์กฐ๊ธˆ ๋” ๋‹ค์ง€๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋‚˜์—๊ฒŒ 2์ฃผ ํ”„๋กœ์ ํŠธ๋Š” ๊ณต๋ถ€ํ•œ ๊ฒƒ๋“ค ํ•œ๋ฒˆ ๋‹ค ์จ๋ณด๋Š” ์ผ์ด ์ค‘์š” ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ 4์ฃผ ํ”„๋กœ์ ํŠธ๋Š” ๋‚ด๊ฐ€ ๋‚˜์ค‘์— ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค์„ ๋ฏธ๋ฆฌ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋ฐฑ์—”๋“œ๋กœ ๊ฐ€๊ณ  ์‹ถ๋‹ค๋Š” ์˜๊ฒฌ์„ ์–ดํ•„ํ•ด์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์–ด๋ ค์šด๊ฑด stack ์ •ํ•˜๊ธฐ?

๊ทธ๋ ‡์ง€๋งŒ ๋ฐฑ์—”๋“œ์—์„œ ์Šคํƒ์„ ์ •ํ•˜๋Š” ์ผ์ด ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กœ์› ๋‹ค. 4์ฃผ๋ผ๋Š” ์‹œ๊ฐ„์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์š•์‹ฌ์„ ๋‚ด๊ณ  ์‹ถ์—ˆ๋‹ค. ์ƒˆ๋กœ์šด ์Šคํƒ์„ ๊ฐ€์ ธ๊ฐ€๊ณ  ์‹ถ์—ˆ๊ณ , ๋‚˜์™€ ๊ฐ™์€ ํฌ์ง€์…˜์ด ๋œ ๋ณด๋ฌผ๊ฒฐ๋‹˜์€ ํ•ด๋ณด๊ณ  ์‹ถ์€ ์Šคํƒ์ด ์ด๋ฏธ ์žˆ์—ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ NestJS. ์š”์ƒˆ ํ•ซํ•˜๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ํ•œ๋ฒˆ ๋„์ „ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋Š”๋ฐ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ํ•„์š”ํ• ๊นŒ ์ฐพ์•„๋ณด๋Š”๋ฐ, ํ—ฌํ”„๋ฐ์Šคํฌ(์ด์ œ๋ถ€ํ„ฐ ํ—ฌ๋ฐ๋ผ๊ณ  ๋ถ€๋ฅผ ์˜ˆ์ •)์—์„œ ์šฐ๋ฆฌ์™€ ๊ฐ™์€ ๊ถ๊ธˆ์ฆ์„ ๋ณด์•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋„ˆ๋ฌด ๊ถ๊ธˆํ•ด์„œ ๋‹ต์„ ๋ณด์•˜๋”๋‹ˆ, ๋ฐฐ์šฐ๋Š”๋ฐ 2-3์ฃผ๊ฐ€ ๊ฑธ๋ฆด๊ฑฐ๋ผ๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค nest.js์— ๋Œ€ํ•œ ํ—ฌ๋ฐ ๋‚ด์˜ ์งˆ๋ฌธ๋“ค์„ ์ฐพ์•„๋ณด์•˜๋Š”๋ฐ, ์จ๋ณธ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ง€ ์•Š์•„ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด ์Šคํƒ์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋Š” ๊ฒƒ์„ advanced ๊ณผ์ œ๋กœ ๋‚จ๊ฒจ๋‘์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  nest.js์— ์—ฌ์šด์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋‚จ์•„์„œ, typescript๋ฅผ ๋‹ค์Œ ์ฐจ์„ ์ฑ…์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. 4์ฃผ๊ฐ„์˜ ์‹œ๊ฐ„์—์„œ 1์ฃผ์ผ ์ •๋„๋Š” ํˆฌ์žํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋งŽ์ด ๋ฒ—์–ด๋‚˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์Šคํƒ์„ ์„ ํƒํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ๋กœ๋Š” ORM์„ ๋ณ€๊ฒฝํ•ด์„œ ์“ฐ์ž๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. sequelize๋„ ์ข‹์•˜์ง€๋งŒ, typeORM์„ ๋ณด์•˜์„ ๋•Œ ์ฒซ ์ด๋ฏธ์ง€๋Š” ์‹ค์ œ sql ์ฟผ๋ฆฌ๋ฌธ์„ ์ปค์Šคํ…€ํ•ด์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์“ธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ typeORM์„ ๋„์ „ ํ•ด๋ณด์ž๋Š”๋ฐ ์˜๊ฒฌ์ด ๋ชจ์•„์กŒ๋‹ค.

์ด ์Šคํƒ์„ ์ •ํ•˜๋Š”๋ฐ๋„ ๋ฌด๋ ค 3~4์ผ์ด ๊ฑธ๋ ธ๋‹ค. ๊ทธ๋งŒํผ ์Šคํƒํ•˜๋‚˜ ์ •ํ•˜๋Š”๋ฐ๋„ ์‹œ๊ฐ„์„ ๋“ค์—ฌ ๊ณ ์‹ฌํ•ด์„œ ์„ ํƒํ–ˆ๋‹ค. ์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋‚ด ์™„์„ฑ๋„ ๋†’์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์ด ์ฃผ๋œ ์ƒ๊ฐ์ด์—ˆ๊ณ  ๊ทธ๋Ÿฌ๋ ค๋ฉด ํฌ๊ธฐํ•ด์•ผํ•  ๊ฒƒ๊ณผ ๋“ํ•ด์•ผ ํ•  ๊ฒƒ์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์•ผ ํ–ˆ๋‹ค. ๋‚˜์ค‘์— ๊ฐ€์„œ ๊ธฐ๋Šฅ์„ ํฌ๊ธฐํ•ด์„œ ๋ฐ˜์ชฝ์งœ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€๋„ ์•Š์•˜๊ณ , ์–ด๋ ต๋‹ค๊ณ  ๋‚˜์ค‘์— ์Šคํƒ์„ ๋ฐ”๊ฟ” ์‹œ๊ฐ„๋‚ญ๋น„๋ฅผ ํ•˜๋Š” ์ผ๋„ ์—†์–ด์•ผ ํ–ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  ํ•ด๋‹น๋˜๋Š” ์ˆœ๊ฐ„, ๊ทธ ํ”„๋กœ์ ํŠธ๋Š” ์„ฑ๊ณตํ•œ ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์Šคํƒ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฐ์ •๋˜์—ˆ๋‹ค.

Process

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๋ฐฑ์—”๋“œ์˜ ์ž‘์—…์ด ์ง„ํ–‰๋๋‹ค.

1. Config & Routing

  • ์ด 15๊ฐœ์˜ route๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ , ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ typeorm์— ๋Œ€ํ•œ configuration์„ ์ž‘์„ฑํ–ˆ๋‹ค.

2. DB์ƒ์„ฑ - Typeorm

  • ์ƒ๊ฐ๋ณด๋‹ค Typeorm์„ ์ด์šฉํ•ด์„œ DB๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฑด ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค.
    Entity์•ˆ์— Column์„ ๋งŒ๋“ค๊ณ , ๊ฐ ์ปฌ๋Ÿผ๋งˆ๋‹ค ํƒ€์ž…์„ ์ง€์ •ํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  DB๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
//index.ts
createConnection()
  .then(() => {
    console.log(`it's done!`);
  })
  .catch((error) => console.log(error));

3. Typeorm ํŒŒํ—ค์น˜๊ธฐ

  • ์ด์ œ๋ถ€ํ„ฐ๊ฐ€ ๋ฌธ์ œ์˜€๋‹ค. entity ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ์กฐ์ธํ…Œ์ด๋ธ”, ์กฐ์ธ ์ปฌ๋Ÿผ์„ ๋งŒ๋“ค๊ฑด์ง€๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์› ๊ณ , ๊ณต์‹๋ฌธ์„œ์™€ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ๊ฒฐ๊ตญ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๊ณต์‹๋ฌธ์„œ๊ฐ€ ์•ฝ๊ฐ„ ๋ถˆ์นœ์ ˆ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค... ํ•˜
    ์ด๊ฒƒ์ด ๋‚˜์˜ typeorm ๋ถ„ํˆฌ๊ธฐ์˜ ๊ฒฐ๊ณผ๋ฌผ?!

4. ์ปค์Šคํ…€ ๋ฉ”์†Œ๋“œ

  • ์ด ๋ถ€๋ถ„์ด typeorm์˜ ๊ฝƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ œ์ผ ์žฌ๋ฐŒ์—ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ ๋กœ์ง์—์„œ ์“ธ ์ปค์Šคํ…€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ, typeorm์€ active record ํ˜น์€ data mapper ์Šคํƒ€์ผ์— ๋”ฐ๋ผ์„œ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ• ์ง€๊ฐ€ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ฌ๋ผ์ง„๋‹ค. ์šฐ๋ฆฌ๋Š” Active Record ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๊ธฐ๋กœ ํ•ด์„œ Entity ์•ˆ์—๋‹ค๊ฐ€ ์ปค์Šคํ…€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์—ˆ๋‹ค. ๋จธ๋ฆฌ ์•„ํŒ ์ง€๋งŒ ์ œ์ผ ์žฌ๋ฐŒ์—ˆ๋˜ ์ž‘์—…์€ Inner Join ํ•˜๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ์›ํ•˜๋Š” ๋Œ€๋กœ ์ด๋ฉ”์ผ๋กœ ๋ฐ์ดํ„ฐ์—์„œ ์œ ์ € ์ฐพ๊ธฐ, ์œ ์ €๋ž‘ ๊ฒŒ์‹œ๊ธ€ ์กฐ์ธํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.

5. controller ๋กœ์ง

  • ๋งค route๋งˆ๋‹ค ๋ชฉ์ ์— ๋งž๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•ด์คฌ๋‹ค. ์ด๋•Œ ์ปค์Šคํ…€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ ์œผ๋ฉด ๋˜๊ณ , ์œ„์˜ API๋Œ€๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.
  • ๋‹จ, ์–ด๋ ค์› ๋˜ ๊ฒƒ์€ ์„ธ์…˜๋ถ„์‹ค ๋ฌธ์ œ์˜€๋‹ค. (ํ›„์ˆ ํ•˜๊ฒ ์Œ)

6. AWS๊ธฐ๋ฐ˜ ๋ฐฐํฌ

  • ๋ฐฐํฌ๋Š” ๋ณด๋ฌผ๊ฒฐ๋‹˜์˜ ์ฃผ๋„ ํ•˜์— ์ด๋ฃจ์–ด์กŒ๋‹ค. ์—ฌ์ „ํžˆ ๋ฐฐํฌํ•  ๋•Œ๋Š” ๊ธด์žฅ์„ ํ•œ๋‹ค. ์–ด๋ ต๊ธฐ๋„ ํ•˜๊ณ , ์—๋Ÿฌ๊ฐ€ ์–ด๋””์„œ ํŠ€์–ด๋‚˜์˜ฌ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ. ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” EC2์—์„œ pm2๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
  • https๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ route53์—์„œ ๋„๋ฉ”์ธ์„ ์ƒ€๊ณ , ํƒ์›”ํ•œ ์„ ํƒ์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ACM์„ ์ด์šฉํ•ด์„œ ์ธ์ฆ์„œ๋ฅผ ๋”ํ•ด https๋ฅผ ์“ธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Errors

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

์šฐ์„  ์šฐ๋ฆฌ๊ฐ€ ๊ฒช์—ˆ๋˜ ์—๋Ÿฌ๋Š” ํฌ๊ฒŒ ์ด 3๊ฐ€์ง€ ์ •๋„์ธ ๊ฒƒ ๊ฐ™๋‹ค.

1. ์„ธ์…˜๋ฌธ์ œ

  • ์šฐ์„  ์„ธ์…˜ ๋ฌธ์ œ๋Š” ๋ชจ๋“  ํ—ฌํ”„๋ฐ์Šคํฌ์˜ ์„ธ์…˜๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์ฝ์–ด๋ณด์•˜๊ณ , samesite์˜ ๋ฌธ์ œ์˜€๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด์„œ samesite๋ฅผ none์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

2. Module

  • ๋ชจ๋“ˆ ๋ฌธ์ œ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํŒŒ์ผ ํ•  ๋•Œ, import ํ•˜๋Š” ๋ฐฉ์‹์ด ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ, ๊ณต์‹ ํ•ธ๋“œ๋ถ์— ๋”ฐ๋ฅด๋ฉด, export = ์ด๋Ÿฐ์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•˜๋ฉด, import ooo = require('ooo') ์ด๋ ‡๊ฒŒ ์ ์–ด์ค˜์•ผ ์ปดํŒŒ์ผ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ”๊พธ์–ด ์ฃผ์—ˆ์Œ. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฑธ๋กœ ์ดํ‹€ ์ด์ƒ์„ ๊ณ ๋ฏผํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ต์— ๋‚จ๋Š” ์—๋Ÿฌ์˜€๋‹ค.

3. ๋ฐฐํฌ ์‹œ, ํ˜ธ์ŠคํŠธ ์˜์—ญ๊ณผ ๋„๋ฉ”์ธ์˜ ์ด๋ฆ„์„œ๋ฒ„์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ

  • ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ ํ•  ๋•Œ, ํ•˜์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ง„ํ–‰ํ•˜์˜€๋Š”๋ฐ ๋„๋ฉ”์ธ์„ ์‚ฌ๊ณ  ACM ์ธ์ฆ์„ ๋ฐ›๊ณ , ELB์™€ EC2, RDS๋„ ์—ฐ๊ฒฐ์„ ํ–ˆ๋Š”๋ฐ, ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์†์„ ํ•˜๊ณ , ELB DNS์ฃผ์†Œ๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ์ ‘์†ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋‚˜ํƒ€๋‚ฌ๋‹ค.

์ด ๋•Œ ํ—ฌํ”„๋ฐ์Šคํฌ์˜ ๋„์›€์„ ๋ฐ›์•˜๋‹ค. ๊ทธ ๋•Œ์˜ ๋‹ต์€ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค.

๋น„๊ณต๊ฐœ๊ฐ€ ์•„๋‹˜, ๊ธˆ์œต์ •๋ณด๋ฅผ ํ›”์น  ์ˆ˜ ์žˆ๋‹ค๋ผ๊ณ  ์•Œ๋ฆผ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ด์œ ๋Š” ์ธ์ฆ์„œ๊ฐ€ ๋ณด์žฅํ•˜๋Š” ๋„๋ฉ”์ธ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์ค€ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ ์ž…๋‹ˆ๋‹ค. ACM ์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๊ฐ€ ๋ณด์žฅํ•˜๋Š” ๋„๋ฉ”์ธ๊ณผ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ์ด ๊ฐ™์€๊ฒฝ์šฐ๋ผ๋ฉด ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋Š” ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ knocknrole.com์ด๋ž€ ๋„๋ฉ”์ธ ์ฃผ์†Œ ๋Œ€์‹  ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ์ฃผ์†Œ๋กœ ์ ‘์†ํ•˜์…”์„œ ์ƒ๊ธด ๋ฌธ์ œ์ธ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.
ํ˜น์‹œ ๊ณต์‹ ๋ฌธ์„œ ๋ฅผ ์ฐธ๊ณ ํ•˜์…”์„œ ๋ผ์šฐํŒ…์„ ์ง„ํ–‰ํ•˜์…จ์„ ๊นŒ์š”?

ํ•ด๋‹น ๋ฌธ์„œ์—๋„ ํ•œ๊ฐ€์ง€ ์„ค๋ช…์ด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์˜์—ญ๊ณผ ๊ตฌ์ž…ํ•˜์‹  ๋„๋ฉ”์ธ์˜ ์ด๋ฆ„์„œ๋ฒ„๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์ ‘์†์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ŠคํŒ… ์˜์—ญ์„ ํด๋ฆญํ•˜์‹œ๋ฉด NS ์œ ํ˜•์˜ 4๊ฐ€์ง€ ๊ฐ’๋“ค์ด ๋ณด์ด์‹คํ…๋ฐ, ํ•ด๋‹น ๊ฐ’๋“ค์„ ๊ตฌ์ž…ํ•œ ๋„๋ฉ”์ธ์˜ ์ด๋ฆ„์„œ๋ฒ„๋กœ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์ž…ํ•˜์‹  ๋„๋ฉ”์ธ์„ ์‚ดํŽด๋ณด์‹œ๋ฉด ๋“ฑ๋ก๋‚ ์งœ, ๋งŒ๋ฃŒ๋‚ ์งœ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์‹ค์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ™”๋ฉด์— ์ด๋ฆ„์„œ๋ฒ„ ์ถ”๊ฐ€, ํŽธ์ง‘ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋„๋ฉ”์ธ ์ด๋ฆ„ ์„œ๋ฒ„๋ฅผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํ˜ธ์ŠคํŒ… ์˜์—ญ์˜ ์ด๋ฆ„์„œ๋ฒ„๋ช…์œผ๋กœ ์ „๋ถ€ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”.

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



๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ํผ์ง€๋ง‰ํ•œ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ์™€์˜ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…๊นŒ์ง€ ๋๋‚ด๊ณ ์„œ์•ผ ๋์ด ๋‚ฌ๋‹ค...
๊ทธ๋Ÿผ ๊ตฌ๊ฒฝํ•ด๋ณผ๊นŒ?๐Ÿ“Ž

Done

๋…น๋…น์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ๐Ÿ“Ž์—ฌ๊ธฐ!

์„ธ๋ถ€์„ค๋ช…

๋ฉ”์ธํŽ˜์ด์ง€ GIF

๋งˆ์ดํŽ˜์ด์ง€ GIF

๊ฒŒ์‹œ๊ธ€-ํ”„๋กœ์ ํŠธ GIF

๊ฒŒ์‹œ๊ธ€-์Šคํ„ฐ๋”” GIF

๊ฒŒ์‹œ๊ธ€-Q&A GIF

๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ GIF


Finiamo,

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

๋…น๋…น์— ๋Œ€ํ•œ ์• ์ •

ํ•ญ์ƒ ์–ด๋–ค ํšŒ์‚ฌ๋ฅผ ๊ฐ€๋“ , ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋“ , ์ตœ๊ณ ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„, ์™„์„ฑ๋„ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋‹ค.

์™„์„ฑ๋„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋๋‚ด์ฃผ๊ฒŒ ์–ด์ธ!๐ŸคŸ๐Ÿป ํ•˜๋‹ค๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ , ์™„๋ฒฝํ•˜๋‹ค๋Š” ๋œป๊ณผ ๋™์˜์–ด๋„ ์•„๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ณธ์งˆ์ธ ํ”„๋กœ๋•ํŠธ ํ˜น์€ ์„œ๋น„์Šค๊ฐ€ ๋‹ˆ์ฆˆ์— ๋งž๊ณ , ์ž˜ ๊ธฐ๋Šฅ์„ ํ•˜๋ฉฐ, ์•Œ๋งž์€ ๋งˆ์ผ€ํŒ…์„ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์ด ๋‚ด ์ƒ๊ฐ์—๋Š” ์™„์„ฑ๋„๊ฐ€ ์žˆ๋‹ค๋Š” ๋ง๊ณผ ๊ฐ™๋‹ค.

์•„๋ฌด๋ฆฌ ์™„์„ฑ๋„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋„, ๋ถ„๋ช… ๋‚˜๋ณด๋‹ค ์ž˜๋‚œ ์‚ฌ๋žŒ, ๋‚˜๋ณด๋‹ค ๋Šฅ๋ ฅ์ด ์ข‹์€ ์‚ฌ๋žŒ, ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฒƒ๋ณด๋‹ค ์•„์ด๋””์–ด๊ฐ€ ์ข‹๊ณ , ํ”„๋กœ๋•ํŠธ๊ฐ€ ์›”๋“ฑํ•œ ๊ฒฝ์šฐ๋Š” ์–ธ์ œ๋‚˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ์กฐ๊ฑด๋“ค์ด ์ตœ๊ณ ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค.
(๋ผ๊ณ  ๋ง์€ ํ–ˆ์ง€๋งŒ, ๋‚ด๋‚ด ๋ˆ„๊ตฌ๋ณด๋‹ค ์ž˜ํ•˜๊ณ  ์‹ถ์–ด!!!๋ฅผ ์™ธ์ณค๋‹ค)

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

ํ›„ํšŒ๋ผ๋Š” ๊ฒƒ์€?

์‚ฌ์‹ค 4์ฃผ์ฐจ๊ฐ€ ๋˜์—ˆ์„ ๋•Œ, ๋ฐฑ์—”๋“œ์˜ ์ž‘์—…์€ ๊ฑฐ์ง„ ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋œ ์ƒํƒœ์˜€๋‹ค. ๋ฐฐํฌ๋„ ์–ด๋Š์ •๋„ ์ง„ํ–‰๋œ ์ƒํ™ฉ์ด์—ˆ๊ณ , ๋” ์ด์ƒ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ ๋ฟ์ด์—ˆ๋˜ ์ˆœ๊ฐ„์ด ์˜ค์ž, ์ง€๋‚œ 3์ฃผ๊ฐ€ ๋จธ๋ฆฌ ์†์„ ํ›„๋ฃจ๋ฃจ๋ฃจ๋ฃฉ ์ง€๋‚˜๊ฐ€๋ฉด์„œ ํ›„ํšŒ๋ผ๋Š” ๊ฒƒ์ด ์Šค๋ฌผ์Šค๋ฌผ ์˜ฌ๋ผ์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ด๊ฑธ ๋” ํ•ด๋ณผ๊ฑธ, ์ €๊ฑธ ํ•ด๋ณผ๊ฑธ, ๋•Œ๋กœ๋Š” ์šฐ๋ฆฌ ๊ธฐ๋Šฅ์ด ๋ณ„๋กœ์ธ๊ฐ€ ๋ผ๋Š” ์˜์‹ฌ๋„ ๋“ค์—ˆ๋‹ค. ์šฐ์ญˆ์ญˆ ๋‚ด์ƒˆ๋ผ ์˜ˆ์˜๋‹ค ํ•˜๋˜ ์ˆœ๊ฐ„์—์„œ ๋‚ด์ƒˆ๋ผ๋ฅผ ๊ฐ๊ด€์ ์œผ๋กœ ์‚ดํŽด๋ณด๋Š” ์ˆœ๊ฐ„์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ผญ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์–ด๋Š ์ˆœ๊ฐ„ ๊ทธ๊ฒƒ์ด ํŒ€์›์„ ์ง€์น˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ์ด๋Ÿฐ ์ƒ๊ฐ์— ๋Œ€ํ•ด์„œ ์–ด๋Š ๋‚  ์ƒค์›Œ๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ฐ˜์ „์ด ์™”๋‹ค.ํ›„ํšŒ๋ผ๋Š” ๊ฒƒ์€ ๋‹ค์Œ์— ๋‚ด๊ฐ€ ๋” ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ์ง€ํ‘œ๋ผ๊ณ . ๊ทธ๋ž˜์„œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚œ๋‹ค๊ณ  ํ•ด์„œ ๋‚ด ๊ฐœ๋ฐœ์ž ์ง„๋กœ๊ฐ€ ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ˆ, ์ด ํ›„ํšŒ๋ฅผ ์ž˜ ๋‚จ๊ฒจ์„œ ๋‹ค์Œ์— ํ•ด์•ผํ•  ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์ž๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๊ทธ ๋‚ ๋ถ€ํ„ฐ ๋…น๋…น ์„œ๋น„์Šค version 2.0์— ๋Œ€ํ•œ ์•„์ด๋””์–ด ์ƒ๊ฒจ๋‚ฌ๋‹ค. (ํ•  ์ˆ˜ ์žˆ์„์ง€๋Š” ๋ฏธ์ง€์ˆ˜ ใ…Žใ…Ž)

๋ฐธ๋Ÿฐ์Šค๊ฐ€ ์ค‘์š”!

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

๋ˆ„๊ตฌ๋‚˜ ๊ทธ๋ ‡๊ฒ ์ง€๋งŒ, ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋‚ด๊ฐ€ ๋ชจ์ž๋ž€ ๋ถ€๋ถ„์„ ๋ณด์—ฌ ์ฃผ๋Š”๊ฒŒ ๋ฌด์„œ์šด ์‚ฌ๋žŒ์ด์—ˆ๋‹ค. ์ธ์ •ํ•  ๊ฑด ์ธ์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•ญ์ƒ ๋งํ•˜๋“ฏ์ด ๊ฐ™์ด ์„ฑ์žฅํ•˜๋Š” ๋ชจ์Šต์ด ๋” ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ๋‚˜์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€์˜ ์ฝ”๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. 1์ธ ์‚ฌ๋žŒ์ด 10์ด ๋˜๋Š” ๋ชจ์Šต์„ ๋ณด๋Š”๊ฒŒ ๋„ˆ๋ฌด ์ข‹๊ณ , ๋‚˜์™€ ๊ฐ™์ด 3์ด๋˜ ์‚ฌ๋žŒ์ด 5๋ฅผ ํ–ฅํ•ด์„œ ๊ฐ€๋ฉด ๊ทธ ๊ธธ์ด ๋“ ๋“ ํ•  ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์ด ์ฝ”์Šค์˜ ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ํ™•๊ณ ํ•ด์กŒ๋‹ค.

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

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

๐Ÿ’œ

profile
always 2B#

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