2015년 11월 10일 화요일

Devops의 이해와 구현 Part 2

Devops 구현하기 ( 품질 , 프로세스 , 도구 관점에서 )

전통적인 폭포수 개발 모델에서는 코드가 개발이 완료되어야 빌드와 테스트가 이루어질 수 있다 . 코드가 최종 단계에 이르러야 테스트가 수행되므로 테스트 결과는 프로젝트 후반에서 파악할 수 있다 . 테스트를 통과하지 못할 경우 , 변경된 사항과 해결할 문제 사이에 상관관계를 파악하기 어려워 문제 해결에 많은 시간을 낭비하게 된다 . 그나마도 프로젝트 일정과 비용 등의 제약으로 아직 해결하지 못한 문제가 남아 있지만 운영 단계로 넘어가야 하는 경우 품질에 상당한 악영향을 미칠 수밖에 없다 .

저명한 컴퓨터 과학자인 Gerald M. Weinberg 는 품질은 사용자의 요구사항에 부합하는 것이라고 정의하였다 . 즉 , 품질이라는 것은 정도가 있는 것으로 ‘ 얼마나 잘 ’ 이라는 것이 사용자에 따라 달라질 수 있다 . 가령 , 시스템 성능은 얼마나 많은 사용자가 동시에 사용하는지 , 어떤 기능을 주로 사용하는지에 따라 그 기준이 달라진다 . 이는 품질이 절대적인 기준 값이 있는 것이 아니라 전체적 맥락 (context) 하에서 정의되고 주요 품질 속성과 아닌 것을 구분하는 것이 필요하다는 것을 말해준다 .

품질속성 시나리오

SW개발주기상에서 Just-in-time 요구사항 정의

요구관리는 SW 개발주기에서 가장 중요한 첫 번째 단계임이 분명하나 , 문서화된 요구사항은 자주 변경되며 시간낭비에 불과할 때가 많습니다 . 제조업에 적용되는 just-in-time 컨셉은 SW 개발에도 매우 유효함에 따라 , 요구관리가 SW 개발에 있어 시기적절한 역할을 하기 위한 just-in-time 요구관리에 대한 정의와 역할을 제시합니다.

  • 요구사항 정의는 소프트웨어 개발 주기 상 최초단계로서 아주 중요한 의미를 가지나 , 변경되거나 버려질 요구사항을 기록하는 것인 시간을 낭비하는 것에 불과함
  • 제조분야에서 시간낭비를 피하는 기본적 기술은 “just-in-time” 으로 알려져 있는데 이 Just-in-time 개념이 소프트웨어 요구관리에 적용될 수 있음
  • 본 보고서에서는 just in time 요구사항 관리가 제공하는 합리적이고 시간낭비를 없애는 방법을 설명하고자 함

▶ 소프트웨어 개발 주기 : Just-in-time 요구사항
▶ Just-in-time 요구사항은 무엇과 비슷한가 ?
▶ Three Amigos
▶ 예측의 필요성
▶ 조정
▶ 함께 모여 작업

애플리케이션 보안테스팅 전략 수립을 위한 10단계 절차

대부분의 SW 개발 및 테스팅 전문가들은 보안 테스트를 SW 개발주기 상 마지막 단계로 생각하고 있는 경향이 있습니다 . 그러나 SW 보안성 테스트는 제품의 수명과 기업의 비즈니스 전략에 영향을 미치는 중요한 단계임에 따라 품질보증 팀과 함께 개발의 전주기에 걸쳐 전략을 수립하고 이의 실효성 있는 적용이 요구됩니다 .

보안테스팅 전략수립을 위한 10 단계
  1. 애플리케이션 개발 프로젝트 초기에 위협 모델링을 수행
  2. 보안 관리의 기본적 요구사항을 정의
  3. 악용사례를 찾아냄
  4. 입력 확인을 위한 규칙을 정의
  5. 소스코드 분석기를 이용
  6. 소스코드를 기록하기 위해 개발자들을 가이드
  7. QA 주기 동안 공격을 자극하기 위한 동적 스캐너를 사용
  8. 배포환경에 대비하여 애플리케이션을 테스트
  9. 일반적 리질리언시 (resiliency: 탄성 ) 를 테스트
  10. 생산과정에서 정기적으로 애플리케이션을 재 테스트