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