본문으로 건너뛰기

Full Stack JavaScript Developer | Half-time Open Sourcerer.

모든 저자 보기

ISO 29119

· 약 5분

ISO 29119 개념

  • SW개발 생명주기 전 과정에 걸쳐있는 테스팅 프로세스와 관련 산출물에 대한 표준
  • 최근 GDC를 활용한 글로벌 원격지 개발로 인해, 테스트 프로세스 정의와 테스트 문서화의 중요성 대두

ISO 29119 구성요소, 프로세스, 설계기법

ISO 29119 구성요소

  • 소프트웨어 테스팅 원리, 개요, 테스팅 프로세스, 테스팅 관련문서 템플릿, 테스팅 기법으로 구성

ISO 29119 테스팅 프로세스

  • 조직 테스트의 명세 개발 및 관리, 개별테스트 단계의 테스트 관리, 특정 테스트 단계 또는 테스트 유형 내에서 동적 테스팅을 수행 관리하는 프로세스 제공

ISO 29119 테스트 설계 기법

명세기반 테스트 설계기법과 품질 속성

기법품질 속성비고
경계값 분석기능 적합성완전성, 정확성, 적절성
-성능 효율성시간 반응성, 용량성
-사용성사용자 오류 방지성
-신뢰성결함허용성
-보안성기밀성, 무결성
원인결과그래프기능적합성완전성, 무결성, 적절성
-사용성사용자 오류 방지성
-호환성공존성
분류트리기능적합성완전성, 정확성, 적절성
-사용성사용자 오류 방지성
동등분할기능적합성완전성, 정확성, 적절성
-사용성사용자 오류 방지성
-신뢰성가용성

ISO 29119 관련 고려사항

  • 요구사항명세서 기반의 명세기반 테스트 계획과, 프로그램 사양서 기반의 구조기반 테스트 계획으로 소프트웨어 품질 제고

소프트웨어 안전관리

· 약 4분

소프트웨어 안전관리 개념

  • SW자체에 내포된 위험뿐 아니라 시스템 전체에 대한 위험요인을 고려하여 사람의 신체와 재산을 보호하는 관리 방법
  • 시스템 안정성, 신뢰성 보장, 오작동으로 인한 사고 예방

소프트웨어 안전진단 영역, 프레임워크, 동향

소프트웨어 안전진단 영역

안전 기능 충분성SW 품질 안정성기반 SW 안정성
시스템 잠재위험분석주요 기능 정상동작기반SW 지속 운영 진단
위험원 감지, 회피, 제거안전 관련기능 정상동작장애감지, 백업, 복구
안전기능마련 여부 진단정적분석 통한 잠재결함 진단성능, 다중화

소프트웨어 안전진단 프레임워크

소프트웨어 안전 동향

구분동향비고
국내정부주도 소프트웨어 안정성 강화 정책TTA, 국가기술 표준원 주도
-ISO26262 적용 확대-
국외유럽, 미국 기능 안전 표준 강화IEC 61508
-자율주행차 등 신기술 적용 확대ISO 26262

소프트웨어 안전, 보안, 품질 비교

구분안전보안품질
보호대상사람 신체, 생명, 재산시스템, 데이터 기밀성, 무결성, 가용성사용자 요구사항, 성능, 스펙
주요 활동위험 식별, 완화, 평가접근제어, 암호화, 인증, 인가요구사항 분석, 테스트, 검증
위험요인안전요구사항 누락, 설계 오류, 오구현접근제어 오류, 해킹, 제로데이공격기능 미구현, 요구 변경
위험결과사망, 부상, 재물 손실정보 유출, 손실, 제어권 상실시스템 미동작, 기능 오류, 사용자 불편
예상시스템안전필수시스템모든 SW모든 SW
예시항공관제, 열차제어, 자동차제어IDS, IPS, DDoS 대응DBMS, OS, 웹
표준IEC 61508, ISO 26262ISO 27000, ISO 15408ISO 25000, ISO 12207

소프트웨어 안전관리 원칙 GAMAB, ALARP 비교

구분GAMABALARP
목표기존 시스템 이상의 안전수준 유지합리적으로 실현 가능한 최소 위험 수준
적용범위철도,항공 등 고안전성 산업원자력, 화학, 섬유 등
접근방법기존시스템과 비교 평가비용대비 효과 분석
특징최소 안전 수준, 지속적 개선상위, 중간, 하위 위험도

