티스토리 뷰

728x90
반응형

2022년 정보처리기사 필기

(수제비 2021년 필기책 보고 공부하며 요약한 내용입니다.)

http://www.yes24.com/Product/Goods/96051171

 

2. 소프트웨어 개발

Cp2. 통합 구현

 

 

1. 단위 모듈 구현

: 기능을 단위 모듈별로 분할, 추상화하여 성능향상, 유지보수를 효과적으로 하기 위함

: 인터페이스 모듈, DB접근모듈 등 통합구현에 필요한 단위 컴포넌트를 구현

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

 

1-1. 단위모듈 구현 대상

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

 

1-2. 재사용 종류

: 단위 모듈의 재사용성의 개념이 확장된 재공학, 역공학, 재개발 기법이 존재함

1) 재공학: 기존sw를 버리지 않고 기능 개선, 새 sw로 재활용

2) 역공학: sw 디버깅, 디컴파일 등 분석 통해 기존 제품에 구현된 것들을 역으로 분석하여 재구성

3) 재개발: 기존 것을 참조해 완전히 새로운 시스템 개발. 기능 추가, 기능 변경 등

 

2. 단위모듈 테스트

: 모듈 단위가 예상대로 작동하는지 확인

: IDE 도구를 활용해 개별 단위 모듈에 대한 디버깅을 수행

단위모듈 테스트 종류 설명
블랙박스 테스트
(= 명세 기반 테스트)
요구사항 명세를 보며 테스트 수행
sw 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트 수행
화이트박스 테스트
( = 구조 기반 테스트)
단위 모듈 테스트의 가장 기본적 방법. 모듈 내부의 소스를 보면서 수행하는 테스트
메서드 기반 테스트 외부 공개된 메서드 기반 테스트
메서드에 서로다른 파라미터값 호출하며 테스트
화면 기반 테스트 화면단위로 데이터 입력하며 테스트 수행

 

3. IDE 도구

: 코딩, 디버그, 컴파일, 배포 등 개발 관련 모든 작업을 한 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어

IDE 도구 기능 설명
개발환경 지원 개발언어 통해 어플리케이션 개발환경 제공
컴파일 문법에 어긋나는지 확인하고 기계어로 변환하는 기능 제공
디버깅 오류 및 비정상적인 연산 제거
외부 연계 외부형상, 배포관리 기능과 연계되어 자동 배포등이 가능
DB 연동 JDBC, ODBC 등을 통한 DB 연동

- 대표적인 개발도구로 이클립스, 비주얼 스튜디오, 엑스코드가 있음

비교 이클립스 비주얼스튜디오 엑스코드
개발사 IBM, 이클립스 재단 마이크로소프트 애플
플랫폼 크로스 플랫폼 크로스 플랫폼 애플 플랫폼
OS 대부분의 OS  윈도즈 맥 OS
언어 자바, PHP, JSP visual basic, C++ object C, Swift
라이센스 이클립스 상용 GCC
특징 자바 개발 최적화 C 계열 언어 중심 iOS 기반 앱 개발

 

4. 협업도구

: 다른 개발자와 개발관련 소통(커뮤니케이션), 일정 및 이슈 공유, 집단지성 활용 등 수행하기 위한 도구

ex) 구글드라이브, 깃헙, 에버노트, 구글캘린더 등

 

5. 형상관리 도구

: 소프트웨어 생명주기 동안 변경사항을 체계적으로 관리하여 품질보증을 향상시키는 관리적 활동

: 관리항목으로는 요구분석서, 소스코드, 운영 및 설치 지침서가 있음.

ex) CVS, SVN, Git

기능1) 체크인: 수정사항을 형상관리 저장소로 업로드

기능2) 체크아웃: 형상관리 저장소로부터 최선버전을 다운로드 받음

기능3) 커밋: 형상관리저장소에 업로드 후 최종업데이트가 되었을 때 형상관리 서버에서 반영하도록 하는 기능

 

1) CVS

: 가장 오래된 형상관리 도구중 하나로, 중앙집중형  서버저장소를 두고 클라이언트가 접속해서 버전관리를 함

: 파일 단위 기반의 변경사항 관리 기능 

: Diff를 통한 파일 내용의 비교

: 직관적이고 비교적 단순한 명령세트

: 텍스트 기반 소스코드 위주 지원(단점)

: 등록된 파일 및 디레곹리의 변동이 불편(단점)

: 커밋 실패 등에 대한 롤백 기능 미지원(단점)

 

2) SVN

: 중앙 집중형 클라이언트-서버 방식으로 CVS 단점 보완해 가장 널리 사용되는 형상 관리 도구

: CVS 대체하기 위하여 만든 도구로, 사용법이 유사하여 CVS 사용자가 어렵지않게 도입하여 사용 가능

: CVS에 비해 빠른 속도, Gzip으로 압축하여 저장공간 절약, 작업 모음 단위 기반으로 동작 개선됨

: 바이너리 문서 형상 관리 가능

: 커밋 실패 시 롤백 지원 가능

: 디렉토리 파일을 자유롭게 이동 가능

: 다양한 플러그인 API 제공

: Trunk, Branch, Tag가 모두 물리적 저장 위치 점유(단점)

: 잦은 커밋으로 인해 리비전 번호가 크게 증가(단점)

: 개별 개발자만의 개발 이력을 가질 수 없음(단점)

 

3) Git

: 리누스 토발즈가 리눅스커널의 개발을 위해 만든 형상관리 시스템

: 중앙집중형이 아닌 분산형 방식으로 각 PC 스스로 완전한 저장소가 구성되며, 필요에 따라 중앙 집중형 방식으로도 운영할 수 있음.

: SVN 저장소에 대한 이관(migration) 가능

: 저장소의 완전한 복사본을 로컬 저장, 로컬저장을 통해 오프라인 작업 가능

: 일시적인 작업에 대한 이력 관리가 쉬움

: 대용량 코드 관리에 부적절(단점)

: 한번에 diff 명령어를 통한 변경사항을 보기 어려움(단점)

: CVS, SVN과 개념이 상이하여 학습시간 요구(단점)

 

 

728x90
반응형
댓글