본문으로 건너뛰기

Full Stack JavaScript Developer | Half-time Open Sourcerer.

모든 저자 보기

다크패턴

· 약 3분

다크패턴 개념

  • 기업의 이익을 목적으로 이용자를 속이기 위해 교묘하게 설계된 사용자 인터페이스 패턴
  • 온라인 시장 점유율 상승, 비대면 거래 확산, 기업 이익도모, 공정거래위원회 다크패턴 유형 정의

다크패턴 개념도, 유형, 대응방안

다크패턴 개념도

다크패턴 유형

구분유형설명
편취형숨은 결제무료에서 유료로 전환 시 별도 고지 없이 결제를 유도하는 행위
순차공개 가격책정초기 낮은 가격 표시 후 결제 시 추가 금액을 부과하는 행위
몰래 장바구니 추가소비자가 선택하지 않은 상품을 자동으로 추가하는 행위
거짓 할인할인 정보 조작으로 소비자를 유도하는 행위
거짓 추천허위 리뷰 조작으로 상품 구매를 유도하는 행위
유인 판매판매 불가능 상품을 광고하여 다른 상품 구매를 유도하는 행위
위장 광고광고임을 숨기고 콘텐츠처럼 보이게 제작된 광고 제공
오도형숙의식 질문긴 설명이나 과도한 정보를 제시하여 혼란을 유도하는 행위
잘못된 계층 구조불리한 옵션을 소비자가 선택하도록 구성하는 행위
특정 옵션의 사전 선택유리한 옵션을 미리 선택된 상태로 제공하는 행위
방해형취소·탈퇴 방해취소·탈퇴 과정을 복잡하게 하거나 제한하는 행위
숨겨진 정보결정을 위한 중요 정보를 숨기는 행위
가격 비교 방해상품 간 가격 비교를 어렵게 만드는 행위
압박형클릭 필요 옵션 유발불필요한 클릭을 유도하여 불리한 선택을 하게 만드는 행위
반복 간섭특정 행동을 반복적으로 강요하는 행위
감정적 언어사용감정을 자극하는 언어 표현을 통해 소비자 행동 압박
시간제한 알림특정시간/기간에만 할인된 가격으로 표시하여 소비자 의사결정 압박
낮은 재고 알림재고가 없거나 수요가 높다고 표시하여 소비자 으사결정 압박
다른 소비자 활동 알림최근 해당 제품을 보거나 구매한 소비자 수 표시하여 소비자 의사결정 압박

다크패턴 대응방안

구분대응방안설명
제도적 측면법 집행 강화표시광고법 및 전자상거래법 적용, Data Act, DSA, DMA 등의 규제 준수
제도개선가이드라인 제정 및 법 개정 추진
적합성평가지속 모니터링하여 디지털 공정성 적합성 평가 수행
쿠키배너 동의관리개인광고에 사용되는 쿠키배너의 동의관리 가이드라인 제정
소비자 측면캠페인 및 교육불공정 상거래 행위를 인지할 수 있도록 역량 강화 캠페인과 교육 실시
소비자 철회권일정 기간 내 이유 없이 계약을 취소할 수 있는 권리 강화
R&D 측면다크패턴 조사/분석문제되는 상술을 가장 많이 쓰는 사업자 조사 및 분석
사용자 중심 디자인 철학 강화혼란스럽거나 과도한 유도 없이 직관적으로 사용할 수 있는 디자인 적용
글로벌 UX 설계 가이드라인 개발국제적 수준으로 UX 표준화 및 다크패턴 방지 가이드라인 개발
기술적 측면인증기능 알고리즘다크패턴을 자동 감지하는 알고리즘 및 UI/UX 분석 도입
사용자 행동 추적사용자 행동 분석하여 피해 방지 및 효과 검증
사용자 피드백신고와 문제를 파악할 수 있는 피드백 기능 강화

다크패턴 방지를 위한 고려사항

  • 공정거래위원회 발간 온라인 다크패턴 자율관리 가이드라인 준수

공공부문 SaaS 이용 가이드라인

· 약 3분

