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

[TNT-142] 트레이니 초대 코드 화면 작성, DIContainer 추가 #40

Merged
merged 13 commits into from
Jan 27, 2025

Conversation

FpRaArNkK
Copy link
Contributor

@FpRaArNkK FpRaArNkK commented Jan 26, 2025

📌 What is the PR?

  • 트레이니 초대 코드 관련 화면을 작성하고, DIContainer를 작성하여 Swift-Dependencies를 사용한 DIP 구조를 작성했습니다.

🪄 Changes

  • 트레이니 프로필 생성 완료 화면을 작성했습니다
  • 트레이니 초대코드 작성 화면을 작성했습니다
  • DIContainer를 추가했습니다
  • Trainer 네트워크 로직을 추가했습니다

🌐 Common Changes

  • TTextField의 버튼이 TButton 컴포넌트로 변경되었습니다.
  • info.plist에 baseURL과 카카오 앱키 환경변수 설정을 추가했습니다

🔥 PR Point

  • Clean Architecture의 Data->Domain, DIP를 유지하기 위해 DIContainer를 도입했습니다.
    Swift-Dependencies는 모듈 영역에 할당되므로, 각 모듈에서 등록한 DependencyValue는 해당 모듈을 import해야 사용가능합니다.
    이러한 이유로 Data->Domain 구조에서 Domain/UseCase 작성 시 @dependency로 Data에서 등록한 Repository를 가져올 수 없습니다.

따라서 DIContainer 모듈을 추가하여 해당 문제를 해결했습니다.

  1. DIContainer는 Data와 Domain 모두 import하며, UseCase만 Dependency로 등록합니다.
  2. UseCase의 생성자에 Repository를 주입받으며, 이때 Repository는 Data의 Implementation을 가져옵니다.
  3. 생성된 UseCase 인스턴스는 Dependency로 등록합니다.
  4. Presentation에서 DIContainer를 import하여, 해당 UseCase를 가져와 사용할 수 있습니다.

결론적으로 Swift-Dependencies 외 별도 라이브러리 추가 없이, Domain은 Data를 모르는채, Presentation에서 완성된 UseCase를 사용할 수 있습니다.

🙆🏻 To Reviewers

  • 코드 양이 너무 많아서 해당 내용 먼저 올립니다..!

💭 Related Issues

@FpRaArNkK FpRaArNkK added the ✨Feat 새로운 기능 구현 (새로운 로직 추가, UI 구현 등) label Jan 26, 2025
@FpRaArNkK FpRaArNkK requested a review from syss220211 January 26, 2025 20:30
@FpRaArNkK FpRaArNkK self-assigned this Jan 26, 2025
Copy link
Member

@syss220211 syss220211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굿굿 새벽의 DIContainer 소동기 수고하셨습니다!
제가 저희 피그마 구조도에 반영해놓을게요

@FpRaArNkK
Copy link
Contributor Author

넵 좋습니다! 👍👍

@FpRaArNkK FpRaArNkK merged commit 9997128 into develop Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨Feat 새로운 기능 구현 (새로운 로직 추가, UI 구현 등)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants