2022. 5. 30. 13:51ㆍ정처기(필기)/소프트웨어개발
(1) 단위 모듈 구현
1. 단위 모듈 구현의 개념
- 단위 모듈 구현은 소프트웨어 개발할 때 그 기능을 단위 모듈별로 나누어 추상화하여 성능을 향상시키고, 유지보수를 효과적으로 하기 위한 구현 기법이다.
2. 단위 모듈 구현의 원리
- 정보 은닉 : 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
- 분할과 정복 : 복잡한 문제를 분해, 모듈 단위로 문제 해결
- 데이터 추상화 : 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐
- 모듈 독립성 : 낮은 결합도와 높은 응집도
3. 재사용 기법
- 재사용은 이미 개발되어 그 기능, 성능 및 품질을 인정 받았던 소프트웨어의 전체 또는 일부분을 사용하는 기법이다.
▼ 재사용 종류
구분 | 설명 |
재공학 | 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 재활용하는 기법 장점으로는 위험부담 감소, 비용 절감, 개발 기간 단축, 시스템 명세의 오류억제가 있음 |
역공학 | SW에 대한 디버깅, 디컴파일 등의 분석을 통해 기존 제품에 구현된 구조, 원리, 기술, 알고리즘 등을 역으로 분석하여 재구성하는 기법 |
재개발 | 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발하는 기법 |
▼ 재사용 규모에 따른 분류
- 함수와 객체 : 클래스나 메소드 단위의 소스 코드 재사용
- 컴포넌트 : 인터페이스를 통해 통신하는 방식으로 재사용
- 애플리케이션 : 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용
(2) 단위 모듈 테스트
1. 단위 모듈 테스트란
- 모듈의 개별적인 코드 단위가 예상대로 작동하는지 확인하는 기법
- IDE 도구를 활용하여 디버기를 수행함
2. 단위 모듈 테스트의 종류
- 블랙박스 테스트(명세기반) : 프로그램 외부 사용자의 요구사항을 보면서 수행하는 테스트(기능 테스트)
- 화이트박스 테스트(구조 기반) : 모듈 내부의 소스를 보면서 수행하는 테스트
- 메소드 기반 테스트 : 단위 모듈의 외부에 공개된 메소드 기반의 테스트
- 화면 기반 테스트 : 사용자용 화면을 통해 각각의 화면단위로 단위 모듈을 개발 후에 직접 테스트
!!여기서 잠깐!!
컴포넌트와 모듈은 무슨 차이일까?
- 컴포넌트는 런타임에 독립적으로 배포되고 실행되는 단위, 모듈은 정적인 구조
(3) IDE 도구
1. IDE 도구란
- 코딩, 디버깅, 컴파일, 배포 등 프로그램 개발과 관련된 모든 작업을 하나의 환경에서 제공하는 소프트웨어
2. 대표적인 개발 도구
- 이클립스 : Java 개발 최적화
- 비주얼 스튜디오 : C 계열 언어 중심
- 엑스 코드 : iOS 기반 앱 개발
(4) 협업 도구
1. 헙업 도구란
- 다른 개발자와 유대감을 형성하거나 개발 관련 소통을 위해서 지속적으로 커뮤니케이션을 수행하기 위한 도구
2. 협업 도구의 분류
문서 공유용 -> 구글 드라이브
소스 공유용 -> 깃허브
아이디어 공유용 -> 에버노트
디자인 공유용 -> 레드펜
마인드맵 -> 마인드 마이스터
프로젝트 관리 -> 트렐로, 레드마인, 지라
일정 관리 -> 구글 캘린더
3. 협업 도구의 기능
- 개발자 간 커뮤니케이션, 일정 및 이슈 공유가 가능하고 개발자 간 집단 지성을 효율적으로 활용할 수 있다.
(5) 형상 관리 도구
1. 형상 관리의 개념
- 형상 관리를 소프트웨어 생명주기 동안 발생하는 변경사항을 체계적으로 관리하여 소프트웨어의 품질 보증얄 항상시키는 관리적 활동
2. 형상 관리 절차
형상 식별(형상 관리 대상이 무엇인지 식별하는 활동, 이때 ID와 관리번호를 부여함) -> 형상 통제(변경사항에 대해 승인할지 기각할지를 결정하고 그에 따른 통제를 하는 활동) -> 형상 감사(형상 관리가 계획대로 진행되고 있는지를 살펴보는 활동) -> 형상 기록(소프트웨어 형상 및 변경 관리에 대한 각종 수행결과를 기록하는 활동)
3. 형상 관리 도구란
- 소프트웨어 변경 사항을 관리하기 위해서 형상 식별, 통제, 감사, 기록을 수행하는 도구다.
▼ 형상 관리 도구의 기능
기능 | 설명 |
체크인 | 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능 |
체크아웃 | 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운로드 받는 기능 |
커밋 | 개발자가 소스를 저장소에 업로드 후에 최종적으로 업데이트 되었을 때 형상 관리 서버에서 반영하도록 하는 기능 |
4. 형상 관리 도구 사례
▼ CVS
- CVS는 가장 오래된 형상 관리 도구 중 하나로 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리르 실행하는 도구이다.
- 변경사항을 동기화 가능하고 파일 단위로 관리할 수 있다.
- 직관적이고 단순하지만 텍스트 기반 소스 코드를 위주로 지원하고 디렉토리의 변동이 불편하며 커밋이 실패하면 롤백 기능을 지원하지 않는 단점이 있다.
▼ SVN
- 중앙 집중형 클라이언트-서버 방식으로 CVS으 단점을 보완해 가장 널리 사용되고 있는 형상 관리 도구
- CVS의 기능을 제공하고, 바이너리 파일을 관리하며 롤백 기능도 지원한다.
- 디렉토리 파일을 자유롭게 이동 가능하며 속도도 빠르고 다양한 플러그인 API를 제공함
- 하지만 잦은 커밋으로 인해 리비전 번호가 크게 증가할 수 있음, 개별 개발자만의 개발 이력을 가질 수 없다는 단점이 있다.
▼Git
- 리누스 토발즈가 만든 형상 관리 도구
- 로컬/원격 형상 관리가 가능하며 이관 기능도 있음(커밋 실패시 롤백 가능)
- 저장소의 완전한 복사본을 로컬 저장으로 가능하고 오프라인 작업도 가능하고 이력 관리가 쉬움
- 하지만 대용량 코드 관리에 부적절하며 변경사항을 보기가 어렵고 다른 SVN과 개념이 달라 따로 공부해야 함
'정처기(필기) > 소프트웨어개발' 카테고리의 다른 글
인터페이스 구현 (0) | 2022.06.01 |
---|---|
알고리즘(Algorithm) (0) | 2022.05.31 |
애플리케이션 테스트 관리 (0) | 2022.05.31 |
물리 데이터 저장소, ORM 프레임워크, 트랜잭션 인터페이스, 프로시저, 쿼리, 소스코드 인스펙션 (0) | 2022.05.29 |
데이터 입출력 구현 (0) | 2022.05.28 |