Skip to content

Commit 3aceb88

Browse files
committed
chore: 문서 내 코드 라인 명시를 제거
1 parent d17c5f6 commit 3aceb88

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

README.md

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -44,42 +44,42 @@ Poppool은 팝업 스토어 방문을 즐기는 사용자를 위해 제작된
4444
## 주요 기능
4545

4646
### 1. 지도 탐색
47-
- 네이버 지도 SDK(NMapsMap)를 연동하여 실시간 위치, 마커 클러스터링, 카테고리 기반 필터를 제공하고, 팝업 상세 정보를 캐러셀로 노출합니다.【F:Poppool/PresentationLayer/Presentation/Presentation/Scene/Map/MapView/MapViewController.swift†L1-L199】
48-
- 지도 영역 이동 시 ViewPort에 맞춘 스토어 데이터를 가져오고, 선택한 마커에 대한 상세 화면으로 네비게이션합니다.【F:Poppool/PresentationLayer/Presentation/Presentation/Scene/Map/MapView/MapViewController.swift†L92-L180】
47+
- 네이버 지도 SDK(NMapsMap)를 연동하여 실시간 위치, 마커 클러스터링, 카테고리 기반 필터를 제공하고, 팝업 상세 정보를 캐러셀로 노출합니다.
48+
- 지도 영역 이동 시 ViewPort에 맞춘 스토어 데이터를 가져오고, 선택한 마커에 대한 상세 화면으로 네비게이션합니다.
4949

5050
### 2. 팝업 검색 및 필터링
51-
- ReactorKit 기반 검색 화면에서 최근 검색어, 카테고리 태그, 필터 시트를 제공하며 북마크·페이지네이션을 포함한 풍부한 액션을 정의합니다.【F:Poppool/PresentationLayer/SearchFeature/SearchFeature/PopupSearch/Reactor/PopupSearchReactor.swift†L10-L159】
52-
- 키워드 기반 팝업 목록을 유스케이스로부터 전달받아 상태를 갱신하고, 프리패칭으로 스크롤 경험을 개선합니다.【F:Poppool/PresentationLayer/SearchFeature/SearchFeature/PopupSearch/Reactor/PopupSearchReactor.swift†L92-L159】
51+
- ReactorKit 기반 검색 화면에서 최근 검색어, 카테고리 태그, 필터 시트를 제공하며 북마크·페이지네이션을 포함한 풍부한 액션을 정의합니다.
52+
- 키워드 기반 팝업 목록을 유스케이스로부터 전달받아 상태를 갱신하고, 프리패칭으로 스크롤 경험을 개선합니다.
5353

5454
### 3. 도메인 로직과 데이터 접근
55-
- 지도 관련 유스케이스는 선택한 카테고리와 지도 영역을 받아 저장소에서 데이터를 가져오며, 위치 기반 필터링 로직을 제공합니다.【F:Poppool/DomainLayer/Domain/Domain/UseCaseImpl/MapUseCaseImpl.swift†L8-L70】
56-
- 데이터 레이어는 Alamofire Provider를 통해 API를 호출하고, 응답 DTO를 도메인 모델로 변환합니다.【F:Poppool/DataLayer/Data/Data/RepositoryImpl/MapRepositoryImpl.swift†L8-L73】【F:Poppool/DataLayer/Data/Data/Network/Provider/ProviderImpl.swift†L5-L190】
55+
- 지도 관련 유스케이스는 선택한 카테고리와 지도 영역을 받아 저장소에서 데이터를 가져오며, 위치 기반 필터링 로직을 제공합니다.
56+
- 데이터 레이어는 Alamofire Provider를 통해 API를 호출하고, 응답 DTO를 도메인 모델로 변환합니다.
5757

5858
### 4. 디자인 시스템
59-
- 공통 버튼, 레이블, 검색바 등 재사용 가능한 UI 컴포넌트를 정의하여 화면 간 일관성을 유지합니다.【F:Poppool/PresentationLayer/DesignSystem/DesignSystem/Components/PPButton.swift†L5-L132】
59+
- 공통 버튼, 레이블, 검색바 등 재사용 가능한 UI 컴포넌트를 정의하여 화면 간 일관성을 유지합니다.
6060

