์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

์ปค๋จธ์Šค ์„œ๋น„์Šค๋กœ ๋ฐฐ์šฐ๋Š” NestJS ์‹ค์ „ ๊ฐœ๋ฐœ (w. Prisma, Docker, Redis, Kafka)

[Node NestJS์˜ ์‹ค๋ฌดํ˜• ๊ฐ•์˜ - ๊ฐ™์ด ์„œ๋น„์Šค ๊ฐœ๋ฐœ ํ•ด๋ด์š”!!] Nest ๊ธฐ๋ฐ˜์˜ Redis, Kafka ๋ฐฐ์šฐ๋ฉด ํ•  ์ˆ˜ ์žˆ์–ด์š”! Prisma ๋Š” ์ด์ œ ์‹ค๋ฌด์—์„œ๋Š” ํ•„!์ˆ˜! ์ž…๋‹ˆ๋‹ค.

(3.8) ์ˆ˜๊ฐ•ํ‰ 12๊ฐœ

์ˆ˜๊ฐ•์ƒ 140๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์ปค๋จธ์Šค
์ปค๋จธ์Šค
์ปค๋จธ์Šค
์ปค๋จธ์Šค

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

3.8

5.0

qqkddn

48% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์‹ค์ „ ์œ„์ฃผ์˜ ์˜ˆ์ œ๊ฐ€ ๋งŽ์•„์„œ ๋”ฐ๋ผ ํ•˜๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ปค๋จธ์Šค ์„œ๋น„์Šค๋ผ๋Š” ํ˜„์‹ค์ ์ธ ์ฃผ์ œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ์‹ค๋ฌด์—๋„ ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ์™„๊ฐ•๊นŒ์ง€ ์—ด์‹ฌํžˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

5.0

wn1331

76% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊ณ„์† ์Šคํ”„๋ง๋ถ€ํŠธ๋งŒ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ํšŒ์‚ฌ์—์„œ Prisma์™€ NestJS๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์ด ๊ฐ•์˜ ๋•๋ถ„์— ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์™ธ์—๋„ ๋น„๊ด€์  ๋ฝ ๊ตฌํ˜„, Redis TTL์„ ํ™œ์šฉํ•œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ตœ์ ํ™”, Kafka๋กœ EDA๊นŒ์ง€ ์‹ค๋ฌด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ๋“ค์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐฑ์—”๋“œ ์„ค๊ณ„์™€ ๋””์ž์ธ ํŒจํ„ด์ด ์‹ค์ œ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ณผ์ •์ด ์ƒ์„ธํžˆ ์„ค๋ช…๋˜์–ด, ๊ทธ๋™์•ˆ ์ด๋ก ์œผ๋กœ๋งŒ ์ ‘ํ–ˆ๋˜ ๊ฐœ๋…๋“ค์„ ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋งค์šฐ ์œ ์ตํ•œ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

5.0

Park

14% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

