Page 28 -
P. 28

다. 자바에서 작은 표현식이나 함수를 테스트하려면 전체 프로그램을 작성
              하고 컴파일하고 실행하는 일괄 작업 흐름을 따라야 한다. 자바 가상 머신

              에서 작동하는 스칼라 Scala나 클로저 Clojure 같은 언어가 자바보다 좋은 점
              중 하나는 입력-실행(평가)-결과 루프 read-Eval-Print Loop, rEPL에서 표현식

              을 빠르게 상호적으로 평가할 수 있다는 점이다. 단순히 REPL이 편집-컴

              파일-실행-디버그 루프 edit-complie-run-debug loop보다 빨라서 시간이 절약되
              는 것은 아니다. 이전에는 사용하지 않았던 방식, 즉 훨씬 더 작은 표현식

              과 함수를 상호적으로 평가하고 테스트할 수 있으므로 시간이 절약되는 것
              이다.

                새로운 작업 흐름을 도입해서 시간을 크게 절약해주는 도구는 이 외에도
              많다. 핫 리로딩 hot reloading은 서버나 애플리케이션 전체를 재시작하지 않아

              도 자동으로 새로운 버전의 코드를 교환해 넣을 수 있어 작업 흐름을 조금

              더 점진적으로 변경할 수 있다. 커밋할 때마다 코드베이스를 다시 빌드하고
              전체 테스트 스위트를 실행하는 프로세스가 시작되는 지속적 통합 continuous

              integration을 활용하면 어떤 변경이 코드를 망가뜨렸는지 쉽게 찾을 수 있어
              서 시간 낭비가 줄어든다.

                도구 도입이 팀 전체로 확장되면 더 많은 시간이 절약된다. 하루에 1시간
              을 절약해주는 도구를 팀원 10명이 사용하면 10배의 시간이 절약된다. 구

              글, 페이스북, 드롭박스, 클라우데라 Cloudera 같은 기업에 사내에서 사용하

              는 개발 도구를 개선하는 전담팀이 존재하는 이유다. 하루에 십여 번 코드
              를 빌드하는 개발자 1,000명으로 구성된 팀의 빌드 시간이 1분 줄어들면

              매주 거의 개발자 1명이 1년간 엔지니어링하는 시간을 절약할 수 있다! 그
              러므로 시간 절약 도구를 찾거나 만드는 것으로는 충분치 않다. 그 혜택을

              최대로 누리려면 팀에 도구 도입률을 높여야 한다. 그러기 위해 가장 좋은
              방법은 그 도구가 실제로 시간을 절약해 준다는 것을 증명하는 것이다.




          100




     이펙티브엔지니어_07.indd   100                                                2022-06-14   오후 3:57:33
   23   24   25   26   27   28   29   30   31