155
7
장
애플리케이션 아키텍처 약점 식별
7.3
바퀴를 재발명할 것인가
주의를 기울여야 할 마지막 위험 요인은 이미 존재하는 기술을 재발명하고자 하는 개발자의 욕
구다. 일반적으로 이것은 아키텍처 문제에서 비롯되는 것은 아니다. 그보다는 조직이 안고 있
는 문제가 애플리케이션에 투영되어 드러나는 경우가 많다.
이런 문제는 소프트웨어 회사에서 자주 일어난다. 도구나 기능을 재발명하는 것이 개발자 관점
에서는 다음과 같은 여러 이득이 있기 때문이다.
●
복잡한 라이선스를 회피
●
기능을 추가하기 용이함
●
새로운 도구나 기능을 마케팅에 이용할 수 있음
새로운 기능을 밑바닥에서부터 만드는 일은 기존 오픈 소스나 상용 도구를 용도 변경하는 것보
다 재미있고 도전적인 작업이기도 하다. 재발명이 항상 나쁜 것은 아니므로 사례에 따라 다르
게 평가해야 한다.
기존 소프트웨어를 재발명하는 것이 회사에 위험보다 이득을 더 많이 가져오는 시나리오가 있
다. 가장 좋은 도구의 라이선스 협약을 준수하려면 이익이 현저히 감소할 수 있거나 특정 기능
이 애플리케이션에 꼭 필요하지만 도구의 기능 변경이 허용되지 않는 경우를 예로 들 수 있다.
한편 재발명은 보안 관점에서 위험이 있다. 특정 기능을 재발명하는 것에 따른 위험 수준은 중
간 정도에서 아주 높은 위험까지 다양하다.
특히 전문성이 높은 보안 엔지니어들은 암호화를 절대로 자체 구현하지 말 것을 권고한다. 재
능 있는 소프트웨어 엔지니어와 수학자들은 공개된 알고리즘을 사용하지 않고 해싱 알고리즘
을 직접 개발할 능력이