ํ˜„์žฌ ํ˜„์—…์—์„œ NestJS์™€ TypeORM์„ ์กฐํ•ฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. TypeORM์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์žฅ์ ๋„ ์žˆ์—ˆ์ง€๋งŒ, ์‹ค๋ฌด์—์„œ ํ™œ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ๋ถˆํŽธํ•œ ์ ์ด ๋” ๋งŽ๋‹ค๊ณ  ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€์ฒดํ•  ๋งŒํ•œ ORM์ด ์—†์„๊นŒ ์ฐพ์•„๋ณด๋˜ ์ค‘ Prisma๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์ง์ ‘ ๊ณต๋ถ€ํ•ด๋ณด๋ ค ํ–ˆ์ง€๋งŒ NestJS์™€ Prisma๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ์˜ Best Practice๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ์ด ๊ฐ•์˜๋ฅผ ์ฐพ๊ฒŒ๋˜์—ˆ๊ณ , ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด Prisma๋ฅผ NestJS์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋…น์—ฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ Prisma ๋„์ž… ๋ฐฉ๋ฒ•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Kafka์™€ Redis๊นŒ์ง€ ์—ฐ๊ณ„ํ•˜๋Š” ๊ณ ๊ธ‰ ํ™œ์šฉ๋ฒ•๊นŒ์ง€ ์ž์„ธํžˆ ๋‹ค๋ค„์ฃผ์–ด ์‹ค๋ฌด์—์„œ๋„ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๊ณ ๋ด‰๋ฐฅ์œผ๋กœ ๋– ๋จน์—ฌ์ค๋‹ˆ๋‹ค. NestJS๋ฅผ ํ˜„์—…์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฌผ๋ก ์ด๊ณ , NestJS๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ๋„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์‹ค๋ฌด์— ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ๋ฉด์„œ๋„, ๊ฐœ๋…์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•ด์ค˜์„œ ํ•™์Šต์ด ์ˆ˜์›”ํ–ˆ์Šต๋‹ˆ๋‹ค. NestJS + Prisma ์กฐํ•ฉ์„ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ผญ ๋“ค์–ด๋ณด๊ธธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • NestJS ์ดˆ๊ธ‰์ž๊ฐ€ ์ค‘๊ธ‰์ž๋กœ ๊ฐ€๊ธฐ ์œ„ํ•œ ๊ฐ•์˜์—์š”

  • ๊ตญ๋‚ด ์œ ๋ช… ์ปค๋จธ์Šค ์‚ฌ ์šด์˜๊ฒฝํ—˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ œ์ž‘ํ–ˆ์–ด์š”

  • ์ˆ˜๋งŽ์€ User ๋“ค์ด ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ• ๋•Œ NestJS ๋กœ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ์š”? ๊ฐ™์ด ํ•™์Šตํ•ด ๋ด์š”

  • ๊ธฐ๋ณธ ์œ„์ฃผ๋กœ๋งŒ ์–ธ๊ธ‰๋˜์–ด ์žˆ๋Š” NestJS ๊ณต์‹ ์‚ฌ์ดํŠธ์— ๋”์ด์ƒ ๋ฐฐ์šธ๋งŒํ•œ ๋‚ด์šฉ์ด ์—†๋Š” ์ˆ˜๊ฐ•์ƒ๋„ ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๋ฐฐ์šธ๋ถ€๋ถ„์ด ์žˆ์„ ๊ฑฐ์—์š”

  • NestJS ๋ฅผ ์‹ค๋ฌด์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ? ๊ถ๊ธˆํ•ด ํ•˜๋Š” ์ˆ˜๊ฐ•์ƒ์„ ์œ„ํ•œ ๊ฐ•์˜์—์š”

  • Docker Container ๋ฅผ ์‚ฌ์šฉํ•ด์„œ NestJS, Redis, Kafka Container๋กœ ๋„์›Œ๋ณด๊ธฐ

  • Redis ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ ๋ฆฌํŽ™ํ† ๋ง

  • Kafka ๋ฅผ ์ด์šฉํ•˜์—ฌ Event Pattern ๊ธฐ๋ฒ• ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ

15๋…„์ฐจ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ๋ ค์ฃผ๋Š”
NestJS ๋ฏธ๋“œ๊ธ‰ ๊ฐœ๋ฐœ๋กœ ๊ฐ€๋Š” ๊ธธ


๋ฉ˜ํ† ๋ง์„ ํ†ตํ•ด ๋งŽ์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ฅผ ๋งŒ๋‚˜๋ณด๋‹ˆ, ๊ธฐ๋ณธ์ ์ธ CRUD๋Š” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์ง€๋งŒ, ๋™์‹œ์„ฑ ์ œ์–ด์™€ Redis, Kafka๋ฅผ ํ™œ์šฉํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์€ ์—ฌ์ „ํžˆ ์–ด๋ ค์›Œ ํ•˜๋”๋ผ๊ตฌ์š”.

๊ทธ๋ž˜์„œ ๊ฐ•์˜๋ฅผ ์ œ์ž‘ํ•ด ๋ดค์–ด์š”.
์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•œ ๊ฐ•์˜์ด์ง€๋งŒ, ์ค‘๊ธ‰์ž ์ด์ƒ์ด ๋“ค์–ด๋„ ๋„์›€์ด ๋  ๊ฑฐ์—์š”.
๊ฐ•์˜์™€ ํ•จ๊ป˜ ์‹ค๋ฌด์—์„œ ๋ง‰ํž˜์—†๋Š” Node/NestJS ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•ด ๋ณด์„ธ์š” ๐Ÿ˜ƒ

