LINE Pay의 iOS 개발을 맡고 있습니다.
시작하기 전에 안녕하세요. LINE Pay의 iOS 개발을 맡고 있는 정지인입니다. LINE Pay iOS의 결제 기능을 리팩토링하는 데에 적용했던 템플릿 메서드 패턴을 이용한 계약 기반 프로그래밍 기법에 대해 소개하려고 합니다. 템플릿 메서드 패턴을 이용하면 복잡한 상태의 아이템을 모순적인 상태에 빠뜨리는 일 없이 구현할 수 있습니다. 템플릿 메서드 패턴에 대해 간단하게 소개하고, 템플릿 메서드 패턴을 상태 관리에 어떻게 활용할 수 있는지 코드 레벨에서 살펴보겠습니다. iOS 개발자뿐만 아니라 복잡한 상태 처리 때문에 유지 보수에 어려움을 겪는 모든 개발자에게 도움이 되었으면 하는 바람입니다. 이 글에서는 템플릿 메서드 패턴을 소개하고, 리팩토링의 대상이 되는 결제 기능에 관해 설명한 뒤, 리팩토링 전과 후의 구현 방식을 각각 자세히 설명하는 순서로 진행하겠습니다. 템플릿 메서드 패턴이란? 템플릿 메서드 패턴은 객체지향