1. 소프트웨어 테스트 (출제 빈도 1위)
소프트웨어 테스트는 2과목에서 가장 문제가 많이 나오는 영역입니다. 종류와 특징을 반드시 구분해야 합니다.
1) 화이트박스 vs 블랙박스 테스트
[1] 화이트박스 테스트 (White Box)
개념: 소스 코드의 내부 로직을 보면서 테스트하는 방식종류: 기초 경로 검사, 제어 구조 검사(조건, 루프, 데이터 흐름)특징: 개발자 관점개념: 내부 구조는 보지 않고, 기능(Input/Output) 위주로 테스트하는 방식종류 두음암기: [동.경.원.비.오]동치 분할 검사 (Equivalence Partitioning): 입력 자료를 그룹으로 나누어 대표값 테스트경계값 분석 (Boundary Value Analysis): 입력 조건의 경계(최대/최소)에서 오류 발생 확률이 높음을 이용원인-효과 그래프 (Cause-Effect): 입력(원인)과 출력(효과) 관계를 그래프로 표현비교 검사 (Comparison): 여러 버전의 프로그램에 동일 입력 후 결과 비교오류 예측 (Error Guessing): 테스터의 감각/경험에 의존 2) 테스트 단계 (V-모델)
단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트 순서로 진행됩니다.
[1] 통합 테스트 (Integration Test)
모듈을 결합할 때 사용하는 방식입니다. 가장 중요한 것은 [스텁]과 [드라이버]의 구분입니다.
두음암기: [하.스 / 상.드]하향식(Top-down): 위에서 아래로 통합. 가짜 하위 모듈인 [스텁(Stub)] 필요.상향식(Bottom-up): 아래에서 위로 통합. 가짜 상위 모듈인 [드라이버(Driver)] 필요.빅뱅(Big-bang): 한 번에 전체 결합. [2] 인수 테스트 (Acceptance Test)
알파 테스트: 개발자 환경에서 사용자가 테스트 (통제된 환경)베타 테스트: 실제 환경에서 불특정 다수 사용자가 테스트3) 테스트 오라클 (Test Oracle)
테스트 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참(True) 값을 대입하여 비교하는 기법입니다.
종류 두음암기: [참.샘.휴.일]참(True) 오라클: 모든 입력에 대해 기대하는 결과를 전수 확인 (가장 이상적)샘플링(Sampling) 오라클: 특정한 몇 개 입력만 결과 확인휴리스틱(Heuristic) 오라클: 샘플링 + 나머지는 확률/직관적 추정일관성(Consistent) 오라클: 수정 전과 후의 실행 결과가 같은지 확인
2. 자료구조와 알고리즘
1) 정렬(Sort) 알고리즘 시간 복잡도
평균 수행 시간(Big-O)을 묻는 문제가 자주 출제됩니다.
두음암기: [버.삽.선 n제곱 / 퀵.병.힙 로그]O(n^2) 그룹: 버블(Bubble), 삽입(Insertion), 선택(Selection) 정렬O(nlog2n) 그룹: 퀵(Quick), 병합(Merge), 힙(Heap) 정렬참고: 퀵 정렬은 최악의 경우 O(n^2)이 됨 2) 트리(Tree) 순회 방법
트리 구조 그림을 주고 순서대로 나열한 값을 찾는 문제가 나옵니다. 뿌리(Root)를 언제 방문하느냐가 기준입니다.
전위 순회(Pre-order): Root -> Left -> Right (뿌리가 먼저)중위 순회(In-order): Left -> Root -> Right (뿌리가 중간)후위 순회(Post-order): Left -> Right -> Root (뿌리가 나중)3) 자료구조의 분류
선형 구조: 스택(LIFO), 큐(FIFO), 데크(Deque), 리스트(List)비선형 구조: 트리(Tree), 그래프(Graph)
3. 인터페이스 구현 및 형상 관리
1) EAI (Enterprise Application Integration) 구축 유형
기업 내 다른 플랫폼 간의 데이터 연계를 위한 통합 솔루션 유형입니다. 그림 문제나 설명 문제로 나옵니다.
두음암기: [포.허.메.하]포인트 투 포인트 (Point-to-Point): 1:1 단순 연결. 변경 시 비용 큼.허브 앤 스포크 (Hub & Spoke): 중앙 허브를 통해 연결. 허브 장애 시 전체 마비.메시지 버스 (Message Bus): 미들웨어(버스)를 통해 연결. 대용량 처리에 유리, 확장성 좋음.하이브리드 (Hybrid): 허브 앤 스포크 + 메시지 버스 혼합. 2) 형상 관리 (SCM)
주요 도구: Git(분산형), SVN(중앙집중형), CVS주요 용어:Check-in: 저장소에 저장Check-out: 저장소에서 가져옴Commit: 변경 확정Import: 저장소에 처음 넣기 3) 소프트웨어 복잡도 (McCabe)
제어 흐름도(Graph)를 보고 복잡도를 계산하는 공식입니다. 단순 산수 문제로 나옵니다.
공식: V(G) = Edge(선)의 수 - Node(점)의 수 + 2예: 선이 5개, 점이 4개라면? 5 - 4 + 2 = 3
4. 기타 필수 암기
1) DRM (Digital Rights Management) 구성 요소
콘텐츠 제공자: 콘텐츠 만든 사람콘텐츠 분배자: 쇼핑몰 등 유통업자패키저: 콘텐츠를 암호화하고 메타데이터 결합클리어링 하우스: 저작권료 정산 및 라이선스 발급 (가장 중요)2) 해시(Hash) 알고리즘
종류: SHA 시리즈, MD5(취약해서 잘 안 씀), HAS-160
[2과목 합격 전략]
2과목은 코드를 직접 짜는 문제보다는 [개념 구분]과 [계산] 문제가 나옵니다.
테스트 기법에서 화이트박스인지 블랙박스인지 섞어놓고 고르는 문제트리 순회 순서 맞추기 (그림 그려가며 풀기)시간 복잡도 O(n^2)인지 O(nlogn)인지 구분하기