공공부문 SaaS 이용 가이드라인 개요

  • 국가ㆍ공공기관에서 안전하고 효율적인 SaaS 이용 위한 공공부문 SaaS 이용 가이드라인 배포
  • 국가 클라우드 컴퓨팅 보안 가이드라인 기준에 SaaS 환경 추가 원칙을 확장

클라우드 서비스 위험관리 원칙 및 기준

클라우드 서비스 위험관리 원칙

구분원칙상세 내용
정책 측면공통 기본 원칙국가클라우드 컴퓨팅 보안 가이드라인 준수
도입 정보보호시스템 안전성 확인
인터넷·업무망 분리
공급망 관리
SaaS 환경 추가개발단계부터 보안 취약점의 원인 보안약점 배제
기술 측면기본 원칙인프라, 개발·운영 환경의 물리적 위치
보안성 확인
SaaS 개발·운영 환경
허가받은 외부 연동 서비스 연계
영역 분리
공통 기본 원칙이중화 및 백업체계 구축, 표준운영절차 수립
접근통제 및 격리수단 확보
중요 업무자료 암호화
보안관제
SaaS 환경 추가외부 공개용 SaaS 영역은 내부 업무용 SaaS 영역과 분리
SaaS 애플리케이션 보안성 강화 방안 마련

클라우드 서비스 위험관리 기준

분류세부 보안 기준적용범위
정책시스템 보호공통, IaaS
인적 관리공통
보안 검사IaaS
클라우드 인프라가상화 인프라공통, IaaS
보안관리공통, IaaS
가상환경 보안보안관리-SaaS App 개발SaaS
보안관리-개발운영 환경SaaS
악성코드 방지SaaS
접근통제공통
데이터관리공통, SaaS
암호화공통
인증 및 권한인증공통
권한공통
사고 및 장애 대응사고공통
장애공통
  • 모든 유형의 클라우드 컴퓨팅 서비스에 적용해야하는 공통 보안 기준, IaaS 및 SaaS환경에서 요구되는 추가 보안 기준 확장

클라우드 보안성 검토

  • 국가 클라우드 컴퓨팅 보안 가이드라인 참고, 국가 정보보안 기본지침에 따라 규모와 중요도를 고려하여 보안성 검토 실행/위임

클라우드 서비스 수준 협약

클라우드 서비스 수준 협약 개념도

  • 클라우드 제공자에게 서비스 수준 협약서 요구 내용에 대해 정기/수시 확인, 필요시 개선 요구

클라우드 서비스 수준 협약 상세 설명

구분기준상세 설명
시스템 안정성 측면가용성가용률 측정을 위한 기능 보유 및 유지 능력
신뢰성서비스 회복시간, 백업 주기, 백업 준수율
서비스 지속성재무 상태 및 기술 보증, 서비스 추진 전략
성능 관리 측면응답성응답시간 측정을 위한 기능 보유 및 유지 능력
확장성이용자 요구에 따른 자원 양 줄이거나 늘리는 기능
고객 지원 측면서비스 지원단말, 운영체계 등 이용자 서비스 지원 체계
고객 대응고객 대응 및 고객 불만 수집 체계 및 처리 절차

PET, 개인정보보호 강화기술

· 약 2분

PET 개념

  • 특정 개인정보 또는 데이터 보호 기능을 달성하거나 개인 또는 자연인 그룹의 개인정보를 위협으로 부터 보호하기 위한 기술 및 프로세스
  • AI 개인정보 학습/유출, 클라우드 등 공유 서버 환경 발달, 이동형 영상정보처리기기의 확산

PET 유형, 적용사례

개인정보 처리 기법 측면의 개인정보보호 강화기술

구분기술설명
난독화차분 프라이버시개인과 연결된 데이터에 무작위성을 부여하거나 노이즈를 적용하여 재식별 가능성을 낮춤
합성 데이터 생성(SDG)기존 지식을 사용하여 완전한 새로운 데이터를 생성
영지식 증명정보를 노출하지 않고 진실 여부 검증
암호화동형 암호화(HE)일반 텍스트를 공개하지 않고 암호화된 데이터의 연산 수행
신원 기반 암호화(IBE)전통적 공개키 대신 개인이 생성한 발신자에서 수신자 방향의 메시지에 암호화 적용
안전한 다자 연산(SMPC)분산 컴퓨팅을 수행하면서 정확성과 최소한의 입력 및 출력 학습을 우선시하여 연산 과정 보호
신뢰받는 실행 환경(TEE)데이터의 기밀성을 훼손하지 않고 암호화된 키와 민감 데이터를 안전하게 접근하는 기술

