윤개발

[실용주의 프로그래머] 9장 - 가역성 요약 본문

책 내용 요약/실용주의 프로그래머

[실용주의 프로그래머] 9장 - 가역성 요약

DEV_SJ 2020. 11. 19. 16:29

당신이 가진 생각이 하나밖에 없다면, 그것만큼 위험한 것은 없다. - 에밀 사르티에

 

만약 어떤 사실을 굳게 믿고 그 사실에 전적으로 의존하고 있다면, 거의 100% 그것이 변하게 될 것이다.

"이 것은 이 방법으로만 해결 할 수 있어"와 같은 근시안 적인 생각을 갖고 프로젝트에 참여한다면 아마도 예상치 못했던 경우에 의해 한숨지을 일이 많을 것이다.

 

1. 가역성

우리가 프로젝트 초기에 항상 최선의 결정을 내리는 것은 아니라는 점에서 유연한 프로젝트를 만들어야 한다.

프로젝트의 초기에 특정 관계형 데이터베이스를 사용하기로 결정했다고 치자.

한참 후 성능 테스트를 하면서 너무 느리다는 사실을 발견 했고 다른 데이터베이스가 더 빠르다는 것을 알게 되었다.

특정 데이터베이스를 사용하는 코드들이 전반에 퍼져 있을 것이고 전형적인 프로젝트라면 운이 없다라고 밖에 할 수 없을 것이다.

 

 

결정이 돌에 새겨지는 것이라 가정하고, 발생할지도 모를 우연한 사건들에 대해 준비하지 않는 데에서 실수가 나온다.

결정이 돌에 새겨진 것이 아니라 해변가의 모래위에 쓰인 글씨라 생각해 보자. 언제든지 큰 파도가 글씨를 지워버릴 수 있다.

최종 결정이란 없다.

 

2. 유연한 아키텍처

많은 사람들이 코드를 유연하게 유지하려고 노력한다.

하지만 아키텍처, 배포, 벤더 통합 영역의 유연성에 대해서도 관심을 기울일 필요가 있다.

어떤 하나의 제한된 결정만을 수행하는 프로그램을 작성하지는 않았는지 생각하고 방안을 미리 생각해보자.

 

  • 마케팅 팀이 시스템을 어떤 식으로 원하는지 확신이 들지 않는다면 설정 파일만 변경하면 지원할 수 있도록 하는 방안을 미리 생각해보라.

  • 특정 벤더 제품에 대한 의존도 등은 잘 정의하고 추상화한 인터페이스를 통해 감출 수 있다.

 

누구도 미래에 대해서는 알 수 없으며 우리라고 예외는 아니다.

Comments