ํ™•์žฅ์„ฑ ๋†’์€ ์ปค๋จธ์Šค ๋„๋ฉ”์ธ์œผ๋กœ ์‹ค์Šต

์ปค๋จธ์Šค ๋„๋ฉ”์ธ์€ ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์ ‘ํ•˜๋Š” ๋„๋ฉ”์ธ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค์™€ ์œ ์‚ฌํ•œ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์— ์‰ฝ๊ฒŒ ์ ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

15๋…„+ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ๋‹ด์•„๋‚ธ ๊ฐ•์˜

ํ•œ๊ตญ๊ณผ ๋ฏธ๊ตญ์—์„œ ์Œ“์€ 15๋…„ ์ด์ƒ์˜ ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ์ปค๋จธ์Šค ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ด๊ด„ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ, ์‹ค๋ฌด์—์„œ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ๋…ธํ•˜์šฐ์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฆ˜ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์‹  ORM, Prisma

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

Redis&Kafka๋กœ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

Redis์˜ NoSQL ๋ฐฉ์‹๊ณผ Kafka ์ด๋ฒคํŠธ ๋ถ„๋ฆฌ๋กœ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋“ฑ, ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ์ฃผ์š” ๋‚ด์šฉ

๐Ÿ“Œ ์ปค๋จธ์Šค ๊ฐœ๋ฐœ ์‹œ ํ•„์š”ํ•œ ์ฃผ์š” ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง ๊ฐœ๋ฐœ

๐Ÿ“Œ ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

๐Ÿ“Œ Redis, Kafka ๋“ฑ ์‹ค๋ฌด ํ•„์ˆ˜ ํˆด์— ๋Œ€ํ•œ ๊ฐœ๋…๊ณผ ์„ธํŒ… ๋ฐฉ๋ฒ• ์„ค๋ช…

๐Ÿ“Œ redis ๋ฅผ "nosql" ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ "์žฅ๋ฐ”๊ตฌ๋‹ˆ" ๋ฆฌํŽ™ํ† ๋ง

๐Ÿ“Œ Kafka MQ๋ฅผ ์ด์šฉํ•˜์—ฌ Event Pattern ์ตํžˆ๊ธฐ

๐Ÿ“Œ Kafka UI ๋ฅผ ํ†ตํ•œ Kafka ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐ ์ €์žฅ์†Œ ํ™•์ธ

๐Ÿ“Œ ์ „ ๋ฒ”์œ„ Docker Container ๋ฅผ ์ด์šฉํ•œ ๊ฐœ๋ฐœ

๐Ÿ“Œ ์ด๋ก  10% ์‹ค์Šต 90%. ๋ชจ๋“  ์ฝ”๋“œ๋Š” ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•œ ๊ฐ•์˜์ด์ง€๋งŒ, NestJS ๊ธฐ๋ฐ˜ ๊ธฐ๋ณธ์ ์ธ CRUD๋Š” ํ•˜์‹ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค :)

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋กœ ๋ ˆ๋ฒจ์—…ํ•˜๊ณ  ์‹ถ์–ด์š”.ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜€๋Š”๋ฐ ๋ฐฑ์—”๋“œ๋กœ ์ „ํ–ฅ์„ ํฌ๋งํ•˜๋Š” ๊ฐœ๋ฐœ์ž

์ปค๋จธ์Šค ์„œ๋น„์Šค์— ๊ด€์‹ฌ์žˆ์–ด์š”.
์ปค๋จธ์Šค์— ๋ง‰ ์ž…๋ฌธํ–ˆ๊ฑฐ๋‚˜, ์ž…๋ฌธ ์ „์ธ๋ฐ Nest ๊ธฐ๋ฐ˜์œผ๋กœ ์ด์ปค๋จธ์Šค ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž

