본문으로 건너뛰기

Full Stack JavaScript Developer | Half-time Open Sourcerer.

모든 저자 보기

요구 공학

· 약 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를 통한 자동화된 인프라 관리

정보은닉

· 약 1분

정보은닉 개념

  • 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 객체지향 프로그래밍의 특성
  • 외/내부 구현을 나눠 복잡성 제거, 외부로부터의 데이터 보호

정보은닉 개념도, 접근제어자 유형, 예시

정보은닉 개념도

  • 접근제어자를 사용하여 외부객체로부터 데이터 접근 수준 제어

접근제어자 유형

구분유형상세설명
클래스default동일 패키지 내 클래스에게 접근 허용
public모든 클래스에서 접근 허용
속성/메소드private비공개, 클래스 내 멤버만 접근 허용
default동일 패키지 내 클래스일 경우 접근 허용
protected동일 패키지 또는 상속받은 자식 클래스의 경우 접근 허용
public공개, 모든 클래스에서 접근 허용

형상관리, 기준선

· 약 2분

형상관리의 개념

  • 형상 항목을 식별하고 문서화, 변경 제어, 변경 처리 상태를 기록하고 명시된 요구사항에 부합하는지 검증하는 기술적이고 관리적인 감독, 감시 활동
  • 소프트웨어 생명주기 단계별로 기능적, 분배적, 설계 등 베이스라인이 구분되어 관리

형상관리 기준선 개념, 구성요소

형상관리 기준선 개념

  • 대상 시스템/제품에 대한 기술적인 통제를 하게 되는 시점 또는 그 시점의 기준문서로 형상관리 프로세스의 기준으로 활용

형상관리 기준선 구성요소

기준선시점형상관리 항목
기능적 기준선사용자 요구 기능이 정의되는 시점 분배적 기준선개발 계획서
분배적 기준선요구 기능이 서브시스템으로 분할되는 시점요구사항 정의서
설계 기준선설계 사양이 완성되는 시점 시험 기준선ERD, UML
테스트 기준선테스트를 위한 준비 시점실행 코드
제품 기준선통합, 기능, 성능 등 시험 완료 시점 운용 기준선테스트 결과서
운용 기준선개발 완료 후 운영 이관 시점 형상 관리 항목사용자/운영자 매뉴얼

컨피덴셜 컴퓨팅

· 약 2분

컨피덴셜 컴퓨팅 개념

  • 데이터 보호와 개인 정보 보안에 중점을 둔 컴퓨팅 환경을 제공하는 기술로 격리, 접근통제, 암호화, 키 관리 기술을 하드웨어로 구현하여 소프트웨어보다 더 강력한 통제 보장
  • 클라우드 환경에서 데이터 유출 및 무단 접근 방지, 클라우드 운영자나 제3자에 대한 완전 신뢰 없이 데이터 보호 가능, 기밀성 유지

컨피덴셜 컴퓨팅 구성도, 구성요소, 적용방안

컨피덴셜 컴퓨팅 구성도

컨피덴셜 컴퓨팅 구성요소

구분내용비고
신뢰 실행 환경하드웨어 기반 격리로 민감 데이터 보호 및 외부 접근 차단Intel SGX, AMD SEV 등
실행 증명실행 중인 코드 무결성을 검증하여 신뢰성을 보장원격 검증, 내장형 시스템
주변 장치GPU, FPGA 등 신뢰 가능한 컴퓨팅 환경 확장보안 기능 통합, 주변 장치 비신뢰
운영 체제TEE 기반 보안 운영체제를 통해 응용 프로그램 실행사용자 친화적 API 지원
응용 프로그램기밀성을 보장하며 연산 수행TPM 활용

컨피덴셜 컴퓨팅 적용방안

구분이슈적용방안
신뢰 실행 환경부채널 분석공격, 성능 저하, 수학적 모델 부재관련 방어기법 연구, 증명가능한 TEE 개발
실행 증명공개된 표준 프로토콜 부재업계 표준 수립
주변 장치디스크 저장 데이터에 대한 비신뢰 OS의 접근가상머신 단위 격리
운영 체제암복호화로 인한 성능 하락TPM 가상화

