Chapter 02. 통합 구현
1. 모듈 구현
(1) 단위 모듈 구현
단위 모듈 구현은 소프트웨어 개발에 있어 기능을 단위 모듈별로 분할하고 추상화하여 성능을 향상하고, 유지보수를 효과적으로 하기 위한 구현 기법이다.
단위 모듈 구현의 원리 = 정분추모
원리 | 설명 |
정보 은닉 | 변경 가능성이 있는 모듈을 타 모듈로부터 은폐 |
분할과 정복 | 복잡한 문제를 분해, 모듈 단위로 문제 해결 |
데이터 추상화 | 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐 |
모듈 독립성 | 낮은 결합도와 높은 응집도를 가짐 |
재사용 기법
① 재사용 기법 개념
재사용은 이미 개발되어 그 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용하는 기법이다.
② 재사용 종류
구분 | 설명 |
재공학 | 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 소프트웨어 재사용 기법 |
역공학 | SW에 대한 디버깅, 디컴파일 등의 분석을 통해 기존 제품에 구현된 구조, 원리, 기술, 알고리즘 등을 역으로 분석하여 재구성하는 기법 |
재개발 | 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발, 기존 시스템에 새로운 기능을 추가, 기존 시스템의 기능을 변경하는 기법 |
(2) 단위 모듈 테스트
단위 모듈 테스트의 개념
단위 모듈 테스트는 모듈의 개별적인 코드 단위가 예상대로 작동하는지 확인하는 기법이다.
단위 모듈 테스트의 종류
종류 | 설명 |
블랙박스 테스트 | 블랙박스 테스트 = 명세 기반 테스트 |
화이트박스 테스트 | 화이트박스 테스트 = 구조 기반 테스트 |
메서드 기반 테스트 | 단위 모듈의 외부에 공개된 메서드 기반의 테스트 |
화면 기반 테스트 | 화면과 연계된 서비스, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 모듈 테스트에 참여 |
2. 통합 구현 관리
(1) IDE 도구
IDE 도구의 기능
기능 | 설명 |
개발환경 지원 | 자바, 파이썬 등 개발언어를 통해 어플리케이션 개발환경 제공 |
컴파일 | 문법에 어긋나는지 확인하고 기계어로 변환하는 기능 제공 |
디버깅 | 프로그래밍 과정에 발생하는 오류 및 비정상적인 연산 제거 |
외부 연계 | 외부 형상, 배포관리 기능과 연계되어 자동 배포등이 가능 |
DB 연동 | JDBC, ODBC 등을 통한 데이터베이스 연동 |
IDE 도구 간 비교
대표적인 개발 도구로는 이클립스, 비주얼 스튜디오, 엑스 코드가 있다.
(2) 협업 도구
협업 도구의 기능
기능 | 설명 |
개발자 간 커뮤니케이션 | 개발자 간 작업 공유, 오류 현상 공유 등 다양한 의사소통을 제공 |
일정 및 이슈 공유 | 소스 코드 구현 도중 발생하는 오류 및 이슈와 프로젝트 일정을 공유 |
개발자 간 집단 지성 활용 | 새로운 아이디어를 개발자들 간에 공유함으로써 집단 지성을 활용 |
(3) 형상 관리 도구
형상 관리의 개념
형상 관리는 소프트웨어 생명주기 동안 발생하는 변경사항을 체계적으로 관리하여 소프트웨어의 품질 보증을 향상하는 관리적 활동이다.
형상 관리 도구의 기능 = 인아커
기능 | 설명 |
체크인 | 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능 |
체크아웃 | 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운로드 받는 기능 |
커밋 | 개발자가 소스를 형상 관리 저장소에 업로드 후 최종적으로 업데이트가 되었을 때 형상 관리 서버에서 반영하도록 하는 기능 |
형상 관리 도구 사례 = CSG
① CVS(Concurrent Versions System)
CVS는 가장 오래된 형상 관리 도구 중의 하나로서 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행하는 형상 관리 도구이다.
CVS 주요 기능
구분 | 특징 |
주요기능 | 체크아웃/체크인 등 클라이언트-서버 간 변경사항 동기화 파일 단위 기반의 변경사항 관리 가능 Diff를 통한 파일 내용의 비교 |
장점 | 직관적이고 비교적 단순한 명령세트 |
단점 | 텍스트 기반 소스 코드 위주 지원 커밋 실패 등에 대한 롤백 기능 미지원 등록된 파일 및 디렉토리의 변동이 불편 |
② SVN(Subversion)
SVN은 중앙 집중형 클라이언트-서버 방식으로 CVS의 단점을 보완해 가장 널리 사용되고 있는 형상 관리 도구이다.
SVN 주요 기능
구분 | 특징 |
주요 기능 | CVS에서 제공하는 대부분의 명령어 수행 가능 바이너리 문서 형상 고나리 가능 커밋 실패 시 롤백 지원 기능 |
장점 | 디렉토리 파일을 자유롭게 이동 가능 빨라진 속도 다양한 플러그인 API 제공 |
단점 | Trunk, Branch, Tag가 모두 물리적 저장 위치 점유 잦은 커밋으로 인해 리버전 번호가 크게 증가할 수 있음 개별 개발자만의 개발 이력을 가질 수 없음 |
③ Git
Git은 리누스 토발즈가 2005년 리눅스 커널의 개발을 위해 만든 형상 관리 시스템이다. (분산형 방식 하지만 필요에 따라 중앙 집중형 방식으로 운영 가능)
Git 주요 기능
구분 | 특징 |
주요 기능 | Branch, Check-Out, Commit 등 로컬 환경에서의 형상 관리 기능 Push, Fetch, Pull 등 원격 환경에서의 변경 전송 기능 |
장점 | 저장소의 완전한 복사본을 로컬 저장 가능 로컬 저장을 통해 오프라인 작업 가능 일시적인 작업에 대한 이력 관리가 쉬움 |
단점 | 대용량 코드 관리에 부적절 한 번에 diff 명령어를 통한 변경사항을 보기 어려움 CVS, SVN과 개념이 상이하여 학습시간이 요구 |
https://book.naver.com/bookdb/book_detail.nhn?bid=15910265
수제비 정보처리기사 필기
NCS 모듈제작에 참여한 경험을 기반으로, 다양한 모듈에서 시험 출제 빈도를 분석하여 출제 비중이 높은 내용 위주로 구성했다. 출제 비중이 낮고 이해하기 어려운 개념들은 과감하게 제외함으
book.naver.com
Ps. 오늘은 쉽게 Chapter 2도 끝!!
'IT 자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 2주차 Day-4 정리 (0) | 2021.07.18 |
---|---|
정보처리기사 필기 2주차 Day-3 정리 (0) | 2021.07.17 |
정보처리기사 필기 2주차 Day-1 정리 (0) | 2021.07.15 |
정보처리기사 필기 1주차 Day-4 정리 (0) | 2021.07.13 |
(추가)정보처리기사 필기 1주차 Day-3 정리(추가) (0) | 2021.07.12 |