262
자바 개발자를 위한 데브옵스 툴
어를 구현하려면 구현에 수반된 결정들이 보안에 미치는 영향을 고려해야 한다. 이때 다방면의
전문 지식이 동원된다면 더욱 좋다.
소프트웨어 개발 프로세스는 안전을 보장하기 위한 기본 조치가 필요하다. 이러한 조치는 보안
전담 인력의 존재 여부와 무관하다. 다음 절은 경험적으로 형성된 안전 조치의 모범 사례와 권
장안을 설명한다.
7.11.1 7.11.1
클린 코드와 보안 코드클린 코드와 보안 코드
클린 코드클린 코드
clean
code
라는 용어는 흔히 밥 아저씨로 불리는 로버트 마틴 피어슨의 동명의 서적에서
유래했다. 결정권자들 사이에서 클린 코드는 일반적으로 안전한 코드와 동의어라는 오해를 받
곤 한다.
안전한 코드와 클린 코드는 비슷한 부분이 있지만 동일하지는 않다.
클린 코드클린 코드
는 코드의 가독
성, 유지보수 용이성, 재사용성을 높인다. 그러나
보안 코드보안 코드
secure
code
는 여기에 더해 사전 정의
스펙과 컴플라이언스 준수라는 특성을 추가한다. 클린 코드는 안전한 코드의 전제 조건인 경우
가 많다. 안전하지 않은 코드도 깨끗하게 작성할 수 있다. 그러나 깨끗하게 구현되지 않은 코드
는 보안 조치가 지닌 잠재력을 완전히 개방하지 못한다.
잘 작성된 코드는 컴포넌트와 기능의 관계를 명확하게 정의하고 구분하므로 보안 조치를 적용
하기도 쉽다. 클린 코드 원칙을 준수하고 구현에 반영하려는 개발 팀은 코드 보안이라는 가치
에서 명백한 근거를 찾을 수 있다. 또한 보안 강화 비용과 시간 절감