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