book.jpeg


๐Ÿ““ ๋…์„œํ›„๊ธฐ

ใ€Œํด๋ฆฐ์ฝ”๋“œใ€ 5 ~ 8์žฅ ๋…์„œ ํ›„๊ธฐ

  • 5์žฅ. ํ˜•์‹ ๋งž์ถ”๊ธฐ
  • 6์žฅ. ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ
  • 7์žฅ. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ
  • 8์žฅ. ๊ฒฝ๊ณ„


1์ฃผ์ผ์— 4์žฅ์”ฉ ์ฝ๊ธฐ๊ฐ€ ๋ชฉํ‘œ์ด๋ฉฐ ์ฝ์€ ํ›„๊ธฐ๋ฅผ ๋ธ”๋กœ๊ทธ์— ํ›„๊ธฐ๋กœ ์ •๋ฆฌ๊นŒ์ง€ ํ•ด๋ณด๋ คํ•œ๋‹ค.

์ด๋ฒˆ์ฃผ๋Š” 5์žฅ ใ€Œํ˜•์‹ ๋งž์ถ”๊ธฐใ€ ~ 8์žฅ ใ€Œ๊ฒฝ๊ณ„ใ€ ๊นŒ์ง€ ์ฝ์€ ํ›„๊ธฐ๋ฅผ ๊ฐ„๋žตํžˆ ๋‚จ๊ฒจ๋ณด์•˜๋‹ค.



5. ํ˜•์‹ ๋งž์ถ”๊ธฐ


์ฃผ์š” ํ† ํ”ฝ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ผ๋ฉด ํ˜•์‹์„ ๊น”๋”ํ•˜๊ฒŒ ๋งž์ถฐ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•œ๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค.


"ํ˜•์‹์— ๋‹ต์€ ์—†๋‹ค. ํŒ€์œผ๋กœ ์ผํ•œ๋‹ค๋ฉด ํŒ€์ด ํ•ฉ์˜ํ•ด ๋ชจ๋‘๊ฐ€ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์„ ์ •ํ•˜๊ณ  ์‹ค์ฒœํ•ด์•ผํ•œ๋‹ค."


์ „์ ์œผ๋กœ ๋™์˜ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ผ๊ด€์ ์ธ ์Šคํƒ€์ผ์„ ๋ณด์ธ๋‹ค.

์ด๋ฒˆ ์žฅ์—์„œ๋Š” โ€œํ–‰ ๊ธธ์ดโ€, โ€œ๋นˆ ํ–‰ ๊ตฌ๋ถ„โ€, โ€œ๋“ค์—ฌ์“ฐ๊ธฐโ€ ๋“ฑ ์ฝ”๋“œ ์ปจ๋ฒค์…˜(๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ทœ์•ฝ)์„ ์ฃผ๋กœ ์–ธ๊ธ‰ํ•œ๋‹ค.

์‚ฌ์‹ค ์ด ๋ถ€๋ถ„์€ ์š”์ฆ˜์€ IDE์—์„œ ์ œ๊ณตํ•˜๋Š” ์ต์Šคํ…์…˜(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์—์„œ์˜ ESLint, Prettier ๋“ฑ๋“ฑ)์˜ ์„ค์ • ํŒŒ์ผ์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ ๋งŒ์œผ๋กœ ํŒ€์˜ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ๋งž์ถœ ์ˆ˜ ์žˆ๋Š” ๋“ฑ ๋„ˆ๋ฌด๋‚˜ ํŽธ๋ฆฌํ•œ ๋„๊ตฌ๋“ค์ด ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค.

์ด๋ฏธ ์‹ค์ฒœํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ๋„˜์–ด๊ฐ”๋‹ค.



6. ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ


์ด ์žฅ์—์„œ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ์•Œ๋งž์€ ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ์ ˆ์ฐจ์ง€ํ–ฅ์ ์ธ ์ฝ”๋“œ์™€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ ์„ ์–ธ๊ธ‰ํ•œ๋‹ค.

๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ ํƒ์•ผ ํ•จ์„ ์•Œ๋ ค์ฃผ๋ฉฐ, ํ•ญ์ƒ ๋ณต์žกํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์ •๋‹ต์ด ์•„๋‹˜์„ ์–ธ๊ธ‰ํ•œ๋‹ค.

๋•Œ๋กœ๋Š” ๋‹จ์ˆœํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๊ฐ€ ๊ฐ€์žฅ ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ค„ ์•Œ์•„์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ•์กฐํ•œ๋‹ค.


"๋ถ„๋ณ„ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด๋ผ๋Š” ์ƒ๊ฐ์ด ๋ฏธ์‹ ์ž„์„ ์ž˜ ์•ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋‹จ์ˆœํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๊ฐ€ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ƒํ™ฉ๋„ ์žˆ๋‹ค."


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

