방구석 상상코딩

23. 서버 프로그램 구현, 배치 프로그램 구현 본문

정보처리기사 실기

23. 서버 프로그램 구현, 배치 프로그램 구현

구석탱 2022. 1. 26. 20:21

서버 프로그램

1. 백엔드 (Back-End)

사용자와 만나지 않고 프론트엔드와 연동하여 핵심 로직을 처리하는 영역으로 DB나 인터페이스 등을 통해 시스템에 접근

  • DAO (Data Access Object) : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터 조작
  • DTO (Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장/회수 외에 다른 기능 없음
  • VO (Value Object) : 간단한 엔티티를 의미하는 작은 객체 기반 클래스인 DTO와 달리 고정 클래스를 가짐

 

2. 프론트엔드 (Front-End)

사용자의 화면에 나타나는 웹 화면 영역으로 웹 페이지를 그리는 기술로 JSP, Javascript, CSS, HTML, Node.js, React.js, Angular.js 등을 활용

Mybatis

객체지향 언어인 자바의 관계형 DB 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크

배치 프로그램

사용자의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

  • 이벤트 배치 : 사전에 정의해 둔 조건 충족 시 자동으로 실행
  • 온디맨드 배치 : 사용자의 명시적 요구가 있을 때마다 실행
  • 정기 배치 ; 정해진 시점에 정기적으로 실행

배치 스케쥴러

1. 스프링 배치 (Spring Batch)

스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케쥴러 배치 애플리케이션

 

2. 쿼츠 스케쥴러 (Quartz Scheduler)

스프링 프레임워크에 플러그인 되어 수행하는 작업(Job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반의 스케쥴러

Cron 표현식 (쿼츠 크론 표현식)

순서 필드 이름 허용 값
1 초 (Seconds) 0 ~ 59, 특수문자
2 분 (Minutes) 0 ~ 59, 특수문자
3 시간 (Hours) 0 ~ 23, 특수문자
4 일 (Day) 1 ~ 31, 특수문자
5 월 (Month) 1 ~ 12, JAN ~ DEC, 특수문자
6 요일 (Week) 1 ~ 7, SUN ~ SAT, 특수문자
7 연도 (Year) - 생략가능 1970 ~ 2099, 특수문자

Cron 표현식 특수문자 의미

기호 의미
* 모든 수
? 해당 항목을 미사용
- 기간 설정
, 특정 기간 설정
/ 시작시간과 반복간격 설정
L 마지막 기간에 동작
W 가장 가까운 평일에 동작
# 몇 번째 주, 요일 설정