본문 바로가기

공부중인것

정보처리기사 실기(8과목 서버프로그램 구현)

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표현식

크론 표현식을 통해 배치 수행 시간을 시간 및 주기등으로 설정

리눅스/유닉스 : 분, 시간, 일, 월, 요일 ,연도

쿼츠 크론 표현식 : 초, 분, 시간, 일, 월, 연도