문제 파악하기 Swift에서 배열의 요소에 접근할 경우를 생각해볼게요. let fooArray = [1,2,3] print(fooArray[0]) // 1 출력 위의 상황에서는 문제없이 결괏값이 출력돼요. 그럼 배열의 범위를 벗어날 경우는 어떻게 될까요? let fooArray = [1,2,3] print(fooArray[100]) // Index out of range 에러 발생 당연히 범위를 벗어나는 에러가 발생하죠. 여기서 문제는, 결괏값이 옵셔널이라 nil로 반환되는 것이 아니라 에러가 된다는 것이에요. 혹시 배열의 요소에 접근한 결과가 옵셔널인지 타입을 확인해볼게요. let fooArray = [1,2,3] print(type(of:fooArray[0])) // Int 출력 옵셔널의 Int가 아..
이전 글: 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를 통..
이전 글: 앱 구조 설계하기 관련 Git Pull Request: https://github.com/helloworldjay/daumcafesearch/pull/7 [DaumCafeSearch 앱] 앱 구조 설계하기 이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서 언급한 것처럼, 프로젝트를 MVVM 구조로 설계를 진행했어요. MVVM은 무엇이 다른가? 설계에 앞서 구조에 대해 MVVM의 이론에 대해 학습을 jayb-log.tistory.com Model 정의하기 MVVM에서 모델의 개념을 이해할 때 Data Store의 역할로 생각했어요. "데이터에 관한 처리를 맡는 객체" 정도로 이해를 했는데, 실제로 프로젝트들을 살펴보니 Model이라는 디렉터리 하에 있는 것들은 대부분 DTO에 가까웠어요...
이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서 언급한 것처럼, 프로젝트를 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로 작..
- Total
- Today
- Yesterday
- NumberofDiscIntersections#Codility#Sort#Python
- Triangle#Sorting#Codility#Python
- 나무자르기#BOJ#이분탐색#Python
- 암호코드#dp#BOJ#Python
- 파이썬알고리즘인터뷰#4장
- django
- 종이자르기#분할정복#BOJ#Python
- N으로 표현#DP#Programmers#Python
- Distinct#Codility#Python
- PassingCars#Codility#Python
- Swift#Tuples#Range
- 배열합치기#분할정복#BOJ#Python
- 순열사이클#BOJ#Python
- 텀 프로젝트#백준알고리즘#Python
- 리모컨#완전탐색#BOJ#Python
- 백준 알고리즘#BackTracking
- filter#isalnum#lower
- 병든 나이트#BOJ#탐욕법#Python
- 쿼드트리#BOJ#분할정복#Python
- 공유기 설치#BOJ#이분탐색#Python
- 터틀비치#리콘#xbox#controller
- 반복수열#백준알고리즘#Python
- 섬의개수#백준알고리즘#Python
- API#lazy#
- 미로 탐색#백준알고리즘#Python
- Brackets#Stacks and Queues#Codility#Python
- 랜선자르기#이분탐색#BOJ#Python
- 날짜 계산#BOJ#완전탐색#Python
- 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 |