๐Ÿš€์ฝ”๋”ฉ ๊ณต๋ถ€

    Nest.js ) Circular dependency ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๊ธฐ๋ก

    Nest.js ) Circular dependency ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๊ธฐ๋ก

    * a → b : a์— b๋ฅผ ์ฃผ์ž…์‹œํ‚ด / a์— b๋ฅผ import ํ•จ - ๋ชจ๋“ˆ ์†Œ๊ฐœ MainModule : ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ๋ชจ๋“ˆ, ์ปจํŠธ๋กค๋Ÿฌ, DB ๋ฐ์ดํ„ฐ ๋“ฑ์„ ๊ด€๋ฆฌ UserModule : ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ DataModule : DB์™€ ํ†ต์‹ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ UtilModule: Util์„ฑ ์ฝ”๋“œ ๋ฐ ์„œ๋น„์Šค๋“ค ๋ชจ์Œ SomeUtil : DB๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • ์˜์—ญ๊ณผ ๊ด€๋ จ๋œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ์„œ๋น„์Šค - ๋ฐฐ๊ฒฝ ์œ„ ๋ชจ๋“ˆ์†Œ๊ฐœ์™€ ๊ฐ™์ด DB๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  Util์„ฑ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•ด์กŒ๋‹ค. ์ด๋•Œ SomeUtil์€ MainModule ์•„๋ž˜์— ์žˆ๋Š” UserModule์— ์“ฐ์—ฌ์•ผ ํ–ˆ๋‹ค. UserModule์€ DataModule์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ๋‘ ๋ชจ๋“ˆ ๋ชจ๋‘ UtilModule์„ impo..

    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๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ˆœํ™˜ ์ข…์†์„ฑ์€ ๋ชจ๋“ˆ๊ณผ ํ”„๋กœ๋ฐ”์ด๋”..

    Nest.js) ์˜์กด์„ฑ, ์ฃผ์ž… ๊ด€๋ จ์˜ค๋ฅ˜ / Error: Nest can't resolve dependencies of ... ์•„๋ฌด๋ฆฌํ•ด๋„ ํ•ด๊ฒฐ์ด ์•ˆ๋ ๋•Œ (Feat. chatGPT)

    Nest.js) ์˜์กด์„ฑ, ์ฃผ์ž… ๊ด€๋ จ์˜ค๋ฅ˜ / Error: Nest can't resolve dependencies of ... ์•„๋ฌด๋ฆฌํ•ด๋„ ํ•ด๊ฒฐ์ด ์•ˆ๋ ๋•Œ (Feat. chatGPT)

    1. Inject ํ• ๋•Œ Cannot read properties of undefine passportStrategy์—์„œ Service๋ฅผ ์ฃผ์ž…ํ–ˆ์„๋•Œ ์œ„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. โ–ถ๏ธŽ ๋น ๋ฅธ ๊ฒฐ๋ก  ๋ฐ”๋ณด๊ฐ™์ด Strategy์— @Injectable() ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์•ˆ๋ถ™์—ฌ์ค˜์„œ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค. 2. Error: Nest can't resolve dependencies of ERROR [ExceptionHandler] Nest can't resolve dependencies of the SuperService (?). Please make sure that the argument UserDAL at index [0] is available in the SuperModule context. Potential solutions:..

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

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

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