정보처리기사 공부

소프트웨어 개발

0_TLS 2025. 2. 4. 17:39

전위 표기법 : 연산자 -> 피연산자 -> 피연산자  ex) +AB

중위 표기법 : 피연산자 -> 연산자 -> 피연산자  ex) A+B

후위 표기법 : 피연산자 -> 피연산자 -> 연산자  ex) AB+

 

ex) (A*B) + (C*D)를 전위, 후위 방식으로 표기

전위 

  1. 괄호 앞으로 연산자 이동 : (+(*AB) *(CD))
  2. 괄호 제거 : +*AB*CD

후위

  1. 괄호 뒤로 연산자 이동 : ((AB*)(CD*)+)
  2. 괄호 제거 : AB*CD*+

 

방향 그래프 최대 간선 수 : n(n-1)

무방향 그래프 최대 간선 수 : n(n-1)/2


소프트웨어 형상관리(SCM; Software Configuration Management)

소프트웨어 개발 과정의 변화되는 사항을 관리하는 것

 

관리 항목

  • 프로젝트 요구 분석서
  • 운영 및 설치 지침서
  • 소스코드

형상 관리 절차

식통감기

형상 식별 - 형상 통제 - 형상 감사 - 형상 기록

 

형상 식별 

  • 형상 관리 계획을 근거로 형상 관리의 대상이 무엇인지 식별하는 활동

형상 통제 

  • 형상 항목의 변경사항에 대하여 형상통제위원회(CCB; Change Control Board)가 승인/기각/보류를 결정하고, 승인된 변경사항의 이해를 체계적으로 통제하는 활동

형상 감사

  • 형상 관리 계획대로 형상 관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동

형상 기록

  • 소프트웨어 형상 및 변경 관리에 대한 각종 수행 결과를 기록하는 활동

관리 도구

기능 설명
체크인(Check-In) 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능
체크아웃(Check-Out) 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운로드 받는 기능
커밋(Commit) 작업한 내용을 로컬저장소에 저장하는 것

 

빌드 자동화 도구 : Ant, Maven, Gradle

*Jenkins는 JAVA 기반의 오픈소스로 가장 많이 활용되는 빌드 자동화 도구이다.

형상 관리 도구 : CVS, SVN, Git

 

화이트박스 테스트

  • Source Code의 모든 문장을 한 번 이상 수행함으로써 진행된다.
  • 모듈 안의 작동을 직접 관찰할 수 있다.
  • 산출물의 각 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
  • Base Path Testing
  • 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건-결정 커버리지, 변경 조건-결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트, 루프 테스트

블랙박스 테스트

  • 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트이다.
  • 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어진다.
  • 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다.
  • Boundary Value Analysis
  • 동등 분할, 경곗값 분석, 결정 테이블, 상태전이, 유스케이스, 분류트리, 페어와이즈, 원인-결과 그래프, 비교테스트, 오류 수정

*화이트박스, 블랙박스 모두 동적 테스트


제품 소프트웨어 패키징

DRM 구성 요소

콘텐츠 제공자 / 콘텐츠 소비자 / 콘텐츠 분배자 / 클리어링 하우스 / DRM 콘텐츠 / 패키지 / DRM 컨트롤러 / 보안 컨테이너 

 

DRM 기술 요소

암호화 / 키 관리 / 식별 기술 / 저작권 표현 / 암호화 파일 생성 / 정책 관리 / 크랙 방지 / 인증

 

정적 분석 도구 / 동적 분석 도구

정적 분석 도구

  • Cppcheck, CheckStyle, PMD

동적 분석 도구

  • ValMeter

제품 소프트웨어 매뉴얼 작성

컴포넌트 명세서, 컴포넌트 구현 설계서 ->

작성 지침 정의 -> 사용자 매뉴얼 구성 요소 정의 -> 구성 요소별 내용 작성 -> 사용자 매뉴얼 검토 

-> 사용 설명서

 

소프트웨어 품질 목표

특성 설명
이식성
(Portability)
하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력
효율성
(Efficiency)
명시된 조건에서 사용되는 자원의 양에 따라 요구된 성능을 제공하는 소프트웨어 제품의 능력
-품질 부특성으로 시간반응성, 자원효율성, 준수성 등을 갖음
사용성
(Usability)
명시된 조건에서 사용될 경우, 사용자에 의해 이해되고, 학습되고, 사용되고, 선호될 수 있는 소프트웨어 제품의 능력
-쉽게 배우고 사용될 수 있는 정도
신뢰성
(Reliability)
-옳고 일관된 결과를 얻기 위하여 요구된 기능을 수행할 수 있는 정도
-주어진 시간동안 주어진 기능을 오류없이 수행하는 정도

 

S/W Project 일정이 지연된다고 해서 프로젝트 말기에 새로운 인원을 추가 투입하면 더 지연된다.

= Brooks 법칙

 

소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다

= Pareto 법칙

 

패키지 소프트웨어의 일반적인 제품 풀질 요구사항 및 테스트를 위한 국제표준

= ISO/IEC 12119

119를 기억

 

동시에 소스를 수정하는 것을 방지하고 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구

= RCS(Revision Control System)


애플리케이션 테스트 관리

종류 설명
단위 테스트 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
통합 테스트 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계
시스템 테스트 개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트하는 단계
인수 테스트 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계
-알파, 베타 테스트

 

테스트의 목적에 따른 분류

분류 설명
회복 테스트
(Recovery Test)
시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트
안전 테스트
(Security Test)
불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법
성능 테스트
(Performance Test)
사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법
강도 테스트
(Stress Test)
시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트
구조 테스트
(Structure Test)
시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법
회귀 테스트
(Regression Test)
회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
병행 테스트
(Parallel Test)
변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법

 

 

테스트 드라이버 vs 테스트 스텁

테스트 드라이버

  • 상향식 통합시험을 위해 모듈 테스트 수행 후의 결과를 도출하는 시험용 모듈
  • 테스트와 필요한 모듈에 인지를 넘겨주고 테스트를 완료한 후 그 결괏값을 받는 역할을 하는 가상의 모듈
  • 하위 모듈을 호출하는 상위 모듈의 역할

테스트 스텁

  • 하향식 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈
  • 상위 모듈에 의해 호출되는 하위 모듈의 역할

해싱 함수

제산법, 제곱법, 숫자 분석법, 폴딩법 (<- XOR), 기수 변환법, 무작위 방법


EAI (Enterprise Application Integration)구축 유형

포허메하

포인트 투 포인트, 허브 앤 스포크, 메시지 버스, 하이브리드

메시지 버스(Message Bus) 애플리케이션 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식
포인트 투 포인트(Point-to-Point) 중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점대점 형태로 연결
허브 앤 스포크(Hub & Spoke) 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
하이브리드(Hybrid) 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식

 

인터페이스 간 통신을 위해 이용되는 데이터 포맷 : JSON, XML, YAML

 

인터페이스 구현 검증 도구

  • xUnit, STAF, FitNesse, NTAF, Selenium, watir

 

'정보처리기사 공부' 카테고리의 다른 글

소프트웨어 설계  (0) 2025.02.05
프로그래밍 언어 활용  (0) 2025.02.05
네트워크 기초 활용  (1) 2025.01.25
데이터 타입 크기  (2) 2025.01.25
OSI 7계층  (2) 2025.01.24