본문 바로가기

분류 전체보기

(54)
Swift Decodable Tip (1) 아마 SwiftyJSON을 사용하는 케이스가 아니라면 자연스럽게 Codable을 많이 이용하실 겁니다. 개인적으로 SwiftyJSON은 직관적(?)으로 내부 구조에 접근하는 반면, Codable을 사용할 때에는 다소 귀찮은 점이 많았습니다. 특히 Decode를 할 때가 많다보니, 종종 서버 응답이 복잡한 구조라면 골치가 아픈 적이 종종 있어서, 이번 기회에 개인적으로 사용하고 있는 팁을 두 번의 포스팅을 통해 짧게나마 나누어 적어두고자 합니다. KeyDecodingStrategy 대부분의 iOS개발에서 권장되는 변수 네이밍 규칙 중 하나가 camelCase인데, 서버응답은 snake_case로 올 때가 매우 빈번하죠 그러다보니 CodingKeys를 활용하여 프로퍼티 하나 하나 별도로 매칭 시켜주는 경우가..
Diffable Data Source 점멸현상 방지 실험 최근 Rx기반의 구조에서 멀어지고 있어서, RxDataSource를 대체하는 UITableViewDiffableDataSource나 UICollectionViewDiffableDataSource를 활용하고 있습니다. - https://developer.apple.com/documentation/uikit/uitableviewdiffabledatasource Apple Developer Documentation developer.apple.com - https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource Apple Developer Documentation developer.apple.com 점멸(?) 현상 방지 ..
Property Wrapper 이름그대로 property를 감싸는 기능이고, property get/set영역이 중복되는 경우가, 여러 파일에 걸쳐 산재되어 있는 경우에 적합한 기능입니다. 개인적으로는 현업 코드에도 종종 활용하는 기능이고, 주로 UserDefault활용할 때 사용하고 있습니다. https://github.com/apple/swift-evolution/blob/master/proposals/0258-property-wrappers.md 사용방법은 위의 링크에도 나와있지만, 개인적으로 사용하는 방법을 간단하게 소개합니다 @propertyWrapper struct MyDefaults { let key: String let defaultValue: Value var userDefaults: UserDefaults = .st..
VIP 최근에 회사의 아키텍처 전환으로 인해 VIP 구조에 대해 알아봤습니다 아래의 그림처럼 각 주요 인스턴스간의 관계를 순환하는 형태로 맞물려 있고, 각 인스턴스의 주요 역할은 ViewController → Display Logic Interactor → Business Logic Presenter → Present Logic 역할들을 프로토콜로 만들어 각 인스턴스가 준수할 수 있도록 합니다. Display vs Present 개인적으로 각 역할을 보면 Business Logic은 의미가 분명한 것에 비해, 비교적 나머지 2개의 로직은 불명한 것으로 생각이 되었고, 이에 대해 확실한 구분방법이 필요했었습니다.(정확한 것은 아니지만...) Display Logic - HOW Present Logic - WHAT..
다사다난했던 2021 짧은 개발회고, 어제도 내일도 아닌 집으로 스프링 공부 리액트처럼 마지막 과제를 흐지부지하게 끝내지 말자는 포부를 가지고 시작했으나... 아래의 전세 관련 이벤트(?)로 인해 도저히 손에 아무것도 잡히지도 않고, 집중도 안 되었다.. 참으로 스스로에게 많이 실망했던 교육기간이었다. 아샬님의 강의와 종립님과 윤석님의 리뷰로 스프링에 대해 많은 공부가 되었고, 꼼꼼하게 지도해준 3분께 마음깊이 감사함을 느낀다. 전세보증금 미반환 문제로 인한 멘탈 관리 실패 개발과 무관한 이벤트(?)이지만, 개발생활이 지속되지 않도록 너무 많은 악영향을 주었던 상황 다시는 전세입주는 못 할 것 같다... 월세살이 재시작... 똑같은 일이 다시 발생해도, 이겨내며 코드숨과제와 개발업무를 잘 할 수 있을까를 생각해보면 많이 어려울 것 같다. 하지만, 비슷한 상황이 발생해..
2021. 06. 04 Facts swift 도서 읽기 프로그래머스 문제 3개 풀기 시도 -> 2개 해결 Feelings 발등에 불이 떨어졌다... 믿었다기 보다는 내가 어리석었음을 다시금 깨닫는다 Findings DFS/BFS 문제 해결법? swift bool타입의 toggle Affirmation 갑작스레 앞이 막막하지만... 나아가기 위해 노력해보자... 지금 가진 것에도 감사함을 느끼자
2021. 06. 03 상당히 오랜만에 쓰는 회고... 반성한다 Facts RxSwift Create Operators와 Filtering Operators 공부 Feelings 어쩌다가 회사를 반년도 못다니게 되는 상황이 되었을까... Findings RxSwift 오퍼레이터의 다양한 활용처를 알게 되었다. Affirmation 회사를 정할 때... 후회없도록 꼼꼼하게 따지자
2021년 4월 1주차(코드숨 스프링 10주차) 회고 Facts 코드숨 스프링 과제 오브젝트 스터디 참석 iOS 스터디 참석 Feelings 전세금을 날릴 뻔해서 정신이 없었다... 정신 차리자 개인 사정이 업무와 개인 공부에 너무 많은 영향을 줘서, 침울하다. 이번주에 아침에 일찍 일어나 코딩을 하는 목표를 지키지 못해, 아쉽다. Findings ReplaySubject와 AsyncSubject 객체지향에서의 상속의 목적과 리스코프 치환 법칙을 다시금 정리 Affirmation 이번주에 아침에 일찍 일어나 코딩을 하는 것을 3일 이상 해보자 스프링 개인 과제 진척도가 너무 느리다. 조금 속도를 올려보자