개발자라는 직업을 갖고나서 “은탄환은 없다”라는 말을 많이 들었던 것 같다.
왜 은탄환은 없는걸까 ?
내 나름대로의 결론은, 모든 상황에는 저마다의 맥락(context)이 있기 때문인 것 같다.
예를 들어, 특정 서비스의 DBMS를 다른 DBMS로 마이그레이션
하는 프로젝트를 진행한다고 할 때 고려해야할 맥락은 다양하다:
- 서비스의 기술 스택, 데이터 규모, 특성 (실시간성 여부, B2C인지 B2B인지, 주요 요청이 조회 중심인지, 쓰기 중심인지 등)
- 점검을 걸고 진행할 수 있는지 여부 (가능하다면 허용 가능한 중단 시간)
- 인력 구성 (투입 가능한 개발자 수, DBA 팀의 존재 여부 등)
- 프로젝트 기간
- 기타 등등 ..
이뿐만 아니라 서비스가 속한 산업군에 따라 법률적 제약, 보안 정책 수준 등도 모두 다를 수 있다.
그러므로 어떤 방법론이나 저명한 사람의 말, 혹은 Best Practice를 무조건 따르기보다,
현재 주어진 맥락 속에서 최선의 선택이 무엇일까 고민하는 개발자가 되고싶다.