더북(TheBook)

내가 2개월 전에 작성한 테스트를 팀 내 다른 동료가 실행했을 때 문제없이 결과를 받을 수 있는가?

이 질문은 바로 앞서 살펴본 질문과 연관이 깊지만, 한 단계 더 나아간 것이다. 다른 사람의 코드를 변경할 때 당연히 문제가 발생하지 않길 원할 것이다. 많은 개발자가 오래된 레거시(legacy) 코드를 수정하는 것에 부담감을 느끼는 이유는 코드를 바꾸면 다른 코드에 어떤 형태로 영향을 주는지 분명히 알 수 없기 때문이다. 코드 안정성을 보장할 수 없는 상태로 바꿀 가능성이 있기 때문이다.
특히 내가 바꾼 코드 때문에 다른 코드가 동작하지 않는다고 생각하면 정말이지 그것만큼은 피하고 싶다. 이 세상에 경찰이 있기에 우리는 법 울타리 안에서 경찰의 보호를 받으면서 안심하고 살 수 있다. 단위 테스트도 마찬가지다. 단위 테스트에서 쌓아 올린 신뢰도는 하나의 울타리가 되어 낯선 코드와 마주칠 때 두려움을 덜어 줄 것이다.
좋은 테스트는 누구나 제한 없이 실행할 수 있어야 한다.

Note ≣ | 레거시 코드 정의

위키백과에서는 레거시 코드를 ‘낡은 기술이나 방법론, 컴퓨터 시스템, 소프트웨어’로 소개하지만12 현재 유지 보수 중인 오래된 버전의 애플리케이션을 레거시 코드라고도 한다. 레거시 코드는 작업하기 어렵고 테스트하기 어렵고 보통 읽기도 어렵다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.