전체 글14 [iOS] 재귀 함수를 활용한 토큰 갱신 (2) 이전 글https://k2417000.tistory.com/40 문제 상황프로젝트 진행 중 토큰 갱신을 처리하기 위해 이전에 했던 대로 RequestInterceptor를 사용하려 함기존 retry 함수에서 statusCode를 통해 통신 실패의 이유가 엑세스 토큰 만료 상황이라고 판단하였으나, 이번엔 통신 실패 시 상태 코드가 400번으로 모두 동일하고, errorCode에 따라 달라져서 사용이 어려웠음retry 구문내에서 응답값을 받아 decoding하여 처리해보려 했으나, 잘 되지 않아 RequestInterceptor를 사용하지 않고, 재귀 함수를 통해 직접 구현해 보기로 결정함// 엑세스 토큰 만료 시 서버 응답{ "errorCode": "E05"} 네트워크 요청 함수func request(a.. 2024. 10. 24. [iOS] 이미지 캐싱 (1) - 메모리 캐싱 (NSCache) 1. 메모리 캐싱이란?메모리 캐싱은 자주 사용되는 데이터를 메모리에 저장해 빠르게 접근할 수 있게 하는 기술2. NSCache시스템 리소스가 부족할 때 데이터가 자동으로 제거될 수 있는, 임시적인 키-값 쌍을 저장하기 위한 변경 가능한 컬렉션 NSCache | Apple Developer DocumentationA mutable collection you use to temporarily store transient key-value pairs that are subject to eviction when resources are low.developer.apple.com class NSCache : NSObject where KeyType : AnyObject, ObjectType : AnyObject.. 2024. 10. 3. [iOS] RequestInterceptor를 활용한 토큰 갱신 (1) 토큰 갱신 상황짧은 유효기간을 가진 엑세스 토큰과 상대적으로 긴 유효기간을 가진 리프레시 토큰이 존재회원가입과 로그인을 제외한 통신들은 헤더에 유효한 엑세스 토큰을 필요로 하고, 엑세스 토큰이 만료되었다면 419번 상태코드를 던져 줌엑세스 토큰은 만료되고, 리프레시 토큰은 유효한 상황에서, 리프레시 토큰을 사용해 엑세스 토큰을 갱신 시키는 통신이 존재 (리프레시 토큰까지 만료가 되면 사용자에게 재로그인을 요청해야 함) 따라서 통신시 419번 상태코드를 만나면, 엑세스 토큰 갱신 통신을 하고, 엑세스 토큰 갱신이 성공하면 기존 통신을 재진행해야 함 RequestInterceptor란?Alamofire의 프로토콜로 RequestAdapter, RequestRetrier를 채택하고 있음adapt와 retry .. 2024. 9. 30. [iOS] DateFormatter vs Formatted 1. DateFormatterDateFormatter를 이용해 Date의 format을 설정할 수 있음표기 - yyyy(년) MM(월) dd(일) hh(시간) mm(분) ss(초) a(오전/오후) EEEE(요일)let date = Date()print(date)let formatter = DateFormatter()formatter.dateFormat = "yyyy년 MM월 dd일"print(formatter.string(from: date))formatter.dateFormat = "yy년 M월 d일"print(formatter.string(from: date))2024-05-26 14:31:26 +00002024년 05월 26일24년 5월 26일 2. FormattediOS15부터 등장숫자, 날짜, .. 2024. 9. 26. 이전 1 2 3 4 다음