Skip to main content

AI시스템 법적, 윤리적, 기술적 문제

· 4 min read

AI 시스템 문제 개념

AI 시스템 법적이슈 및 해결방안

AI 시스템 법적이슈

구분법적 이슈설명
개인정보 보호학습 데이터의 개인정보인공지능 모델 학습을 위한 데이터의 규정 준수 필요
데이터 사용 동의 및 권한데이터를 수집, 사용하기 위한 법적 요구사항 필요
개인정보 포함 결과물공개된 정보에 포함된 개인정보 활용의 법적 문제 가능
지식 재산권AI 학습 데이터의 활용학습 데이터의 저작권 침해 가능성
AI 생성물 저작권AI 생성 결과의 소유권 및 저작권 귀속 이슈
저작권 침해의 책임 소재AI 생성 결과물의 저작권 관련 분쟁 이슈
이미지 및 음원의 사이버 정의식별 가능한 신체특징 이미지개인의 초상에 대한 비허가 촬영 문제
딥페이크생성된 AI 콘텐츠의 진위 여부 판별 문제
음성 및 음악 저작권 침해음성 생성물을 통한 저작권 관련 침해 문제

AI 시스템 법적이슈 해결방안

구분해결방안설명
개인정보 보호 가이드라인데이터 제어설정데이터 제어 설정을 통한 채팅 기록 및 모델 학습 비활성화
개인정보 입력 금지민감정보(건강, 종교, 정치 성향 등) 입력 금지
보안 인증 회피올바른 절차 준수, 고객지원 센터를 통한 확인
생성형 AI 활용 가이드 및 제도생성형 AI 콘텐츠 명시생성형 AI 콘텐츠 출처 표기 가이드 마련
AI 활용 창작물 법적 근거AI 창작 콘텐츠에 대한 가이드라인 정의
AI 활용 가이드 및 위험관리AI 활용 시 재산 및 정서적 손해 최소화와 책임 보호
AI 기술 표준화AI 관리 표준화신뢰성, 거버넌스, 생애주기에 대한 표준 수립
AI 시스템 표준화AI 데이터, 컴퓨팅 등 표준화 및 지침
AI 응용서비스 표준화클라우드, 보안 서비스 등 다양한 서비스의 표준화

AI 시스템 윤리적이슈 및 해결방안

AI 시스템 윤리적이슈

구분윤리적 문제설명
진실성 및 정확성 이슈허위 조작정보 및 가짜 뉴스 피해퍼져있는 정보를 학습한 결과물 제시, 언론보도 및 소셜미디어로 인한 피해
편향 정보성차별, 인종차별 등 사회편견 내포 결과 제시
AI 포비아인공지능 기술에 대한 비합리적 두려움이나 강한 거부감
창의성 및 효율성 이슈AI 의존 증가검증 없는 생성형 AI 결과 활용, 일상생활, 의사결정, 업무 수행 등에 과도하게 의존
인지 능력 퇴행사고력, 문제 해결 능력 감소 및 약화
문화, 예술성 저하작품, 그림 및 악기 등의 예술 역량 저하
고도화된 AI 기술 기반 범죄딥페이크 범죄사진, 영상, 음성으로 제작된 가짜 콘텐츠로 명예훼손 또는 금전적 이익을 취하는 범죄
보이스피싱전화로 기관 또는 권위자를 사칭, 개인정보나 금전을 부정하게 취득하는 사기 수법
디지털공간 확산합성물에 의한 여론조작, 명예훼손의 위험

AI 시스템 윤리적이슈 해결방안

구분해결방안설명
이용자의 노력AI 부작용 진단서비스 제공 기업의 생성형 AI 부작용 진단 및 대응
윤리적 설계윤리 및 책임감 기반의 기술 설계
이용자보호 제도국민이 안전하게 AI 활용할 수 있도록 제도 보완
교육 및 가이드라인AI 위험 교육학교 및 기업 구성원을 대상으로 AI 위험에 대한 교육 수행
AI 가이드라인AI 기본 활용방향과 사용 시 지켜야 할 윤리 매뉴얼
윤리사용 공감대AI 올바른 활용에 대한 공감대 형성
윤리적 마인드이용자 스스로의 판단/검토를 통한 안전한 활용
책임감 있는 사용책임의 중요성윤리적 책임의 중요성에 대한 사전 인식
올바른 사용올바른 사용의 필요성과 공감대 및 역기능 예방

