ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머] 분별 있게 행동하라
    97가지 시리즈/프로그래머 2018.09.04 09:59

    #프로그래머가_알아야_할_97가지 vol.1

    분별 있게 행동하라 by. Seb Rose


    뭘 하든 어떤 결과를 낳을지 잘 생각하고, 분별 있게 행동하라

    - 작자 미상

    여유가 있을 것 같은 일정이라도 막상 작업을 해보면 꼭 어딘가 지연이 발생한다. 이걸 해결하기 위해 '바르게 하는 방법'과 '빨리하는 방법'이 있다면 아무래도 후자가 매력적으로 보이는 건 사실이다. 나중에 고쳐야 한다는 걸 알면서도 일단 후자를 선택하곤 한다. 꼭 고치겠다고 주위의 동료나 고객과 약속도 한다. 물론 약속한 시점에는 당연히 반드시 지킬 마음으로 약속한다. 다음 이터레이션(iteration)이 잘못된 부분을 고칠 기회지만 막상 그때가 되면 다시 새로운 문제가 생겨 그쪽에 주력하게 되고 결국은 손도 못 대는 일이 일어난다. 이처럼 해야 할 일을 뒤로 미루는 것을 기술 부채(Technical debt)라고 부른다. 당연히 부채와 친하게 지내는 건 바람직하지 않다. Martin Fowler는 앞에서 말한 것과 같은 것을 고의적 기술 부채라고 정의하고, 고의가 아닌 주의에 의한 기술 부채와 혼동해서는 안 된다고 설명 한다.


    기술 부채는 이름 그대로 이다. 짧게 보면 도움이 되지만 다 갚을 때까지 이자를 내야 한다. 빚을 망각하고 여유를 부리며 코드를 쓰다 보면 기능 추가나 코드의 리팩토링이 어려워진다. 빚은 새로운 오류의 온상이 되어 테스트 케이스의 가치를 해치는 원인이 되기도 한다. 오래 내버려둘수록 그 해는 점점 더 커진다. 겨우겨우 원래의 문제를 해결하면 그것이 원인이 되어 새로운 문제가 생기고 그 문제들이 산처럼 쌓이는 일이 일어난다. 내버려뒀던 문제 때문에 이상적인 설계를 버리고 어쩔 수 없는 선택을 해야 하는 상황이 올 수도 있다. 이러지도 저러지도 못하고 리팩토링이나 수정이 어려운 코드를 줄줄이 적어나갈 수밖에 없는 환경이 되어 버리는 것이다. 사태가 극단적으로 악화하여, 더는 손 쓸 수 없는 상황이 되었을 때, 모든 걸 멈추고 원래의 문제로 눈을 돌려 해결해보려 한다. 그때쯤이면 이미 수정은 극단적으로 어려워져있다. 고치려고 해도 막대한 시간이 걸리기 때문에, 혹은 위험부담이 너무 커서 돌이킬 수 없는 상황이 되어 버린다.


    마감에 맞추기 위해서, 기능 일부분을 구현하기 위해서, 어쩔 수 없이 빚을 져야 하는 경우가 있다. 그렇게 되지 않게 노력해야 하지만 불가항력이란 것도 있다. 그럴 때는, 일단 기술 부채를 안고 갈 수밖에 없다. 그럴 때는 (여기가 제일중요) 기술 부채의 존재를 항상 잊지 않도록 추적하고, 가능한 한 빨리 갚아야 한다. 어쩔 수 없이 타협하기로 했다면 바로 작업 일정에 넣고 이슈 추적 시스템에 등록한다. 대처를 해두고 기술 부채의 존재가 잊히지 않게 해둔다.


    다음 이터레이션에서 변제를 하도록 일정을 짜두면 비용을 최소한으로 줄일 수 있다. 빚을 내버려두면 이자가 발생하는 건 당연한 이치다. 이 이자를 항상 추적하고, 비용을 명확히 할 필요가 있다. 그렇게 함으로써 기술 부채가 사업 가치에 얼마나 큰 영향을 미치는지를 알게 되고 변제를 위한 작업의 우선순위는 자연히 올라가게 될 것이다. 기술 부채를 계산하는 방법과 이자 추적을 어떻게 할지는 프로젝트마다 다르겠지만, 추적해야 한다는 것만큼은 어떤 프로젝트에서나 같다.


    기술 부채는 가능한 한 빨리 갚자. 분별 있는 사람이라면 그렇게 할 것이다.


    저자: Seb Rose

    에든버러 Rational DOORS팀 수석 소프트웨어 엔지니어.
    처음 프로그래밍으로 일을 했던 때는 1980년이고 Apple lie를 이용해 BASIC으로 부동산 사업자와 전화 사업자를 위한 애플리케이션을 개발했다. 1987년 에든버러 대학을 졸업하고 REKURSIV 프로젝트에 참여한 후, 프리 컨트랙터가 되었다. 지금은 주로 애자일 훈련이나 레거시 코드 개선에 관심을 갖고 있다.

    [프로그래머] 분별 있게 행동하라


    [출처] プログラマが知るべき97のこと (O'Reilly Japan)

    이 글은 [CC-by-3.0-US]에 의해 라이센스 되었습니다.


    댓글 0

Designed by Tistory.