컨피덴셜 컴퓨팅 주요 고려사항

  • RISC-V와 같은 오픈소스 CPU 설계 생태계의 확장으로 인해 컨피덴셜 컴퓨팅에 대한 국내 연구와 생태계 구축

참조

RIG, 검색삽입생성

· 약 2분

RIG 개념

  • LLM이 답변을 생성하는 과정에서 실시간으로 외부 데이터베이스에서 검색하여 답변하는 기술
  • 환각현상 완화, 실시간 정보 활용, 복잡한 응답 처리

RIG 구성도, 작동방식, 적용방안

RIG 구성도

RIG 작동방식

단계내용특징
질의 분석사용자의 입력을 분석하여 필요한 정보를 파악자연어 처리 기술 활용
실시간 검색분석된 정보를 바탕으로 외부 데이터베이스에 질의 수행실시간 데이터 반영
응답 생성검색된 데이터를 모델의 학습된 지식과 결합하여 최종 응답 생성검색과 생성을 통합하여 정확도 향상

RIG 적용방안

구분적용 사례효과
의료최신 의료 연구 및 논문 데이터를 검색해 진단 및 치료법 제공신뢰할 수 있는 근거 기반 진료
법률판례나 법률 텍스트를 검색하여 법적 의견 제시정확한 법적 해석 제공
고객 서비스제품 매뉴얼, FAQ 데이터베이스를 기반으로 고객 질문에 답변고객 만족도와 문제 해결 속도 향상
금융 분석실시간 시장 데이터를 활용한 투자 전략 제안의사결정 지원 및 위험 관리

RIG와 RAG 비교

구분RAGRIG
개념외부 데이터를 미리 검색하여 프롬프트에 추가 후 응답 생성응답 생성 도중 필요한 데이터를 실시간으로 검색하고 통합
작동 방식검색 → 프롬프트 보강 → 응답 생성질의 분석실시간 검색 → 응답 생성
장점대규모 데이터 활용 가능, 사전 준비된 정보로 효율적 처리최신 데이터 반영, 실시간 정보로 동적이고 정확한 응답 제공
단점오래된 데이터 사용 가능성, 프롬프트 길이 증가쿼리 작성 및 추가 학습 필요, 처리 속도 저하 가능
적용 분야일반 Q&A 시스템, 대규모 문서 기반 분석실시간 정보가 중요한 대화형 AI, 복잡한 문제 해결

RIG 적용시 주요 고려사항

  • 외부 데이터베이스 품질 관리: 신뢰할 수 있는 데이터 소스를 확보하고 정기적으로 갱신
  • 보안 및 프라이버시: 민감한 정보가 외부로 노출되지 않도록 암호화 및 접근 제어 시스템 적용
  • 처리 속도 최적화: 실시간 검색 과정에서 발생할 수 있는 지연 문제를 해결하기 위한 최적화, 캐싱

AI 프라이버시 리스크 관리 모델

· 약 2분

AI PRM 개념

  • AI 모델/시스템을 개발/제공할 때 프라이버시 리스크를 체계적으로 관리하기 위한 정부 차원의 모델
  • 대규모 데이터 처리와 개인 정보 사용으로 인한 프라이버시 리스크, 적법한 데이터 활용, 권리 침해 방지, 투명성/안전성 확보

AI PRM 리스크 관리절차, 유형, 경감방안

AI PRM 리스크 관리절차

  • AI 유형/용례 파악: AI 모델/시스템의 목적, 데이터 맥락 파악
  • 리스크 식별: AI 모델/시스템의 유형/용례에 따라 발생 리스크 식별
  • 리스크 측정: 발생확률, 중대성, 수용가능성, 우선순위 파악
  • 리스크 경감 방안 검토/도입: 관리적/기술적 방안 검토 및 실행

AI PRM 리스크 유형

구분일반 리스크프라이버시 리스크
기획/개발 단계저작권, 개인정보, DB권 등 권리침해적법하지 않은 학습데이터 수집 이용
AI 학습데이터의 부적절한 보관/관리
서비스 제공 단계AI 합성콘텐츠 오용, 권치 침해학습 데이터 암기 및 개인정보 노출
편향, 차별, 양극화자동화된 결정으로 인한 정보주체 권리 약화, 민감정보 추론
운영/유지보수 단계업데이트 및 추가 학습으로 인한 리스크 누적개인정보 보안 취약점, 데이터 이동 시 불법적 이용

