๐Ÿš€์ฝ”๋”ฉ ๊ณต๋ถ€/์ฝ”๋”ฉ๊ณต๋ถ€ ์ด๋ชจ์ €๋ชจ

    Nest.js ) Circular dependency ๋ฒˆ์—ญ

    ์›๋ฌธ: https://docs.nestjs.com/fundamentals/circular-dependency Circular dependency A circular dependency occurs when two classes depend on each other. For example, class A needs class B, and class B also needs class A. Circular dependencies can arise in Nest between modules and between providers. ์ˆœํ™˜ ์ข…์†์„ฑ์€ ๋‘ ํด๋ž˜์Šค๊ฐ€ ์„œ๋กœ ์ข…์†๋ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ž˜์ŠคA๊ฐ€ ํด๋ž˜์Šค B๋ฅผ ํ•„์š”๋กœํ•˜๊ณ , ๋˜ํ•œ ํด๋ž˜์ŠคB๊ฐ€ ํด๋ž˜์Šค A๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ˆœํ™˜ ์ข…์†์„ฑ์€ ๋ชจ๋“ˆ๊ณผ ํ”„๋กœ๋ฐ”์ด๋”..

    server) ํ˜ธ๋ž‘์ด๋Š” ์ฃฝ์–ด์„œ ๊ฐ€์ฃฝ์„ ๋‚จ๊ธฐ๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ์ฃฝ์–ด์„œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธด๋‹ค.

    server) ํ˜ธ๋ž‘์ด๋Š” ์ฃฝ์–ด์„œ ๊ฐ€์ฃฝ์„ ๋‚จ๊ธฐ๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ์ฃฝ์–ด์„œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธด๋‹ค.

    Feature ๋กœ๊ทธ๋Š” ๋ญ์ง€? ์ผ์ง€, ๊ธฐ๋ก, ๊ธฐ๋กํ•˜๋‹ค - ๋„ค์ด๋ฒ„ ์‚ฌ์ „ โ‘  ‘๋กœ๊ทธ’(Log)๋Š” ์ปดํ“จํ„ฐ๋‚˜ ์„œ๋ฒ„(Server) ๋“ฑ์—์„œ ์œ ์ €(User)์˜ ํ”Œ๋ ˆ์ด ์ •๋ณด๋ฅผ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋‚จ๊ธฐ๋Š” ๊ธฐ๋ก์„ ๋œปํ•œ๋‹ค. - ๋„ค์ด๋ฒ„ ๊ฒŒ์ž„ ์šฉ์–ด ์‚ฌ์ „ ๋กœ๊ทธ๋ž€ ์–ธ์ œ ์–ด๋–ค ์œ ์ €๊ฐ€ ์–ด๋–ค ํ–‰๋™์„ ํ–ˆ๋Š”๊ฐ€ ๋‚จ๊ธฐ๋Š”๊ฒŒ ๋กœ๊ทธ๋‹ค. console.log( ... )๋„ ๋กœ๊ทธ๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด์ฐŒ๋˜์—ˆ๋“  ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ํ–‰์œ„๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ”ํžˆ๋“ค ์šฐ๋ฆฌ๊ฐ€ ๋งํ•˜๋Š” '๋กœ๊ทธ ์ฐ์–ด๋ด'๋Š” ๋””๋ฒ„๊น… ์„ฑํ–ฅ์ด ๊ฐ•ํ•œ ๋กœ๊ทธ์— ํ•ด๋‹นํ•œ๋‹ค. ๋กœ๊ทธ๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? ์˜ค๋ฅ˜๋ฅผ ์ถ”์ ํ•˜๋Š”๋ฐ ํฐ ๋„์›€์„ ์ค€๋‹ค. ํ†ต๊ณ„์šฉ ๋ฐ์ดํ„ฐ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋””๋ฒ„๊น…์šฉ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋กœ๊ทธ๋Š” ์–ด๋–ค ๊ฐœ๋ฐœ์ด๋“  ์ •๋ง ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค. ์ƒ๊ฐํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์ง€๋งŒ ํŠนํžˆ ๋กœ๊ทธ..

    VScode ) Beautify ์„ค์ •

    VScode๋Š” ์ต์Šคํ…์…˜์ด ๋‹ค์–‘ํ•ด ์ฐธ ํŽธ๋ฆฌํ•˜๋‹ค. ๊ทธ์ค‘์—์„œ๋„, ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ฃผ๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋‹จ์—ฐ ์ œ์ผ์ด๋‹ค. ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ 2๋Œ€์žฅ์œผ๋กœ Beautify์™€ Prettier๊ฐ€ ์žˆ๋‹ค. ๋‘˜๋‹ค ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฐ๊ณผ, ๋‚˜๋Š” Beautify๊ฐ€ ๋” ์ž˜ ๋งž์•˜๋‹ค. Prettier๋Š” ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ๋„“๊ณ  ESlint์™€ ๊ถํ•ฉ๋„ ์ข‹์ง€๋งŒ, ๊ฐ•์ œ์ ์ด ๋Š๋‚Œ์ด ๊ฐ•ํ•˜๋‹ค. ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค, ์„ค์ •๊ฐ’์œผ๋กœ ์ž๋™ ์ •๋ ฌ์ด ๋˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์ด ๋‚˜๋Š” ๋ถˆํŽธํ–ˆ๋‹ค. ๋ฐ˜๋ฉด, beautify๋Š” ์ฝ”๋“œ ๊ทœ์น™์ด ๋นก์„ธ์ง€ ์•Š๊ณ , ์ž์œจ์— ๋งก๊ธฐ๋Š” ํŽธ์ด๋‹ค. ํŠนํžˆ ๋“œ๋ž˜๊ทธ ์˜์—ญ๋งŒ ํฌ๋งทํŒ…ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ๋งค์šฐ ํŽธํ–ˆ๋‹ค. ์‚ฌ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜, ์ฝ”๋“œ ๊ทœ์น™์ด ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์•„์„œ, beautify๊ฐ€ ํ›จ์”ฌ ํŽธํ–ˆ๋‹ค. 3D๋„ ๋‹ค๋ฃจ๊ณ , TCP๋„ ๋‹ค๋ฃจ๊ณ  ์ด๊ฒƒ์ €..

    Api ๋ฌธ์„œ ์ž๋™ํ™”์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ๋…ธ๋ ฅ๊ณผ ํ›„๊ธฐ...

    ํ˜‘์—…์— ์—†์–ด์„  ์•ˆ ๋  ๋ฌธ์„œ๊ฐ€ api ๋ฌธ์„œ์ด๋‹ค. ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ๋ณดํ†ต ๋ถ„๋ฆฌ๋˜์–ด ์ž‘์—…ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์„œ๋งŒ ๋ณด๊ณ ! ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ, ์‰ฝ๊ฒŒ! ์ž˜! ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค. 2021๋…„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ, ๋‚˜๋„ ๋‹น์—ฐํžˆ api ๋ฌธ์„œ๋ฅผ ์ž‘์—…ํ•ด์•ผํ–ˆ๋Š”๋ฐ, ์ ์ ˆํ•œ ํˆด์„ ์ฐพ์ง€ ๋ชปํ•ด ๋งŽ์ด ๋ถˆํŽธํ–ˆ๋‹ค. ์ฒ˜์Œ์—” ์‚ฌ๋‚ด์—์„œ ์‚ฌ์šฉ์ค‘์ธ Jira์˜ ๊ณต์œ  ๋ฌธ์„œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๋‘๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์—์„  ๊ตฌ๊ธ€ doc, ํ•œ๋ฒˆ์€ ์—‘์…€๋„ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ์‹ฌ์ง€์–ด ์—๋ฒ„๋…ธํŠธ๋„ ํ•œ๋ฒˆ ์ถ”๋ผํžˆ ํ•ด๋ดค๋‹ค. ๊ทธ.๋Ÿฌ.๋‚˜. ๋„ˆ~~๋ฌด ๋ถˆํŽธํ–ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์„œํˆด์€ ๊ฑฐ์˜ ๋‹ค ๋ถˆํŽธํ–ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์˜ฌํ•ด ์‚ฌ์šฉํ–ˆ๋˜ ํˆด๊ณผ ์‚ฌ์šฉ ํ›„๊ธฐ๋ฅผ ์ ์–ด๋ณด์•˜๋‹ค. api๋ฌธ์„œ ์ž๋™ํ™”๊ธฐ๋Šฅ์ธ swagger, apidoc๋“ฑ ๋„ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ด์•ผ์ง€! ๋ชฉ์ฐจ Api ๋ฌธ์„œ๊ฐ€ ๊ผญ ๊ฐ€์ ธ์•ผ ํ•  ์  (๋‡Œํ”ผ์…œ) ๊ฐ€๋…์„ฑ์ด ์ข‹..