인수테스트, 알파테스트, 베타테스트

· 약 4분

인수테스트의 개념

  • 시스템 인수를 위해 기능, 비기능적 요구사항을 사용자가 직접 테스트하여 개발이 완료되었음을 증명하는 테스트
  • 준수성 확인, 고객 피드백, 배포 가능성 평가

알파테스트, 베타테스트 개념도, 특징, 적용방안

알파테스트, 베타테스트 개념도

  • 소규모, 한정된 개발환경에서 고객 피드백을 반영하고, 최종 사용자의 사용경험 확보와 이해 향상

알파테스트, 베타테스트 특징

구분알파테스트베타테스트
환경개발환경사용자환경
목표결함발견, 부하검사, 신뢰성사용자제품평가, 공개테스트서비스
시점서비스 개발 완성 시점공개 서비스 발매 전 최종 심의
참가자개발자, 테스터, 선택된 사용자고객, 최종 사용자

알파테스트, 베사테스트 적용방안

구분알파테스트베타테스트
기능적합성요구 기능 검증, 주요 기능 확인실제 사용자 요구 충족, 기능의 실사용 평가
효율성코드 최적화, 성능문제 발견실제 사용 환경 내 성능테스트, 자원 사용 검토
사용성사용자 인터페이스 기본 검토, 개선실제 사용자 경험 수집, 만족도 평가
호환성다양한 내부시스템 및 환경과 호환성 테스트다양한 사용자 환경 및 플랫폼 호환성 테스트
신뢰성주요 결함, 버그 식별, 시스템 안정성 초기 검토장기간 사용 안정성 평가, 시스템 실패율 검증

인수테스트 고려사항

  • 실제 사용자 환경에서 보안성 검토 필요

성능테스트

· 약 3분

성능테스트의 개념

  • 시스템의 비기능 요구사항을 만족하는지 확인하기 위해 실제 환경과 비슷한 환경에서 수행하는 테스트
  • 시스템 안정성 확인, 사용자 경험 개선, 비용 절감, 확장성 검증

성능테스트 구성도, 구성요소, 주요 지표

성능테스트 구성도

  • 테스트 시나리오를 작성 후 부하생성, 모니터링 및 분석 후 시스템에 추가 반영

성능 테스트 구성요소

구분내용비고
부하 생성기시나리오를 기반으로 시스템에 부하를 발생시키는 도구JMeter, LoadRunner
모니터링, 분석 도구시스템 성능 지표 실시간 모니터링, 테스트 결과 분석, 성능 문제 식별New Relic, ELK Stack

성능 테스트 주요 지표

구분지표내용
테스트환경동시사용자성능테스트의 가상사용자 수
-활성사용자서버에 연결되어 요청을 처리 중인 사용자로 트랜잭션 발생 사용자
성능응답시간요청 후 응답이 완료되어 사용자 화면에 출력될 때까지 시간
-대기시간하나의 요청에 응답을 수신하고 다음 요청을 보낼 때까지의 시간
-TPS단위 시간 당 서버, DB에서 처리된 요청 수

동시사용자 계산

Little's Law

CU=λW CU = \lambda * W
  • 동시사용자 = TPS * (Response Time + Think Time)
  • 웹 시스템에선 동시사용자와 활성사용자 간 차이가 있으므로 TPS 가정 하에 활성 사용자 계산

페어 프로그래밍, 핑퐁 프로그래밍

· 약 4분

페어 프로그래밍 개념

  • XP 개발 방법론에서 개발자 고립과 낮은 생산성 문제를 해결하기 위해 페어프로그래밍 기법 등장, 애자일 방법론에서 TDD 기반의 핑퐁프로그래밍 기법으로 발전.
  • 오류에 빠른 대응 가능, 코드에 대한 책임 분담으로 실수 방지 가능

페어 프로그래밍, 핑퐁 프로그래밍의 개념도, 구성요소, 적용방안

페어 프로그래밍, 핑퐁 프로그래밍의 개념도

페어 프로그래밍, 핑퐁 프로그래밍 구성요소 비교

