▼단위 모둘 구현
★단위 모듈
소프트웨어 구현에 필요한 다양한 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것을 의미한다.
사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램이기에 독립적인 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입될 수 있고 두개의 단위 도뮬이 합쳐지면 두 개의 기능들을 같은 모듈로 구현할 수 있다.
종류 : 화면, DB 접근, 인터페이스, 비즈니스 트랜젝션, 데이터 암호화 등
★단위 기능 명세서
큰 규모의 시스템을 분해하여 단위 기능별로 계측적으로 구조화하고, 단순하게 추상화한 문서이다.
★모듈화의 원리
소프트웨어 개발에 있어 기능을 나누고 추상화하여 소프트웨어의 성능을 향상시키고 유지보수를 효과적으로 구현하기 위한 기법을 의미한다.
종류
분할과 지배: 복잡한 문제를 분해 모듈 단위로 문제를 해결한다.
정보 은폐 : 어렵거나 변경가능성이 있는 모듈을 타 모듈로부터 은폐시킨다.
자료 추상화: 함수 내에 자료 구조의 표현 명세를 은폐 자료와 자료에 적용 가능한 오퍼레이션을 함꼐 정의한다.
모듈의 독립성 : 낮은 결함도, 높은 응집도를 갖도록 한다.
▼단위 도뮬 테스트
프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것이다.
화이트박스 테스트와 블랙박스 테스트 기법이 있다.
구현 단계의 작업 절차
코딩계획 -> 코딩 -> 컴파일 -> 테스트
▼통합환경 개발 환경
★IDE(Integrated development environment)
C++, Java등의 언어를 이용한 소프트웨어 개발 단계에서 패키지 인크루딩, 소스 코드 편집, 컴파일, 디버깅, 바이너리 배포등 모든 작업을 통합 지원한다. 편집기, 컴파일러, 디버거 등의 다양한 도구를 하나의 인터페이스로 통합하여 제공.
오류 체크를 시각화 하여 확인 및 수정을 쉽도록 지원하며 컴파일에 필요한 외부 추가 기능을 연계하여 편의성을 높였다.
종류 : 이클립스 , 비주얼 스튜디오, 엑스 코드, 안드로이드 스튜디오, IDEA
★IDE 도구 기능
개발 환경 지원, 컴파일, 디버깅, 외부 연계, DB연동, Deployment
★빌드 자동화 도구
소스 코드 컴파일 후 다수의 연관된 모듈을 묶어 실행 파일로 만든다.
소프트웨어 개발자가 반복 작업해야하는 코딩을 잘 짜여진 프로세스를 통해 자동으로 실행하여 신뢰성 있는 결과물을 생산해 낼 수 있는 작업 방식 및 방법이다.
소스코드를 컴파일, 테스트, 정적 분석 등을 실시하여 실행 가능한 애플리케이션으로 자동 생성하는 프로그램이며, 지속해서 증가하는 라이브러리의 자동 추가 및 관리를 지원한다.
최근에는 오픈소스인 Gradle이 등장했으며, 구글이 안드로이드의 기본 빌드 시스템으로 Gradle을 선택하면서 사용자가 급증하였다.
기능: 코드 컴파일, 컴포넌트 패키징, 파일 조작, 개발 테스트 실행, 버전 관리 도구 통합, 문서 생성, 배포 기능, 코드품질 분석
프로세스 : 컴파일 -> 패키징 -> 단위 테스트 -> 정적 분석 -> 리포팅 -> 배포 -> 최종빌드
종류: Gradle, Jenkins, Makefile, Ant, Maven 등
Ant는 자바 빌드 도구로서 XML 기반의 스크립트를 사용합니다. Ant는 CVS, SVN 체크아웃에서부터 컴파일, 테스트, 디플로이까지의 빌드 프로세스를 자동화할 수 있습니다. Ant는 JUnit과 완벽히 통합되어 있습니다. Ant는 project, target으로 구성되며 target안에 task를 구현합니다. Ant를 사용하시려면 build.xml 파일을 작성하고 실행해야 합니다.
Maven은 Ant 이후에 나온 자바 빌드 도구로서 자동으로 라이브러리와 의존성을 관리하는 기능이 있습니다. Maven은 XML 스크립트를 기반으로 하며, pom.xml 파일로 의존성을 관리합니다. Maven은 프로젝트의 전체적인 라이프 사이클을 관리하는 도구이기도 합니다. Maven을 사용하시려면 pom.xml 파일을 작성하고 실행해야 합니다.
Gradle은 최신 자바 빌드 도구로서 그루비(Groovy) 문법을 사용합니다. Gradle은 Ant와 Maven의 장점을 결합하고 단점을 보완한 도구입니다. Gradle은 build.gradle 파일에 스크립트를 작성하며, XML 기반 스크립트보다 관리가 편리합니다.
Jenkins은 Java 기반의 오픈소스 형태의 빌드 자동화 도구로 쉽게 설치 가능할 수 있으며, 서버 기반의 도구로서 클라이언트의 요청을 처리하기 위해 서버에서 실행되는 서블릿 실행과 생명주기를 관리하는 서블릿 컨테이너에서 실행해야합니다. Web UI를 지원하고, SVN, Git 등의 대부분 형상 관리도구와 연동 가능합니다.
'백엔드 개발자 기록 일람 > 정보처리기사 준비 기록' 카테고리의 다른 글
제품 소프트웨어 저작권 (2) | 2024.04.12 |
---|---|
제품 소프트웨어 패키징 (0) | 2024.04.11 |
미들웨어 솔루션 (0) | 2024.03.26 |
인터페이스 대상 식별 -2- (1) | 2024.03.15 |
인터페이스 대상 식별 -1- (0) | 2024.03.13 |