์ฑ…์„ ์ฝ๋Š” ๋„์ค‘ ํ˜„์žฌ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๊ณ  ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ(DTO)์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์žˆ์–ด ๋ฐ˜๊ฐ€์›Œ์„œ.. ์ •๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ•˜๊ณ  ๋‹ค์Œ์žฅ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค.



6-1. ์ž๋ฃŒ ์ „๋‹ฌ ๊ฐ์ฒด (DTO)


์ž๋ฃŒ ๊ตฌ์กฐ์ฒด๋ž€ ๋ณ€์ˆ˜๋งŒ ์žˆ๊ณ  ํ•จ์ˆ˜๊ฐ€ ์—†๋Š” ํŠน์ง•์ด ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์ผ์ปซ๋Š”๋‹ค.

์ž๋ฃŒ ๊ตฌ์กฐ์ฒด๋Š” ๋ชฉ์ ์ด ๋ถ„๋ช…ํ•˜๋ฏ€๋กœ ์ž๋ฃŒ ์ „๋‹ฌ ๊ฐ์ฒด(Data Transfer Object, DTO)๋ผ ํ•œ๋‹ค.

  • DTO๋Š” ๊ฐ€๊ณต๋˜์ง€ ์•Š์€ ์ •๋ณด๋ฅผ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค.


7. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ


์ด ์žฅ์—์„œ ๊ธฐ์–ต์— ๋‚จ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๊ผฝ์ž๋ฉด ์•„๋ž˜์˜ ๋ฌธ์žฅ์„ ๊ผฝ์„ ๊ฒƒ ๊ฐ™๋‹ค.


"๋ญ”๊ฐ€ ์ž˜ ๋ชป๋  ๊ฐ€๋Šฅ์„ฑ์€ ๋Š˜ ์กด์žฌํ•œ๋‹ค."


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

์ฐธ๊ณ : NestJS xception-filters



error.jpeg



์—๋Ÿฌ๋ฅผ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒ ๋‹น์—ฐํ•œ ์†Œ์–‘์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.

์ด ์ฑ…์—์„œ ๋˜ํ•œ ์—๋Ÿฌ๋Š” try-catch๋ฌธ ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ ๋…ผ๋ฆฌ์™€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•ด ๋…์ž์ ์ธ ์‚ฌ์•ˆ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํŠผํŠผํ•˜๊ณ  ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‹ค์‹œํ•œ๋ฒˆ ๊ฐ•์กฐํ•œ๋‹ค.



8. ๊ฒฝ๊ณ„


์ฑ•ํ„ฐ ์ œ๋ชฉ๋งŒ ๋ณด๊ณ ๋Š” ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๊ฐ์ด ์ž˜ ์•ˆ์žกํ˜”๋‹ค. (๊ฒฝ๊ณ„..?)

์ฝ๊ณ  ๋‚˜๋‹ˆ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์šฐ๋ฆฌ ์ฝ”๋“œ์— ๋…น์—ฌ๋‚ด๋Š” ๊ณผ์ • ์ค‘ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์„ ์–ธ๊ธ‰ํ–ˆ๋‹ค.


"์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์ตํžˆ๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ๋Š” ๋”์šฑ ์–ด๋ ต๋‹ค. ๋‘ ๊ฐ€์ง€๋ฅผ ๋™์‹œ์— ํ•˜๊ธฐ๋Š” ๋‘๋ฐฐ ์ด์ƒ ์–ด๋ ต๋‹ค."


์ฆ‰, ์ด ์ฑ•ํ„ฐ๋ฅผ ์ฝ๊ณ  ๋Š๋‚€์ ์€ โ€œ์™ธ๋ถ€ ์ฝ”๋“œ(ํŒจํ‚ค์ง€ ๋“ฑ)๋Š” ํ†ต์ œํ•˜๊ธฐ ์–ด๋ ต๋‹ค.โ€๋ผ๋Š” ๊ฒฐ๋ก ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•ด์•ผํ•˜๋ฉฐ ๊ฒฝ๊ณ„์— ์œ„์น˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๊น”๋”ํžˆ ๋ถ„๋ฆฌํ•ด์•ผํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” ์™ธ๋ถ€ ํŒจํ‚ค์ง€๋ฅผ ์„ธ์„ธํ•˜๊ฒŒ ๋ชจ๋‘ ์•Œ์•„์•ผ ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

ํ†ต์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์™ธ๋ถ€ ํŒจํ‚ค์ง€๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์šฐ๋ฆฌ ์ฝ”๋“œ์— ์˜์กดํ•ด์„œ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•ด์•ผํ•œ๋‹ค ๊ฐ•์กฐํ•œ๋‹ค.