구분페어 프로그래밍핑퐁 프로그래밍
개념두 개발자가 한 컴퓨터에서 개발하는 프로그래밍 방식두 개발자가 번갈아가며 테스트와 코드 작성
역할드라이버, 네비게이터테스트 작성자, 코드 작성자
특징코드 품질 향상, 코드 리뷰TDD 촉진
장점오류 감소, 지식 공유, 생산성 향상테스트와 코드 작성의 연계
단점의사소통 비용 발생잦은 인터럽트 발생

페어 프로그래밍 적용방안

구분방안비고
숙련도가 다른 개발자시니어-주니어 페어로 네비게이터-드라이버 역할 수행주니어의 빠른 성장 기대
신기술 학습새로운 기술 적용시 여러 관점 고려 가능학습효과 극대화
문제 해결다양한 접근 방식으로 빠른 이슈 해결역할 교체

페어 프로그래밍시 고려사항

  • 서로 신뢰하고 존중하는 분위기가 선행되어야 페어 프로그래밍시 커뮤니케이션 비용 대비 생산성 효과 극대화

ISO/IEC Standards

· 약 3분

주요 ISO 표준

표준설명비고
ISO 7498OSI 7 Layer물데네전세표응
ISO 11898CAN, Controller Area Network노드, 컨트롤러, 트랜시버, 버스
ISO 12119테스트 품질요구사항제품설명서, 사용자문서, SW제품 및 데이터
ISO 12207SDLC기본, 지원, 조직 생명주기
ISO 14000환경경영시스템환경 경영 시스템, 환경 성과 평가, 환경 라벨링, 온실가스
ISO 14143FP기능점수, EI, EO, EQ, ILF, EIF
ISO 15504SPICE주요, 지원, 조직 프로세스
ISO 19770SAM소프트웨어 자산 관리, 라이선스 관리
ISO 20000ITSM서비스 관리체계 구축
ISO 22301BCMSBCP, RPO, RTO, MTTR, MTTF, MTBF, 가용성, 연속성
ISO 25000SQUARESW 품질 모델, 품질 측정, 품질 요구, 품질 평가, 기신사효유이호보, 효생안만
ISO 25029AI 품질제어가능성, 강건성, 기능적용성, 개입가능성, 투명성, 기능정확성
ISO 26262자동차 안전QM, ASIL A~D, AUTOSAR
ISO 29119테스트V&V, 테스트 프로세스, 문서화, 기법, 키워드주도 테스팅
ISO 31000위험관리식별, 분석, 평가, 대응, 회전감수
ISO 38500IT 거버넌스전략연계, 자원관리, 가치전달, 위험관리, 성과관리, 지휘/평가/감독/BP
ISO 42010아키텍처시스템/SW 아키텍처 설명, 뷰, 관점, 이해관계자
IEC 61508전기, 전자, 프로그램 가능한 전자시스템 기능안전SIL 1~4

ATAM, CBAM 비교

· 약 4분

SW아키텍처 평가모델의 개요

  • 시나리오 기반에서 품질속성을 평가하여 아키텍처 내부 리스크를 파악하고, 설계타협점을 찾는 ATAM 기법, 경제성까지 고려한 CBAM 평가기법으로 진화

ATAM, CBAM의 절차, 구성요소, 적용방안

ATAM, CBAM의 절차

  • 리스크를 고려한 설게 타협안 선택, 비용대비 편익이 높은 효율안 선택.

ATAM, CBAM의 구성요소

구분ATAMCBAM
초점아키텍처 품질비용, 이해관계자 이익
시점프로젝트 초기ATAM 수행 이후
평가요소품질속성, 시나리오비용, 편익, ROI
장점기존시스템 분석 용이비용, 일정, 경제성 파악
단점경제성 평가 미흡품질속성 평가 미흡

프로젝트별 적용방안

구분ATAMCBAM
대규모 시스템복잡한 아키텍처 품질속성 및 트레이드 오프 분석에 효과적높은 개발비용 예상시 투자 효율성 분석 용이
고가용성 시스템성능, 보안 등 핵심 품질 속성 확보 용이품질속성 확보를 위한 비용 효율적 아키텍처 수립
예산 제약 시스템제한된 예산 내에서 최적의 아키텍처 설계제한된 예산 내에서 최대 효과의 아키텍처 설계
  • 상호보완적인 관계로 ATAM과 CBAM을 함께 사용하여, 아키텍처 설계의 기술적, 경제적 측면을 고려한 최적의 의사결정 필요

