CHATER1 개발환경 구축
1. 개발 도구 분류
분류 | 설명 | 도구 |
빌드도구 | 작성한 코드의 빌드 및 배포를 수행하는 도구 | Ant,Maven,Gradle |
구현도구 | 코드의 작성과 디버깅,수정 등과 같이 작업시 사용되는 도구 | Eclipse, InteliJ, VS |
테스트 도구 | 코드의 기능 검증과 전체의 품질을 높이기 위해 사용되는 도구 | xUnit,PMD,Sonar |
형상 관리 도구 | 산출물에 대한 버전관리를 위한 도구 | Git,SVN,CVS |
2. 서버 하드웨어 개발 환경
분류 | 설명 | 종류 |
웹 서버 | HTTP를 이용한 요청, 응답 처리 | Apache,구글 |
웹 애플리케이션 서버 | 동적 콘텐츠(JSP,Servelt)처리 목적 | Tomcat,Jeus,Resin |
데이터베이서 서버 | 데이터 수집,저장을 위한 용도 | Mysql, Oracle |
파일 서버 | 물리 저장장치를 활용한 서버 | HDD,SSD |
3. 소프트웨어 개발 환경
종류 | 설명 |
운영체제 | 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어 |
미들웨어 | 웹 서버, JVM같은 개발 환경의 구성요소로 활용 |
DBMS | 데이터의 저장 및 활용을 위해 DBMS 설치 |
4. 형상관리
소프트웨어 개발을 위한 전체 과정에서 발생되는 모든 항목으 변경사항을 관리하기 위한 활동
5. 형상 관리 절차
절차 | 설명 |
형상 식별 | 형상 관리 대상에 이름과 관리번호를 부여, 계층 구조로 구분하여 추적이 용이하다 |
형상 통제 | 베이스라인에 대한 관리 및 형상 통제 수행 가능 |
형상 감사 | 베이스라인 변경 요구시 요구사항과 일치여부(무결성) 검토 |
형상 기록 | 형상결과 보고서 작성 |
6. 소프트웨어 형상관리 도구 유형
형상 관리 도구 | 설명 | 툴 |
공유폴더 방식 | 매일 개발이 완료된 파일은 약속된 위치의 공유 볼더에 복사되는 방식 |
RCS,SCCS |
클라이언트 서버 방식 | 중앙에 버전 관리 시스템을 항시 동작시키는 방식 | CVS,SVN |
분산 저장소 | 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 반식 | GIT |
CHATER2 공통모듈 구현
1. 모듈이란
하나의 소프트웨어 or 하드웨어의 단위
2. 모듈화
소프으웨어를 성능향상 시키거나, 재사용 및 유지관리가 용이하도록 기능단위 모듈로 분배
3. 모듈화 기법
기법 | 설명 |
루틴 | 소프트웨어 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임 |
메인루틴 | 프로그램의 주요한 부분, 전체의 개략적인 동작 절차를 표시하도록 만들어 짐 |
서브루틴 | 메인 루틴에 의해 필요할때마다 호출되는 루틴 |
4. 공통모듈의 구현비용
응집도는 높을 수록 좋고, 결합도는 낮을 수록 좋다
5. 소프트웨어 모듈 응집도(우.논.시.절.통.순.기)
유형 | 설명 | 응집도 | 품질 |
우연적(Coincidential) | 모듈 내부의 각 구성요소가 연관이 없는 경우 | 낮음 | 나쁨 |
논리적(logical) | 유사한 성격을 갖거나 특정형태로 분류되는 경우 | ||
시간적(temporal) | 특정 시간에 처리되어야하는 활동들을 한모듈에서 처리하는 경우 | ||
절차적(procedure) | 모듈안의 구성요소들이 기능을 순차적으로 수행하는 경우 | ||
통신적(communicational) | 다른 기능을 수행하는 활동들이 모여있는 경우 | ||
순차적(sequential) | 출력값을 다른 활동이 사용하는 경우 | ||
기능적(functional) | 모든 기능이 단일한 목적을 위해 수행되는 경우 | 높음 | 좋음 |
6. 소프트웨어 결합도 (내.공.외.제.스.자)
유형 | 설명 | 결합도 | 품질 |
내용(Control) | 다른 모듈의 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우 | 높음 | 나쁨 |
공통(Common) | 전역 변수를 참조 하고 갱신하는 경우 | ||
외부(External) | 데이터포맷, 통신프로토콜, 디아비스 인터페이스를 공유하는 경우 | ||
제어(Control) | 제이요소가 전달되는 경우 | ||
스탬프(Stamp) | 배열이나 객채, 구조 등이 전달되는 경우 | ||
자료(Data) | 파라미터를 통해서만 상호작용이 일어나는 경우 | 낮음 | 좋음 |
7. 팬인/팬아웃 개념
개념 | 설명 |
팬인(Fan-In) | 모듈을 제어하는 수, 해당 모듈로 들어오는 모듈의 수 |
팬아웃(Fan-Out) | 제어되는 숫자, 해당 모듈에서 나가는 모듈의 수 |
8.공통모듈 테스트
IDE 도구를 활용하여 개별 공통모듈에 대한 디버깅을 수행
9.공통모듈 테스트 종류
종류 | 설명 |
화이트박스 테스트 | 소스코드를 보면서 테스트 케이스를 다양하게 만들어 테스트, 응용 프로그램 내부 구조와 동작검사 |
블랙박스 테스트 | 내부코드를 보지 않고 검사, 입려값에 목표값이 나오는지 확인 |
메서드기반 테스트 | 공통 모듈의 외부와 공개된 메서드기반 테스트 |
화면 기반 테스트 | 화면단위로 단위 모듈 개발후에 테스트 |
테스트 드라이버 | 하위모듈은 있지만 상위모듈은 없는 경우 (상향식) |
테스트 스텁 | 상위모듈은 있지만 하위모듈은 없는 경우 (하향식) |
10. JUnit
자바 프로그래밍 언어용 단위 테스트 도구
CHATER3 배치프로그램 구현
1. 배치프로그램
사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어서 정기적으로 반복수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
2. 배치프로그램 유형
유형 | 설명 |
이벤트 배치 | 사전에 정의해 둔 조건이 충족 시 자동으로 실행 |
온디맨드 배치 | 사용자의 명시적 요구가 있을때마다 실행 |
정기 배치 | 정해진 시간에 정기적으로 실행 |
3. 배치 스케줄러
일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원하는 도구
4. 배치 스케줄러 종류
종류 | 설명 |
스프링 배치 | 오픈 소스 프레임워크 |
쿼츠 스케줄러 | 수행할 작업과 수행시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성 제공 |
5. Cron표현식
크론 표현식을 통해 배치 수행 시간을 시간 및 주기등으로 설정
리눅스/유닉스 : 분, 시간, 일, 월, 요일 ,연도
쿼츠 크론 표현식 : 초, 분, 시간, 일, 월, 연도
'공부중인것' 카테고리의 다른 글
정보처리기사 실기 (10과목 애플리케이션 테스트 관리) (0) | 2022.06.22 |
---|---|
정보처리기사 실기(9과목 소프트웨어 개발 보안 구축) (0) | 2022.06.21 |
정보처리기사 실기(7과목 SQL응용) (0) | 2022.06.16 |
정보처리기사 실기 (5과목 인터페이스 구현) (0) | 2022.06.16 |
정보처리기사 실기 (4과목 통합 구현) (0) | 2022.06.16 |