분류 전체보기 137

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

👨🏻‍💻 오늘의 작업 [ 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 ..

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

🎯 Trouble Shooting[ 1. Duplicate item StoreInfo ]error MessageThread 1: Fatal error: Duplicate item StoreInfo(displayName: "버거킹 신림역점", primaryTypeDisplayName: "패스트푸드점", formattedAddress: "대한민국 서울특별시 관악구 서원동 86-42",latitude: 37.482641, longitude: 126.93015550000001, rating: 4.1, googleMapsUri: "https://maps.google.com/?cid=4429034559381451748", userRatingCount: 102, photosNames: "https://lh3.g..

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

🎯 Trouble Shooting[ 1. KingFisher를 이용하여 API 호출수 줄이기 ]API 호출수를 줄이기 위한 방법 찾기현재Google Places API -> 주변 검색 (신규) API를 사용해서 가게 정보를 받아옴 ->받아온 정보 중 PhotoNames을 장소 사진(신규) API를 사용해서 Photo Uri를 받아옴 문제다른 카테고리를 눌렀다가 돌아오거나, 같은 가게가 다시 검색되었을 때 매번 API 호출을 통해 가게 이미지를 받아와야 함 해결 방법KingFisher의 cache Dictionary를 사용해서 photoNames를 Key 값으로 하여, 이전에 불러왔던 photoNames인 경우추가로 API 호출을 하지 않고, 캐시에 있는 photoUri를 사용해서 KingFisher를..

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

🎯 Trouble Shooting[ 1. 가격순 정렬 삭제 - Response의 충분하지 않은 가게 가격 정보 ]오늘 오전 가격순 정렬과 거리순 정렬을 구현하려고 API Response 정보를 찾아보고 있었는데가격순을 구현하기 위해 필요한 가게들마다 가격 정보가 생각보다 부족하다는 것을 알았다. 가격순을 구현하기 위해 사용되는 정보는 2가지가 있는데 1. PriceLevel : 해당 장소의 가격대를 알려주는 지표결과로 나오는 값으로는1) PRICE_LEVEL_FREE = 무료2) PRICE_LEVEL_INEXPENSIVE = 저렴함3) PRICE_LEVEL_MODERATE = 보통4) PRICE_LEVEL_EXPENSIVE = 비쌈5) PRICE_LEVEL_VERY_EXPENSIVE = 매우 비쌈이..

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

🎯 Trouble Shooting[ 1. API 응답 중 googleMapsUri 가 nil ]postman 응답에는 잘 표시됨하지만 networkManager를 통해서 네트워크 통신을 하고 받아온 데이터에는 googleMapsUri가 nil로 반환 extension GoogleMap { struct Place: Decodable { let displayName: DisplayName? // 가게이름 let primaryTypeDisplayName: PrimaryTypeDisplayName? // 가게 카테고리 let formattedAddress: String // 전체 주소 let location: Location // 위경도 ..

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

👨🏻‍💻 오늘의 작업 [ 1. 상세화면 TableView UI PR ] [Feat] #1 - 상세화면 TableView UI 구현 by heopill · Pull Request #24 · uddt-ds/EatsOkay📌 관련 이슈 closed: #1 📌 변경 사항 및 이유 TableView rxDataSource를 사용해서 구현 Popup Button 구현 📌 ScreenShot 📌 PR Point 매장 카운드 라벨과 정렬 버튼은 동일 선상 정렬버튼의 위치를 비율로 설정github.com [ 2. ReactorKit 학습 ] GitHub - ReactorKit/ReactorKit: A library for reactive and unidirectional Swift applicationsA..

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

🎯 Trouble Shooting[ 1. 테이블 뷰 구분선 가출 ] UIView로 구분선을 만들어서 TableView Cell 맨 아래 부분에 표시되도록 구현했는데셀을 위아래로 스크롤하다가 돌아오면 위 쪽 Cell에 구분선이 사라지는 문제가 발생했다. 이전에도 프로젝트를 진행할 때 팀원분 중 한 분에게 이런 문제가 발생했던 기억이 있는데셀 재사용 처리의 문제인 줄 알고// 셀 재사용 시 상태 초기화override func prepareForReuse() { super.prepareForReuse()} 이 메서드를 작성했는데도 구분선이 계속 사라지는 문제가 있었다. 구글링도 하고 Perplexity 한테도 물어보면서 문제를 해결했다.문제는 AutoLayout이었다.separatorView.snp...

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

🎯 Trouble Shooting[ 1. 보여주는 이미지를 3개에서 1개로 변경 ] 이유 : 가게 정보에 관한 이미지를 보여주기 위해서는 Google Places API 통신을 해야 한다.그러나 우리가 필요한 사진의 수는 한 가게당 최소 3개 이상Google Places는 한 번의 API 통신에 한 개의 이미지만 제공한다.따라서 가게 정보와 이미지 3개를 받아오기 위해서는 총 4번의 API 통신이 필요하다.한정된 지원금 안에서 유료 API를 사용하다 보니 부득이하게 이미지를 1개만 사용하는 방향으로 수정하게 되었다. [ 해당 issue 관련하여 API 문서 ] 장소 사진 (신규) | Places SDK for iOS | Google for Developers이 페이지는 Cloud Transla..

60. 스파르타 코딩 클럽 - 모의 면접 스터디 #2

📚 모의 면접 스터디[ 질문 ]mutating 키워드에 대해서 설명해 주세요.A. mutating 키워드는 Swift에서 구조체(struct)나 열거형(enum) 내부에서 자기 자신을 수정할 수 있도록 허용할 때 사용하는 키워드입니다.Mutating이 필요한 이유Swift에서 struct와 enum은 값 타입(value type)입니다. 값 타입은 기본적으로 내부에서 자신의 속성을 직접 수정할 수 없습니다.따라서 구조체 안에서 속성을 수정하는 메서드를 만들고 싶을 때는 mutating 키워드를 사용해 자기 자신을 수정할 수 있도록 허용해야 합니다. call by reference와 call by value에 대해서 설명해 주세요.1. Call by Value (값에 의한 호출)값 자체를 복사해서 함..

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

👨🏻‍💻 팀 프로젝트 정리- EatsOkay[ 역할 분담 ]나는 이번 최종 프로젝트에서 상세화면에서 가게 목록과 웹뷰를 담당하게 되었다.작업은 아마 다음 주 월요일부터 들어갈 거 같은데 새로운 기술을 사용하는 만큼 사전 공부가 필요할 것 같다..! [ 사용 기술 ]1. CollectionView2. SFSafariViewController3. RxSwift4. API Network 통신 - Kakao REST API5. ReactorKit6. RxDataSource (미정) 🏁 상세 화면 가게 목록, 웹뷰 - 와이어 프레임 😼 GitHub GitHub - uddt-ds/EatsOkayContribute to uddt-ds/EatsOkay development by creating a..