결정적 코어, 비결정적 셸: 레거시 코드에서 테스트 가능성을 되찾는 법

Deterministic Core, Non-Deterministic Shell

결정적 코어, 비결정적 셸: 레거시 코드에서 테스트 가능성을 되찾는 법

Gary Bernhardt의 'Functional Core, Imperative Shell' 개념을 확장해, 순수 함수뿐 아니라 결정적(deterministic) 코드라면 무엇이든 테스트 가능성을 얻을 수 있다고 주장한다. RNG, 네트워크, 시간 등 비결정적 요소는 셸로 밀어내고, 레거시 코드베이스에 흩어진 수천 개의 결정적 코어를 '조각 모음'하듯 모아 테스트 가능한 영역을 넓히는 실용적 접근을 제안한다.

내가 본 모든 형편없는 코드베이스에는 하나 이상의 훨씬 더 깔끔한 결정적 상태 기계가 숨어 있다. 눈에 띄지 않더라도 반드시 존재한다고 장담한다.

이 날의 다른 글

2026-09-21