Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: module 되는데까지 정리 #106

Merged
merged 1 commit into from
Mar 4, 2024
Merged

fix: module 되는데까지 정리 #106

merged 1 commit into from
Mar 4, 2024

Conversation

tomatozil
Copy link
Contributor

@tomatozil tomatozil commented Feb 28, 2024

  • 무엇을 했느냐
    module 정리를 했습니다.

  • 왜 했느냐
    추후 서비스 확장 및 유지 보수시 덜 귀찮으려고 했습니다.
    자세한 이유는 노션 참고

  • 어떻게 했느냐
    *.module.ts 를 대거 수정했습니다.
    다른 모듈에서 쓰이는 프로바이더들은 export 목록에 넣었고, 그 프로바이더를 쓰는 다른 모듈에서 그 프로바이더의 직속 모듈을 import 목록에 넣으면 됩니다.
    예) UsersRepository를 UsersModule의 export 목록에 넣고, UserRepository를 쓰는 GameModule에서는 UsersModule을 import 목록에 넣습니다.

  • 예외가 있습니다.
    모듈 정리를 하던중 '순환 종속성(상호 참조)' 문제에 직면했습니다. GameModule 과 UsersModule 이 서로를 import 하는게 원인이었습니다.
    이런 경우 여러가지 해결책들이 있으나 제 마음에 안들거나(ㅎ) 혹은 구조가 대거 바뀌거나 혹은 품이 많이 들것으로 예상되더군요! 임시방편으로 해결한 결과, GameRepository와 AppService는 어쩔 수 없이 싱글톤을 벗어납니다.. 두 개의 클래스는 각 두 개의 인스턴스를 가집니다.. (UsersModule의 provider 목록을 확인해보십시오)

빌드 되는 것까지 확인했습니다!

@tomatozil tomatozil merged commit b99c838 into main Mar 4, 2024
4 checks passed
@yubinquitous
Copy link
Contributor

굿! 고생하셨어용!

@tomatozil tomatozil deleted the module branch March 18, 2024 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants