본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2020년 4회차 (2)소프트웨어 개발

by HJ0216 2023. 7. 16.

정보처리기사

SW 패키징 도구 활용 시 고려 사항

  • 암호화/보안 고려
  • 다양한 이기종 연동 고려
  • 사용자 편의성을 위한 복잡성 및 비효율성 문제 고려
  • 제품 소프트웨어의 종류에 적합한 암호화 알고리즘 적용

 

EAI ( Enterprise Application Integration )

: 기업에서 운영하는 서로 다른 플랫폼, App간의 정보 전달, 연계, 통합을 위한 솔루션

EAI_유형

테스트 레벨

  1. 단위(Unit) 테스트
    : 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트
    • 정적
      • 소스코드의 실행없이 내부 확인
      • 도구
        • PMD, SonarQube, FindBugs, CheckStyle, CppCheck, Cobertura
    • 동적: 입력값에 대한 출력값 확인
  2. 통합(Integration) 테스트
    : 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트
    • 빅뱅 테스트: 모든 모듈이 결합된 프로그램 전체가 대상
    • 상향식 테스트: 드라이버(Driver) 사용
    • 하향식 테스트: 깊이 우선 통합법, 넓이 우선 통합법 사용, 스텁(Stub) 사용
    • 혼합식 통합 테스트: : 하위 수준-상향식 통합, 상위수준-하향식 통합 사용, 샌드위치(Sandwich)식 통합 테스트 방법
    • 회귀 테스팅(Regression Testing): 통합 테스트가 완료 된 후 변경된 모듈이나 컴포넌트가 있을 경우, 다른 부분에 영향을 미치는지 테스트하여 새로운 오류 여부를 확인
  3. 시스템(System) 테스트
    : 전체 시스템 또는 제품의 동작에 대해 테스트
    • 기능 요구사항 테스트
    • 비기능 요구사항 테스트
  4. 인수(Acceptance) 테스트
    : 계약상의 요구사항이 만족되었는지 확인
    • 알파 테스트: 개발자 + 사용자
    • 베타 테스트: 사용자
    • 형상 테스트: 구조 확인

 

테스트 오라클

: 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법

  • 종류
    • 참(True) 오라클: 모든 입력값에 대해 기대하는 결과를 전수 검사
    • 샘플링 오라클: 특정 몇몇 입력값에 대해서만 검사
    • 휴리스틱 오라클: 특정 몇몇 입력값에 대해서만 검사 + 나머지는 추정으로 처리
    • 일관성 검사 오라클: 이전 수행결과와 현재 수행결과가 동일한지 검사

 

테스트 기법

  • 화이트 박스 테스트: 모듈 내부 소스 코드를 보면서 수행하는 테스트, 개발자 수행
    • 종류
      • 기본 경로 커버리지(Base Path Coverage): 수행 가능한 모든 경로 테스트
      • 데이터 흐름 테스트(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사
      • 조건 커버리지(Condition Coverage): 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
      • 루프 테스트
  • 블랙 박스 테스트: 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트, 사용자 수행
    • 동등(동치, 균등) 분할 테스트(Equivalence Partitioning Testing): 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
    • 경계값 분석 테스트(Boundary Value Analysis Testing): 경계값을 테스트 케이스로 선정하여 검사
    • 오류 예측 테스트
    • 원인-결과 그래프 테스트
    • 의사 결정 테이블 테스트
    • 상태 전이 테스트

 

인터페이스 구현 검증 도구

: 통합 테스트에서의 테스트 자동화 도구

  • 종류
    • xUnit: 다양한 언어(x)를 지원하는 단위 테스트 프레임워크
    • STAF: 서비스 호출, 컴포넌트 재사용
    • FitNesse: 웹 기반 테스트케이스를 지원하는 테스트 프레임워크
    • NTAF: FitNesse의 장점인 협업과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
    • Selenium: 웹 어플리케이션 테스트 프레임워크
    • watir: Ruby(r)를 사용하는 애플리케이션 테스트 프레임워크

 

Clean Code 작성 원칙

  • 가독성
  • 단순성: 한 번에 한가지만 처리
  • 의존성: 코드의 변경이 다른 부분에 영향이 없도록 작성
  • 중복성
  • 추상성: 상세내용은 하위 클래스에서 구현

 

형상관리

: 비용을 제외하고 SW 개발 과정에서 발생하는 모든 변경사항을 관리

형상관리 절차

식별 → 통제(BaseLine 설정) → 감사 → 기록(형상 관리 위원회: Configuration Control Board)

형상관리 도구

  • 중앙집중방식: CVS, SVN
  • 분산방식: GIT

버전관리 도구

  • 공유 폴더 방식
    • 인간 Merge
  • 클라이언트-서버 방식
    • 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리
    • CVS, SVN
  • 분산 저장소 방식
    • GIT

 

데이터 모델링 3단계

  1. 개념
    • ERD 생성
    • 트랜잭션 모델링
    • 개념 스키마 설계
  2. 논리
    • 정규화
    • Transaction Interface 설계
    • 개념 스키마를 평가 및 정제
  3. 물리
    • 성능 향상(인덱스, 파티션, 반정규화 등)
    • 물리적 스키마(저장 레코드 양식, 접근 경로) 설계

 

스키마

: DB의 구조와 제약 조건에 관한 전반적이 명세(Specification)를 기술(Description) 한 메타데이터(DB에 대한 데이터)의 집합

  1. 외부 스키마
    : 사용자의 입장에서 필요로 하는 DB의 논리적 구조
  2. 개념 스키마
    : DB의 전체를 정의, 조직 전체의 DB로 하나만 존재
  3. 내부 스키마
    : 물리적인 저장장치의 입장에서 본 DB의 논리적 구조
  • 독립성
    • 논리적 독립성: 개념 스키마의 변경은 외부 스키마에 영향을 미치지 않음
    • 물리적 독립성: 내부 스키마의 변경은 개념, 외부 스키마에 영향을 미치지 않음
      (varchar2(10) ▶ varchar2(30)으로 변경한다고 해서 외부스키마와 개념스키마에 영향 X)

 

Digital Rights 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): 라이선스 발급 및 사용의 기준이 되는 사용자 인증

 

해싱함수(Hashing Function)

  • 키 값으로부터 자료가 저장되어 있는 주소를 직접 계산하여 산출된 주소로 바로 접근하는 방법
  • 검색 방법 중 속도는 가장 빠르나, 충돌현상의 해결 부담이 요구됨

해싱(Hashing): 해싱 함수로 자료의 저장 위치를 계산하는 것

  • 제산법: 키 값을 소수(Prime Number)로 나눈 값으로 주소 결정
  • 제곱법: 키 값을 제곱한 후 그 중간 부분의 값으로 주소 결정
  • 폴딩법: 키 값을 여러부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합)한 값을 주소로 결정
  • 기수 변환법: 특정 진법으로 표현한 레코드 키 값을 다른 진법으로 간주하고 키 값을 변환하여 주소로 결정
  • 계수 분석법: 주어진 모든 키 값들에서 그 키를 구성하는 자릿수들의 분포를 조사하여 비교적 고른 분포를 보이는 자릿수를 택하여 주소로 결정
  • 무작위법: 난수(Random Number)를 발생시켜 나온 값을 주소로 결정

 

IPv4 보안 프로토콜: IPSec, SSL, S-HTTP
무뱡향 그래프 최대 간선수: n*(n-1)/2
뱡향 그래프 최대 간선수: n*(n-1)
Gradle: Groovy 기반으로 한 오픈소스로 안드로이드 앱 개발 환경에서 사용

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr