iOS 개발자
NAVER MTS 김창기
무슨 일을 하는가?
Mobile 개발자가 하는 일
사용자의 손 끝에서 동작하는 코드를 작성
iOS 개발자가 하는 일
•Application 제작
•Framework 제작
•Prototyping
iOS 개발자가 하는 일
•인터넷 서비스
•단일 유틸리티 앱
•다른 하드웨어와 연동되어 동작하는 앱
•기타
다른 개발과 환경 측면에서 어떤 차이가 있나?
•제한된 리소스
•제한된 화면 크기
•사용자의 환경에서 동작하는 프로그램
•Apple이 주도하는 시장과 환경
어떤 Tool을 사용하는가?
•Xcode, Instruments
•Cocoapods, Carthage
•Git, SVN
•Swiftlint, Jenkins
어떤 Tool을 사용하는가?
•Swift
•Objective-C
•C++
•C
•기타
무슨 공부를 해야 하나?
어떤 부분을 공부해야 하나?
•Object Oriented Programming
•Protocol Oriented Programming
•Functional Programming
•Reactive Programming
어떤 부분을 공부해야 하나?
•Swift Programming Language : 매우 중요
•Objective-C Programming Language : 중요
•C++ Programming Language : 선택
•C Programming Language : 선택
어떤 부분을 공부해야 하나?
•Data Structure
•Algorithm
어떤 부분을 공부해야 하나?
•Design Pattern
•Refactoring
•Architecture
어떤 부분을 공부해야 하나?
•HTTP
•Live Streaming
•Socket programming
•URLSession, NSStream
•CFNetwork, POSIX Socket
•AFNetworking, Alamofire…
어떤 부분을 공부해야 하나?
•Concurrent Programming
•GCD, Operation queue, POSIX thread
•Lock, Semaphore…
어떤 부분을 공부해야 하나?
•CoreData
•Realm
•기타 persistency 지원 library
어떤 부분을 공부해야 하나?
•Graphical User Interface
•Human Computer Interaction
어떤 부분을 공부해야 하나?
•CoreAnimation
•Lottie…
어떤 부분을 공부해야 하나?
•OpenGL
•Metal
어떤 부분을 공부해야 하나?
•Unit Test
•UI Test
어떤 부분을 공부해야 하나?
•Extensions
•watchOS
•tvOS
•macOS
Trend
Swift가 몰고온 바람
•Functional Programming
•Reactive Programming
Swift가 몰고온 바람
•재미있고, 쉽고, 편하게
•항상 옳지는 않다!
RxSwift : 얼마나 사용되고 있나?
•현재 시점에서 약 25%의 프로젝트
RxSwift : 사용하는 이유는?
•최신 기술에 대한 호기심
•Async 처리에 대한 편의성
•Declarative Programming
RxSwift : 사용하지 않는 이유는?
•제대로 공부하기 위해서는 많은 시간이 필요
•노력에 비해서 얻는 것이 많지는 않음
•유지보수에 대한 우려
트랜드에 대한 자세
•개발자에게 최신 기술을 습득하는 것은 숙명과도 같음
•습득의 가장 좋은 방법은 직접 사용해 보는 것
•트랜드를 민감하게 적용하는 것은 실패의 위험에 노출
•중용의 자세가 필요
Open Source
iOS 개발에서의 Open Source
•많은 수의 Open source가 사용됨
•사용에 있어 전략적 판단이 필요
- 사용만 할 것인가? contribution 할 것인가?
- 어떤 것은 쓰고, 어떤 것은 쓰지 않을 것인가?
Open Source : 사용하는 이유
•작업의 속도와 편의성
•중복구현은 불필요하다
•해당 기능이 핵심이 아님 - 가져다 써도 됨
Open Source : 사용하지 않는 이유
•신뢰하기 힘든 open source
- 신뢰도를 어떻게 검증할 것인가?
•제공하는 기능의 부족
- 새로 만들 것인가? 가져와서 고칠 것인가? 고쳤다면
contribution할 것인가?
•해당 기능은 내재화 시킬 필요가 있음

[D2CAMPUS] Tech meet up ; iOS 개발편