iOS 개발은 웹과 유사하면서도 View와 Controller가 강력하게 결합되어 있다는 독특한 특징이 있다. 프로젝트의 규모가 커짐에 따라 비대해지는 ViewController를 방지하고, 코드의 재사용성과 유지보수성을 높이기 위해 아키텍처를 어떻게 진화시켜야 하는지 고민해 본다.
비동기 처리를 위해 스레드를 무한정 늘리는 시대는 지났다. 운영체제의 스케줄링에 의존하는 스레드와 달리, 프로그램 내부에서 실행 흐름을 제어하여 자원을 효율적으로 사용하는 코루틴이 현대 프로그래밍의 필수 패러다임이 된 이유를 파헤쳐본다.
객체지향과는 다른 패러다임인 함수형 프로그래밍은 단순히 문법의 차이를 넘어 데이터와 함수를 바라보는 관점의 전환을 요구한다. 함수를 변수처럼 다루고 부수 효과를 최소화하는 이 철학이 현대 개발 환경에서 왜 다시 주목받는지 그 핵심 개념들을 살펴본다.
상속은 객체지향의 꽃이지만, 잘못 사용하면 기반 클래스의 변경이 하위 클래스를 깨뜨리는 '취약 기반 클래스' 문제를 야기한다. 현대 언어인 Swift는 이 문제를 어떻게 문법적으로 강제하여 해결하고 있는지 알아본다.
코드를 작성하다보면 변수나 메서드를 하나만 정의/생성하여 모든곳에서 공유하고 싶을때가 있다. 이에 두가지 솔루션이 있다. 첫번째는 정적 변수/메서드이고, 두번째는 이번에 배울 싱글턴 '객체'이다.