스파르타 코딩 클럽 - iOS 스타터 6기/본 캠프

68. 스파르타 코딩 클럽 - 최종 팀 프로젝트 #10

seongpil Heo 2025. 6. 19. 21:30

  👨🏻‍💻  오늘의 작업 

[ 1. 클로저 내 강한 순환 참조를 방지 - 메모리 누수 ]

 

[Fix] 순환 참조 이슈 by heopill · Pull Request #89 · uddt-ds/EatsOkay

📌 관련 이슈 closed: #78 📌 변경 사항 및 이유 클로저 내부에서 self를 사용하는 경우 [weak self]를 사용해서 강한 순환 참조를 방지 및 메모리 누수를 방지 viewWillAppear과 viewWillDisappear에서 네비게이

github.com

 

예시 코드

return NetworkManager.shared.fetchImage(mediaName: photoName)
    .map { googleUri in // 이전 코드
    .map { [weak self] googleUri in // [weak self] 사용
        guard let self else { return googleUri.photoUri }
        let photoUri = googleUri.photoUri
        self.photoUriCache[cacheKey] = photoUri
        UserDeafaultsManager.shared.savePhotoUriCache(self.photoUriCache)
let menuItems = [
    UIAction(title: "별점순", handler: { _ in // 이전 코드
    UIAction(title: "별점순", handler: { [weak self] _ in // [weak self] 사용
        guard let self else { return }
        self.reactor.action.onNext(.sortButtonTapped(sortType: .rating))
        updateTitle("별점순") }),

 

클로저 내부에서 self를 사용할 때,

[weak self] 키워드를 사용하지 않아 발생했던 메모리 누수를 처리하였다.

 

 

[ 2. 앱 배포 준비 ]

앱 배포에 필요한 정보 입력들을 진행했다.

 

TestFlight에 테스터를 추가해서 앱을 심사하기 전

실제 기기에서 빌드하는 과정을 경험했다.

 

 

[ 3. 발표 자료 준비 ]

 

내일 발표회를 위한 발표 자료를 만들었다.