1. 자료구조 및 알고리즘

자료구조

  • 선형 구조
    • 스택 (LIFO): 함수 호출, 후위 표현식 변환, 깊이 우선 탐색(DFS), 인터럽트 처리
    • 큐 (FIFO): 데이터 버퍼, 프로세스 스케줄링
    • 데크 (Deque): 양쪽에서 삽입/삭제 가능
    • 리스트
      • 선형 리스트
      • 연결 리스트 (단순/이중/원형)
  • 비선형 구조
    • 트리
      • 이진 트리: 전위/중위/후위 순회
      • 이진 탐색 트리 (BST)
      • 힙 (Heap): 우선순위 큐 구현
    • 그래프
      • DFS (깊이 우선 탐색)
      • BFS (너비 우선 탐색)

정렬 알고리즘

  • 퀵 정렬: 피벗을 설정하여 분할 정복 방식으로 정렬
  • 합병 정렬: 분할 후 병합하여 정렬
  • 힙 정렬: 최대 힙/최소 힙 구조를 활용
  • 거품 정렬: 인접한 두 요소를 비교하며 정렬
  • 삽입 정렬: 앞에서부터 정렬된 부분과 비교하여 삽입
  • 선택 정렬: 가장 작은 값을 선택하여 정렬

검색 알고리즘

  • 순차 검색: 처음부터 하나씩 비교
  • 이진 검색: 중앙값을 기준으로 탐색 (O(log n))

해시 함수 기법

  • 나눗셈 방법
  • 곱셈 방법
  • 숫자 분석 방법
  • 폴딩 방법 (XOR 폴딩법)
  • 중간 제곱 방법

2. 통합 구현

통합 구현 개념

  • 모듈(컴포넌트) 간 데이터 교환 및 시스템 연계를 수행

단위 모듈

  • 정의
  • 분석
  • 추출
  • 모듈화

재사용 기법

  • 재공학 (Reengineering)
    • 분석
    • 재구조화
    • 역공학
    • 이식
  • 재개발 (Refactoring)

형상 관리 (SCM, Software Configuration Management)

  • 형상 관리 절차: 식별 - 통제 - 감사 - 기록
  • 형상 관리 도구 기능: 인증 - 아카이브 - 커밋
  • 사례: CSG
  • 형상 통제 위원회 (CCB, Configuration Control Board)

3. 제품 SW 패키징

소프트웨어 품질 기준

  • ISO 9126: 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
  • ISO 14598: 평가 기준 (반복성, 재사용성, 공정성, 객관성)
  • ISO 2500 시리즈: 통합 품질 모델

SW 패키징 구성 요소

  • DRM (Digital Rights Management, 디지털 저작권 관리)
    • 패키저: 콘텐츠를 메타데이터와 함께 묶음
    • 클리어링 하우스: 라이선스 발급
    • 컨트롤러: 이용 권한 통제
  • 버전 관리
    • 공유 폴더 방식 (RCS)
    • 클라이언트/서버 방식 (SVN, CVS)
    • 분산 방식 (Git)
  • 빌드 자동화 도구
    • CS, 빌드, 테스트, 커밋, 인테그레이션

소프트웨어 배포 도구 고려 사항

  • 암호화
  • 이식성
  • 복구 기능
  • 최적화

4. 애플리케이션 테스트 관리

테스트 개념

  • 테스트 오라클: 참, 샘플링, 휴리스틱, 일관성 검사
  • 테스트 레벨
    • 단위 테스트 (모듈 내 구조 확인)
    • 통합 테스트 (모듈 인터페이스 검증)
    • 시스템 테스트 (기능/비기능 테스트)
    • 인수 테스트 (알파/베타 테스트)
  • 테스트 유형
    • 블랙박스 테스트: 프로그램 내부 구조를 고려하지 않음
    • 화이트박스 테스트: 내부 로직 기반 테스트

테스트 설계 기법

  • 블랙박스 테스트 기법: 동등 분할, 경계값 분석, 결정 테이블, 상태 전이, 유스케이스, 원인-결과 그래프, 비즈니스 규칙
  • 화이트박스 테스트 기법: 제어 흐름, 조건 검증, 루프 테스트

테스트 원리

  • 결함 집중: 파레토 법칙 (80% 결함은 20% 원인)
  • 소프트웨어 테스트 원칙: 결함 존재 증명, 완벽한 테스트 불가능, 조기 테스트, 결함 집중, 살충제 패러독스, 정황 의존성, 오류 부재의 궤변

5. 인터페이스

EAI (Enterprise Application Integration)

  • 서로 다른 애플리케이션 간 데이터 연계를 위한 솔루션
  • 연계 방식: 포인트 투 포인트, 허브 앤 스포크, 메시지 버스, 하이브리드

ESB (Enterprise Service Bus)

  • 서로 다른 프로토콜과 애플리케이션을 유연하게 연계 (낮은 결합)

데이터 교환 기술

  • AJAX: 비동기 데이터 전송
  • REST API: HTTP 기반 인터페이스

DB 암호화 기법

  • 애플리케이션 레벨
  • 하드웨어 기반 암호화

시큐어 코딩 가이드

  • 입력 데이터 검증, 보안 기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용

보안 프로토콜

  • S-HTTP, SSL/TLS, IPsec

인터페이스 구현 검증 도구

  • xUnit, Postman, Excel, WebSquare

STAF (Software Testing Automation Framework)

  • 분산 환경에서 데몬을 이용한 자동화 테스트 수행

 



 

+ Recent posts