-
Notifications
You must be signed in to change notification settings - Fork 1
[1주차 트러블 슈팅] 홍성준 (네트워크)
SungJun Hong edited this page Dec 13, 2023
·
1 revision
- Moya/Alamofire 등 네트워크 라이브러리를 사용하지 못하는 조건
- 어떻게 하면 네트워크를 잘 활용할 수 있을까?
- Network 프로토콜을 생성하였음
- Network 구현체는 URLSession을 주입 받도록 하였음
- URLProtocol을 활용하여 네트워크 모킹을 활용하였음
- 생성 메소드를 static 하게 만들어 Boolean 값 하나로 쉽게 모킹할 수 있는 구조로 만들었음
- 모킹을 하게 되면 로컬에 있는 네트워크 응답을 JSON 파일로 대체하게 되어 서버가 중단이 되어도 지속적으로 개발할 수 있는 환경을 구축하였음
static func generateNetworkProvider(isDebug: Bool, protocols: [AnyClass]) -> Network {
if isDebug {
let configuration = URLSessionConfiguration.ephemeral
configuration.protocolClasses = protocols
return NetworkProvider(session: URLSession(configuration: configuration), signOutService: SignoutService.shared)
} else {
return NetworkProvider(session: URLSession.shared, signOutService: SignoutService.shared)
}
}
let searchNetworkProvider = AppRootComponent.generateNetworkProvider(isDebug: false, protocols: [SearchURLProtocol.self])
self.searchUseCase = SearchUseCase(
repository: SearchRepository(session: searchNetworkProvider),
locationService: locationService,
clusteringService: ClusteringService()
)
- DB 선택 과정
- TypeORM 선택 이유
- Docker 선택 이유
- Github Action 선택 이유
- DB서버와 서비스 서버를 분리한 이유
- 자동완성을 위한 Trie 구조를 제거하고, naver cloud search로 대체한 이유
- 11월 07일 (화) - 프로젝트 설명
- 11월 16일 (목) - 프로젝트 진행하면서 생긴 고민
- 11월 21일 (화) - 멘토분들 피드백
- 11월 28일 (화) - 트러블 슈팅 피드백
- 12월 05일 (화) - 기술적 도전에 대한 고민
- 12월 12일 (화) - 최종 발표 피드백