Swift 커맨드 패턴(Command Pattern)으로 실행 취소(undo) 기능 만들기
앱을 만들다 보면 "실행 취소 버튼 하나만 넣어달라"는 요청이 생각보다 자주 들어옵니다.
읽어보기DESIGN · 71 ARTICLES
소프트웨어 설계 글을 최신순으로 이어서 살펴봅니다.
전체 글
앱을 만들다 보면 "실행 취소 버튼 하나만 넣어달라"는 요청이 생각보다 자주 들어옵니다.
읽어보기스테이트 패턴은 상태별 행동과 전환을 객체나 enum으로 모아 흩어진 조건문을 줄입니다. Swift 화면 상태를 리팩터링하는 순서와 전략 패턴처럼 보이는 구조를 의도로 구분하는 법을 설명합니다.
읽어보기배포 직전에 발견되는 버그 중에는 유형이 정해져 있는 것들이 있습니다. 프론트엔드는 할인율을 10%로 계산했는데 백엔드는 15%로 계산한다든가, 문서에는 필수라고 적힌 필드가 실제 API에서는 사라져 있다든가. 코드 자체는 둘 다 멀쩡합니다. 문제는 같은 정보가 두 곳에…
읽어보기모듈화를 진행하는 팀 대부분이 어느 시점에 Common, Core, Utils 같은 이름의 모듈을 만듭니다.
읽어보기Alamofire는 라이브러리라고 부르고, SwiftUI는 프레임워크라고 부릅니다. 근데 둘 다 "남이 만든 코드를 가져다 쓰는 것" 아닌가요? 뭐가 다른 걸까요.
읽어보기폴더 안에 폴더, 그 안에 또 파일. 이런 트리 구조를 코드로 다뤄본 분이라면 한 번쯤 막막했을 거예요.
읽어보기iOS 개발하다 보면 이런 순간이 옵니다. 기본 기능은 그대로 두고 로깅 하나만, 캐싱 하나만 얹고 싶은데, 그걸 하려고 클래스를 상속받기 시작하면 어느새 상속 트리가 엉망이 되어 있죠.
읽어보기프로토타입 패턴은 기존 객체를 복제해 생성 비용과 설정 중복을 줄입니다. Swift 값 타입 복사와 클래스의 NSCopying이 어떻게 다르고, 얕은 복사와 Copy-on-Write가 어디서 개입하는지 정리합니다.
읽어보기추상 팩토리는 서로 호환되어야 하는 객체 여러 개를 제품군으로 묶어 한 번에 교체합니다. Swift 테마 예제로 조합 오류를 막는 구조와 팩토리 메서드와의 선택 기준을 설명합니다.
읽어보기