본문 바로가기

전체 글

(97)
[오브젝트] 오브젝트를 읽고, 1~2장 지인 중 오브젝트를 읽고 티스토리에 정리하는 분이 계셔서, 우연히 오브젝트란 책을 접하게 되었다. 핵심을 정리한 내용을 살짝 훑어보니, 내가 요즘 지속적으로 고민하고 있는 좋은 구조, 좋은 프로그래밍, 좋은 설계에 대한 실마리를 얻을 수 있을 것 같았다. Tuist를 이용해 모듈화를 진행하고, 여러 디자인 패턴 및 아키텍쳐를 실용적으로 사용하는 과정에서 늘 최선이 무엇인지에 대해 끝없이 재고중이었다. 모듈화를 공부하며 느낀 점은, 모듈 수준의 분리, 즉 컴포넌트를 이루는 클래스 간의 설계 이전에 클래스 자체의 설계를 먼저 깊게 고민해야겠다는 것이다. 지금까지 기본적인 '객체지향'에 대해서는 공부하고 익히려 노력했지만, deep dive한 경험은 없었기에 더욱 오브젝트라는 책이 반가웠다. 프롤로그 : 프로..
[Swift] Modern Concurrency Swift ( 3편 - async-await 알아보기 ) Modern Concurrency Swift ( 1편 - Thread Class로 Thread 문제 파헤치기 ) Modern Concurrency Swift ( 2편 - GCD와 Operation의 특징과 문제점 요약 ) 지난 2편의 글에서는, Thread Class부터 시작하여 GCD 및 Operation까지, iOS에서의 전통적인 멀티스레딩 방식에 대해 알아보았습니다. 본문은 WWDC 및 Swift Evolution을 참고하여 작성했습니다. async-await 앞서 알아본 기존의 멀티스레딩 방식들이 가진 문제점을, Swift Concurrency가 해결할 수 있는지 알아보기 전에 Swift Concurrency의 기본이 되는 async-await에 대해 알 필요가 있습니다. async-await는 ..
[Tuist] Interface Module을 사용하여 domain을 여러 Features로 분리하기 현재 진행 중인 프로젝트에서 Feature가 단일화된 상태에서 Scene Flow를 기준으로 하여 여러 Features로 분리하는 작업 중에 있습니다. 아래의 아이디어를 기준으로 구현했습니다. 앱 구현 특성 상 서로 다른 Feature의 명세가 필요할 때가 있습니다. 이때 구현 모듈이 서로를 직접 참조하게 되면 순환 참조가 생길 수도 있고, 모듈 간의 결합도도 강해집니다. 따라서 구현 모듈 간에 직접 의존하지 않게 만들기 위해 Interface 모듈을 도입했습니다. Interface 모듈 내부에는 ViewController를 추상화 할 수 있는 Protocol을 정의하여, 다른 Feature에서 참조하여 viewController를 생성할 수 있도록 하고자 했습니다. 추상화된 인터페이스와 의존성의 조립은..