개인정보 처리 환경 측면의 개인정보보호 강화기술

구분기술특징
학습 및 분석연합 학습개별 엔드포인트로 기계 학습 모델 훈련, 요약 데이터만 중앙 데이터 저장소에 전송할 수 있도록 허용
분산 분석프라이버시를 보호하는 기계 학습
데이터 책임도구책임 시스템데이터에 접근할 수 있는 시기에 대한 규칙 설정 및 집행
개인정보 관리시스템정보주체에게 자신의 개인정보에 대한 통제권 제공

PET 적용사례

구분PET 기술적용사례
애플차분 프라이버시 (Differential Privacy)메시지 앱, 검색어 추천 시스템에 적용하여 개인 정보 보호 강화
구글연합 학습 (Federated Learning)키보드 앱에서 개인정보 전송 기능에 적용, 중앙 서버에 데이터 전송 없이 학습
메타다자간 계산 (Multi-Party Computation, MPC)광고 및 마케팅에 활용할 개인정보 수집, 여러 당사자가 협력하여 데이터 분석
통계청안전한 다자 연산 (Secure Multi-Party Computation, SMPC)개인정보 보호를 위한 데이터 허브 플랫폼 개발

소프트웨어 진흥법

· 약 2분

소프트웨어 진흥법 개념

  • 국가 전반의 소프트웨어 역량을 강화하고 소프트웨어산업 발전의 기반을 조성함으로써 국가경쟁력의 확보, 국민생활의 향상 및 국민경제의 건전하고 지속적인 발전에 기여

소프트웨어 안전 확보 지침

구분지침세부 내용
위험 분석소프트웨어 안전 위험 분석- 소프트웨어의 잠재적 위험요소 식별
- 시스템 동작 시 발생 가능한 오류와 영향을 분석
- 위험 완화를 위한 우선순위 설정
설계 및 구현안전 설계 및 구현- 안전 관련 기능 설계 (예: 결함 허용, 오류 복구)
- 코드의 안전성 확보를 위한 코딩 표준 준수
- 위험 상황 식별 및 대응 로직 포함
검증안전 검증 및 테스트- 안전 요구사항 충족 여부 검증
- 단위 테스트, 통합 테스트, 시스템 테스트를 통해 오류 검출
- 안전 관련 기능 시험 및 검토
운영 관리운영 환경에서의 안전 확보- 운영환경 변경 시 안전 영향 분석
- 장애 발생 대비 안전 대책 수립
- 유지보수 중 발생 가능한 위험 관리
준수 및 개선안전 준수와 지속적 개선- 국제표준과 안전 지침 준수
- 안전사고 예방을 위한 프로세스 개선
- 피드백을 반영하여 안전성 강화

소프트웨어 진흥 전략

  • 디지털 시대를 선도, 글로벌 SW 경쟁력 강화, SW 활용 문화 확대를 위해 7가지 분야에서 혁신 필요

참조

좋은 소프트웨어 특징

· 약 1분

좋은 소프트웨어의 개념

  • SW 발주자, 개발자, 사용자 모두에게 이점을 제공하는 소프트웨어로서 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성, 호환성, 보안성 등 소프트웨어 품질특성을 만족하는 소프트웨어
  • ISO 25010 국제 표준 기반 특성 정의 및 품질 확보

좋은 소프트웨어 개념도

좋은 소프트웨어 조건

구분특징설명
기본 요구정확성 (Correctness)기능이 요구사항과 일치하며 표준에 적합
신뢰성 (Reliability)오류 없이 일정 기간 안정적으로 작동
안정성과 성능강인성 (Robustness)예상하지 못한 상황에서도 정상 작동
성능 (Performance)처리 속도와 자원 활용 효율성
사용자 경험사용 용이성 (Usability)사용자 친화적이고 쉽게 사용할 수 있음
유지 및 확장성유지보수성 (Maintainability)결함 수정 및 기능 확장이 용이
재사용성 (Reusability)기존 소프트웨어를 재사용 가능

