Skip to content

[Feat/#124] TMA 구조로 변경#125

Merged
hooni0918 merged 5 commits intodevelopfrom
feat/#124-TMA구조로변경
Jul 24, 2025

Hidden character warning

The head ref may contain hidden characters: "feat/#124-TMA\uad6c\uc870\ub85c\ubcc0\uacbd"
Merged

[Feat/#124] TMA 구조로 변경#125
hooni0918 merged 5 commits intodevelopfrom
feat/#124-TMA구조로변경

Conversation

@hooni0918
Copy link
Member

@hooni0918 hooni0918 commented Jul 22, 2025

🔗 연결된 이슈

📄 작업 내용

  • TMA 구조로 일부 코드를 변경했습니다.
  • 모듈 내 목데이터를 넣었습니다.
  • 테스트코드를 넣을 공간을 만들었습니다.
구현 내용
GIF
스크린샷 2025-07-23 오전 12 41 39"

💻 주요 코드 설명

캘린더 Feature만 우선 TMA로 나누어 보았습니다.
해당 캘린더만 나눈것이기에 추후 전체 리팩토링이 진행되어야 할것 같지만 일단 가볍게 구조만 변경해보았습니다.

만약 모든 피쳐를 나눈다면 이런식으로 구조를 잡을 수 있을것 같아요

┌─────────────────────────────────┐
              App                  모든 Feature 조합
└─────┬──────────┬──────────┬─────┘
                          
┌─────▼─────┐┌──▼─────┐┌───▼──────┐
HomeFeature││Calendar││ Profile    Feature 간 직접 참조 금지
└─────┬─────┘└──┬─────┘└───┬──────┘
                          
┌─────▼─────┐┌──▼─────┐┌───▼──────┐
HomeDomain ││Calendar││ Profile    순수 비즈니스 로직
           ││Domain  ││ Domain   
└─────┬─────┘└──┬─────┘└───┬──────┘
                          
┌─────▼─────┐┌──▼─────┐┌───▼──────┐
 HomeData  ││Calendar││ Profile    외부 API/DB 연결
           ││Data    ││ Data     
└───────────┘└────────┘└──────────┘
                          
      └──────────┼──────────┘
                 
        ┌────────▼────────┐
         Core (DI, NW,     공통 인프라
         Coordinator)    
        └────────┬────────┘
                 
        ┌────────▼────────┐
         Shared (Design,   공통 UI/Utils  
         Utils)          
        └─────────────────┘
스크린샷 2025-07-23 오전 12 54 37 추후 이런식으로 각각의 레이어 내 TMA방식으로 수정해 나가면 좋을것 같습니다.

공식문서상 TMA의 이점중 하나인 인터페이스로 나눠서 증분빌드 시간을 줄일수 있는 이점이 있는것은 확인했지만, 현재 Interface 레이어가 따로 나누어져 있지 않기에 Feature 모듈을 전부 다시 재빌드 해야한다는 단점이 있는것으로 확인했습니다. 현재 앱 규모가 작아서 큰 문제가 있을것같지는 않지만 나중에 이부분도 같이 고려해보면 좋을것 같아요.

📚 참고자료

https://docs.tuist.dev/en/guides/features/projects/tma-architecture#dependencies

👀 기타 더 이야기해볼 점

테스트코드의 경우에는 이전에 SwiftTest를 넣어보자 라고 간단하게? 말했던것 같은데 일단 기본 XCTest를 넣어두긴 했습니다 (사실 두개가 뭐가 다른지 아직 모름,,ㅎㅎ) 이부분도 일단 공부해보고 같이 적용해보아요아정

✔️ CI Completed

  • ✅ Build: Completed

@hooni0918 hooni0918 requested review from SijongKim93 and k-nh July 22, 2025 15:59
@hooni0918 hooni0918 self-assigned this Jul 22, 2025
@hooni0918 hooni0918 added the jihoon 나는 지훈 label Jul 22, 2025
@hooni0918 hooni0918 force-pushed the feat/#124-TMA구조로변경 branch from 4404cf3 to bb82d36 Compare July 23, 2025 04:08
@hooni0918 hooni0918 merged commit 328f6db into develop Jul 24, 2025
1 check passed
@hooni0918 hooni0918 deleted the feat/#124-TMA구조로변경 branch July 24, 2025 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jihoon 나는 지훈

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 피쳐 구조 변경

1 participant