DESIGN · 71 ARTICLES
Software Design
소프트웨어 설계 글을 최신순으로 이어서 살펴봅니다.
전체 글
5페이지
의존성 주입(DI)이란? new를 클래스 밖으로 꺼내는 것부터 (예제·비유 총정리)
코드 안에서 필요한 객체가 있으면 그 자리에서 바로 생성해 쓰는 경우가 많아요. 그런데 테스트 코드를 짜려는 순간 벽에 부딪힙니다. 클래스 안에 콕 박힌 생성 코드 때문에 도무지 갈아끼울 수가 없거든요.
읽어보기Swift 팩토리 메서드 패턴(Factory Method Pattern), init 대신 쓰는 이유
Swift 팩토리 함수는 생성 로직에 의도를 드러내는 이름을 붙이고 반환 타입과 재사용 정책을 유연하게 만듭니다. init 대신 static func를 선택할 기준과 GoF 팩토리 메서드와의 차이를 정리합니다.
읽어보기Swift 어댑터 패턴(Adapter Pattern), 레거시 API를 프로토콜로 감싸는 법
어댑터 패턴은 레거시 API의 인터페이스를 새 코드가 기대하는 프로토콜로 변환합니다. Swift에서 변환 경계를 만들고 교체와 테스트를 쉽게 하는 구현 순서와 다른 래핑 패턴과의 차이를 정리합니다.
읽어보기Swift 델리게이트(Delegate) vs 옵저버(Observer), 언제 뭘 써야 할까 비교 총정리
iOS 개발을 하다 보면 델리게이트 패턴은 정말 지겹도록 만나게 됩니다.
읽어보기Swift 옵저버 패턴: NotificationCenter부터 Combine까지
iOS 앱 만들다 보면 이런 순간이 꼭 옵니다. A 화면에서 뭔가 바뀌었는데, 저 멀리 떨어진 B 화면도 같이 갱신돼야 하는 상황이요.
읽어보기컴포지션(Composition) vs 상속(Inheritance), "상속 쓰지 말라"는 말의 진짜 의미
객체지향을 공부하다 보면 꼭 만나는 문장이 있어요. "상속보다 컴포지션을 써라(Favor composition over inheritance)."
읽어보기