AI PRM 리스크 경감방안

구분방안예시
관리적AI 시스템 기획 단계에서 개인정보의 목적·범위·처리 기준 명확화개인정보 처리 방침 공개
데이터 수집 출처·이력 관리데이터 수집·이용 기준 수립
조직 내 프라이버시 리스크 관리 정책·절차 수립리스크 관리 절차 문서화
지속적 평가·개선정기적 내부 감사
기술적데이터 최소화 및 비식별화 처리차분 프라이버시
프라이버시 향상 기술(PET) 적용가명처리, 익명화
암기 방지 필터링 기술 적용Presidio, KoELECTRA 필터링
생성형 AI의 악의적 콘텐츠 방지합성미디어 도용 방지 기술
조직적CPO 역할 강화 및 책임 명확화CPO 책임 범위 확대
AI 가치망 내 참여자 간 협력 체계 구축계약 기반 협력 체계 수립
외부 피드백 및 리스크 모니터링 시스템 도입프라이버시 영향 평가 수행

AI PRM 추가적인 고려사항

  • PbD를 적용하여 AI의 설계 단계부터 프라이버시와 보안 고려
  • GDPR, CCPA 등 개인정보 보호 규정을 철저히 준수

참조

N²SF, 국가 네트워크 보안 프레임워크

· 약 2분

N²SF 개념

  • 국가 보안체계를 망분리 하지 않아도 보안성을 확보하는 것을 목표로 국가 및 공공기관의 정보보안 강화를 위해 도입된 신규 보안 프레임워크
  • 기존 망분리 정책의 클라우드, AI 등 신기술과 원격 근무 환경에서의 비효율, 제약 해결, 보안정책 패러다임 전환 / 신기술 융합 강화, 스마트 업무환경 조성 / 공공데이터 활용을 통한 디지털 경제 창출

N²SF 개념도, 정책 유형, 적용 절차

N²SF 개념도

N²SF 정책 유형

정책 유형설명비고
제로트러스트사용자와 디바이스를 지속적으로 검증하고, 최소 권한 원칙을 기반으로 접근 통제PDP, PEP, PIP
MLS(Multi-Level Security)데이터와 시스템의 보안 등급을 정의하고, 다단계 보안 정책을 적용C/S/O
망분리 완화망분리 정책을 완화하며 보안 통제를 강화하여 업무 연속성과 보안의 균형 확보스마트 업무환경

N²SF 적용 절차

구분주요 내용산출물
준비다중보안체계 적용을 위한 현황 파악 및 분석업무정보 목록, 정보시스템 목록
C/S/O 등급 분류업무 중요도 따른 정보시스템 대상 C/S/O 등급 분류정보시스템 C/S/O 목록
위협식별정보서비스 구성 환경 모델링 및 모델링 평가정보서비스 구성요소 평가서, 모델 C/S/O 평가결과
보안대책수립보안원칙에 따라 보안통제 선정보안통제 선택 목록, 구현계획
적절성 평가/조정등급 분류, 보안통제 적절성 평가 및 재조정보안통제 적절성 평가 결과서

N²SF와 CSAP 비교

구분N²SFCSAP
목표국가 및 공공기관의 망 보안을 강화하며 데이터 활용성 증대공공기관 클라우드 서비스의 안전성과 신뢰성 확보
주요 특징업무 중요도에 따른 등급별 차등 통제 (C/S/O)클라우드 서비스 유형(IaaS, SaaS 등)에 따른 보안 인증
적용 대상국가 및 공공기관 전산망공공기관에서 사용하는 클라우드 서비스
관리 주체국가정보원KISA
보안 접근법위협 식별 및 단계별 보안 대책 수립사전 인증 후 공공기관에 서비스 제공 가능
유효기간지속적인 평가와 조정인증 후 5년 유효

N²SF 주요 고려사항

  • 업무 중요도에 따른 C/S/O 등급 분류
  • 제로트러스트 도입 시간 및 비용 고려