신뢰성 테스트, 이식성 테스트

· 약 3분

소프트웨어 테스트의 종류

소프트웨어 테스트 분류

Software testing classification

  • 소프트웨어 테스트는 테스트 레벨, 테스트 유형, 테스트 설계 기법에 따라 분류

소프트웨어 테스트 분류 상세설명

분류테스트 종류설명
테스트 레벨컴포넌트/단위 테스트각각의 컴포넌트를 테스트
통합 테스트컴포넌트 간의 인터페이스 테스트
시스템 테스트전체 시스템의 목적 만족 여부 테스트
인수 테스트사용자의 요구사항 만족 여부 테스트
테스트 설계명세 기반 테스트(BlackBox)명세를 바탕으로 테스트케이스 생성
구조 기반 테스트(WhiteBox)프로그램 코드를 기반으로 테스트케이스 생성
경험 기반 테스트테스트의 경험을 기반으로 테스트케이스 생성
정적테스트리뷰산출물 검토, 프로젝트 진행사항 점검
정적 분석자동화된 도구로 결함을 검출 및 점검
테스트 유형기능 테스트사용자의 요구사항 충족 여부 검출
비기능테스트기능 적합성 테스트사용자의 요구사항 만족 기능 제공 여부 테스트
성능 효율성 테스트시스템의 응답시간/처리량 테스트
호환성 테스트다른 시스템과의 상호 연동성/공존성 테스트
보안성 테스트시스템의 보안성 점검을 위한 능동 테스트
사용성 테스트사용자가 시스템을 효율적으로 용이성 테스트
유지보수성 테스트규정된 조건/기간에 오동작 없이 수행능력 테스트
이식성 테스트다양한 환경에서 운영가능 여부 테스트

신뢰성 테스트, 이식성 테스트

신뢰성 테스트

  • 소프트웨어가 정해진 조건 하에서 일정 기간동안 정상적으로 작동하는지를 확인하는 테스트
분류종류설명
목적오류 및 결함 발견장시간 사용 시 발생할 수 있는 잠재적인 오류와 결함을 조기에 발견하여 수정
시스템 안정성 보장다양한 환경과 조건에서 시스템이 안정적으로 작동하는지 확인하여 신뢰성을 보장
품질 향상신뢰성 테스트를 통해 발견된 문제를 개선함으로써 소프트웨어 품질을 높이고 사용자 만족도 향상
종류부하 테스트 (Load Testing)시스템에 예상되는 최대 부하를 가하여 성능과 안정성 확인
스트레스 테스트 (Stress Testing)시스템의 한계를 넘는 부하를 가하여 얼마나 잘 버티는지, 실패 시 어떻게 복구되는지 평가
지속적 테스트 (Soak Testing)장시간동안 시스템을 가동하여 장기적인 안정성과 메모리 누수 등의 문제를 발견
절차계획 수립테스트 목적, 범위, 방법, 성공 기준 정의
환경 구성테스트 환경과 유사한 테스트 환경 구성
시나리오 작성다양한 시나리오를 통해 시스템의 신뢰성 평가
실행계획된 시나리오에 따라 테스트 수행
결과 분석 및 보고결과 분석을 통해 문제를 발견하고 해결 방안 제시

이식성 테스트

  • 소프트웨어가 다양한 환경에서 동일하게 작동하는지 확인하는 테스트
