안녕하세요 오늘은 정보처리기사 실기 서버 프로그램 구현 단원에 대해 공부하겠습니다.
1. 개발 환경 구축
형상통제란?:
형상항목의 버전 관리를 위해서 변경여부와 변경활동을 통제하는 활동
리눅스 위에서 구동하며 휴대전화를 비롯한 장치 운영체제, 자바와 코틀린을 사용하여 개발하는 운영체제는?:
안드로이드
개발도구 분류:
빌드도구 - 작성한 코드의 빌드 및 배포를 수행하는 도구
구현도구 - 코드의 작성과 디버깅 수정 등을 작업하는 도구
테스트도구 - 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
형상관리 도구 - 산출물에 대한 버전관리 도구
개발환경을 구성하는 서버 분류:
웹 서버 - http 이용 요청/응답 처리, 웹상 정적 콘텐츠 처리
웹 어플리케이션 서버 - 동적 콘텐츠 처리를 위해 사용
데이터베이스 서버 - 데이터의 수집, 저장을 위한 용도로 사용
파일서버 - 물리 저장장치를 활용한 서버
클라이언트 하드웨어 개발환경 분류:
클라이언트 프로그램 - 설치를 통해 사용자와 커뮤니케이션하는 프로그램
웹 브라우저 - 웹 서비스의 형태로 서버에서 웹 어플리케이션 응답 시 브라우저를 통해 사용자와 커뮤니케이션
모바일 앱 - 모바일 디바이스에 설치되어 활용되는 커뮤니케이션
모바일 웹 - 웹브라우저와 동일한 형태로 모바일상 웹 브라우저를 통해 서비스 제공
소프트웨어 개발환경 분류:
운영체제 - 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기위한 소프트웨어
미들웨어 - 웹서비스는 web,was 서버를 설치하여 사용자 요구사항에 적합한 서비스 제공
DBMS - 데이터의 저장 및 활용을 위해 제공
2. 공통 모듈 구현
결합도와 응집도:
모듈간의 결합도는 약하게 응집도는 강하게 해야 독립성이 높아진다.
응집도:
우연적 - 모듈 내부의 각 구성요소 연관 없음
논리적 - 유사한 성격을 갖거나 특정 시간에 처리되어야하는 활동을 한 모듈에서 처리되는 경우
시간적 - 연관된 기능이라기 보다 특정 시간에 처리되어야하는 활동을 한 모듈에서 처리되는 경우
절차적 - 모듈이 다수의 관련 기능을 가질 때 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우
통신적 - 동일한 입력과 출력을 사용 다른 기능을 수행하는 활동들이 모여 있을 경우
순차적 - 모듈내에서 한 활동으로 부터 나온 출력값을 다른 활동이 사용할 경우
기능적 - 모듈내부의 기능이 단일한 목적을 위해 수행되는 경우
우 -> 논 -> 시 -> 절 -> 통 -> 순 -> 기 응집도가 낮음 -> 응집도가 높음 (순서대로 품질이 좋아짐)
결합도:
내용 - 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
공통 - 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
외부 - 두개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우
제어 - 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야한다는 제어 요소가 전달되는 경우
스탬프 - 모듈 간의 인터페이스로 배열이나 객체, 구조등이 전달되는 경우
자료 - 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈간의 상호작용이 일어나는 경우
내 -> 공 -> 외 -> 제 -> 스 -> 자 결합도가 높음 -> 결합도가 낮음 (순서대로 품질이 좋아짐)
MVC 패턴이란?:
model - 애플리케이션이 무엇을 할 것인지를 정의, 내부 비즈니스 로직을 처리
controller - model이 어떻게 처리할지를 알려주는 역할, view에 명령을 보내어 화면 요청 결과를 전달
view - 화면에 무엇인가를 보여주기 위한 역할
공통 모듈 테스트란?:
공통모듈 테스트를 위해 IDE 도구를 활용하여 개별모듈에 대한 디버깅을 수행한다.
공통모듈 테스트는 화이트박스 기법을 활용한다.
junit을 활용해 테스트 코드를 구현한다.
화이트 박스 테스트란?:
응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식이다.
3. 서버 프로그램 구현
mybatis란?:
object relation mapping 도구 중 하나로 객체 지향 언어인 자바의 관계형 db 프로그래밍을
좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크이다.
데이터베이스에 조회, 수정, 삭제, 입력하기 위한 객체?:
dao - 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터 조작
dto - 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장 - 회수 외에 다른 기능 없음
vo - 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 dto와 달리 고정 클래스를 가짐
4. 배치 프로그램 구현
사용자와 상호작용 없이 일련의 작업들을 작업단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에따라
일괄 처리하는 방법?:
배치 프로그램
스프링 배치: 스프링 프레임 워크의 di, aop , 서비스 추상화등 대용량 처리를 제공하는 스케쥴러
쿼츠 스케쥴러: 스프링 프레임워크에 플러그인 되어 수행하는 작업과 실행 스케쥴러를 정의하는 트리거를 분리하여
유연성을 제공하는 오픈 소스 기반 스케쥴러
쿼츠 크론 표현식의 순서?:
초 -> 분 -> 시간 -> 일 -> 월 -> 요일 -> 연도
쿼츠 크론 표현식의 특수문자?:
* 모든수
? 해당 항목을 미사용
- 기간 설정
, 특정 기간 설정
/ 시작 시간과 반복간격 설정
L 마지막 기간에 동작
W 가장 가까운 평일에 동작
# 몇번째 주,요일 설정
0 0 12 * * ?
스케쥴러를 매일 12시 실행
0 0 7 ? * MON-SAT
스케쥴러를 매일 월~토 7시 실행
댓글