AI 시스템 기술적이슈 및 해결방안

AI 시스템 기술적이슈

구분기술적 문제설명
데이터의 한계학습 데이터 제약학습 데이터의 양, 질, 종류 제한으로 데이터 편향 및 부족 문제 발생
패턴 의존성AI 모델이 학습 데이터의 특정 패턴에 지나치게 의존하는 문제
학습 데이터 품질데이터의 불완전성으로 인한 신뢰성 및 편향성 문제
AI 모델의 한계설명 불가AI 모델의 결정 과정을 명확히 설명하기 어려운 문제 (블랙박스 문제)
할루시네이션AI가 사실이 아닌 그럴싸한 답변을 생성하여 혼란을 초래하는 문제
수동 조정 필요AI 학습 과정에서 사람의 개입이 필요한 과도한 조정 요구
불명확한 범위AI 활용의 효과와 업무 영역 식별 부족으로 발생하는 문제
AI 위험대응 문제성능 기준 및 목표 부족기대되는 결과물의 성능 기준이 명확하지 않음
AI 거버넌스 부족책임 기반의 의사결정 체계 부재 및 인공지능 활용에 대한 명확한 가이드라인 부족

AI 시스템 기술적이슈 해결방안

구분해결방안설명
AI 품질 관리XAI (설명 가능한 인공지능)인공지능 모델의 결정을 사람이 이해할 수 있도록 설명하는 기술
RAG (검색 증강 생성)답변 생성에 외부 리소스를 추가하는 기술
데이터 품질 관리데이터 품질에 따른 편견, 오류 확인 및 품질 보완 기술 적용
AI 기술 고도화AutoML머신러닝 모델 개발 과정을 자동화하는 기술
프롬프트 엔지니어링원하는 결과를 얻기 위해 최적의 질문과 명령을 설계하는 기술
병렬처리 및 분산 컴퓨팅대량 데이터 연산에 효율적인 하드웨어 사용 (TPU, NPU 등)
벤치마크 데이터이미지넷컴퓨터 비전 분야에서 널리 사용되는 대규모 이미지 데이터셋
GLUE자연어 처리 모델 성능 평가를 위한 벤치마크 데이터셋
KLUE한국어 이해 평가를 위한 벤치마크 데이터셋
KorQuAD한국어 기계 독해 데이터셋
AI 거버넌스 체계AI 거버넌스 의사결정 체계명확한 역할과 책임을 부여한 의사결정 체계 확립
자동화 대상 정의과정별 자동화를 통해 업무 프로세스 최적화
단계적 로드맵성과 도출 가능한 영역부터 시범 적용 후 점진적 확산

다크패턴

· 3 min read

다크패턴 개념

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

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

다크패턴 개념도

다크패턴 유형

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

다크패턴 대응방안

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

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

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

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

· 3 min read

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

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

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

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

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

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

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

클라우드 보안성 검토

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

클라우드 서비스 수준 협약

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

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

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

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

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

· 2 min read

PET 개념

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

PET 유형, 적용사례

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

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

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

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

PET 적용사례

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

소프트웨어 진흥법

· 2 min read

소프트웨어 진흥법 개념

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

소프트웨어 안전 확보 지침

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

소프트웨어 진흥 전략

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

참조

좋은 소프트웨어 특징

· One min read

좋은 소프트웨어의 개념

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

좋은 소프트웨어 개념도

좋은 소프트웨어 조건

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

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

· 3 min read

소프트웨어 테스트의 종류

소프트웨어 테스트 분류

Software testing classification

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

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

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

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

신뢰성 테스트

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

이식성 테스트

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

요구 공학

· 2 min read

요구공학 개념

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

요구공학 절차

요구공학 절차 개념도

요구공학 절차 상세

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

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

요구사항 명세서 개념

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

요구사항 명세서 기술 항목

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

오픈소스 라이센스

· 2 min read

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

  • 개방형 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 min read

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

소프트웨어 테스트 개념

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

소프트웨어 테스트 7원칙

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

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

명세기반 테스트

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

구조기반 테스트

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

경험기반 테스트

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