![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdguLw/btsbQGxu71T/E7XGYHk6m2HvJffAcL8w4K/img.png)
한 동안은 Swift 작업을 할 때 종종 사용했던 프로토콜에 대한 글을 쓰려고 한다. 그 중 첫 번째는 개인적으로 정말 많이 사용했던, Equatable이다. Equatable 오늘도 어김없이, 공식 문서의 내용을 가져왔다. Types that conform to the Equatable protocol can be compared for equality using the equal-to operator (==) or inequality using the not-equal-to operator (!=). Most basic types in the Swift standard library conform to Equatable. 간단하게 이야기하면, 비교 연산자들을 통해 비교 할 수 있도록 만들어주는 프로토..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Jz2bx/btsbmUhqqxT/mkBGyykMFRIKk004CzWvGK/img.png)
과거에 코드리뷰가 없는 곳에서 코드리뷰 문화를 도입하려고 하다 보니 어느 정도 궁금해하는 분들도 있고 거부감도 있으신 분들이 있어 이를 해소하기 위해서 간단하게 발표했던 내용을 기록할 겸, 블로그에 작성해두려고 한다. 코드리뷰 자체에 대한 개인적인 의견과 왜 해야하는지에 대한 생각을 담은 글입니다, 사견이 진하게 들어가 있습니다. 코드리뷰라고 하면, 코드 자체에 대한 회고와 더불어 만들어낸 결과물에 대한 다른 사람의 의견을 들을 수 있는 기회라고 생각한다. 어느 정도의 시간이 소요되긴 하지만, 소요되는 시간보다 코드리뷰를 통해 예방할 수 있는 문제들이나 개인의 성장을 통한 장기적인 생산성 향상 등 다양한 기대효과가 더 큰 만큼 코드를 같이 섞는 사람이 없는 게 아니라면 개인적으로는 하는 게 당연하다고 생..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/0LTg1/btsblzSmquW/WUMoVn3TzHqsK8rlgyHHJ1/img.png)
Swift 공부도 좋지만, 가끔은 다른 글도 써볼겸 오늘은 테크니컬 라이팅 관련 글을 가져왔다. 사용자에게 서비스를 하는 개발자들이라면, 에러 메세지의 중요성을 모르진 않을거라고 생각한다. 실제로 어떤 메세지를 제공해주느냐에 따라서 CS로 발전하기도 하고, 사용자들 스스로가 해결하고 마무리하기도 한다. 프로젝트 진행 시에도, 사용 사례를 고려하지 않은 키오스크 메세지들을 수정해서 CS를 줄였던 적이 있는 만큼 다시 한 번 되새기기 위해 주제를 선정하였다. 구글에서 이야기하는 좋은 에러 메세지를 작성해야 하는 이유이다. Bad error messages frustrate users. Good error messages provide critical information when things are not ..
최근에 알고리즘 공부 이야기를 하다가, Set에 대한 이야기가 나왔다. 중복 제거에 흔히 사용하는 Set은 어떻게 동작하는지, 또 Swift의 Set은 뭐가 다른지를 간단하게 적어보려 한다. Set? A set stores distinct values of the same type in a collection with no defined ordering. You can use a set instead of an array when the order of items isn’t important, or when you need to ensure that an item only appears once. 기본적으로 Set은 중복되지 않는 값을 저장하기 위한 Collection으로 정렬되지 않은 상태로 들어간다...
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b3fKL3/btsaSj24L4n/nVNXVKF18ak9taaHKZ8yPK/img.png)
간단하게 Swift에서 정의하고 있는 ViewController와 여러 ViewController 중 핵심이었던 UIViewController를 알아보았던 지난 시간에 이어서, 오늘은 본격적으로 LifeCycle을 다뤄보려고 한다. LifeCycle? 한글로 직역하면, 생명주기 되시겠다. 말 그대로 UIViewController가 만들어져, 보여지고, 사라지기까지의 과정들을 다루는 것인데 이를 Swift에서는 Handle view-related notifications라는 이름으로 관리를 하고 있다. 아래는 Handle view-related notifications의 설명이다. When the visibility of its views changes, a view controller automatica..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/9JQhF/btsajeCd8wo/WbE9MDosbNxktJzX3HSpmK/img.png)
일일 포스팅의 첫 글로 당첨된 건 LifeCycle 관련 글이다, 공식 문서와 함께 공부해보자 Application LifeCycle도 있지만, 일단 오늘 다루려고 하는 건 ViewController의 LifeCycle이다. 처음 개발을 배울때 게임으로부터 시작해서인지, 특히 이쪽에 관심이 많이 있고 기본적으로 알아야하는 요소라고 생각했다. 업데이트와 렌더를 따로 관리했었는데, 업데이트만 하고 그려주지 않았다거나, 그려주긴 했는데 업데이트를 안시켰다거나, 했던 경험이 What is the View Controller? LifeCycle을 다루기에 앞서, ViewController에 대해 알고 가보자 You use view controllers to manage your UIKit app’s interfa..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nK1Ui/btsajdW6zGk/kqKxsF3BRv6aKTmrXDbNVK/img.png)
개발을 공부로 시작한 지는 꽤나 오래됐고 업으로는 중간에 비어있는 기간을 제외하고 4년째, 세 개의 스타트업을 다니면서 할 수 있는 건 정말 많아졌지만 깊이가 조금은 부족하지 않나 생각하던 찰나에 좋은 기회가 되어, 라인 개발자분과는 커피챗, 두나무 개발자 분은 면접관으로 만나 이야기를 해볼 수 있게 되었다. 좋은 이야기를 많이 해주시기도 하고, 여러 질문들을 받으며 속으로 생각한 건 빨리 가야지라는 급한 마음에 중요한 것들을 정말 많이 놓치고 왔구나였다. iOS 개발자, 였던 것 개발자로서 멋진 커리어를 쌓아가고 계신 두 분과 이야기하고 느낀 건 소제목이자 지금 블로그의 이름이 된, 'iOS 개발자, 였던 것'이다. 다양한 경험을 했던 지난 시간들을 후회하거나 하진 않지만, 그 속에서 내가 하고 싶었던..
- Total
- Today
- Yesterday
- techincal
- UIKit
- await
- IOS
- WWDC
- POP
- 개발자
- Swift
- 리팩토링
- flutter
- combine
- Provider
- lifecycle
- Async
- OOP
- 기술블로그
- struct
- github
- 주저리주저리
- getx
- guri's dev
- Equatable
- 코드리뷰
- 개발문화
- 테크니컬라이팅
- writing helpful error message
- document
- message
- viewcontroller
- protocol
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |