본문 바로가기

인증

[인증] GS인증의 모든것 - 5.GS인증 취득을 위해 준비해야하는 것 - 소프트웨어 제품

ChatGPT를 사용하지 않습니다.

목차

       

      관련글

      [인증] GS인증의 모든것 - 4.GS인증 취득을 위해 준비해야하는 것 - 사용자설명서
      [인증] GS인증의 모든것 - 3.GS인증기관 소개
      [인증] GS인증의 모든것 - 2.GS인증 취득을 위해 준비해야하는 것 - 제품설명서
      [인증] GS인증의 모든것 - 1.GS인증 취득을 위해 준비해야하는 것 3가지

       

      1. GS인증 취득을 위해 준비해야 하는 것

      GS인증을 취득하기 위해서 준비해야 하는것을 말씀드렸습니다.

      1) 제품설명서 (문서)

      2) 사용자설명서 (문서)

      3) 소프트웨어 제품

       

      제품설명서, 사용자설명서에 대해서는 사전에 글을 참고 부탁드립니다.

      오늘은 소프트웨어 제품 개발에 대한 부분입니다.

      GS인증을 취득하기 위해서

      소프트웨어 제품 개발을 알아야 합니다.

      그전에 앞서서 GS인증이 어떤 시험을 하는지를 알게되면

      그 수준에 맞춰서 개발을 진행하면 됩니다.

       

      2. 국제표준 ISO/IEC 25023

      결론부터 말씀드리겠습니다.

      국제표준에 ISO/IEC 25023 이 있습니다.

      국내 GS인증은 ISO/IEC 25023 표준을 기반으로 만들었습니다.

      ISO/IEC 25023은 품질 특성 마다 무엇을 테스트해야 하는지를 정의해놓았습니다.

      ISO/IEC 25023을 보고 제품을 준비를 하면 됩니다.

      다만 인증기관이 우리나라에 5개가 있습니다.

      표준을 가지고 평가모듈을 각자가 만들어서

      인증기관마다 평가하는 방법에 있어서는 조금씩 다를수 있습니다.

      국내 번역 표준도 있으니까 참고를 하시면 되겠습니다.

      표준을 알아야 그에 맞게 개발을 할 수 있습니다.

       

      3. 국제표준 ISO/IEC 25010

      GS인증은 Good Software 의 약자입니다.

      좋은 소프트웨어 인증이라는 것인데요

      소프트웨어가 좋을려면 갖춰야 하는 품질 특성이 있습니다.

      국제 표준 ISO/IEC 25010(국내 번역본 있음)의 품질 특성을 총 8가지로 규정했습니다.

       

      ISO/IEC 25010 품질특성

       

      기능 적합성
      성능 효율성
      호환성
      사용성
      신뢰성
      보안성
      유지보수성
      이식성

      이 8가지 주특성입니다.

      주특성 하위에 부특성이 있습니다.

      기능 적합성

      -기능 완전성

      -기능 정확성

      -기능 적절성

       

      성능 효율성

      -시간 반응성

      -자원 효율성

      -용량성

       

      호환성

      -공존성

      -상호운용성

       

      사용성

      -적절 인식성

      -학습성

      -운영성

      -사용자 오류 방지성

      -사용자 인터페이스 심미성

      -접근성

       

      신뢰성

      -성숙성

      -가용성

      -결함허용성

      -복구성

       

      보안성

      -기밀성

      -무결성

      -부인방지성

      -책임성

      -인증성

       

      유지보수성

      -모듈성

      -재사용성

      -분석성

      -변경성

      -시험성

       

      이식성

      -적응성

      -설치성

      -대체성

       

      이렇게 각각의 8개 주특성에는 여러가지 하위 부특성들이 있습니다.

      GS인증 시험을 할때 하위 부특성 각각에 대해서 시험을 합니다.

      필수사항이 있고, 

      소프트웨어제품에 기능이 있으면 시험을 하는 것도 있고,

      해당사항이 없는 항목도 있습니다.

      그래서 그걸 잘 확인해서 소프트웨어 제품을 개발한다면 

      좀더 쉽게 인증을 취득하지 않을까 생각이 듭니다.

       

      각각의 주특성에 대해서 간단하게 말씀드리겠습니다.

       

      4. 소프트웨어 8가지 품질 주특성

      국제표준 ISO/IEC 25010을 참고하시면 정의에 대해서 잘 알수가 있습니다.

      GS인증은 국가 법령으로 되어 있기 때문에 

      고시를 참고하셔도 됩니다.

      아래에는 고시에 나와있는 품질 특성에 대한 설명입니다.

      소프트웨어 품질 인증 운영에 관한 지침

      9. "기능적합성"이라 함은 실행 소프트웨어가 지정된 조건에서 요구된 기능을 제공하는 정도를 말한다. 
      10. "성능 효율성"이라 함은 실행 소프트웨어가 지정된 조건에서 사용되는 자원의 양에 따라 제공되는 성능의 정도를 말한다. 
      11. "호환성"이라 함은 동일한 하드웨어 및 소프트웨어 환경을 공유하는 동안 실행 소프트웨어가 요구되는 기능을 수행할 수 있거나 타 소프트웨어와 정보를 교환할 수 있는 정도를 말한다. 
      12. "사용성"이라 함은 지정된 사용 상황에서 효과성, 효율성 및 만족도를 가지고 지정된 목표를 달성하기 위해 사용자가 실행 소프트웨어를 사용할 수 있는 정도를 말한다. 
      13. "신뢰성"이라 함은 정해진 기간 동안 지정된 조건에서 실행 소프트웨어가 요구되는 기능을 수행할 수 있는 정도를 말한다. 
      14. "보안성"이라 함은 사용자 또는 타 소프트웨어에 허용된 권한의 종류 및 수준에 적합하게 데이터에 접근할 수 있도록 실행 소프트웨어가 정보와 데이터를 보호하는 정도를 말한다. 
      15. "유지보수성"이라 함은 유지보수자가 실행 소프트웨어를 변경할 수 있는 효과성과 효율성의 정도를 말한다. 
      16. "이식성"이라 함은 실행 소프트웨어가 다른 하드웨어, 소프트웨어 등의 환경으로 옮겨질 수 있는 효과성 및 효율성의 정도를 말한다. 

       

      원본출처 : https://www.law.go.kr/admRulSc.do?menuId=5&subMenuId=41&tabMenuId=183&query=%EC%9D%B8%EC%A6%9D#liBgcolor0 

       

      국가법령정보센터

      화면 글자크게 글자기본 글자작게 검색영역 마우스 입력기 한글 1 2 3 4 5 6 7 8 9 0 Bksp ㅂ ㅈ ㄷ ㄱ ㅅ ㅛ ㅕ ㅑ ㅐ ㅔ Shift ㅁ ㄴ ㅇ ㄹ ㅎ ㅗ ㅓ ㅏ ㅣ ㅋ ㅌ ㅊ ㅍ ㅠ ㅜ ㅡ 띄어쓰기 검색 ! @ # $ % ^ & *

      www.law.go.kr

       

      5. 기능적합성

      우리가 가장 쉽게 이해할 수 있는 부분은 기능적합성입니다.

      제품설명서 또는 사용자설명서에 기재된 기능이 잘 작동하고 정확하게 작동하면 OK입니다.

      기능구현은 제품의 필수라고 할 수 있습니다.

      여기서 주의사항을 잠시 말씀드리겠습니다.

      제품설명서, 사용자 설명서에 있는 기능이 제품과 1:1이 되어야 하니다.

      설명서에는 있는 기능이 제품에도 있어야 합니다.

      가끔 설명서에는 기능이 존재하지만 구현을 안해놓았거나

      설명서에는 없는 기능이 제품에 있으면 안됩니다.

      그것만 유의를 하시면 됩니다.

      아참 그리고 가끔 GS인증 취득이 급하시다고 어떤 제품에 거의 모든 기능을 빼버리고

      몇가지 기능만 넣은 후에 GS인증을 신청하시는 분이 가끔 있을수 있습니다.

      예를 들어서 만약 회사에서 은행 업무를 하는 앱을 개발했고 GS인증을 받는다고 할때
      은행 앱에 조회 기능만 넣어놓고 GS인증을 받으면 
      기능적합성에서 기능적절성 기준에 못미치게 됩니다.
      최소한의 기능을 넣어야 한다는 말입니다.
      은행 앱이라면 계좌조회, 이체, 회원정보, .... 등등 
      기본으로 포함되어야 하는 기능이 있어야 합니다.

      다른 예를 들어서
      CMS 웹솔루션 제품을 GS인증을 받으실때
      포함되어야 할 기능이 게시판 생성 만 있다면 안된다는 것입니다.
      최소한 생성, 삭세, 수정 등 ... 필요한 기능이 있어야 합니다.

       

      6. 성능효율성

      제품 설명서, 사용자 설명서에 제시한 성능 목표에 부합하는지를 시험합니다.

      그렇다면 제품 및 사용자 설명서에 성능 목표를 넣지 않으면 시험을 하지 않는 건가요?

      그런거는 또 아닙니다.

      시험자가 소프트웨어 제품을 딱 보고 성능에 대한 부분이 없다면

      최소한 몇가지는 넣어야 된다고 가이드를 해줄 수 있습니다.

      예를 들어서 웹 제품일 경우에
      최소한 동시접속자 50명의 환경에서 주요 기능이 정상동작하는지(응답속도가 3초 이내 동작 여부)
      주요 기능에서 응답속도가 목표에 만족하는지?
      와 같이 성능 목표를 1개~3개 정도 넣어 두시는 것을 추천합니다.
      GS인증은 우리 제품이 이렇게 훌륭하다. 성능이 뛰어나다 라는것을 증명하는 것이기도 합니다.
      그래서 GS인증을 마케팅 용도로 많이 사용하고 계십니다.
      참고바랍니다.

       

      7. 호환성

      호환성은 동일한 하드웨어 및 소프트웨어 환경을 공유하는 동안 실행 소프트웨어 요구되는 기능을 수행하거나, 

      다른 소프트웨어와 정보 교환할 수 있는 정도를 시험합니다.

      예전에는 백신 프로그램을 설치하면 백신 프로그램 끼리 서로 바이러스로 규정하고 프로세스를 죽여버리는 일이 빈번하게 발생했습니다.
      그런 일이 발생하면 안된다는 것입니다.
      예를 들어 워드 프로세스 제품을 GS인증 신청을 했다고 가정했을때
      다른회사 제품을 설치해놓고, 시험을 할때 잘 동작하는지를 확인합니다.
      아니면 데이터베이스 제품을 GS인증 신청을 했다면
      다른 여러 회사 또는 오픈소스 DB 제품을 설치한 상태에서도 우리 제품이 잘 동작하는지 보는것입니다.
      다만 사용자 설명서, 제품설명서에 그런 내용이 없다라고 하면 시험을 안합니다.
      하드웨어와 같이 납품하는 경우에는 시험을 굳이 안해도 되겠지요~

      그리고 다른 소프트웨어와 정보 교환에 대한 부분입니다

      여기서 정보 교환에 대해서 자세하게 나눈다면 '포맷', '절차' 입니다.

      요즘은 네트워크 기능이 포함되어 이는 제품이 많습니다.

      '포맷' 에 대한 정보교환은

      예를들어서 FTP 제품을 GS인증 신청을 하신다고 할때

      파일 전송 기능이 있습니다.

      파일 확장자가 jpg, xls, png, pdf 등 다양한 파일 종류가 있습니다.

      파일전송을 했을때 송신, 수신에서 동일하게 파일이 잘 전달이 되는지 확인하는 것입니다.

      요즘은 파일 뿐만 아니라, XML, Json 과 같은 것도 데이터 교환의 '포맷'에 해당이 됩니다.

      '절차'는 프로토콜에 대한 부분을 의미합니다.

      GS인증 신청한 제품이 네트워크 관련 제품이라서

      다양한 통신 프로토콜(TCP/IP, HTTP, HTTPS, UDP... 등등)을 지원한다고 

      제품설명서, 사용자 설명서에 명시를 했다면 시험을 하게 됩니다.

       

      8. 사용성

      사용성은 사용자가 매뉴얼 안보고도 쉽게 사용할 수 있는지 직관성이 뛰어난 제품인지를 시험합니다.

      보통 우리가 스마트폰을 구입하면 설명서를 안보고 바로 사용하듯이

      스마트폰 앱을 설치하면 굳이 설명서가 필요없더라도 바로 제품을 사용할 수 있다든지 

      사용성이 뛰어나면 사용자가 좋아하겠지요~

      아무튼 사용성에도 부특성이 굉장히 많습니다.

      필수적으로 평가하는 부분이 있습니다.

      사용 시나리오를 제공하는 지 여부를 평가합니다.

      사용자가 소프트웨어를 잘 사용할 수 있게 사용 시나리오, 데모 등을 제공하는지를 보는 겁니다.

      이것은 보통 사용자 설명서나 제품설명서에 명시를 하면 됩니다.

      사용자 설명서 작성하실때 제품의 용도, 목적, 기능 등을 명시하게 되어 있으며

      모든 기능에 대해서 설명해야 합니다.

      빠짐없이 사용자 설명서를 작성했다면 쉽게 통과 할 수 있습니다.

      설령 문제가 나오더라도 문서 수정은 쉽게 처리가 가능하기 때문에 너무 염려를 안하셔도 될듯합니다.

      다만 모든 기능에 대한 설명은 꼭 사용자 설명서에는 제품의 모든 기능에 대한 설명을 추가하셔야 합니다.

      이부분은 생각보다 시간이 많이 소요됩니다.

      제품 캡쳐를 넣어야 하기 때문입니다.

      사용자 설명서는 우리 제품을 구매한 사람이 이 제품을 사용할 수 있게끔 해주는 상세 매뉴얼이기 때문입니다.

      GS인증 평가시에도 GS인증 기관의 시험자는 사용자 설명서를 보고 거의 대부분의 시험을 진행하게 됩니다.

       

      만약에 데모를 제공하는 제품이라면 데모가 정확하게 구현되는지 확인합니다.

       

      오류 메시지, 일관된 UI, UX, 커스터 마이징 기능, 사용자 입력장치, 입력필드 기본값, 실행 취소 기능,

      입력오류 방지 기능, 다국어 지원 등을 평가 합니다.

      다국어 지원을 안하면 당연히 평가에서 제외 합니다.

      제외된 항목이 있더라도 인증 취득에는 큰 지장은 없습니다.

       

      9. 신뢰성

      신뢰성은 정해진 기간 동안 지정된 조건에서 실행 소프트웨어가 요구되는 기능을 수행할 수 있는 정도를 평가합니다.

      한마디로 시스템이 다운되지 않고 잘 동작을 하는지를 봅니다.

      가끔 시험하다가 기능이 중지되거나, 급기야 서버가 죽어버리는 경우가 다수 발생합니다.

      그러면 점수가 좀 깎이겠지요?

       

      그리고 중요한 시스템이 있습니다. 절대 죽으면 안되는 시스템 들을 말하는데요.

      항공, 국방, 철도, 자동차, 선박, 의료, 원자력, 금융 분야의 제품의 경우

      사람의 생명이나, 돈이 피해를 보면 큰일나는 시스템이 있습니다.

      이런 시스템은 멈추면 큰일 나는겁니다.

      그래서 신뢰성에서 가용성을 보장해야 합니다.

      그리고 임의의 결함을 주입했을때 고장을 잘 회피하는지에 대한 기능을 평가합니다.

       

      중요한 시스템이 아니면 이런 시험은 필수가 아닙니다.

      자체 장애복구 기능이 있다면

      자체 복구 기능, 백업 기능이 있다면

      시험을 합니다. 없다면? 평가 항목에서 제외를 합니다

       

      10. 보안성

      보안성은 사용자 또는 타 소프트웨어에 허용된 권한의 종류 및 수준에 적합하게 데이터에 접근할 수 있도록 실행 소프트웨어가 정보와 데이터를 보호하는 정도를 평가합니다

       

      보안성의 항목이 생각보다 많습니다.

      특히 보안과 관련된 제품일 경우에는 보안성을 신경 많이 쓰셔야 합니다.

      보안성에서 결함이 발생하는 경우에는 수정하는데 시간이 많이 소요가 되기 때문에

      보안성에 포함되는 평가 항목 기능등은 웬만하면 잘 구현을 해놓는것을 권장드립니다.

      보안에 민감한 제품은 신경을 많이 써야 하는 부분입니다.

      특히 요즘은 보안이 점점 강화되는 추세임을 명심하셔야 합니다.

       

      웹제품의 경우에는 신경쓸게 많습니다.

      SQL 인젝션, XSS(크로스사이트스크립트) 에 대한 결함은 기본적으로 없어야 합니다.

       

      접근 통제 기능이 있다면 평가합니다.

      접근 통제 기능이란

      로그인 기능, 기능 및 메뉴 접근권한, DB나 파일에 접근가능한지?

      일정시간이 지나면 로그아웃이 되거나, 세션 차단 기능

      일정시간 미사용시에 화면이 잠기는지?

      지정된 IP나 Mac 어드레스로만 접근 가능한지?

      중복접속이 되는지?

      등등을 말합니다.

       

      GS인증을 신청하는 제품이 여러가지 접근통제 기능이 있겠지만

      그중에 하나로도 기능이 있으면 평가를 합니다.

      간단한 모니터링 제품이 아니라면 기본적으로 접근 통제 기능 하나는 넣는것을 추천드립니다.

       

      암호 알고리즘을 사용하고 있다면 안전한 알고리즘인지 확인합니다.

      그리고 로그인 기능이 있는 경우에는 패스워드는 안전한 알고리즘으로 DB에 저장되어 있는지 확인합니다.

       

      또 보안성에서는 부인방지, 감사기록, 감사기록보관, 인증방법, 인증규칙,

      SQL인젝션, XSS(크로스사이트스크립트), 암호화 전송, 비밀번호 저장 암호화 등을 평가합니다.

       

      11. 유지보수성

      유지보수자가 실행 소프트웨어를 변경할 수 있는 효과성과 효율성의 정도를 평가합니다.

      한마디로 유지보수가 잘되는 제품인지를 평가한다고 생각하시면 됩니다.

      평가방법은?

      보통 GS인증 기관에서 시험자가 평가를 할때 발견되는 결함이 있습니다.

      결함이 심각도에 따라서 해결해야 하는 시간이 있습니다.

      Critical 은 40시간(5일)

      High는 32시간(4일)

      Medium은 24시간(3일)

      Low는 16시간(2일)

      하루 8시간 업무를 기준으로 계산을 합니다.

      간혹 Critical 결함이 너무 많이 나와서 해결해야 하는 시간을 넘기게 될 가능성이 많을 경우에

      신청한 기업에서 자체적으로 보류를 하는 경우도 발생합니다.

      결함리포트를 받아 보시고 도저히 바빠서 시간내에 처리를 못하거나

      결함이 많이 발생할 경우에는

      일단 GS인증을 STOP 시킨다음에 다음에 다시 하는 것도 방법입니다.

      중지에 대한 부분은 GS인증 기관과 논의를 하시면 될듯합니다.

       

      12. 이식성

      이식성은 실행 소프트웨어가 다른 하드웨어, 소프트웨어 등의 환경으로 옮겨질 수 있는 효과성 및 효율성의 정도를 펴가합니다.

      보통 제품설명서, 사용자 설명서에 제품 운영 환경을 명시하게 되어 있습니다.

      HW 스펙 권장사항, CPU , 메모리, 하드디스크 용량...

      SW 스펙 권장사항, MySQL, 크롬 브라우저 버전........

       

      이때 최소 사양과, 권장 사양을 명시하셨다면

      최소 사양으로 시험기관에서 시험을 하게 됩니다.

      이부분은 필수사항입니다.

      그리고 이식성에서

      기존에 GS인증을 받은 제품이 업그레이드 되는 경우에 

      업그레이드 된 제품을 GS인증을 다시 받는 경우가 굉장히 많습니다.

      처음 GS인증을 받을때는 v1.0이라면

      업그레이드 한 제품 버전은 v2.0이 되겠지요

      이럴경우에는 기능의 유지나, 데이터 재사용에 대한 평가 항목이 추가됩니다.

      기존의 중요한 기능이 그대로 유지가 되는지

      v1.0에서 사용한 데이터가 v2.0에서도 재사용 가능한지를 평가합니다.

      예를 들어서 한글97버전에 hwp 파일이 한글 2022 버전에도 잘 불러와서 편집이 가능해야 한다는 것입니다.

       

      13. 결론

      GS인증 취득을 위해서 소프트웨어 제품을 어떻게 GS인증에 맞게 개발을 해야하는지 알아보았습니다.

      제가 말씀드린 부분은 일부분입니다.

      모두 지면으로 설명하기가 쉽지가 않아서 추후에 유튜브에 영상으로 공개하도록 하겠습니다.

      서론에 말씀을 드렸지만

      국내에는 GS인증 기관이 5개가 있습니다.

      같은 표준으로 평가모듈을 개발하였지만 인증기관마다 각자 표준을 해석하고 평가모듈을 개발했기 때문에

      기준, 평가방법, 필수항목, 등이 조금씩은 다를 수 있음을 꼭 아셔야 합니다.

       

      전주정보문화산업진흥원 SW품질역량센터에서는

      전라북도 소재 ICT/SW기업을 대상으로

      GS인증 취득을 위한 컨설팅을 무상으로 지원하고 있습니다.

      GS인증 취득 컨설팅의 제공 서비스는 다음과 같습니다.

      1. GS인증 취득을 위한 교육
      2. 제품설명서 작성 방법
      3. 사용자설명서 작성 방법
      4. GS인증 평가 기준 기반 사전 테스팅(테스팅 후 결함 리포트 제공)
      5. GS인증 접수 가이드

       

      준비부터 접수 취득까지 지원을 해드립니다.

      서비스 링크 : https://www.jica.or.kr/2016/inner.php?sMenu=A1000&mode=view&no=622 

       

      전주정보문화산업진흥원

      IT·CT산업의 육성과 발전을 위해 온 힘을 기울여 나가겠습니다.

      www.jica.or.kr

       

       

      김영찬 (소프트웨어 품질 전문가)

      (재)전주정보문화산업진흥원(JICA)

      소프트웨어 개발자로 10년간 발로 코딩 하다가 한계를 느끼고, 

      2015년부터 소프트웨어 품질에 몸을 담고 기업을 돕고 있음

      email.  sweng@jica.or.kr  / tel. 063-281-4113

      주업무 : 소프트웨어 품질 컨설팅, 테스팅,  KOLAS 기술책임자, 개발자 네트워크 운영

      자격

        - SP, CMMI, VSE(ISO 29110), ISMS(ISO 27001) 인증 심사원

        - AIT, ISTQB FL, CSTS, 29119 외 다수