네트워크 스위치

· 약 2분

스위치 개념

  • 여러 컴퓨터나 장치를 서로 연결하고 데이터 패킷을 올바른 목적지로 전달하고, 데이터를 효율적으로 전달하기 위해 트래픽을 관리하기 위한 장치
  • 효율적 데이터 전달, 브로드캐스팅 트래픽 감소, QoS 지원, 네트워크 확장성, 보안 강화

스위치 유형, L4-L7 스위치 비교, 알고리즘

스위치 유형

구분유형설명
L7 어플리케이션 계층L7 스위치콘텐츠 기반 라우팅, 고급 로드밸런싱
L4 전송 계층L4 스위치TCP/UDP 포트 기반 라우팅, 세션 처리
L3 네트워크 계층L3 스위치IP 주소 기반 패킷 전달
L2 데이터링크 계층L2 스위치MAC 주소 기반 프레임 전달

L4-L7 스위치 비교

구분L4 스위치L7 스위치
동작계층전송계층응용계층
기준TCP/UDP 포트어플리케이션 프로토콜
기능로드밸런싱컨텐츠 스위칭, 로드밸런싱, 가속
장점단순, 성능QoS, 보안, 트래픽 제어
단점컨텐츠 확인 불가느림, 복잡

스위치 라우팅 알고리즘

구분내용비고
Round Robin--
Least Connection--
Least Response Time--
Hash Based--

스위치 고려사항

  • 네트워크 규모와 트래픽에 따라 적절한 포트 수와 스위치 성능 선택 필요

양자암호통신

· 약 3분

양자암호통신의 개념

  • 양자역학의 원리를 이용하여 송신자, 수신자 간 비밀키를 안전하게 생성하고 분배하는 통신기술
  • RSA 기반 전자봉투 비밀키 교환 방식은 양자컴퓨터의 발달로 해독 가능성 존재, 양자 불확정성 원리로 도,감청시 키가 변형되므로 보안성 우수

양자암호통신의 구성도, 구성요소, 적용방안

양자암호통신의 구성도

양자암호통신의 구성요소

구분내용비고
양자키분배기(QKD)양자비트 생성 후 비밀키 교환, 양자비트 수신 후 비밀키 측정양자상태 유지, 측정 후 키 생성
양자 채널양자 비트를 전달하는 통신채널광섬유, 위성
기존 채널QKD 이후 암호문을 송수신하고 복호화하는 채널TLS 등 N/W 보안 고려

양자암호통신의 적용방안

구분내용비고
공공국가 기밀 통신높은 보안 수준 요구
-군사 통신-
금융금융 거래 보호비용 대비 효과 고려
-기업 비밀 문서 전송-
민간개인정보보호, IoT 보안프라이버시 보호

양자암호통신 고려사항

  • 기술 표준화 부재로 시스템 간 호환성을 고려한 운영비용 산정 필요

블록 암호화 알고리즘

· 약 3분

블록 암호화의 개념

  • 평문을 고정길이의 블록 단위로 나누어 각 블록마다 암호화하여, 병렬 암호화 처리가 가능한 대칭키 암호화 방식
  • 다양한 운영모드를 통한 암호화 요구사항 충족, 병렬 암호화 처리로 암복호화 성능 우수, 데이터 무결성, 기밀성 보장

블록암호화의 개념도, 주요 유형, 운영 모드

블록 암호화의 개념도

블록 암호화 주요 유형

구분유형내용
Feistal 방식DES56bit 키, 64bit 평문 블록 사용, 보안 취약성 존재
-LEA128bit 고속, 경량 환경 대응
-SEED128bit 평문, 국내 개발
SPN 방식AES128bit 평문, 미국 표준 알고리즘
-ARIA초경량, HW지원용 알고리즘

블록 암호화 운영모드 비교

구분ECBCBCCTR
초기화벡터불필요필요필요
오류전파미전파이후블록미전파
병렬처리암복호화복호화암복호화
복잡도낮음중간높음
  • ECB 모드는 Brute-Force 공격에 취약하므로 다른 모드 사용 권장

블록 암호화시 고려사항

  • 암호화 키를 주기적으로 변경하는 등의 키관리 조치 필요