๋ด ์์ผ๋ก ๋ง๋๋ ์ฑํ
์ฑ, ์๋ฒ ๊ฐ๋ฐ๊น์ง! ์์ ์ ์ผ ํซํ NestJS ๋ฅผ ๋ง๋๋ณด์ธ์.
Express์์NestJS ๋ก!
์ ๋ ์๋ ์๋ฒ ํ๋ ์์ํฌ๋ก๋ Express๋ฅผ, DB๋ก๋ Sequelize๋ฅผ ํ์ฌ์์ ์ฐ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ๋ ์ปค๋ฎค๋ํฐ์์ NestJS๋ฅผ ๋ง์ด ์ธ๊ธํ์๊ธธ๋ ํ ๋ฒ ์จ๋ดค๋๋... ๋์ด ๋ ์ฉ๐! ๊ทธ ํ๋ก๋ ํ์ฌ ์๋น์ค๋ฅผ ๋ชจ๋ NestJS๋ก ์ ํํ๊ณ , Sequelize๋ TypeORM์ผ๋ก ์ ํํด๋ฒ๋ ธ์ต๋๋ค.
๋
ธ๋๊ณ์ ์คํ๋ง, ํซํ NestJS ๐ฅ
Node.js์ Spring์ด๋ผ ๋ถ๋ฆฌ๋ NestJS! ๋
ธ๋๋ฅผ ๋ ๋ ์คํ๋ง์ ํ๋ฌ ๊ฐ์ถํ ๊ฐ๋ฐ์๋ค๋ง์ NestJS ๋๋ฌธ์ ๋์์ค๊ณ ์๋ค๊ณ ํฉ๋๋ค. ์ง๊ธ๊น์ง ๋ง์ด ์ฐ๋ Express์ ๋น๊ตํด NestJS๋ ์ด๋ป๊ฒ ๋ค๋ฅด๊ณ , ์ผ๋ง๋ ๊ฐ๋ ฅํ ๊น์? ์ด๋ฒ ๊ฐ์์์๋ NestJS์ ๊ธฐ๋ฅ์ ์๊ฐํฉ๋๋ค. Express๋ก ๊ตฌ์ถํ ์น ์๋ฒ๋ฅผ NestJS๋ก ์ ํํด ๋ณด๊ณ , ์ฌ๋(Slack)๊ณผ ์ ์ฌํ ์น ์ฑ์ ๋ฐฑ์๋ ํํธ๋ฅผ ์ง์ ๋ง๋ค์ด ๋ด
๋๋ค.
๊ทธ๋ผ, NestJS๊ฐ ์ ๊ทธ๋ฆฌ๋ ํซํ์ง ํ๋ฒ ์ง์ ๋ฐฐ์๋ณผ๊น์?
์ด๋ฐ ๋ถ๋ค์๊ฒ ์ถ์ฒ๋๋ ค์!
NestJS๋ก Node.js ์๋ฒ ๊ฐ๋ฐ์ ์
๋ฌธํ๊ณ ์ถ์ ๋ถ
Express ๊ธฐ๋ฅ์ ๋ถ์กฑํจ์ ๋๋ผ๊ณ ๋์ฒด์ฌ๋ฅผ ์ฐพ๋ ๋ถ
ํด๋ก ์ฝ๋ฉ์ ํตํด ๋ฐฑ์๋ ํํธ๋ฅผ ๊ตฌํํด๋ณด๊ณ ์ถ์ ๋ถ
์ ๋ก์ด ์ฌ๋ ํด๋ก ์ฝ๋ฉ ,๋ฐฑ์๋ ๊ณ ๋ฏผ ์๋ฒฝ ํด๊ฒฐ!
์ฌ๋(Slack)๊ณผ ์ ์ฌํ ์น ์ฑ์ ๋ฐฑ์๋ ํํธ๋ฅผ ์ง์ ๋ง๋ค์ด ๋ณผ ๊ฑฐ์์.
NestJS์ ๊ธฐ๋ฅ์ ์๊ฐํ๊ณ , Express ์๋ฒ๋ฅผ NestJS๋ก ์ ํํด ๋ณผ ์ ์์ด์.
Express์์ ๋ฒ์ด๋ NestJS์ ์ฅ์ ์ ์ดํดํ๊ณ , NestJS ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ค๋ฌด์์ ๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅ!
NestJS ๊ณต์ ๋ฌธ์ ์ฝ๋ ๋ฒ, ERD ๊ทธ๋ฆฌ๋ ๋ฒ, API ๋ฌธ์ ๋ง๋๋ ๋ฒ ๋ฑ ํ์ฌ์์ 1๋
๊ฐ NestJS๋ฅผ ์ง์ ์ฐ๋ฉด์ ๋๊ผ๋ ํ ์ ์๋ ค๋๋ฆฝ๋๋ค.
๋ณด๋์ค๋ก, ์น ์์ผ๊ณผ ํ
์คํ
ํ๋ ๋ฒ๊น์ง OK!
์๊ฐ ์ ํ์ธํด์ฃผ์ธ์!
์ด ๊ฐ์๋ [Slack ํด๋ก ์ฝ๋ฉ] ๊ฐ์์ ๋ฐฑ์๋ ํํธ์
๋๋ค. ๋ค๋ง, ์ด์ ๊ณผ์ ์ธ ํ๋ก ํธ ํํธ๋ฅผ ๋ฃ์ง ์์๋ ์๊ฐํ์ค ์ ์์ต๋๋ค. ํ๋ก ํธ์๋๋ฅผ ๋ง๋๋ ๋ฒ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์ด์ ๊ฐ์ ๋ฅผ ํ์ธํด์ฃผ์ธ์.
์ด๋ฐ ์คํฌ์ ๋ฐฐ์์.
NestJS
TypeORM
Socket.io
Node.js
์ง์ ๋ง๋ค์ด๋ด
๋๋ค!
์ฌ๋ ํด๋ก ์ฝ๋ฉ - ๋ฐฑ์๋ ํํธ ๊ฐ๋ฐ
์์ฒญ ๋ฐธ๋ฆฌ๋ฐ์ด์
๋ฐ ์๋ต ํ์คํ
NestJS๋ฅผ ํตํ Swagger ๋ฌธ์ ์๋ ์์ฑ
ERD ์ค๊ณ ๋ฐ TypeORM ์ฌ์ฉ
์ค์ ๋ฐฐํฌ๋ ์๋น์ค๊ฐ ๊ถ๊ธํ์๋์?
https://sleact.nodebird.com (๋ฐ๋ก๊ฐ๊ธฐ)
๊ฐ์๋ฅผ ํตํด ํด๋น ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ณผ ์ ์์ด์ :)
#1 ์์ค ์ฝ๋๋ฅผ์ ๊ณตํฉ๋๋ค.
https://github.com/zerocho/sleact (๋ฐ๋ก๊ฐ๊ธฐ)
NestJS + TypeORM ์์ค ์ฝ๋๋ฟ๋ง ์๋๋ผ,ํด๋น ์ฝ๋์ ๋์ํ๋ Express + Sequelize ์์ค ์ฝ๋ ๊น์ง ์ ๊ณตํฉ๋๋ค.
#2 ์ง๋ฌธ์ ๋น ๋ฅด๊ฒ ๋๋ตํด ๋๋ฆฝ๋๋ค.
์ ๊ฐ์ข์ ์ฅ์ ์ Q&A์
๋๋ค. ์ง๋ฌธํ์๋ฉด ํ๋ฃจ ์์ ๋ต๋ณ๋๋ ค์. ๊ฐ์ข ๊ด๋ จ ๋ด์ฉ์ ์์ ๋กญ๊ฒ ์ง๋ฌธํ์๋ฉด์ ๋ฅ๋์ ์ผ๋ก ๊ณต๋ถํด ๋ณด์ธ์. ๋ด์ฉ์ ์ดํดํ๊ธฐ์ ๋ ๋์์ด ๋ ๊ฑฐ์์!
์ง์๊ณต์ ์ ๋ฅผ ์๊ฐํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ ๐ฌ
Q. Slack ํด๋ก ์ฝ๋ฉ - [์ค์๊ฐ ์ฑํ
with React!] ๊ฐ์๋ ๋ค์ด์ผ ํ๋์? ์ ๋ ํ๋ก ํธ์๋ ๊ด์ฌ์ด ์์ด์.
์๋ฒ ๊ฐ๋ฐ์๋ง ๊ด์ฌ์ด ์๋ ๋ถ๋ค์ด๋ผ๋ฉด ์ด ๊ฐ์๋ง ๋ค์ผ์๋ฉด ๋ฉ๋๋ค. ๋ค๋ง ๋ฐฑ์๋ ์ฝ๋ฉ์ ํ ๋ ํ๋ก ํธ์๋๊ฐ ์์ด์ผ ๋ฐฑ์๋๋ก ์์ฒญ์ ๋ณด๋ด์ฃ ? ๊ทธ๋์ ์ ๊ฐ ํ๋ก ํธ ์ฝ๋๋ฅผ ์์ฑํด๋์์ต๋๋ค. ํ๋ก ํธ์๋ ์ฝ๋๋ ๊ทธ์ ์คํ๋ง ํ์๋ฉด ๋ฉ๋๋ค. ํ๋ก ํธ ํ๋ฉด์ ์ฌ์ฉํด ๋ฐฑ์๋๋ก ์์ฒญ์ ๋ณด๋ด์ธ์.
Q. Express๋ฅผ ์์์ผ ํ๋์? Express๋ฅผ ๊ฑด๋๋ฐ๊ณ NestJS๋ง ํ๊ณ ์ถ์ด์.
Express(์ต์คํ๋ ์ค)๋ฅผ ์๊ฐํ๋ค๊ฑฐ๋ Express์์ ์ฐจ์ด์ ์ ๋น๊ตํ๋ ๋ถ๋ถ์ด ๊ฐ์์ ์ข
์ข
๋์ต๋๋ค. ์ด๋ ์ ๋ Express ์ฝ๋๋ฅผ ์ฝ์ผ์ค ์ ์์ด์ผ ์๊ฐ์ด ์ํํฉ๋๋ค. NestJS๊ฐ ๋ด๋ถ์ ์ผ๋ก Express๋ฅผ ์ฐ๋ ๋งํผ Express์ ๋ํ ์ดํด๋ฅผ ๊ถ์ฅํ๋ ๋ฐ์
๋๋ค.
์๊ฐ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
Nest.js๋ 8๋ฒ์ ์ ์ฌ์ฉ ํฉ๋๋ค. ๊ฐ์ข๋ 7๋ฒ์ ์ด๋ 8๋ฒ์ ์ผ๋ก ํ์๋ ๊ฒ ๋ ์ํํฉ๋๋ค.
์ค์ ๋ฐฐํฌ๋ ์๋น์ค๋ sleact.nodebird.com ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ์ ๊ต์์ ์ฌ๊ธฐ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ์ FAQ๋ก ์ ๋ฆฌํด์ ์ธํ๋ฐ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
์์์ด๋ ๋ด์ฉ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌธ์ํ์๋ฉด ์ฌํธ์งํด์ ์ฌ๋ฆฝ๋๋ค.
๊ฐ์์ ์๋๋ฐ ๊ตฌํ์ด ๊ถ๊ธํ์ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ, ๋ง์ ๋ถ๋ค์ด ์ง๋ฌธํ์๋ฉด ๋ณด๋์ค ์์์ ์ ์ํฉ๋๋ค.
์ฐ๊ณ ๊ฐ์๋ฅผ ํ์ธํ์ธ์.