Skip to content

[#457] Xcode 프로젝트 그룹 구조를 디렉토리 기준으로 정리한다#466

Merged
opficdev merged 8 commits into
developfrom
chore/#457-proj-dir
May 16, 2026
Merged

[#457] Xcode 프로젝트 그룹 구조를 디렉토리 기준으로 정리한다#466
opficdev merged 8 commits into
developfrom
chore/#457-proj-dir

Conversation

@opficdev
Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

레이어별 Xcode 프로젝트의 표시 그룹과 실제 디렉토리 구조 불일치 해소

📝 작업 내용

📌 요약

  • 각 레이어 .xcodeprojSources, Tests를 파일 시스템 동기화 루트 그룹으로 전환
  • 프로젝트 내부 표시 그룹을 Sources, Tests, Frameworks, Projects, Products 기준으로 정리
  • 레이어명 루트 그룹 제거 및 실제 디렉토리 기반 표시 구조로 통일

🔍 상세

  • DevLogCoreSourcesPBXFileSystemSynchronizedRootGroup으로 전환
  • DevLogDomain, DevLogData, DevLogInfra, DevLogPersistence, DevLogPresentation, DevLogWidgetCoreSources, TestsPBXFileSystemSynchronizedRootGroup으로 전환
  • .swiftlint.yml 파일을 타깃 멤버십 예외로 등록
  • 기존 파일별 PBXSourcesBuildPhase 참조를 동기화 루트 기반 구성으로 정리
  • Xcode에서 새 파일 추가 시 실제 디렉토리 구조와 프로젝트 표시 구조가 함께 유지되도록 개선

📸 영상 / 이미지 (Optional)

opficdev added 7 commits May 16, 2026 19:16
DevLogCore의 Sources를 파일 시스템 동기화 루트로 전환하고 SwiftLint 설정 파일을 타깃 멤버십 예외로 처리.
DevLogDomain의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 레이어명 루트 그룹 제거.
DevLogData의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 프로젝트 표시 그룹 기준 통일.
DevLogInfra의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 프로젝트 표시 그룹 기준 통일.
DevLogPersistence의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 레이어명 루트 그룹 제거.
DevLogPresentation의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 레이어명 루트 그룹 제거.
DevLogWidgetCore의 Sources와 Tests를 파일 시스템 동기화 루트로 전환하고 위젯 코어 프로젝트 표시 그룹 기준 통일.
@opficdev opficdev self-assigned this May 16, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

이번 PR은 Xcode 16의 PBXFileSystemSynchronizedRootGroup 기능을 도입하여 여러 모듈의 프로젝트 구조를 파일 시스템 동기화 방식으로 전환합니다. 이를 통해 수동으로 관리되던 파일 참조와 그룹 섹션이 대폭 정리되었습니다. 리뷰 피드백에서는 DevLogCore 프로젝트와 달리 DevLogData, DevLogDomain 등 다른 프로젝트들에서 동기화 그룹 도입 후에도 참조되지 않는 기존의 하위 그룹 및 파일 참조 데이터가 여전히 남아 있음을 지적했습니다. 프로젝트 파일의 비대화를 방지하고 일관성을 유지하기 위해 불필요한 레거시 데이터를 삭제하는 개선 작업이 필요합니다.

Comment on lines +304 to 311
5A15B28E791BA16F53BAF94E /* Sources */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
5A15B28E791BA16F53BAF94F /* Exceptions for "Sources" folder in "DevLogData" target */,
);
name = DevLogData;
path = Sources;
sourceTree = "<group>";
};
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Xcode 16의 PBXFileSystemSynchronizedRootGroup을 도입하면서 기존의 PBXGroup을 동기화 그룹으로 전환하셨습니다. 하지만 DevLogCore 프로젝트와 달리, 이 프로젝트에서는 기존에 정의되어 있던 하위 그룹들(Common, DTO, Mapper 등)과 개별 파일 참조(PBXFileReference, PBXBuildFile)들이 프로젝트 파일 내에 그대로 남아 있습니다.

동기화 그룹을 사용하면 Xcode가 파일 시스템을 기반으로 구조를 자동 관리하므로, 더 이상 참조되지 않는 기존의 PBXGroup 섹션 내 하위 그룹들과 PBXFileReference, PBXBuildFile 섹션의 데이터들을 삭제하여 프로젝트 파일의 불필요한 비대화를 막고 일관성을 유지하는 것이 좋습니다. 이 현상은 DevLogDomain, DevLogInfra, DevLogPersistence, DevLogPresentation, DevLogWidgetCore 프로젝트들에서도 공통적으로 발견됩니다.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

반영

파일 시스템 동기화 그룹 전환 후 남은 미참조 그룹, 파일 참조, 빌드 파일 객체 제거.
@opficdev opficdev merged commit 7bb3983 into develop May 16, 2026
1 check passed
@opficdev opficdev deleted the chore/#457-proj-dir branch May 16, 2026 10:44
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.

Xcode 프로젝트 그룹 구조를 디렉토리 기준으로 정리한다

1 participant