2020년/정처기
[2020 정보처리기사 실기] Section 05 . 서버 프로그램 구현(3/3)
위지원
2020. 4. 17. 19:16
이전글
2020/04/17 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 05 . 서버 프로그램 구현(2/3)
서버개발
1. 서버개발 프레임워크
- 서버 개발은 웹어플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것
- 서버 개발 프레임워크의 대부분은 model-view-controller(MVC) 패턴을 기반으로 함
프레임 워크 | 기반 언어 | 특징 |
Spring | JAVA | 전자정부 표준 프레임워크의 기반 기술 |
Node.js | JavaScript | 기반, 실시간 입출력이 빈번한 애플리케이션에 적합 |
Django | Python | 컴포넌트의 재사용과 플러그인화 강조 |
Codeigniter | PHP | 인터페이스가 간편하며 서버자원을 적게 소모 |
Ruby on Rails | Puby | 테스트를 위한 웹서버 지원 |
2. 프레임 워크의 특성
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름 : 개발자가 관리,통제 해야하는 객체 제어권한을 프레임워크에 넘겨 생산성 향상
서버 개발 과정
서버 개발은 DTO/VO, SQL, DAO, Service, Controller를 각각 구현하는 과정을 통해 이루어짐
1. DTO(Data Transfer Object)/ VO((Value Object) 구현
DTO/VO 구현은 데이터 교환을 위해 사용할 객체를 생성하는 과정
- DTO : 데이터 교환을 위해 생성되는 객체
- VO : DTO와 동일하지만 읽기만 가능, 수정 불가
2. SQL 구현
XML 파일로 저장하여 관리할 수 있는데, 이러면 중복SQL문을 최소화하고 유지보수가 간편해짐
3.DAO(Data Access Object) 구현
데이터베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드 구현
- DAO : DB에 접근하여 데이터를 조회/생성/수정/삭제 작업을 수행하는 객체
4. Service 구현
사용자의 요청에 응답하기 위한 로직 구현
5. Controller 구현
사용자의 요청에 적절한 서비스를 호출하여 그결과를 사용자에게 반환하는 코드 구현
배치 프로그램
1. 배치프로그램이란
- 사용자와의 상호작용 없이 여러작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것
- 수행 주기에 따라 아래와 같이 구분
정기 배치 | 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 |
이벤트성 배치 | 특정 조건을 설정해두고 조건이 충족될 때 수행 |
On-Demand 배치 | 사용자 요청시 수행 |
- 배치 프로그램의 필수 요소
대용량 데이터 | 대용량 데이터 로드, 전달, 계산등의 처리가 가능 |
자동화 | 심각한 오류빼고는 사용자 개입 없이 수행 |
견고성 | 잘못되거나 중복된 데이터로 상황이 중단되어서는 안됨 |
안전성/신뢰성 | 오류를 추적할 수 있어야함 |
성능 | 다른 프로그램 수행 방해하지말고 정해진 시간내에 처리 가능 |
2. 배치 스케쥴러
일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지우너해주는 도구, 잡 스케쥴러라고도 불림
- 스프링 배치 : Spring Source 사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임워크
- 스프링 프레임워크의 특성을 그대로 가져옴
- 주요 구성 요소
- Job : 수행할 작업 정의
- Job Launcher : 실행을 위한 인터페이스
- Step : Job 처리를 위한 제어 정보
- Job Repository : Step의 제어정보를 포함하여 작업 실행을 위한 모든 정보 저장
- Quartz : 스프링 프레임워크로 개발되는 응용프로그램들의 일괄 처리를 위한 다양한 기능 제공
- 주요 구성 요소
- Scheduler : 실행 황경 관리
- Job
- JobDetatil
- Trigger : Job의 실행 스케줄 정의
- 주요 구성 요소
- Cron : 리눅스 스케쥴러 도구, crontab 명령어를 통해 작업 예약 가능
- 펴ㄴ집기에서 요일, 월, 일, 시, 분을 기준으로 명령어 지정
- 옵션
- -e : 편집기를 호출하여 작업 추가 및 수정
- -l : 작업 목록 출력
- -r : 작업 삭제
- 분 시 일 월 요일 명령어
- 예시
- * * * * * /root/com_1.sh -> 매월 매일 매시 매분마다 com_1.sh 실행
- 30 1 * * * /root/com_2.sh -> 매월 매일 1시 30분에 com_2.sh 실행
- 30 */3 * * * /root/com_1.sh -> 매월 매일 0:30부터 3시간마다 com_1.sh 실행
- 나누기를 하면 나눈 나머지가 0일때마다 명령어 수행
- * 10-23 20 * * /root/com_1.sh -> 매월 20일 18-23시 사이에 매분마다 com_1.sh 실행
- 30 23 25 4,8,11 * /root/com_1.sh -> 4/8/11월의 25일 23시 30분에 com_1.sh실행
다음글
2020/04/20 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 06. 화면 설계(1/2)