초보 개발자의 성장기

한이아지와 함께하는 정보처리기사 2과목 2번째) 통합 모듈 구현 본문

IT 자격증 공부/정보처리기사

한이아지와 함께하는 정보처리기사 2과목 2번째) 통합 모듈 구현

개발자 김케빈 2021. 1. 29. 16:35


PART2. 소프트웨어 개발

  • Chap01) 데이터 입 · 출력 구현
    • 논리 데이터 저장소 확인
    • 물리 데이터 저장소 설계
    • 데이터 조작 프로시저 작성
    • 데이터 조작 프로시저 최적화
  • Chap02) 통합 구현
    • 모듈 구현
    • 통합구현 관리
  • Chap03) 제품 소프트웨어 패키징
    • 제품 소프트웨어 패키징
    • 제품 소프트웨어 매뉴얼 작성
    • 제품 소프트웨어 버전 관리
  • Chap04) 애플리케이션 테스트 관리
    • 애플리케이션 테스트케이스 설계
    • 애플리케이션 통합 테스트
    • 애플리케이션 성능 개선
  • Chap05) 인터페이스 구현
    • 인터페이스 설계 확인
    • 인터페이스 기능 구현
    • 인터페이스 구현 검증

Chap02) 통합 구현


1. 모듈 구현

1.1. 단위 모듈 구현 (★★☆)

[1] 단위 모듈 구현이란?

 소프트웨어 개발에 있어 기능을 단위 모듈 별로 분할하고 추상화하여 성능을 향상시키고, 유지보수를 효과적으로 하기 위한 기법

 

[2] 단위 모듈 구현 원리 - <정분춘모 = 봄과 정분이 난 모모>

원리 설명
정보 은닉 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
분할과 정복 복잡한 문제를 분해, 모듈 단위로 문제 해결
데이터 추상화 각 모듈 자료 구조를 액세스하고 수정하는 함수 내에 자료 구조의 표현 내역을 은폐
모듈 독립성 낮은 결합도와 높은 응집도를 가짐

[3] 재사용 기법

 재사용은 성능 및 품질을 인정 받았던 소프트웨어의 전체 또는 일부분을 다시 사용하는 기법임

 

 재사용 종류

구분 설명
재공학 기존 소프트웨어를 버리지 않고 개선시키거나 기능을 새로운 소프트웨어에 재활용하는 기법
역공학 디버깅, 디컴파일 등의 분석을 통해 기존 제품에 구현된 구조, 원리, 기술, 알고리즘 등을 역으로 분석하는 기법
재개발 기존 시스템을 참조하여 완전히 새로운 시스템을 개발하거나 기존 시스템에 새로운 기능을 추가, 변경하는 기법


1.2. 단위 모듈 테스트 (★☆)

[1] 단위 모듈 테스트란?

 모듈의 개별적인 코드 단위가 예상대로 작동하는 지 확인하는 기법
 단위 모듈 테스트를 위해 IDE 도구를 활용하여 개별 단위 모듈에 대한 디버깅을 수행

 

[2] 단위 모듈 테스트 종류

종류 설명
블랙박스 테스트 외부 사용자의 요구사항 명세를 토대로 수행하는 테스트, sw 특징 · 요구사항 · 설계 명세서에 초점
화이트박스 테스트 모듈 내부의 소스를 보면서 수행하는 테스트, 테이트 케이스르 다양하게 만들어 테스트
메서드 기반 테스트 단위 모듈의 외부에 공개된 메서드 기반 테스트, 서로 다른 파라미터 값을 호출하면서 테스트
화면 기반 테스트 사용자용 화면이 있는 경우 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터 입력 후 테스트

2. 통합 구현 관리

1.1. IDE 도구 (★)

[1] IDE 도구란?

 코딩, 디버그, 컴파일, 배포 등 프로그램 개발과 관련있는 모든 작언을 하나의 프로그램에서 처리할 수 있도록 환경을 
 제공해주는 소프트웨어

 

[2] IDE 도구의 기능 
 - 개발환경 지원

 - 컴파일

 - 디버깅

 - 외부 연계

 - DB 연동

 

[3] IDE 대표 도구

 Eclipse, VisualStudio, Xcode

 

1.2. 협업 도구 (★)

[1] 협업 도구란?

 다른 개발자와 지속적으로 커뮤니케이션을 할 수 있도록 지원하는 소프트웨어

 

[2] 협업 도구의 기능

 개발자 간 커뮤니케이션 / 일정 및 이슈 공유 / 개발자 간 집단 지성 활용

1.3. 형상 관리 도구 (★★☆)

[1] 형상 관리란?

 소프트웨어 생명주기 동안 발생하는 변경사항을 체계적으로 관리하여 소프트웨어의 품질 보증을 향상시키는 활동
 → 소프트웨어 변경 사항을 관리하기 위한 도구를 형상 관리 도구라고 함

 

[2] 형상 관리 도구 기능

기능 설명
Check-In 개발자가 수정한 소스를 형상 관리 저장소에 업로드 하는 기능
Check-Out 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운받는 기능
Commit 개발자가 형상 관리 저장소에 업로드 후 업데이트 되었을 때 형상 관리 서버에서 반영하도록 하는 기능

 

[3] 형상 관리 도구 사례

 

 ① CVS (Concurrent Versions System)
 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해 버전 관리를 실행하는 형상 관리 도구

 장점 : 직관적이고 단순한 명령 세트
 단점 : 텍스트 기반 소스 코드 위주로 지원, COMMIT 실패 등에 대한 ROLLBACK 지원 안함

 

 ② SVN (Sub Version)

 중앙 집중형 Client - Server 방식으로 CVS 단점 보완, 가장 널리 사용되고 있음,  바이너리 문서 관리 가능

 장점 : COMMIT 실패 시 ROLLBACK 지원, 디렉토리 파일 자유롭게 이동 가능, Gzip으로 압축하여 공간절약 가능

 

 ③ Git

 리눅스 커널의 개발을 위해 만든 형상 관리 시스템

 장점 : 분산형 방식과 중앙 집중형 방식 모두 가능, 저장소의 완전한 복사본을 로컬에 저장 가능

 단점 : 대용량 코드 관리 어려움, 한 번에 diff 명령어를 통해 변경사항을 파악하기 어려움

 

Comments