Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
무엇을 했느냐
module 정리를 했습니다.
왜 했느냐
추후 서비스 확장 및 유지 보수시 덜 귀찮으려고 했습니다.
자세한 이유는 노션 참고
어떻게 했느냐
*.module.ts 를 대거 수정했습니다.
다른 모듈에서 쓰이는 프로바이더들은 export 목록에 넣었고, 그 프로바이더를 쓰는 다른 모듈에서 그 프로바이더의 직속 모듈을 import 목록에 넣으면 됩니다.
예) UsersRepository를 UsersModule의 export 목록에 넣고, UserRepository를 쓰는 GameModule에서는 UsersModule을 import 목록에 넣습니다.
예외가 있습니다.
모듈 정리를 하던중 '순환 종속성(상호 참조)' 문제에 직면했습니다. GameModule 과 UsersModule 이 서로를 import 하는게 원인이었습니다.
이런 경우 여러가지 해결책들이 있으나 제 마음에 안들거나(ㅎ) 혹은 구조가 대거 바뀌거나 혹은 품이 많이 들것으로 예상되더군요! 임시방편으로 해결한 결과, GameRepository와 AppService는 어쩔 수 없이 싱글톤을 벗어납니다.. 두 개의 클래스는 각 두 개의 인스턴스를 가집니다.. (UsersModule의 provider 목록을 확인해보십시오)
빌드 되는 것까지 확인했습니다!