Backend

๋ช…์‚ฌ ยท ์›น ๊ฐœ๋ฐœ

1.

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

2.

Node.js, Python, Java ๋“ฑ์˜ ์–ธ์–ด๋กœ ๊ตฌ์ถ•๋œ ์„œ๋ฒ„ ์ธก ๊ธฐ์ˆ  ์•„ํ‚คํ…์ฒ˜๋กœ, HTTP ์š”์ฒญ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๋ฐ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์†Œ๋น„ํ•˜๋Š” API ๋…ธ์ถœ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

3.

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

ํ•จ๊ป˜ ๋ณด๊ธฐ
Node.jsAPI๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„œ๋ฒ„

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฑ์—”๋“œ ์–ธ์–ด๋กœ๋Š” JavaScript(Node.js), Python, Java, PHP, Ruby, Go๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ์€ ํ”„๋กœ์ ํŠธ ์œ ํ˜•, ์„ฑ๋Šฅ ์ œ์•ฝ ๋ฐ ๊ธฐ์กด ์ƒํƒœ๊ณ„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ €ํฌ ์—์ด์ „์‹œ Async Code๋Š” JavaScript๋กœ ๊ธฐ์ˆ  ์Šคํƒ์„ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์ „๋žต์ ์œผ๋กœ Node.js๋ฅผ ์„ ํƒํ–ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ ๋‚ฉ๊ธฐ๋ฅผ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„, API ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์„ค๊ณ„๋ฅผ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ •์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ํ๋ฅด๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. Async Code์—์„œ ์ €ํฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณ ๊ฐ์˜ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋ฉด์„œ ์ˆ˜์ฒœ ๊ฑด์˜ ๋™์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์€ ์„œ๋ฒ„ ์ƒ์„ฑ, RESTful ๋˜๋Š” GraphQL API ์„ค๊ณ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ๋ฐ ์•ˆ์ „ํ•œ ์ธ์ฆ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๊ณ ์„ฑ๋Šฅ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๋ฐ˜ํ•˜๋Š” ๊ธฐ์ˆ ์  ํ† ๋Œ€์ž…๋‹ˆ๋‹ค. Async Code์—์„œ์˜ ์ €ํฌ ์ „๋ฌธ์„ฑ์€ ์ดˆ๊ธฐ ์•„ํ‚คํ…์ฒ˜๋ถ€ํ„ฐ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ๊นŒ์ง€, ์ž๋™ํ™” ํ…Œ์ŠคํŠธ์™€ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํฌํ•จํ•œ ์ด ์ „์ฒด ์ฒด์ธ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์—์„œ Node.js๋ฅผ ํ†ตํ•œ JavaScript๋Š” ๋น„๋™๊ธฐ ๋…ผ๋ธ”๋กœํ‚น ๋ชจ๋ธ ๋•๋ถ„์— ํ•„์ˆ˜๋ถˆ๊ฐ€๊ฒฐํ•ด์กŒ์œผ๋ฉฐ, ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ณ ํŠธ๋ž˜ํ”ฝ API์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. Python์€ ๋จธ์‹ ๋Ÿฌ๋‹์— ํƒ์›”ํ•˜๊ณ , Java๋Š” ๊ฒฌ๊ณ ํ•จ์œผ๋กœ ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ์—ฌ์ „ํžˆ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค. Async Code์—์„œ๋Š” Node.js๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ React ๋ฐ Next.js ํ”„๋ก ํŠธ์—”๋“œ์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋Š” ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๋ถ€๋ถ„(HTML, CSS, JavaScript, React)์ด๊ณ , ๋ฐฑ์—”๋“œ๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ๋ฐ์ดํ„ฐ, ๋ณด์•ˆ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ณด์ด์ง€ ์•Š๋Š” ์—”์ง„์ž…๋‹ˆ๋‹ค. ์ด ๋‘ ๋ ˆ์ด์–ด๋Š” API๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ ์—์ด์ „์‹œ Async Code๋Š” ํ†ตํ•ฉ๋œ JavaScript ์Šคํƒ์„ ํ†ตํ•ด ์ด ๋‘ ์„ธ๊ณ„๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉํ•˜๋Š” ๋ฐ ํƒ์›”ํ•˜๋ฉฐ, ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒด์ธ์—์„œ ๊ธฐ์ˆ ์  ์ผ๊ด€์„ฑ๊ณผ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์— ํŠนํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ฐ˜์„ ๋งˆ์Šคํ„ฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค: ๋ฐ์ดํ„ฐ ๋ณด์•ˆ, ํ๋ฆ„ ๊ด€๋ฆฌ, ์ฟผ๋ฆฌ ์ตœ์ ํ™” ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์ธ์ฆ, ์˜จ๋ผ์ธ ๊ฒฐ์ œ ๋˜๋Š” ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. Async Code์—์„œ Node.js๋ฅผ ํ™œ์šฉํ•œ ์ €ํฌ์˜ ๋ฐฑ์—”๋“œ ์ „๋ฌธ์„ฑ์„ ํ†ตํ•ด ๊ณ ๊ฐ์€ ๊ฒฌ๊ณ ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์„ฑ์žฅ์„ ์ˆ˜์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ์ธํ”„๋ผ์˜ ํ˜œํƒ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ๋Š” HTML, CSS, JavaScript๋กœ ๊ตฌ์ถ•๋œ ์›น์‚ฌ์ดํŠธ ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฐ€์‹œ์ ์ธ ๋ถ€๋ถ„์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ๋””์ž์ธ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ํผ ๋ฐ ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ ์—์ด์ „์‹œ Async Code๋Š” React์™€ Next.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Node.js ๋ฐฑ์—”๋“œ์™€ ์™„๋ฒฝํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ์ตœ์‹  ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ์œ ๋ คํ•˜๊ณ  ๋น ๋ฅด๋ฉฐ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”์— ์ตœ์ ํ™”๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.