NestJS ๊ฐ•์˜๊ฐ€ ๋„ˆ๋ฌด ์—†์–ด์š”.
NestJS ๊ด€๋ จ ์‹ค๋ฌดํ˜• ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์‹ถ์€๋ฐ, ํ˜„์—…์—์„œ ๋‹ต๋‹ตํ•จ์„ ๋А๋ผ๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž

์ˆ˜๊ฐ• ํ›„์—๋Š”

  • ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๋Š” Prisma ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊บผ์—์š”.

  • ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋ฉด NestJS ์— ๋Œ€ํ•œ ์‹ค๋ฌดํ˜• ์ดํ•ด์™€ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์งˆ ๊ฑฐ์—์š”.

  • Docker Container ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ NestJS ์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ณ  ๋˜ DB, Redis, Kafka์™€ ์—ฐ๊ณ„ํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด ์งˆ ๊บผ์—์š”.

  • Controller, Service, Repository, DTO, Domain, Entity, Model ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋†’์•„ ์งˆ ๊บผ์—์š”.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”.

Service Layer

๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์€ ์–ด๋””์— ์œ„์น˜ํ•ด์•ผํ• ๊นŒ? ๋ผ๋Š” ๊ธฐ๋ณธ ์งˆ๋ฌธ์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ณ ๋ฏผํ•˜๊ณค ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์ด ์„œ๋น„์Šค ๋ ˆ์ด์–ด์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  Controller, Repository ๋‹จ์— ์‚ฐ๋ฐœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

Docker Container

Node NestJS ๊ฐœ๋ฐœ์ž๋Š” ์™œ Container ์™€ ์นœ์ˆ™ํ•ด ์ ธ์•ผํ•˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.(PM2 Stop!)

Redis(Nosql)

Redis ์˜ ์‚ฌ์šฉ๋ฒ•์€ ๋งค์šฐ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. Cache ๋กœ์จ, MQ ๋กœ์จ ๊ทธ๋ฆฌ๊ณ  Nosql๋กœ์จ, ์ด ๊ฐ•์˜๋Š” Nosql์˜

ํŠน์ง•(TTL)์„ ์ด์šฉํ•˜์—ฌ "์žฅ๋ฐ”๊ตฌ๋‹ˆ"๋ฅผ RDBMS์—์„œ ๋ฆฌํŽ™ํ† ๋ง ํ•ด๋ณผ๊บผ์—์š”

Kafka (MQ)

Kafka๋Š” ์„œ๋น„์Šค ๊ฐœ๋ฐœ์—์„œ ํ•„!์ˆ˜! ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ

  • ํ•œํ™”๊ทธ๋ฃน, ํ˜„๋Œ€์ž๋™์ฐจ ๊ทธ๋ฃน, (๋ฏธ)์—๋จธ์Šจ ์ผ๋ ‰ํŠธ๋ฆญ ๋“ฑ ํ•œ๊ตญ ๋ฐ ๋ฏธ๊ตญ์˜ ๋‹ค์–‘ํ•œ Software

    ํšŒ์‚ฌ๋ฅผ

    ๊ฒฝํ—˜ํ•˜๊ณ , ํ˜„์žฌ๋Š” ๋ฏธํŠธํ…Œํฌ ์ปค๋จธ์Šค ์‚ฌ์ธ ์„ค๋กœ์ธ์—์„œ "๊ฐœ๋ฐœ ์ด๊ด„"๋กœ์จ ๊ทผ๋ฌด ์ค‘์— ์žˆ์œผ๋ฉฐ,


    ํ•ญํ•ดํ”Œ๋Ÿฌ์Šค ๋ฐฑ์—”๋“œ ๋ฉ˜ํ† ๋กœ์จ ํ™œ๋™ ์ค‘์ด๋‹ค.


  • ๋งํฌ๋“œ์ธ ํ”„๋กœํ•„ :


    https://www.linkedin.com/in/jonghyup-kim-107a172aa/

์ปค๋จธ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณด๋ฉด์„œ ์‹ค๋ฌด ๋…ธํ•˜์šฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€์„ธ์š”

โœ… ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋Œ€๊ทœ๋ชจ Traffic์„ ๊ฒฝํ—˜ํ•œ ๋Œ€๊ธฐ์—… ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „ํ•˜๋Š” ์‹ค๋ฌด ๋…ธํ•˜์šฐ

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


