아키텍처
점진적 레거시 리팩터링
운영 중인 UIKit 주문 기능의 거대한 ViewController를 한 번에 다시 쓰지 않고 구조를 개선해야 합니다. 배포 가능한 작은 단계로 나눈다면 어떤 seam을 먼저 만들겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
운영 중인 UIKit 주문 기능의 거대한 ViewController를 한 번에 다시 쓰지 않고 구조를 개선해야 합니다. 배포 가능한 작은 단계로 나눈다면 어떤 seam을 먼저 만들겠습니까?
결제 API 호출, 주문 저장, 화면 전환처럼 바깥 세계와 닿는 지점부터 protocol 뒤로 뽑아 기존 코드를 그대로 감싼 seam을 만들고, 그 seam 덕에 테스트 가능해진 상태에서 내부 로직을 옮겨 간다.
아키텍처주관식심화
5년 된 MVC 앱(뷰 컨트롤러 150개, 테스트 거의 없음)을 MVVM으로 옮기라는 요구를 받았습니다. 서비스는 계속 배포되어야 합니다. 어떤 전략으로…
#refactoring #legacy #migration
동시성주관식심화
완료 핸들러(completion handler) 기반으로 짜인 오래된 네트워킹 계층이 있고 앱 전체에서 수백 곳이 호출합니다. 호출부를 한꺼번에 깨뜨리지 않고…
#legacy #migration
아키텍처주관식심화
이 기능에 MVVM을 골랐다고 하셨는데, MVVM이 오히려 해가 되는 경우는 언제인가요?
#refactoring
아키텍처주관식심화
기존 UIKit 쇼핑 앱의 UIViewController가 API 호출, 캐시, 로딩 UI를 모두 처리합니다. MVC를 MVVM으로 옮길 때 네트워크와 캐시…
#migration