분류항목설명
목적호환성 확인소프트웨어가 다양한 플랫폼과 환경에서 호환성을 유지하도록 보장
사용자 경험 일관성 유지여러 환경에서 동일한 사용자 경험을 제공하여 사용자의 만족도 향상
시장 범위 확대다양한 환경에서 작동하는 소프트웨어를 통해 더 넓은 시장에 접근성 보장
종류하드웨어 독립성 테스트다양한 하드웨어 환경에서 소프트웨어가 정상적으로 작동하는지 확인
운영체제 독립성 테스트서로 다른 운영 체제에서 소프트웨어의 호환성 평가
브라우저 독립성 테스트웹 애플리케이션의 다양한 브라우저에서 동일한 기능이 작동하는지 확인
언어 및 지역 독립성 테스트다국어 지원 소프트웨어의 다양한 언어 및 지역 설정에 서서히 작동하는지 평가
고려 사항테스트 환경 구축의 어려움다양한 플랫폼과 환경을 모두 구성하는 난이도 증가
테스트 시간 및 비용시간과 비용이 많이 소요
복잡성 증가다양한 테스트 케이스와 시나리오를 구성하는 과정에서 복잡성이 증가

요구 공학

· 약 2분

요구공학 개념

  • 시스템의 개발, 변경의 목적(What)을 식별하기 위해 이해관계자들의 요구를 이해 및 조정하여 체계적으로 수집, 분석, 명세화, 확인하는 공정 또는 학문
  • 비지니스 연속성, 확장성 / 비용절감, 효율성 / 기능 구현 완정성, 오류율 감소 / 조직구성원 이해관계자 만족도, 이해도 증가, 생산성 향상

요구공학 절차

요구공학 절차 개념도

요구공학 절차 상세

구분프로세스설명
요구사항 개발요구사항 추출요구사항 식별, 분류 및 문서화
요구사항 분석요구사항 파악 및 도출 단계
요구사항 명세요구사항 명세서 작성 및 식별(기능/비기능)
요구사항 검증명세서의 정확성 및 구현 가능성 검토
요구사항 관리요구사항 협상구현 가능한 기능 협상
요구사항 기준선공식 검토된 요구사항 명세서 (Baseline)
요구사항 변경관리기준선 기반의 변경 통제
요구사항 확인 및 검증시스템이 요구사항에 부합하는지 확인

요구사항 명세서 개념 및 기술 항목

요구사항 명세서 개념

  • SW를 분석, 설계, 구현, 유지하는 단계에서 검토, 평가, 승인의 기준이 되는 문서
  • SW 요구사항 명세를 결정하기 위해 위해 ISO 21948, IEEE 830 표준 참조/반영

요구사항 명세서 기술 항목

구분항목설명
개요범위명세서가 다루는 시스템의 요구사항에 대한 범위를 기술
목적명세서의 작성 목적을 기술
시스템 개요시스템 전반적인 내용을 요약하여 기술
일반 제약사항다른 표준이나 하드웨어의 제한으로 인해 적용되는 제한사항에 대하여 기술
기능적 요구사항기능요구사항소프트웨어의 입력 처리와 출력을 생성하는 처리 과정에서 발생할 수 있는 기본적인 동작에 대하여 기술
외부 인터페이스 요구사항모든 소프트웨어 시스템으로의 입력과 출력에 대한 요구사항을 상세히 기술
기타 요구 및 제약 사항성능 요구사항소프트웨어 전체적으로 사람과의 상호작용 혹은 소프트웨어에서 확인할 수 있는 정적인 동작인 수치적 요구사항을 기술
HW 요구 사항기억 장치 규모, 통신 수요 등과 같은 HW 요구 사항 기술
논리적 DB 요구사항데이터베이스에서 사용될 정보를 위한 논리적 요구사항에 대하여 기술
소프트웨어 시스템 속성신뢰도, 사용가능성, 보안, 유지보수성, 이식성 등을 기술
인수 조건기능 및 성능 테스트최종 개발 산출물에 대해 수용 확인을 위한 테스트 항목

오픈소스 라이센스

· 약 2분

오픈소스 라이센스 정책변경 개요

  • 개방형 S/W 라이선스는 사용자가 자유롭게 SW 를 사용, 수정, 배포 가능하여 제약이 적은 오픈소스 라이선스
  • 페쇄형 S/W 라이선스는 SW 사용, 수정, 배포가 엄격히 제한되어 저작권자 저작물 독점권리 보장가능 라이선스

오픈소스 라이센스 정책변경 배경

환경 및 경제 측면

