프로젝트 기간: 2025.7.7 ~ing
영어 일기 작성을 통해 꾸준한 영어 루틴 형성을 돕는 iOS 애플리케이션입니다.
매일 제공되는 주제를 바탕으로 영어로 일기를 쓰고, 기록을 관리하며 작문 습관을 만들어갈 수 있습니다.
| 성현주 | 신혜연 | 조영서 | 진소은 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
iOS Lead스플래시 · 로그인/온보딩 · 단어장 |
iOS Developer일기 작성 · 피드백 요청 로딩 |
iOS Developer홈 · 캘린더 |
iOS Developer일기 자세히 보기 |
| 영역 | 기술 | 비고 |
|---|---|---|
| UI 프레임워크 | UIKit | 안정적이고 풍부한 레퍼런스, 실무 적합성 |
| 아키텍처 | MVVM + Clean Architecture | UI, 도메인, 데이터 계층 분리로 유지보수 용이 |
| 네트워킹 | Moya | 추상화된 API 구성, 테스트 용이성, 요청 관리 편의 |
| 비동기/반응형 | Combine | 데이터 흐름의 선언적 처리, 상태 바인딩 최적화 |
| OCR 기능 | VisionKit | iOS 기본 OCR 지원으로 성능 및 접근성 확보 |
| 애니메이션 | Lottie | 감성적인 UI 표현, 디자이너 협업 효율, 벡터 기반 경량 애니메이션 |
| 이미지 처리 | Kingfisher | 이미지 캐싱 및 네트워크 병목 방지 |
| 로컬 저장소 | UserDefaults | 간단한 유저 설정 및 정보 유지 |
| 의존성 주입 | DIContainer | 모듈 간 결합도 최소화, 테스트 편의성 확보 |
| 패키지 관리 및 모듈화 | SPM | Swift Package Manager 기반 외부 라이브러리 관리 및 내부 모듈화 구성 |
| 버전 관리 | Git, GitHub | 브랜치 전략 기반 협업, PR 및 코드리뷰 활용 |
| 협업 도구 | Figma, Notion | 디자인 및 기능 흐름 시각화, 문서화 기반 협업 |
📦 HilingualNetwork (SPM 패키지)
├── 📁 Sources
│ └── 📁 HilingualNetwork
│ ├── 📁 API # API 정의 (TargetType 등)
│ ├── 📁 DTO # 데이터 전송 객체 (요청/응답 모델)
│ ├── 📁 Error # 네트워크 에러 처리 및 공통 에러 타입
│ ├── 📁 Foundation # 네트워크 기반 설정 (인터셉터, 공통 프로토콜 등)
│ ├── 📁 Service # 각 API에 대응하는 서비스 레이어
│ └── 📁 Token # 토큰 저장/갱신/관리 로직
├── 📄 Package.swift
└── 📄 Package.resolved📦 HilingualData (SPM 패키지)
├── 📁 Sources
│ └── 📁 HilingualData
│ ├── 📁 Mapper # DTO → Domain Entity 변환 로직
│ ├── 📁 Repository # Repository 구현체 (Interface 충족)
│ └── 📁 Token # Token 저장/불러오기 관련 구현 (ex. UserDefaults 기반 등)
├── 📄 Package.swift
└── 📄 Package.resolved📦 HilingualDomain (SPM 패키지)
├── 📁 Sources
│ └── 📁 HilingualDomain
│ ├── 📁 Entity # 순수 도메인 모델 (불변 데이터, 로직 포함 가능)
│ ├── 📁 Interface
│ │ └── 📁 Repository # 추상 Repository 프로토콜 (도메인 로직 독립성 확보)
│ └── 📁 UseCase # 유스케이스 계층 (비즈니스 로직 담당)
├── 📄 Package.swift
└── 📄 Package.resolved📦 HilingualPresentation (SPM 패키지)
├── 📁 Sources
│ └── 📁 Presentation
│ ├── 📁 Common # 전역적으로 사용하는 공통 요소들
│ │ ├── 📁 Base # BaseViewController, BaseView 등 공통 베이스 클래스
│ │ ├── 📁 Components # 공통 UI 컴포넌트 (ex: 버튼, 토스트 등)
│ │ ├── 📁 Extensions # UIKit, Foundation 등 확장 기능
│ │ ├── 📁 Factory # 화면 생성 관련 Factory 객체들
│ │ └── 📁 Resources # 리소스 관련 정리
│ │ ├── 📁 Font # 커스텀 폰트 관리
│ │ ├── 📁 Lottie # Lottie 애니메이션 JSON 파일 관리
│ │ └── 🖼️ Assets # 이미지 에셋, 컬러셋 등
│ ├── 📁 Utils # 유틸리티 클래스 모음
│ ├── 📁 Community # 커뮤니티 관련 화면
│ ├── 📁 Diarydetail # 일기 상세 화면
│ ├── 📁 DiaryWriting # 일기 작성 화면
│ ├── 📁 Example # 예제 테스트 화면 (샘플, 실험용)
│ ├── 📁 Home # 홈 화면 관련 구성
│ ├── 📁 Loading # 로딩 화면
│ ├── 📁 Login # 로그인 화면
│ ├── 📁 MyPage # 마이페이지 화면
│ ├── 📁 OnBoarding # 온보딩 화면
│ ├── 📁 Preparing # 준비 중인 기능들
│ ├── 📁 Splash # 스플래시 화면
│ └── 📁 WordBook # 단어장 기능
├── 📄 Package.swift
└── 📄 Package.resolved📱 Hilingual (App Main Target)
├── 📁 App # 앱 진입점과 환경 설정 관련 모듈
│ ├── 🧩 AppDelegate # 앱 생명주기 진입 지점
│ ├── 🧩 SceneDelegate # 씬 생명주기 관리
│ ├── 🧩 AppDIContainer # DIContainer: 의존성 주입 시작점
│ ├── 🛠️ LaunchScreen # LaunchScreen.storyboard
│ └── 📁 Config # 런타임 환경 및 앱 설정 관련 모음
│ ├── ⚙️ Config # 환경 enum 정의 (dev, prod 등)
│ ├── 🧩 AppConfig # 현재 앱의 설정값을 관리 (e.g. 환경별 분기)
│ ├── 🧩 AppBaseURLProvider # 네트워크 요청의 기본 URL 제공자
│ └── 🖼️ AppIcon # 앱 아이콘 관리 (dev/prod 분기 등)
├── 📦 Hilingual # 앱 바이너리
├── 📝 Info # Info.plist- Swift 스타일 쉐어 가이드를 따릅니다.
final,extension,do {}패턴 활용,setStyle / setLayout / setUI분리 등 적용.
| 태그 | 설명 |
|---|---|
feat |
새로운 기능 구현 |
style |
UI 및 스타일 관련 작업 |
fix |
버그 및 오류 수정 |
docs |
문서 수정 (README 등) |
setting |
설정 파일 및 환경 구성 변경 |
add |
에셋/라이브러리 추가 |
refactor |
코드 리팩토링 (기능 변경 없이 구조 개선) |
chore |
사소한 수정 및 유지보수 작업 |
hotfix |
긴급 수정 (배포 또는 개발 중 발생한 치명적 이슈 해결) |
- 소문자로 작성합니다.
- 한글로 작성합니다.
- 제목은 명령문 형태, 50자 이내로 작성합니다.
feat: #1 로그인 화면 UI 구현
add: #3 온보딩 이미지 에셋 추가
fix: #5 캘린더 날짜 선택 오류 수정 문제 해결 과정은 아래 Notion 페이지에 정리되어 있습니다.
🔗 Trouble Shooting 바로가기



