-
(정보처리기사 실기) 서버 프로그램 구현정보처리기사/실기 2020. 7. 20. 22:59
개발환경 구축
개발 환경 구축 : 개발 환경 구축시 요구사항의 명확한 이해가 필요, 개발 도구와 서버의 선정이 이루어져야한다.
(사용 편의성, 성능, 라이선스 수)
개발 도구의 분류
-빌드 도구 : 작성한 코드의 빌드 및 배포를 수행
-구현 도구 : 코드 작성, 디버깅, 수정 등을 지원
-테스트 도구 : 코드의 기능 검증, 품질을 높이기 위해 사용
-형상 관리 도구 : 산출물에 대한 버전관리를 위한 도구
하드웨어 개발 환경
서버 하드웨어 개발 환경
- 웹 서버 : http를 이용한 정적 콘텐츠 처리
- 웹 애플리케이션 서버(WAS) : 동적 컨테츠(JSP, Servlet) 처리를 위해 사용
-데이터베이스 서버 : 데이터 수집, 저장 용도
-파일 서버 : 파일 저장을 위한 물리 저장장치를 활용
클라이언트 하드웨어 개발환경
-클라이언트 프로그램 : 설치를 통해 사용자와 커뮤니케이션을 함
-웹 브라우저 : 웹 애플리케이션 응답시 브라우저를 통해 사용자와 커뮤니케이션
-모바일 앱 : 모바일 디바이스에 설치되어 활용되는 어플리케이션
-모바일 앱 : 모바일 웹 상의 웹 브라우저를 통해 서비스 제공
소프트웨어 개발 환경
-운영체제 : 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
-미들웨어 : 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있게 해주고 이에 대한 관리를 도와주는 소프트웨어
-DBMS : 정보를 생성해주고, 데이터 베이스를 관리해주는 소프트웨어
형상관리 : 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리
- 가시성, 추적성, 무결성을 보장
형상관리 절차
형상 식별 - 형상 통제 - 형상 감사 - 형상 기록
형상 관리 베이스라인 : 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점 기준
공통 모듈 구현
공통 모듈 구현 : 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법
모듈 : 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어
모듈의 특징
- 독립성을 가진다.
-단독 컴파일, 재사용 가능
-독립성이 높을 수록 모듈 수정시 다른 모듈에 영향이 적다
-결합도는 낮게, 응집도는 높게 하는것이 좋은 모듈
모듈화 기법
-루틴 : 소프트웨어에서 특정 동작을 수행하는 코드로 기능을 가진 명령들의 모음
-메인 루틴 : 메인 루틴은 서브 루틴을 호출
-서브 루틴 : 메임 루틴에 의해 필요시 호출됨
소프트웨어 모듈 응집도 : 모듈의 독립성을 나타내는 개념, 모듈 내부의 연관 정도
응집도 유형
우연적 응집도 : 모듈의 각 구성요소가 관련이 없음
논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류
시간적 응집도 : 특정 시간에 처리 되어야 하는 활동
절차적 응집도 : 구성요소들이 기능을 순차적으로 수행
통신적 응집도 : 동일한 입력과 출력을 사용
순차적 응집도 : 한 활동에서 나용 출력값을 다른 활동이 사용
기능적 응집도 : 모든 기능이 단일한 목적을 수행
소프트웨어 모듈 결합도 : 모듈 외부, 다른 모듈과의 연관도 또는 모듈간의 의존성
결합도 유형
내용 결합도 : 다른 모듈 내부의 변수나 기능을 다른 모듈에서 사용
공통 결합도 : 파라미터가 모듈 밖에 선언 되어 있는 전역 변수를 참조
외부 결합도 : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜을 공유
제어 결합도 : 단순 처리할 대상인 값만 전달 되는게 아니라 제어 요소가 전달
스탬프 결합도 : 모듈간 배열이나, 객체, 구조등이 전달
자료 결합도 : 모듈간의 인터페이스로 전되는 파라미터를 통해서만 모듈간 상호 작용이 일어남
공통 모듈 구현 절차
DTO/VO - SQL - DAO - Service - Controller - 화면 구현
DTO/VO : 화면에서 전달받은 정보를 데이터베이스에 저장하는 객체
DAO : 데이터베이스에 추상 인터페이스를 제공하는 객체
MVC 패턴
모델(model) : 애플리케이션이 무엇을 할지 정의
뷰(view) : 화면에 무엇인가를 보여주기 위한 역할
컨트롤러(controller) : 모델이 어떻게 처리할지를 알려주는 역할
팬인(Fan-In) , 팬아웃(Fan-Out)
팬인(Fan-In) : 모듈을 제어(호출)하는 모듈의 수
자신의 모듈에 들어오면 팬인
팬아웃(Fan-Out) : 모듈에 의해 제어(호출)되는 모듈의 수
자신을 기준으로 모듈에서 나가면 팬 아웃
공통 모듈 테스트
-공통 모듈 테스트를 위해 IDE 도구를 활용
-공통 모듈 테스트는 화이트 박스 테스트 기법을 활용
대표적으로 Junit(자바용 단위 테스트 도구)
공통 모듈 테스트의 종류
-화이트 박스 테스트 : 내부 구조와 동작을 확인, 소스 코드를 보면서 수행
-메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 테스트, 파라미터 호출 하면서 테스트 수행
-화면 기반 테스트 : 화면 단위로 모듈 개발 후 직접 데이터를 입력하여 수행
-테스트 드라이버 / 테스트 스텁
테스트 드라이버 : 하위 모듈은 있지만 상위 모듈이 없는 경우 수행
테스트 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 수행
서버 프로그램 구현
DTO/VO : 화면에서 전달받은 정보를 데이터베이스에 저장하는 객체
SQL문 구현 : VO에서 정의한 객체 정보에 맞춰 정보가 저장될 테이블 생성
Mybatis XML 구현
Mybatis : 자바의 관계형 DB프로그래밍을 쉽게 할 수 있도록 도와주는 프레임워크
DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
배치 프로그램 구현
배치 프로그램 : 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리
배치 프로그램 필수 요소 : 이벤트 배치, 온디메트 배치, 정기 배치
이벤트(조건 충족시), 온디메트(요구시), 정기(정해진 시점)
배치 스케줄러 : 일괄 처리를 위해 주기적으로 발생 하거나 반복
배치 프로그램 유형 : 스프링 배치(대용량), 쿼츠 스케줄러(일괄처리) -> 둘다 스프링 프레임 워크
Cron 표현식
순서 : 초 - 분 - 시간 - 일 - 월 - 요일 - 연도
특수문자 의미
* : 모든 수
? : 해당 항목 미사용
- : 기간 설정
, : 특정 기간 설정
/ : 시작시간, 반복간격 설정
L : 마지막 기간에 동작
W : 가장 가까운 평일에 동작
# : 몇 번째 주, 요일 설정
ex) 0 0 12 * * * : 매일 12시에 실행
0 0 20 ? * MON-FRi : 월~금 20시 0분 0초에 실행
0 0/5 14 * * * : 매일 14시에 시작해서 5분 간격으로 실행
'정보처리기사 > 실기' 카테고리의 다른 글
(정보처리기사 실기) 화면 설계 (0) 2020.07.21 (정보처리기사 실기) 인터페이스 구현 (0) 2020.07.21 (정보처리기사 실기) 통합구현 (0) 2020.07.20 (정보처리기사 실기) 데이터 입출력 구현 (0) 2020.07.20 (정보처리기사 실기) 요구사항 확인 (0) 2020.07.20