이전 글: Entity 및 모델 구현하기 관련 Git Pull Request: KakaoAPI와 통신할 네트워크 기능을 구현해요 [DaumCafeSearch 앱] Entity 및 모델 구현하기 이전 글: 앱 구조 설계하기 관련 Git Pull Request: https://github.com/helloworldjay/daumcafesearch/pull/7 [DaumCafeSearch 앱] 앱 구조 설계하기 이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서.. jayb-log.tistory.com NetworkManager 설계하기 Kakao API와 통신을 담당할 NetworkManager 객체를 구현해요. 현업에 가기 전까지는 URLSession으로만 기능 구현을 했었어요. DataTask를 통..
문제 상황 이해하기 카카오 API를 활용해서 JSON을 받아오고, iOS에서 decoding 하려고 하는데 문제가 발생했어요. 우선 아래는 Kakao API 개발 가이드에 나오는 내용이에요. datetime의 타입은 Datetime이고, 그 형식은 IOS 8601이에요. 그래서 아래와 같은 코드로 Decoder를 설정한 후 Decoding을 진행했어요. let decoder = JSONDecoder() decoder.dateDecodingStrategy = .iso8601 분명히 dateDecodingStrategy가 iso8601이기 때문에 문제가 없어 보였어요. ISO 8601은 일종의 규격이기 때문에 통일되어 있을 거라고 판단했어요. 그런데 원하는 결과물이 나오지 않았고, 어디에서 문제가 발생했는지..
이전 글: 앱 구조 설계하기 관련 Git Pull Request: https://github.com/helloworldjay/daumcafesearch/pull/7 [DaumCafeSearch 앱] 앱 구조 설계하기 이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서 언급한 것처럼, 프로젝트를 MVVM 구조로 설계를 진행했어요. MVVM은 무엇이 다른가? 설계에 앞서 구조에 대해 MVVM의 이론에 대해 학습을 jayb-log.tistory.com Model 정의하기 MVVM에서 모델의 개념을 이해할 때 Data Store의 역할로 생각했어요. "데이터에 관한 처리를 맡는 객체" 정도로 이해를 했는데, 실제로 프로젝트들을 살펴보니 Model이라는 디렉터리 하에 있는 것들은 대부분 DTO에 가까웠어요...
커스텀 UIColor 만들기 프로젝트를 진행하면서 default가 아닌 색을 반복적으로 사용할 일이 있었어요. 다음 카페 앱을 만드는데 다음 카페 색깔을 시스템 컬러처럼 등록해서 사용하고 싶었어요. 그 과정을 로깅해볼게요! :] 참고: iOS version - 15.0 적용한 예시 PR RGB 값 추출하기 우선 다음 카페로 들어가서 원하는 색깔이 있는 이미지를 찾았어요. 아래 그림에서 cafe의 글자 색을 가져오고 싶었어요. F12로 CSS를 봐야 하나 했는데 맥에는 훨씬 간편한 툴이 이미 있었어요! 디지털 컬러 측정기라는 맥 기본 앱이에요. 앱을 틀어서 원하는 곳에 커서를 대면 그 RGB 값이 추출돼요. 이제 필요한 RGB 값은 알게 되었어요! Color Asset 만들기 우선 프로젝트의 Assets...
이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서 언급한 것처럼, 프로젝트를 MVVM 구조로 설계를 진행했어요. MVVM은 무엇이 다른가? 설계에 앞서 구조에 대해 MVVM의 이론에 대해 학습을 진행했어요(이 글에서는 VIP나 MVVM에 대해 자세히 다루지는 않고 느낀 점을 위주로 작성할 계획이에요. 추후 MVVM에 대해 글을 작성하려고 해요). MVVM에 관한 글들을 읽어보고, 기존에 제가 알던 VIP(Clean Swift)와 비교하며 이해를 하려고 했어요. 결국 차이는 "어떤 객체에게 어떤 권한과 책임을 부여하는가"에서 발생한다고 생각하고, MVC나 VIP와 크게 다르지 않다고 판단했어요. 다만, 읽어보는 글마다 조금씩 설명된 MVVM의 구조가 달랐기 때문에 이해하기가 어려웠어요. 용어 또한 ..
GitHub 주소 https://github.com/helloworldjay/daumcafesearch 프로젝트의 시작 MVC와 스토리보드만 학습하다가 처음 현업에서 새로운 패턴과 UI도구를 만나고 굉장히 큰 어려움을 겪었어요. MVC만 깊이 이해해도 빠르게 다른 패턴에 적응할 수 있을 줄 알았지만 생각보다 쉽지 않았고, 이것의 원인을 구현력의 부족이라고 판단했어요. 마찬가지로 UI 역시 상대적으로 직관적인 스토리보드로만 작업하다가 Texture라는 Flex Box 기반의 개념으로 UI를 구현하다 보니 그 어려움이 더 크게 느껴졌어요. 갑자기 코드로 작업한다는 것만 해도 접근하기 어려웠는데 라이브러리까지 익혀야 했었으니까요. 현재로서는 VIP(a.k.a. Clean Swift) 패턴과 Texture로 작..
🎯 RxSwift 이해하기_05 RxSwift 이해하기_01 - https://jayb-log.tistory.com/275 RxSwift 이해하기_02 - https://jayb-log.tistory.com/276 RxSwift 이해하기_03 - https://jayb-log.tistory.com/277 RxSwift 이해하기_04 - https://jayb-log.tistory.com/278 🙋 이 글은 RxSwift에 대한 엄청난 이해나 본질을 파악한다기보다 입문하는 입장에서 작성하는 글이에요! 곰튀김님의 강의(하단에 링크) 를 들으며 정리한 내용, 생각들을 작성할 예정이에요. 틀린 부분이나 추가하면 좋은 부분에 대한 피드백은 언제나 환영입니다 :] 이 글에서는 Main Thread, Concurre..
🎯 RxSwift 이해하기_04 RxSwift 이해하기_01 - https://jayb-log.tistory.com/275 RxSwift 이해하기_02 - https://jayb-log.tistory.com/276 RxSwift 이해하기_03 - https://jayb-log.tistory.com/277 🙋 이 글은 RxSwift에 대한 엄청난 이해나 본질을 파악한다기보다 입문하는 입장에서 작성하는 글이에요! 곰튀김님의 강의(하단에 링크) 를 들으며 정리한 내용, 생각들을 작성할 예정이에요. 틀린 부분이나 추가하면 좋은 부분에 대한 피드백은 언제나 환영입니다 :] 🧑🏻💻 Subscribe 하기 우선 아래 코드의 결과물은 당연히 Stream이 됩니다. Observable.just("HelloWorld")..
- Total
- Today
- Yesterday
- 공유기 설치#BOJ#이분탐색#Python
- filter#isalnum#lower
- 병든 나이트#BOJ#탐욕법#Python
- 날짜 계산#BOJ#완전탐색#Python
- 암호코드#dp#BOJ#Python
- Swift#Tuples#Range
- 토마토#백준알고리즘#Python
- 종이자르기#분할정복#BOJ#Python
- 랜선자르기#이분탐색#BOJ#Python
- 미로 탐색#백준알고리즘#Python
- 백준 알고리즘#BackTracking
- Distinct#Codility#Python
- NumberofDiscIntersections#Codility#Sort#Python
- 파이썬알고리즘인터뷰#4장
- N으로 표현#DP#Programmers#Python
- Brackets#Stacks and Queues#Codility#Python
- 순열사이클#BOJ#Python
- 터틀비치#리콘#xbox#controller
- 쿼드트리#BOJ#분할정복#Python
- 나무자르기#BOJ#이분탐색#Python
- Triangle#Sorting#Codility#Python
- 텀 프로젝트#백준알고리즘#Python
- 리모컨#완전탐색#BOJ#Python
- API#lazy#
- PassingCars#Codility#Python
- 배열합치기#분할정복#BOJ#Python
- 섬의개수#백준알고리즘#Python
- django
- django#slicing
- 반복수열#백준알고리즘#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |