IT/정보처리기사실기 공부

[정보처리기사실기] 서버 개발, 서버 개발 과정, 배치 프로그램

phobi-k 2020. 10. 4. 21:11

1. 서버 개발 (C)

  • 서버 개발 : 웹 어플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것
  • 서버 개발 프레임워크
    • Spring : JAVA 기반 프레임워크
    • Node.js : JavaScript 기반
    • Django : Python 기반
    • Codeignier : PHP 기반
    • Ruby on Rails : Ruby 기반
  • 프레임워크 특성
    • 모듈화
    • 재사용성
    • 확장성
    • 제어의 역흐름 : 개발자가 관리해야 하는 객체들의 제어 권한을 프레임워크에 넘긴다

2. 서버 개발 과정 (A)

  • DTO/VO, SQL, DAO, Service, Controller 각각 구현
  • DTO/VO : 데이터 교환을 위한 객체 생성
  • SQL : 데이터 삽입, 삭제, 변경 등의 SQL문 생성
  • DAO : DB에 접근하고 SQL을 활용하여 데이터를 조회하는 과정
    • MyBatis와의 연동을 위한 SqlSession의 라이브러리 추가
    • @Repository : DAO에 특화된 어노테이션
  • Service : 사용자의 요청에 응답하기 위한 로직을 구현하는 과정
    • @Service
  • Controller : 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드 구현하는 과정
    • @RequestMapping(..) : 'URL'을 Controller의 메소드와 매핑
  • 웹 사이트 -> Controller -> Service -> DAO -> XML(SQL) -> DataBase
  • DataBase -> DAO -> Service -> Controller -> 웹사이드

3. 배치 프로그램 (B)

  •  배치 프로그램(Batch Program) : 사용자와의 상호작용 없이 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것
    • 정기 배치 : 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
    • 이벤트성 배치 : 특정 조건이 충족될 때 수행
    • On-Demand 배치 : 사용자 요청 시 수행
  • 배치 프로그램 필수 요소
    • 대용량 데이터 : 대용량 데이터 처리가 가능해야 한다.
    • 자동화 : 사용자의 개입 없이 수행되어야 한다.
    • 성능 : 다른 프로그램의 수행을 방해하지 않고, 지정된 시간 내에 처리가 완료되어야 한다.
    • 견고성 : 잘못된 데이터나 중복등의 상황으로 중단되지 않아야 한다.
    • 안정성 : 오류가 발생하면 위치, 시간등을 추적할 수 있어야 한다.
  • 배치 스케줄러(Batch Scheduler)  : 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
    • 스프링 배치 : 스프링 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능 모두 사용 가능
      • Job, Job Launcher, Step, Job Repository
    • Quartz : 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능 제공
      • Scheduler, Job, JobDetail, Trigger
    • Cron : 리눅스의 스케줄러 도구로 crontab 명령어를 통해 직접 예약할 수 있다.
      • [분][시][일][월][요일][명령어]
        • * * * * */root/test.sh : 매월 매일 매시 매분마다 test.sh 실행
      • /[단위]입력하면 단위로 나눈 나머지가 0일 때마다 수행
        • 30 */3 * * */root/test.sh : 매월 매일 0:30 부터 3시간마다 test.sh 실행
      • [시작시기]-[종료시기]로 특정 구간 반복
        • * 18-23 20 * */root/test.sh : 매월 20일 18~23시 매분마다 실행
      • [시기1][시기2].... 로 특정 시기 지정
        • 30 23 25 4,9,11 */root/test.sh : 4,9,11월 25일 10:30분에 실행