더북(TheBook)

1.3 정리하기

 

자바스크립트는 개발자에게 훌륭한 설계 기회다. D3 함수를 축약한 코드를 보면서 그런 기회를 여럿 엿보았다. rj3.svg.line은 아주 작은 함수지만 함수의 객체성(자바스크립트에서 함수는 객체다), 중첩 함수, 함수 오버로딩, 덕 타이핑, 클로저, this의 강력함을 잘 보여준다.

자바스크립트의 사용 범위가 대규모 시스템으로 확대되면서 언어 자체의 거친 부분을 잘 다루는 일이 아주 중요해졌다. 개별 스크립트 파일로 코드를 나누는 것이 어떤 면에서는 좋은 생각이지만, 진정한 모듈화는 아니라는 사실을 이야기했다. 검증된 소프트웨어 공학 이론과 D3 사례로 예시한 설계 기회에 기반을 두라. 다섯 가지 SOLID 원칙과 DRY 원칙(반복하지 마라)을 소개했다.

단위 테스트는 장기적인 관점에서 안정된 애플리케이션을 만들기 위한 최선의 투자다. 단위 테스트가 없으면 그저 애플리케이션이 잘 작동하기를 막연히 기도할 수밖에 없다.

테스트 주도 개발을 실천하면 여러 가지 혜택이 있다. 첫째, 장기적인 믿음성을 보장하는 단위 테스트 꾸러미를 구축한다. 둘째, 애플리케이션 객체에 적확한 인터페이스를 설계할 때 도움이 된다. 셋째, 놀랍게도 단위 테스트를 통해 코드를 더 빨리 개발할 수 있다.

테스트성을 높이려면 관심사를 분리하는 일에 집중하고 단일 책임 원칙이나 의존성 주입 같은 소프트웨어 공학 원칙을 잘 써먹는 게 중요하다.

이런 아이디어로 무장해야만 비로소 소프트웨어 장인이 될 준비를 마칠 수 있다. 이제 도구를 꺼내어볼 시간이다.

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