구분배경설명
환경적 측면클라우드 환경확산클라우드 컴퓨팅 대중화로 CSP가 오픈소스를 상업적으로 이용
오픈소스 개발자들은 대형 CSP 업체에 의한 상업적 도구 전략
기술의 진보와 SW 복잡성 증가현재 SW의 복잡성 증가는 단순한 자유로운 사용 장려 제한
복잡한 SW 유저비용 관리로 폐쇄형으로 지속적 유지보수
경제적 측면수익 창출모델 변화오픈소스 SW 기반 비즈니스 모델 확산
폐쇄형 라이선스를 통한 라이선스 비용부과로 수익창출 가능
대기업의 SW 독점 방지대형 IT 기업의 오픈소스 SW로 제품개발/이익독점 방지
중소 IT 기업의 공정한 경쟁 환경 조성 가능

기술 및 운영 측면

구분배경설명
기술적 측면보안 및 품질 유지개방형 라이선스는 누구나 사용 가능하나 보안 및 품질 이슈
폐쇄형으로 개발자 코드 품질 유지 및 보안 허점 감소 가능
특정 플랫폼 종속성 방지오픈소스가 과도하게 사용돼 해당 기업에 종속 우려
라이선스의 제한으로 지나친 기술적 종속 방지 가능
운영적 측면SW 유지관리 비용 확보 가능대규모 오픈소스 프로젝트는 지속적 유지관리 필요
폐쇄형 라이선스를 통해 유지관리 비용 충당 가능
사용 조건 관리오픈소스 SW 상업적 제품을 개발조건 관리 곤란
폐쇄형 통해 사용제한 및 통제가 가능

폐쇄형 라이센스로의 전환 영향

구분사례영향
오픈소스 커뮤니티 분열Redis의 라이선스 변경Redis 일부 멤버들은 새로운 라이선스가 오픈소스 정신을 위배한다고 비판, 포크된 Redis를 배포하는 커뮤니티 활동 증가
KeyDB로 포크 프로젝트 진행
ElasticSearch 라이선스 변경AWS 등 클라우드 서비스 업체가 ElasticSearch 라이선스를 변경하며 관련 서비스에서 오픈소스 독점화 우려
Open Search로 포크 프로젝트 진행
기업의 오픈소스 활용 정책 변화Oracle의 MySQL 인수 후 라이선스 변경MySQL의 오픈소스 라이선스 활용에 제한이 발생하며, 기업형 라이선스 비용이 증가
MariaDB의 활용 증가
MongoDB 라이선스 변경클라우드 네이티브 환경에서 MongoDB 사용이 제한되며, 관련 서비스를 제한적으로 사용하도록 정책 변경
FerretDB로 포크 프로젝트 진행

소프트웨어 테스트

· 약 3분

소프트웨어 테스트 개념 및 원칙

소프트웨어 테스트 개념

  • 소프트웨어가 요구사항을 충족하고 프로덕트의 신뢰성 향상을 위해 결함 없이 안정적으로 동작하는지 검증하는 과정

소프트웨어 테스트 7원칙

원칙내용비고
결함 발견결함이 있음을 입증하는 활동, SW는 시간이 지나면 언제든 결함 발생 가능성이 있음테스트의 역할
완벽한 테스트 불가모든 가능한 조합을 테스트하는 것은 현실적 불가능자원의 한계
초기에 테스트 시작개발 초기에 결함발견 중요, 파레토 법칙 적용품질비용 감소
결함 집중동일 테스트케이스 반복 시 신규 결함발견 능력 감소TC 정기적 개선
정황 의존성테스트 방법/접근은 소프트웨어 성격에 따라 차별화 적용외부요소 반영
오류 부재 궤변결함이 없더라도 요구사항 미충족시 실패요구사항 충족

명세기반 테스트, 구조기반 테스트, 경험기반 테스트

명세기반 테스트