โœ… ์ˆ˜์‹ญ๋งŒ User ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ด๊ด„์ด ์ง์ ‘ ์ „ํ•˜๋Š” ์ปค๋จธ์Šค ๊ฐœ๋ฐœ

NestJS ์‹ค๋ฌดํ˜• ๊ฐ•์˜๊ฐ€ ์ ์  ์ค„์–ด๋“œ๋Š”๊ฑฐ ๊ฐ™์• ์š”. ํ˜„์žฌ๊นŒ์ง€๋„ NestJS ๋ฅผ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋กœ์„œ,๊ณผ๊ฑฐ ๊ธฐ์ค€์ด ์•„๋‹Œ ํ˜„์žฌ ๊ธฐ์ค€์—์„œ์˜ ๊ธฐ์ˆ  ์†Œํ†ต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!


์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ๊ฐ•์˜๋Š” MacOS ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ๋จธ์‹ ์ด๋ผ๋ฉด docker๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„ ๋”ฐ๋ผ์˜ค์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜์—์„œ๋Š” visual studio code๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํƒ€ IDE ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฆฌ์—†์ด ๋”ฐ๋ผ์˜ค์‹ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ์ž๋ฃŒ


โ€ป ์ถ”๊ฐ€ ์งˆ๋ฌธ์‚ฌํ•ญ์ด๋‚˜ ๋…ผ์˜ํ•ด๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ์žˆ์„ ์‹œ "์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ"์— ๋“ค์–ด์˜ค์…”์„œ ๊ฐ™์ด ์–˜๊ธฐํ•ด๋ด์š”!

https://open.kakao.com/o/g1Xquenh

์ฐธ์—ฌ์ฝ”๋“œ: 0320

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • Javascript, Typescript ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

  • map, filter, async await์„ ํ•œ ๋ฒˆ์ด๋ผ๋„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์žˆ์œผ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

  • NestJS ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์•ˆ๋‚ดํ•˜๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋“ค

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • NestJS ๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ์‹œ์ž‘ ๋˜๋Š” ๊ฐœ๋ฐœ ์ค‘์ธ ๊ฐœ๋ฐœ์ž

  • ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์—์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ๋กœ ๋„˜์–ด์˜ค๊ณ  ์‹ถ์–ดํ•˜๋Š” ๊ฐœ๋ฐœ์ž

  • NestJS ๊ณต์‹ ์‚ฌ์ดํŠธ๋กœ๋Š” ์ง„ํ–‰์ด ์–ด๋ ค์šด ๊ฐœ๋ฐœ์ž

  • NestJS ๊ธฐ๋ฐ˜์— Redis, Kafka ๋“ฑ์„ ์—ฐ๊ณ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

  • Javascript ์–ธ์–ด๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • NestJS

  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

  • Node

  • Javascript

์•ˆ๋…•ํ•˜์„ธ์š”
๊น€๋นŒ (Bill Kim)์ž…๋‹ˆ๋‹ค.

140

๋ช…

์ˆ˜๊ฐ•์ƒ

12

๊ฐœ

์ˆ˜๊ฐ•ํ‰

10

๊ฐœ

๋‹ต๋ณ€

3.8

์ 

๊ฐ•์˜ ํ‰์ 

1

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š” ๋นŒ(Bill) ์ž…๋‹ˆ๋‹ค.

 

ํ•œ๊ตญ๊ณผ ๋ฏธ๊ตญ์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•œ์ง€๋„ ๋ฒŒ์จ 15๋…„์ด ๋„˜์—ˆ๋„ค์š”?

ํ˜„์žฌ๋Š” ์ƒ์žฅ ์ค€๋น„์ค‘์ธ (์˜ˆ๋น„)์œ ๋‹ˆ์ฝ˜ ์Šคํƒ€ํŠธ์—…์—์„œ ๊ฐœ๋ฐœ์ด๊ด„ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์–ด์š”.

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

 

๊ทธ๋™์•ˆ ์Œ“์€ ์ง€์‹๊ณผ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์—ฌ๋Ÿฌ ๋„์›€์„ ๋“œ๋ฆฌ๊ณ  ์‹ถ์–ด์š”.

