스택(Stack): LIFO(Last In First Out) 후입선출
큐(Queue): FIFO(First In First Out) 선입선출
트리
단말 노드(Terminal Node) == Leaf Node: 가지가 없는 노드
차수(Degree, 디그리): 노드에서 뻗어나온 가지의 수
트리의 차수(Degree): 노드의 디그리 중 가장 많은 수
Depth: Root Node부터 Level 1
테스트는 오류 발견, 디버깅은 오류 추적 및 수정
빌드 도구: Ant, Maven, Gradle
해싱함수
제산법(Division)
제곱법(Mid-Square)
폴딩법(Folding)
기수 변환법(Radix)
대수적 코딩법(Algebraic Coding)
숫자 분석법(Digit Analysis, 계수 분석법)
무작위법(Random)
디지털 저작권 관리(DRM; Digital Right Management)
구성요소
- 클리어링 하우스(Clearing House)
- 콘텐츠 제공자(Contents Provider)
- 패키저(Packager)
- 콘텐츠 분배자(Contents Distributor)
- 콘텐츠 소비자(Customer)
- DRM 컨트롤러(DRM Controller)
- 보안 컨테이너(Security Container)
기술 요소
- 암호화(Encryption)
- 키 관리(Key Management)
- 암호화 파일 생성(Packager)
- 식별 기술(Identification)
- 저작권 표현(Right Expression)
- 정책 관리(Policy Management)
- 크랙 방지(Tamper Resistance)
- 인증(Authentication)
형상 관리(SCM; Software Configuration Management)
: 소프트웨어의 변경 사항을 관리하기 위해 개발된 활동
기능
- 형상 식별
- 버전 제어
- 형상 통제(변경 관리)
- 형상 감사
- 형상 기록(상태 보고)
CVS
Subversion
- 클라이언트/서버 구조. 서버(저장소)에 최신 버전의 파일과 변경 내역 저장
- 모든 개발 작업은 trunk 디렉터리에서 수행, 추가 작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업 완료 후 병합.
- Commit할 때마다 Revision이 1씩 증가
Git
- 분산 버전 관리 시스템
- 로컬 저장소: 실제 개발을 진행하는 장소
- 원격 저장소: 여러 사람들의 협업을 위해 버전을 공동으로 관리하는 곳
- 파일 변화를 스냅샷(Snapshot)으로 저장
테스트
화이트박스 테스트 | 블랙박스 테스트 |
원시 코드의 논리적인 모든 경로를 테스트 | 각 기능이 완전히 작동되는 것을 입증하는 테스트 |
기초 경로 검사(Base Path Testing) 제어 구조 검사(Control Structure Testing) |
동치 분할 검사(Equivalence Partitioning Testing) 경계값 분석(Boundary Value Analysis) 원인-효과 그래프 검사(Cause-Effect Graphing Testing) 오류 예측 검사(Error Guessing) 비교 검사(Comparison Testing) |
통합 테스트: 하향식, 상향식 통합 테스트
상향식 | 하향식 |
하위 모듈에서 상위 모듈 방향으로 통합 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요 |
상위 모듈에서 하위 모듈로 통합 깊이 우선 통합법, 넓이 우선 통합법 사용 초기부터 사용자에게 시스템 구조를 보여줌. |
인수 테스트: 알파, 베타 테스트
단위 테스트: CppUnit, Junit, HttpUnit
테스트 드라이버 | 테스트 스텁 |
상향식 테스트 대상의 하위 모듈 호출 매개 변수를 전달해 모듈 테스트 수행 후의 결과를 도출 |
하향식 테스트 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈 |
테스트 오라클
참(True) 오라클 | 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공 |
샘플링(Sampling) 오라클 | 특정 몇몇 테스트 케이스의 입력 값에 대해서만 기대하는 결과를 제공 |
추정(Heuristic) 오라클 | 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 값들에게 대해서는 추정으로 처리 |
일관성 검사(Consistent) 오라클 | 변경이 있을 때 테스트 케이스 수행 전과 후의 결과 값이 동일한지 확인 |
소스 코드 품질 분석 도구
정적 분석 도구: pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
동적 분석 도구: Avalanche, Valgrind 등
클린코드: 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화
EAI (Enterprise Application Integration)
:기업 내 각종 애플리케이션 및 플랫폼 간의 상호 연동을 가능하게 해주는 솔루션
- Point-to-Point: 애플리케이션을 1:1로 연결. 변경 및 재사용 어려움.
- Hub & Spoke: 중앙 집중형 방식,. 확장 및 유지 보수 용이
- Message Bus(ESB 방식): 애플리케이션 사이에 미들웨어. 대용량 처리 가능
- Hybrid: Hub & Spoke + Message Bus. 데이터 병목 현상 최소화
'자격증 ⁺₊' 카테고리의 다른 글
정보처리기사 필기 4과목 정리 - 프로그래밍 언어 활용 (0) | 2024.05.22 |
---|---|
정보처리기사 필기 3과목 정리 - 데이터베이스 구축 (1) | 2024.05.21 |
정보처리기사 필기 1과목 정리 - 소프트웨어 설계 (0) | 2024.05.21 |
경영정보시각화능력 필기 3과목 경영정보시각화 디자인 요약 정리 (0) | 2024.05.18 |
경영정보시각화능력 필기 2과목 데이터 해석 및 활용 요약 정리 (0) | 2024.05.18 |
댓글