정보처리기사

[정처기] Part 02-Chapter 01

aaa0843 2025. 4. 8. 00:03

PART 02. 소프트웨어 개발

CHAPTER 01. 통합 구현

01. 단위 모듈 구현

  1. 단위 모듈

단위 모듈이란? 소프트웨어 구현에 필요한 다양한 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것

  • 작은 프로그램
  • 독립적으로 컴파일 가능, 다른 모듈에 호출되거나 삽입 가능
  • 종류: 화면, DB 접근, 인터페이스, 비즈니스 트랜잭션, 데이터 암호화 등

단위 기능 명세서 큰 규모의 시스템을 분해하여 단위 기능별로 계층적으로 구조화, 단순화하여 추상화한 문서

  1. 모듈화의 원리

모듈화 소프트웨어 개발에 있어 기능을 나누고 추상화하여 소프트웨어의 성능을 향상시키고 유지보수를 효과적으로 구현하기 위한 기법

  • 분할 정복법(Divide & Conquer), 정보은닉(Information Hiding), 자료 추상화(Data Abstraction), 모듈의 독립성(Module Independence)
  • 분할 정복법
    • 복잡한 문제를 분해, 모듈 단위로 문제를 해결한다.
    • 소프트웨어를 모듈화하여 각 모듈을 분할과 지배 방식으로 개발하면, 각 모듈을 독립적으로 테스트하고 디버깅할 수 있으므로 전체 소프트웨어 개발 프로세스를 단순화하고 개발 시간을 단축할 수 있다.
    • 절차
    • | Divide 큰 문제를 작은 부분 문제로 나누는 단계 | • 문제를 나누는 기준을 설정한다. • 문제를 나눌 때. 부분 문제들의 크기는 서로 균등하게 분배되도록 한다. • 분할된 부분 문제들은 각각 독립적으로 해결된다. | | --- | --- | | Conquer 각각의 작은 부분 문제를 해결하는 단계 | • 분할된 부분 문제들은 각각 해결하는 방법을 찾는다. • 해결 방법은 부분 문제의 크기와 성격에 따라 다르다. • 해결 방법은 보통 재귀적인 방식으로 구현된다. | | Combine 작은 부분 문제를 결합하여 전체 문제를 해결하는 단계 | • 해결된 작은 부분 문제들을 결합하여 전체 문제를 해결한다. • 해결 방법은 문제의 성격과 해결 방법에 따라 다르다. • Merge, Join 등의 방법을 사용하여 결합한다. |
  • 정보은닉
    • 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐시킨다.
    • 소프트웨어 시스템의 유지보수와 확장성을 개선하는 데 도움이 된다.
    • 모듈 간 인터페이스가 일관되게 유지되면, 새로운 모듈을 추가하거나 기존 모듈을변경하더라도 시스템 전체에 영향을 미치지 않도록 할 수 있다.
  • 자료 추상화
    • 함수 내에 자료 구조의 표현 명세를 은폐, 자료와 자료에 적용할 수 있는 오퍼레이션을 함께 정의한다.
    • 데이터 추상화의 핵심은 사용자가 데이터를 다루는 데 필요한 최소한의 정보만을 드러내는 것이다.
    • 사용자는 데이터를 쉽게 다룰 수 있으며, 데이터의 내부 구현에 대해 신경을 쓰지 않아도 된다. 따라서. 데이터 추상화는 소프트웨어의 유지보수 및 확장성을 높이는 데에 큰 도움이 된다.
    • 절차
      • 추상화된 데이터 타입을 식별하고 정의한다.
      • 데이터 타입에 필요한 연산을 식별하고 정의한다.
      • 데이터 타입에 필요한 연산이 구현되어 있는지 검증한다.
      • 데이터 타입이 다른 모듈에서 사용될 경우, 인터페이스를 제공하여 구현의 세부 정보를 숨긴다.
      • 추상화된 데이터 타입을 사용하여 다른 모듈을 작성한다.
  • 모듈의 독립성
    • 낮은 결합도, 높은 응집도를 갖도록 한다.
    • 소프트웨어의 유지보수와 확장성을 개선하는 데에 큰 도움이 된다
    • 모듈이 다른 모듈에 의존하는 경우에는 하나의 모듈이 변경되면 다른 모듈도 영향을 받을 수 있으므로, 모듈 간 상호 작용을 최소화하는 것이 중요하다.
  • 단위 모듈 테스트
    • 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것이다.
    • 모듈을 단독적으로 실행할 수 있는 환경과 테스트에 필요한 데이터가 모두 준비되어 있어야 한다.
    • 화이트박스 테스트와 블랙박스 테스트 기법이 있다.

통합 개발 환경

  1. IDE(lntegrated Development Environment)

IDE란?

C++, Java 등의 언어를 이용한 소프트웨어 개발 단계에서 패키지 인크루딩, 소스 코드 편집, 컴파일, 디버깅, 바이너리 배포 등 모든 작업을 통합 지원하는 환경

  • 이클립스, 비주얼 스튜디오, Azure Cloud, Xcode, 안드로이드 스튜디오, InteliJ IDEA, PyCharm, Atom
  • 기능: 개발 환경 지원, 컴파일, 디버깅, 외부 연계, DB 연동, Deployment

'정보처리기사' 카테고리의 다른 글

[정처기] Part 04 - Chapter 04  (1) 2025.06.05
[정처기] Part 02 - Chapter 05  (0) 2025.05.20
[정처기] PART 5  (0) 2025.05.06
[정처기] Part 04 - Chapter 05  (0) 2025.04.08
[정처기] Part 03-Chapter 02  (0) 2025.04.08