6161
## 아키텍처
6262

63-
- **모듈화된 클린 아키텍처**: Presentation, Domain, Data, Core(Infrastructure) 레이어로 나누어 책임을 분리하였으며, 각 레이어는 Interface 모듈을 통해 서로 통신합니다.【F:Poppool/Poppool/Application/AppDelegate.swift†L4-L108】
64-
- **의존성 주입 컨테이너**: 커스텀 DIContainer와 `@Dependency` 프로퍼티 래퍼를 사용해 런타임에 의존성을 등록/해결합니다.【F:Poppool/CoreLayer/Infrastructure/Infrastructure/DIContainer/DIContainer.swift†L3-L65】【F:Poppool/CoreLayer/Infrastructure/Infrastructure/DIContainer/DependencyWrapper.swift†L3-L28】
65-
- **리액티브 상태 관리**: ReactorKit과 RxSwift를 통해 화면 상태를 선언적으로 기술하고, 사용자 액션을 명확히 분류합니다.【F:Poppool/PresentationLayer/SearchFeature/SearchFeature/PopupSearch/Reactor/PopupSearchReactor.swift†L10-L160】
63+
- **모듈화된 클린 아키텍처**: Presentation, Domain, Data, Core(Infrastructure) 레이어로 나누어 책임을 분리하였으며, 각 레이어는 Interface 모듈을 통해 서로 통신합니다.
64+
- **의존성 주입 컨테이너**: 커스텀 DIContainer와 `@Dependency` 프로퍼티 래퍼를 사용해 런타임에 의존성을 등록/해결합니다.
65+
- **리액티브 상태 관리**: ReactorKit과 RxSwift를 통해 화면 상태를 선언적으로 기술하고, 사용자 액션을 명확히 분류합니다.
6666

6767
## 모듈 구성
6868

6969
| 계층 | 주요 모듈 | 설명 |
7070
| --- | --- | --- |
71-
| Presentation | `Presentation`, `LoginFeature`, `SearchFeature`, `DesignSystem` | 화면, 네비게이션, 공통 UI 컴포넌트 정의【F:Poppool/Poppool/Application/AppDelegate.swift†L4-L14】 |
72-
| Domain | `Domain`, `DomainInterface` | 엔터티, 리포지토리/유스케이스 인터페이스와 구현 제공【F:Poppool/Poppool/Application/AppDelegate.swift†L4-L14】 |
73-
| Data | `Data` | 네트워크 통신, DTO 변환, 저장소 구현 관리【F:Poppool/Poppool/Application/AppDelegate.swift†L4-L108】 |
74-
| Core | `Infrastructure` | 로깅, 네트워크, DI 등 공통 인프라 제공【F:Poppool/CoreLayer/Infrastructure/Infrastructure/DIContainer/DIContainer.swift†L3-L65】 |
71+
| Presentation | `Presentation`, `LoginFeature`, `SearchFeature`, `DesignSystem` | 화면, 네비게이션, 공통 UI 컴포넌트 정의 |
72+
| Domain | `Domain`, `DomainInterface` | 엔터티, 리포지토리/유스케이스 인터페이스와 구현 제공 |
73+
| Data | `Data` | 네트워크 통신, DTO 변환, 저장소 구현 관리 |
74+
| Core | `Infrastructure` | 로깅, 네트워크, DI 등 공통 인프라 제공 |
7575

7676
## 기술 스택
7777

