[정보처리기사] 실기 정리 - 4과목 (2)

inbdni·2020년 10월 13일
5

정보처리기사

목록 보기
12/34
post-thumbnail

🧀 공통 모듈 구현


1. 개념

  • 모듈
    독립된 하나의 소프트웨어 또는 하드웨어 단위

    • 상대적으로 독립성을 가짐
    • 독립성이 높은 모듈일수록 다른 모듈들에 미치는 영향이 적음
    • 독립성을 높이려면 결합도는 낮게 응집도는 높게 크기는 작게 만들어야 함
  • 모듈화
    소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법

    • 루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드
    • 메인 루틴 : 프로그램의 주요 부분으로 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
    • 서브 루틴 : 메인 루틴에 의해 필요할 때마다 호출되는 루틴
  • 공통 모듈 구현
    소프트웨어 개발에 있어서 기능을 분할하고 추상화하여 성능을 향상시키고 유지 보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법


2. 모듈 응집도와 결합도

(1) 응집도

모듈 내부 구성요소 간 연관되는 정도
하나의 모듈은 하나의 기능을 수행하는 것을 의미

(2) 결합도

모듈 외부 다른 모듈과의 연관도 또는 상호의존성
모듈 간 관련성을 측정하는 척도


3. 공통 모듈 구현 대상

화면 모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트 등이 있음


4. 공통 모듈 구현 절차

  • DTO/VO 구현
  • SQL 구현
  • DAO 구현
  • Service 구현
  • Controller 구현
  • 화면 구현 (optional)

  • Controller : 모델이 어떻게 처리할지를 알려주는 역할
  • View : 화면에 무엇을 보여주기 위한 역할
  • Moder : 내부 비즈니스 로직을 처리하기 위한 역할

5. Fan-in 및 Fan-out

(1) Fan-in

어떤 모듈을 호출하는 모듈의 수

  • 팬인이 높으면 재사용 측면에서 설계가 잘 되었지만 단일 장애점 발생 가능
  • 팬인이 높으면 관리 비용 및 테스트 비용 증가

(2) Fan-out

어떤 모듈에 의해 호출되는 모듈의 수

  • 팬아웃이 높으면 불필요한 모듈 호출 여부 검토 필요
  • 팬아웃이 높으면 단순화 여부 검토 필요



🧀 공통 모듈 테스트


1. 개념

공토 모듈 테스트를 위해 IDE 도구를 활용하여 개별 공통 모듈에 대한 디버깅을 수행함


2. 종류

  • 화이트박스 테스트
    응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식

  • 메서드 기반 테스트
    공통 모듈 외부에 공개된 메서드 기반의 테스트

  • 화면 기반 테스트
    사용자용 화면이 있는 경우, 화면 단위로 단위 모듈을 개발한 후에 화면에 직접 데이터를 입력하여 테스트를 수행

  • 테스트 드라이버 / 테스트 스텁
    하위 모듈은 있지만 상위 모듈은 없는 경우 테스트 드라이버 기법을 사용
    상위 모듈은 있지만 하위 모듈은 없는 경우 테스트 스텁 기법을 사용


3. 구현

(1) 구현 절차

  • JUnit 생성
  • JUnit 코드 작성
  • JUnit 실행
  • JUnit 결과 확인

(2) JUnit 어노테이션

  • @Test : 테스트 메서드 선언
  • @Before : @Test 실행 전 실행되는 코드 작성
  • @After : @Test 실행 후 실행되는 코드 작성
  • @BeforeClass : @Test 메서드 보다 먼저 딱 한 번 수행되어야 하는 경우 지정
  • @AfterClass : 단위 테스트 맨 마지막에 수행되어야 하는 경우 지정
  • @Ignore : 테스트에서 제외할 메서드 선언

(3) JUnit 메서드

  • assertEquals(a, b); : 객체 a와 b가 일치함을 확인
  • assertEquals(a, b, c); : 객체 a와 b가 일치함을 확인 (c는 오차 범위)
  • assertSame(a, b); : 객체 a와 b가 같은 객체임을 확인
  • assertArrayEquals(a, b); : 배열 a와 b가 일치함을 확인
  • assertNotNull(a); : 객체 a가 null이 아님을 확인
  • assertTrue(a); : 조건 a가 참인지 확인




🐭 참고문헌

  • NCS 정보처리기술사 연구회. (2020). 수제비 정보처리기사 실기 (2판). 건기원.

0개의 댓글