당신의 메소드에는 예외를 명시하고 있는가?
메서드를 만들어 기능을 구현하다 보면 기능구현, 리팩토링등 기능적인 측면에서 빠르면서 정확한 값을 반환할 수 있는가에 초점을 맞추고는 합니다. 예외 발생에 대해서는 Spring과 같은 Framework의 발달로 예외를 한곳에서 받아서 처리해 주는 것을 활용하여 예외를 일목요연하게 처리하는 것이 아닌 생각을 합니다. 저의 개인 적인 생각이지만, 거의 모든 프로그램이 그 존재 자체로, 아이디어만으로 훌륭하지만 그 프로그램의 질의 단계를 한 단계 끌어올리는 것은 아마도 예외를 처리하는 것에 있지 않는가 생각합니다. 1. 왜 예외를 말하는 것인가? 저는 많은 시간은 아니지만 개발 업을 하다 보니 SI 회사를 거쳐 자체적인 소프트웨어를 만드는 회사에서 일할 기회가 감사하게도 있었습니다. 그런 기업에서 소프트웨어적으로 봤을 때 중요하게 생각하는 것 중에 하나가 나라에서 인정해 주는 다양한 인증을 받는 것에 있었습니다. 인증을 받아야 비즈니스적으로 정부를 상대로 소프트웨어를 판매/납품할 수 있는 기회, 아니 소개할 수 있는 기회를 가질 수 있고 이렇게 정부에 납품하는 제품을 기타 회사에서 사용하게 되는 경우 해당 인증에 준하는 기준을 충족한다는 인증을 해주기 때문에 일반 회사에서도 중요하게 생각합니다. 그런 인증에는 심사위원이 소스코드 레벨에서 시큐어코딩을 준하게 작성되었는지 확인하는 경우도 있습니다. 정부에서는 시큐어코딩 기준을 정리해서 KISA(한국인터넷진흥원)에서 발표하였습니다 [링크]. 여기에서 보면 예외에 대한 처리를 언급하고 있습니다. 2. 메서드 예외를 나열/명시하자 소프트웨어 보안약점 진단가이드의 3장 분석, 설계단계 보안항목 진단의 "3. 에러처리"에서는 다양한 내용을 언급하고 있습니다. 오늘 습관을 들이면 어떨까? 하고 추천하고 싶은 것이 바로 이곳에 있습니다.