11.10
이미지 캐싱 적용
팀원이 Kingfisher 라이브러리를 사용해서 UIImageView에 대해 이미지 캐싱을 적용한 코드를 작성해주었다.
내가 맡은 부분에서 이미지를 서버에서 불러올 때 이미지 캐싱을 적용한 함수를 적용시키면 되는 부분이었다.
cell.profileImageView.loadImage(urlWithoutBaseURL: myviewModel.getProfileImage())
imageView.loadImage(urlWithoutBaseURL: imageUrlStr)
이미지 캐싱을 적용시키고 싶은 UIImageView 개체에 대해 loadImage 함수를 호출하고 이미지 url을 파라미터로 넣어주면 된다.
코드 파일들을 훑어 필요한 부분은 모두 수정해주었다.
기존에 여러 기록 데이터를 불러올 때 이미지 로딩이 느리고, 이미지들끼리 위치가 뒤죽박죽 되었다가 시간이 지나고서야 원래대로 돌아오는 문제가 있었는데 역시나 이미지 캐싱이 문제였던건지 위의 코드들을 적용시키니 해결되었다.
다른 프로젝트에서는 이미지를 로드할 때 내가 별도의 처리를 해주지 않았던 것 같은데 다른 누군가가 처리를 해줘서 몰랐던 걸까... 아니면 이번 프로젝트처럼 이미지를 대량으로 받아올 필요가 없어서 로딩 문제가 가시적으로 눈에 띄지 않았던 걸까...
이번주만 지나면 시간이 많이 생기니까 천천히 이전 프로젝트를 코드 리뷰 좀 해보긴 해야겠다.
11.11
팔로우 요청 encoding 오류 수정
친구 요청을 하면 이렇게 400 에러에 userAuthError가 뜨는 상황이라 오류 수정이 필요한 상황이다.
검색을 해보니까 400 에러가 뜬 경우 대부분 인코딩 문제라고 해서 그 부분 위주로 찾아보았다.
struct SendRequestDTO: Encodable {
let receiverId: Int
}
일단 requestbody로 보낼 DTO를 Codable에서 Encodable로 수정해주었다.
그리고 api 호출 함수 부분에 아래의 코드를 넣어서 실제로 requestbody가 잘 가고 있나 확인해보았다.
do {
let jsonData = try JSONEncoder().encode(sendRequestDTO)
if let jsonString = String(data: jsonData, encoding: .utf8) {
print("Request JSON Body: \(jsonString)")
}
} catch {
print("Failed to encode SendRequestDTO: \(error)")
return
}
원하는 형태로 잘 가고 있음을 확인했다.
마지막으로 json 형식으로 request를 보내고 있으니까 content-type을 json으로 받을 수 있게끔 Content-Type에 application/json을 넣어 수정해주었다.
struct sendRequestAPI: ServableAPI {
typealias Response = FollowStateDTO
let requestDTO: SendRequestDTO
var method: HTTPMethod { .post }
var path: String { "/follow/request" }
var parameters: [String: String] { return [:] }
var headers: [String : String]? { ["Authorization": "Bearer \(KeychainManager.shared.getToken(type: .accessToken)!)",
"Content-Type": "application/json"] }
var requestBody: Encodable? { requestDTO }
}
해결 완료!!
'TIL' 카테고리의 다른 글
[TIL] 2024.11.13 ~ 2024.11.14 (0) | 2024.11.15 |
---|---|
[TIL] 2024.11.12 (0) | 2024.11.12 |
[TIL] 2024.11.08 ~ 2024.11.09 (0) | 2024.11.09 |
[TIL] 2024.11.07 (0) | 2024.11.07 |
[TIL] 2024.11.06 (0) | 2024.11.06 |
댓글