7878
- **Language & Tooling**: Swift 5.9, Xcode 16.2
79-
- **Reactive**: ReactorKit, RxSwift, RxCocoa【F:Poppool/PresentationLayer/SearchFeature/SearchFeature/PopupSearch/Reactor/PopupSearchReactor.swift†L6-L8】
80-
- **UI/UX**: SnapKit, FloatingPanel, NMapsMap, Custom Design System【F:Poppool/PresentationLayer/Presentation/Presentation/Scene/Map/MapView/MapViewController.swift†L9-L16】
81-
- **Networking**: Alamofire 기반 Provider, TokenInterceptor, RxSwift Observables【F:Poppool/DataLayer/Data/Data/Network/Provider/ProviderImpl.swift†L5-L190】
82-
- **Third-Party Services**: Kakao SDK, Naver Maps 인증 설정을 앱 실행 시 초기화합니다.【F:Poppool/Poppool/Application/AppDelegate.swift†L15-L31】
79+
- **Reactive**: ReactorKit, RxSwift, RxCocoa
80+
- **UI/UX**: SnapKit, FloatingPanel, NMapsMap, Custom Design System
81+
- **Networking**: Alamofire 기반 Provider, TokenInterceptor, RxSwift Observables
82+
- **Third-Party Services**: Kakao SDK, Naver Maps 인증 설정을 앱 실행 시 초기화합니다.
8383

8484
## 시작하기
8585

@@ -88,16 +88,12 @@ Poppool은 팝업 스토어 방문을 즐기는 사용자를 위해 제작된
8888
git clone https://github.com/PopPool/iOS.git
8989
```
9090
2. 필요한 서브모듈 또는 Swift Package Dependencies를 Xcode에서 Resolve합니다.
91-
3. `Poppool.xcworkspace`를 열고, `Secrets` 구조체에 필요한 API 키(카카오, 네이버 지도 등)를 설정합니다.【F:Poppool/Poppool/Application/AppDelegate.swift†L22-L31】
91+
3. `Poppool.xcworkspace`를 열고, `Secrets` 구조체에 필요한 API 키(카카오, 네이버 지도 등)를 설정합니다.
9292
4. iOS 16 이상 시뮬레이터 혹은 기기에서 빌드 및 실행합니다.
9393

9494
## 협업 규칙
9595

96-
- 새로운 의존성은 `DIContainer.register`를 통해 등록하고, 필요한 곳에서는 `@Dependency` 래퍼로 주입받습니다.【F:Poppool/CoreLayer/Infrastructure/Infrastructure/DIContainer/DIContainer.swift†L31-L65】【F:Poppool/Poppool/Application/AppDelegate.swift†L40-L109】
97-
- 화면 상태는 ReactorKit을 통해 Action/Mutation/State 패턴으로 정의하며, RxSwift DisposeBag을 이용해 메모리를 관리합니다.【F:Poppool/PresentationLayer/SearchFeature/SearchFeature/PopupSearch/Reactor/PopupSearchReactor.swift†L10-L159】
98-
- 네트워크 로깅과 에러 처리는 Provider 레벨에서 공통적으로 처리하고, 도메인에서는 순수 모델만 노출합니다.【F:Poppool/DataLayer/Data/Data/Network/Provider/ProviderImpl.swift†L22-L190】【F:Poppool/DataLayer/Data/Data/RepositoryImpl/MapRepositoryImpl.swift†L16-L73】
99-
100-
---
101-
102-
> 💡 **Tip**: 지도, 검색, 마이페이지 등 주요 기능은 각각 독립적인 모듈로 분리되어 있으니, 기능 추가 시 해당 모듈의 Interface 프로토콜을 우선 확인하면 빠르게 진입할 수 있습니다.
96+
- 새로운 의존성은 `DIContainer.register`를 통해 등록하고, 필요한 곳에서는 `@Dependency` 래퍼로 주입받습니다.
97+
- 화면 상태는 ReactorKit을 통해 Action/Mutation/State 패턴으로 정의하며, RxSwift DisposeBag을 이용해 메모리를 관리합니다.
98+
- 네트워크 로깅과 에러 처리는 Provider 레벨에서 공통적으로 처리하고, 도메인에서는 순수 모델만 노출합니다.
10399

0 commit comments

Comments
 (0)