์˜ˆ๋ฅผ๋“ค๋ฉด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ์„ฑ์žฅํ•ด์•ผํ•˜๋Š”์ง€?, ๊ฐœ๋ฐœ์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€?

์–ด๋–ค ํšŒ์‚ฌ๊ฐ€ ๋งž๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค์–‘ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค๋ ค์ค„ ์ˆ˜ ์žˆ์„ ๊ฑฐ์—์š”.

 

์‹ค๋ฌด์— ๋„์›€์ด ๋˜๋Š” ๊ฐ•์˜๋ฅผ ์ œ์ž‘ํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

22๊ฐœ โˆ™ (5์‹œ๊ฐ„ 28๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

12๊ฐœ

3.8

12๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • wn1331๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    wn1331

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    ์ˆ˜์ •๋จ

    5

    76% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊ณ„์† ์Šคํ”„๋ง๋ถ€ํŠธ๋งŒ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ํšŒ์‚ฌ์—์„œ Prisma์™€ NestJS๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์ด ๊ฐ•์˜ ๋•๋ถ„์— ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์™ธ์—๋„ ๋น„๊ด€์  ๋ฝ ๊ตฌํ˜„, Redis TTL์„ ํ™œ์šฉํ•œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ตœ์ ํ™”, Kafka๋กœ EDA๊นŒ์ง€ ์‹ค๋ฌด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ๋“ค์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐฑ์—”๋“œ ์„ค๊ณ„์™€ ๋””์ž์ธ ํŒจํ„ด์ด ์‹ค์ œ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ณผ์ •์ด ์ƒ์„ธํžˆ ์„ค๋ช…๋˜์–ด, ๊ทธ๋™์•ˆ ์ด๋ก ์œผ๋กœ๋งŒ ์ ‘ํ–ˆ๋˜ ๊ฐœ๋…๋“ค์„ ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋งค์šฐ ์œ ์ตํ•œ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    • jaeil.joo๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      jaeil.joo

      ์ˆ˜๊ฐ•ํ‰ 1

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      62% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      • Park๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        Park

        ์ˆ˜๊ฐ•ํ‰ 2

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        14% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ํ˜„์žฌ ํ˜„์—…์—์„œ NestJS์™€ TypeORM์„ ์กฐํ•ฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. TypeORM์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์žฅ์ ๋„ ์žˆ์—ˆ์ง€๋งŒ, ์‹ค๋ฌด์—์„œ ํ™œ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ๋ถˆํŽธํ•œ ์ ์ด ๋” ๋งŽ๋‹ค๊ณ  ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€์ฒดํ•  ๋งŒํ•œ ORM์ด ์—†์„๊นŒ ์ฐพ์•„๋ณด๋˜ ์ค‘ Prisma๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์ง์ ‘ ๊ณต๋ถ€ํ•ด๋ณด๋ ค ํ–ˆ์ง€๋งŒ NestJS์™€ Prisma๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ์˜ Best Practice๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ์ด ๊ฐ•์˜๋ฅผ ์ฐพ๊ฒŒ๋˜์—ˆ๊ณ , ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด Prisma๋ฅผ NestJS์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋…น์—ฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ Prisma ๋„์ž… ๋ฐฉ๋ฒ•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Kafka์™€ Redis๊นŒ์ง€ ์—ฐ๊ณ„ํ•˜๋Š” ๊ณ ๊ธ‰ ํ™œ์šฉ๋ฒ•๊นŒ์ง€ ์ž์„ธํžˆ ๋‹ค๋ค„์ฃผ์–ด ์‹ค๋ฌด์—์„œ๋„ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๊ณ ๋ด‰๋ฐฅ์œผ๋กœ ๋– ๋จน์—ฌ์ค๋‹ˆ๋‹ค. NestJS๋ฅผ ํ˜„์—…์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฌผ๋ก ์ด๊ณ , NestJS๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ๋„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์‹ค๋ฌด์— ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ๋ฉด์„œ๋„, ๊ฐœ๋…์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…ํ•ด์ค˜์„œ ํ•™์Šต์ด ์ˆ˜์›”ํ–ˆ์Šต๋‹ˆ๋‹ค. NestJS + Prisma ์กฐํ•ฉ์„ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ผญ ๋“ค์–ด๋ณด๊ธธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

        • ๊น€๋นŒ (Bill Kim)
          ์ง€์‹๊ณต์œ ์ž

          ๊ฐ•์˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ทจ์ง€๋ฅผ ์ž˜ ์ดํ•ดํ•˜์…”์„œ ๋งค์šฐ ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์›ํ™œํ•œ ์†Œํ†ต์„ ์œ„ํ•ด์„œ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์€ ์šด์˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋“ค์–ด์˜ค์…”์„œ ๊ณ„์† ์†Œํ†ตํ•ด๋ด์š” https://open.kakao.com/o/g1Xquenh ์ฐธ์„์ฝ”๋“œ: 0320

      • ๊ฐ•์ง€์›…๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        ๊ฐ•์ง€์›…

        ์ˆ˜๊ฐ•ํ‰ 8

        โˆ™

        ํ‰๊ท  ํ‰์  4.6

        ์ˆ˜์ •๋จ

        4

        64% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ด ๊ฐ•์˜ ์žฅ์  : ๊ฐ•์˜๋ฅผ ์œ„ํ•œ ๊ฐ•์˜๋Š” ์•„๋‹˜. ์‹ค๋ฌด์— ํ•„์š”ํ•œ ๊ธฐ์ˆ ๋งŒ ๊ฐ€๋ฅด์ณ ์คŒ. ๊ฐ•์‚ฌ๋ผ๋Š” ๋А๋‚Œ ๋ณด๋‹ค ๊ฐœ๋ฐœ ํ˜„์—…์—์„œ ํ™œ๋™ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๋А๋‚Œ์„ ๋งŽ์ด ๋ฐ›์Œ. typeorm ๋ณด๋‹ค prisma , redis, ๋„์ปค , kafka ๊ฐ™์€ MQ๋ฅผ ์ฐ์–ด์คŒ . ๋‹ค๋ฅธ ๊ฐ•์˜๋Š” ๋“ค์–ด๋ฉด ์ดํ•ด๋Š” ๋˜์ง€๋งŒ ์‹ค๋ฌด์— ์“ธ ๊ธฐ์ˆ ์€ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด์•ผ ํ•จ. ๊ทธ๋Ÿฐ๋ฉด์— ์ด ๊ฐ•์˜๋Š” ์‹ค๋ฌด์— ๋งŽ์ด ๋„์›€์ด ๋จ. ๊ฒฐ๋ก : ์–ด๋А์ •๋„ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์— ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ์ด ๋“ค์œผ๋ฉด ์‹œ๊ฐ„์ ˆ์•ฝ์„ ํ• ์ˆ˜ ์žˆ์Œ. ์„ ํ–‰ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ์ธ์ˆ˜์ธ๊ณ„ ๋ฐ›์•„์„œ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋“ค์œผ๋ฉด ๋„์›€์ด ๋งŽ์ด ๋จ. ๋‹ค๋งŒ nest.js๊ฐ€ ์ฒ˜์Œ์ด๊ณ  ๋„์ปค๋‚˜ ๊ธฐํƒ€ ์ฃผ๋ณ€ ์ง€์‹์ด ์—†๋Š” ์‚ฌ๋žŒ์ด ๋“ค์œผ๋ฉด ํ—ค๋งฌ์ˆ˜ ์žˆ์Œ. ํ”„๋ฆฌ์ฆˆ๋งˆ ๊ฐ™์€ ๊ฒฝ์šฐ๋„ ๋ฒ„์ „ ๋งž์ถ”์ง€ ์•Š์œผ๋ฉด ์ž‘๋™์„ ์•ˆํ• ์ˆ˜ ์žˆ์Œ.

        • LHE๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          LHE

          ์ˆ˜๊ฐ•ํ‰ 3

          โˆ™

          ํ‰๊ท  ํ‰์  4.0

          5

          64% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          ๋น„์Šทํ•œ ๊ฐ•์˜

          ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

          ์›” โ‚ฉ17,820

          5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

          โ‚ฉ89,100