Posts Tagged ‘표준’

서비스 모듈화: 표준과 표준 준수

Sunday, December 16th, 2007

현재 소속된 엔터테인먼트서비스개발실에서는 웹 개발의 생산성을 향상시키고 이미 개발된 코드의 재사용성을 높이기 위하여 ‘서비스 모듈화’가 화두로 제시되고 있다. 우선 모듈의 관리와 배포 등을 담당하는 위저드가 올해 개발되었고 몇 개의 프로토타입 서비스 모듈이 개발되었다. 그리고 내년 본격적인 서비스 모듈을 개발하기에 앞서 ‘표준 정립’이 선행될 것이다.

최근 읽고 있는 ‘소프트웨어 컨플릭트 2.0′에 표준과 관련된 컬럼이 있어서 소개한다. (사실 15년 전에 처음 작성된 컬럼이지만 세상의 본질은 그렇게 쉽게 변하는 것은 아닌가 보다.)

표준과 표준 준수: 정말 소프트웨어 품질을 높이는 데 도움이 되나?

표준을 정립하는 목적은 제품 품질과 프로그래머 생산성을 높이기 위해서이다.

  1. 표준은 간결하고 핵심적이어야 한다. ‘필수’ 규칙은 신속하게 습득하고 쉽게 적용하고 편리하게 준수하도록 도와주는 간략한 메뉴얼로 다듬어야 한다. 필수는 아니지만 선호하는 정교한 방식이 있다면, 표준이 아니라 지침으로 명시하고 별도로 문서를 만든다. 지침서는 아주 길어도 괜찮다. 프로그래머가 읽어서 도움이 될 정보를 담고 있으며 규칙을 강제할 필요나 의도가 없으므로 분량은 그다지 문제가 되지 않는다.
  2. 표준은 회사에서 프로그래밍 기량이 가장 뛰어난 사람이 작성하고 검토해야 하며, 시간이 남는다고 아무에게나 맡겨서는 안된다. 모두에게 강조하고 준수시킬 규칙이므로 마땅히 최고 두뇌에게 맡겨야 한다.
  3. 표준 준수는 의무적이어야 하며, 시간이 남으면 따르는 선택이 되어서는 안된다. 표준 문서를 줄이겠다고 결단을 내린 후 진짜 핵심만 남기면, 표준 준수에 따르는 비용은 급격하게 줄어든다. 표준 준수 절차는 자동화된 검사 기능과, 검토 활동을 포함해야 한다. 동료간 코드 검토는 표준을 준수하는 중요한 방법 중 하나인데, 단순히 표준 준수 여부보다는 전반적인 품질 향상에 초점을 맞춰야 한다.

표준이 ‘must’라면 가이드(지침)은 ‘had better’일 것이다. 즉, 표준은 가능한 간결하게 작성해서 쉽게 습득하고 적용할 수 있어야 하며, 그 외의 권고 사항은 가이드로 따로 제공해 주는 것이 효과적이다.

그리고 표준 작성은 표준을 가장 잘 만들 수 있는 사람이 담당해야 한다. 표준 작성자는 현업의 이해도가 높아야 하며 최고 수준의 코드를 만들 수 있는 사람으로 지정되야 한다.

그리고 마지막으로 표준이 준수되는지 지속적으로 확인해야 한다. 표준 검사 툴을 만들 수도 있겠지만 모듈 개발자들이 서로의 코드를 검토하는 과정을 통해 코드 품질을 향상시키는 방식이 가장 효과적일 것이라 생각된다.