SW 품질관리

[NHN은 이렇게 한다! 소프트웨어 품질관리] NHN 품질 사례, 챕터별 내용 요약

바질크림떡볶이 2023. 4. 4. 13:45

저자 : 유석문, 이세현, 이상범, 김은하, 나종채, 윤준호, 정상혁, 김광근, 서상우 (2010)

 

 

NHN은 개발자는 하루에 1인 평균 172라인의 코드를 작성한다. 일반적 관점에서 봤을 때 많은 양으로 보이진 않는다만, 한 사람이 하루 172라인을 개발하면 1년에는 약 4만 2000 라인을 개발하는 것이다. NHN 개발자가 대충 1000명이라고 하면 연간 개발하는 코드라인은 4,200만 라인. 이는 A4용지로 80~90km에 달하는 방대한 분량이다.

 

양도 많으니 당연히 버그도 많이 생긴다. 대충 500라인 중 하나 꼴로? 연간으로 계산하면 약 8만 개의 버그가 발생해 이를 발견하고 수정하는 것은 NHN의 오래된 숙제였다.

 

하지만 네이버와 한게임 등을 운영하며 이런 문제에 대한 해결책을 찾아가고 있다. 이를 구체적으로 소개한 책이다. 내용은 아래 11가지로 요약할 수 있다.


앞서, 각 부서별로 중점적으로 읽으면 좋을 것 같은 파트도 앞서 소개한다.

 

  • 기획자 : “1) NHN과 소프트웨어 품질”과 “2) 효과적인 명세 작성”을 자세하게 읽기를 권장하며, 나머지 부분은 프로젝트 진행에 필요한 기술적인 내용만 파악해도 된다.
  • 관리자 : “1) NHN과 소프트웨어 품질”과 “10) QP의 현재와 미래”을 자세하게 읽기를 권장하며, 나머지 부분은 필요성만 파악해도 된다. 실제 적용을 고려할 때는 기획/개발/QA와 반드시 상의하길 바란다.
  • 개발/QA : “1) NHN과 소프트웨어 품질”을 자세하게 읽기를 권장하며, 2)~11)은 자신이 속한 조직의 업무 활동에 따라 주제를 선택해 읽기를 권장한다. < 나는 이 곳에 해당하여 이에 중점을 두고 읽었다.

 


1) NHN과 소프트웨어 품질

- 소프트웨어 개발의 특징 및 문제점

- 이를 해결하기 위한 NHN의 품질 혁신 활동과 적용 과정 (도입과정, 적용 교육 과정, 적용 조직 구성)

 

2) 효과적인 명세 작성

- 요구사항 단계에서 사용하는 효과적인 명세 작성 방법과 그 예

- 이를 자동화 도구를 통해 구현하는 방법

 

3) 단계적빌드

- 개발 과정의 가시성 확보하고 빠른 피드백 환경을 구축하기 위한 단계적 빌드 방법

 

4) 코딩 컨벤션

- 코딩 컨벤션이란? 개발자 간의 코드 스타일을 통일함

- 코드의 가독성을 높이고 유지보수비용을 낮출 수 있음

 

5) 코드 리뷰

- 코드 리뷰를 수행하는 방법과 조직원 간의 지식 공유 방법

 

6) 코드 커버리지

- 코드 커버리지란? 개발자가 소스코드를 얼마나 테스트했는지

- 테스트할 때 소프트웨어를 얼마나 실행했는지 분석한 동적 테스트

- Cobertura(자바), Clover, GCOV(리눅스), BullseyeCorverage(상용, 저렴) …

 

7) 정적분석

- 소프트웨어를 실행시키지 않고 도구를 이용해 소스코드나 바이너리를 분석하여 잠재적인 결함을 찾아냄

 

8) 사이클로매틱 복잡도

- 처음에는 비교적 간단했던 코드가 많은 사람들의 수정을 거치고 확장되어 복잡도가 높아짐. 이를 수치화한 것

- if/switch/while 문 등에 복잡도 1을 부여

- 복잡도를 낮추는 방법 제시

 

9) 중복 코드 분석

- 중복 코드를 제거하는 도구와 기법을 소개해 유지보수 비용을 줄임

 

10) QP의 현재와 미래

- NHN에서 적용한 결과와 성과, 의의

 

11) 부록

- 통합 테스트 서버인 CI서버를 설치하고 설정해 개발에 활용하는 방법

 

 

 

 

 

 

각 챕터마다 자바, 리눅스, C/C++ 등 언어별 도구를 설명해주고, 각 코드도 함께 수록되어 있어서 매우 편리하다. 팀원들과 실제로 수행해보기도 했다. 하지만 실제 적용하기에는 현실적으로 고려해야 할 사항들이 너무 많다. 점점 구체화시켜 보는 걸로.