기법개념도설명
동등 클래스 분할데이터 구간별 대표 값을 도출하여 테스트하는 방법
다양한 입력 조건을 갖춘 테스트 케이스의 유형들을 분할
경계값분석경계값 주변에서 결함이 많은 원리 이용
유효, 비유효 경계값 고려한 TC 설계
경험적, 결함발견율 높음
의사결정 테이블조건에 따른 Y/N 조합으로 TC 작성
조건과 상황 기반
상태전이상태전이 다이어그램 구성하여 상태 변화요소들을 조합하여 TC 작성
임베디드 시스템에서 주로 활용
유스케이스유스케이스 명세서를 활용한 비지니스 시나리오 테스트
컴포넌트 레벨, 시스템 레벨 유스케이스 테스팅
분류 트리SW 일부/전체를 트리구조로 분석/표현하여 TC 설계
테스트 가시화로 중복/누락 회피
페어와이즈 조합대부분 결함이 2개 이상 요소의 조합으로 이뤄져있기에 상호작용조합으로 TC 작성
경험적 의미 조합
오류예측기법각 테스트 기법이 놓치기 쉬운 오류들을 경험적으로 찾아 검증
Ad-hoc 테스팅

구조기반 테스트

기법설명비고
제어구조프로그램 논리 복잡도 기반 TC 설계 기법논리 복잡도, 흐름 제어
루프 테스트루프 구조에 한하여 실시하는 기법, 초기화, 인덱싱, 루프 경계선 결함 발견 목적루프 구조, 초기화, 경계값
구문 커버리지모든 문장이 최소 한 번은 실행될 수 있는 입력 데이터를 테스트 데이터로 선정
프로그램 내 모든 구문 보장
모든 구문, 실행 여부
결정 커버리지전체 결정문이 적어도 한 번은 참/거짓을 반환하도록 수행결정문, 조건 참/거짓
조건 커버리지결정 명령문 내 각 조건이 적어도 한 번은 참/거짓을 반환하도록 수행개별 조건, 참/거짓
조건/결정 커버리지전체 조건식뿐 아니라 개별 조건식도 참/거짓을 한 번 수행전체 조건식, 개별 조건식
변경조건/결정 커버리지각 개별 조건식이 다른 개별 조건식에 영향받지 않고 전체 조건식에 독립적으로 영향을 주게 수행독립 조건, 조건 영향
다중조건/결정 커버리지결정 포인트 내 있는 모든 개별 조건의 모든 조합을 고려모든 조건 조합

경험기반 테스트

기법개념도특징
오류 추정가능한 결함을 나열하고 결함이나 오류를 추정에 의해 검출/수정
탐색적 기법학습과 테스트 디자인, 테스트 수행을 동시에하는 휴리스틱 테스트 기법
체크리스트테스트/평가해야할 내용과 경험을 분류하여 나열해 놓은 체크리스트 기반 테스트 수행
분류 트리흐름을 트리구조로 시각화하여 테스트 케이스 설계

배포 전략, 테스트 전략

· 약 1분

성공적인 릴리즈를 위한 체크포인트

배포전략 및 테스트전략 유형

배포전략

구분개념도설명
롤링업데이트서버/파드 1개씩 교체하여 배포
관리 및 롤백 용이
서버 처리용량 고려 필요
블루그린배포구버전 블루, 신버전 그린, 신버전을 모두 배포 후 모든 트래픽을 스위칭
운영 환경에 영향 없음, 실서비스 환경으로 신버전 테스트
시스템 자원 두 배 필요
카나리배포트래픽 제어를 통해 일부 사용자만 신규 서버로 접속, 모니터링 디버깅수행 후 전체 스위칭
리스크 감지 용이, A/B테스트 활용
네트워크 트래픽 제어 부담

테스트전략

구분개념도설명
카나리테스트변경사항을 부분적으로 출시 후 기존과 비교하여 평가
실시간 프로덕션 트래픽 테스트, 리전별 테스트
느린 릴리즈, 모니터링 복잡성, 이전버전 호환성 고려
A/B테스트일부 사용자를 새 기능으로 라우팅
애플리케이션 기능 효과 측정 용이
복잡한 설정, 편향된 샘플링
쉐도우테스트트래픽을 미러링하여 신버전으로 전달하여 함께 실행
제로 프로덕션 영향, 배포 위험 감소
비용 및 운영 오버헤드

배포 및 테스트 위험을 줄이기 위한 고려사항

  • 이전 버전과의 호환성
  • 배포 전, 중, 후 모든 단계에서의 지속적 테스트(CT)
  • IaC를 통한 자동화된 인프라 관리