본문 바로가기
  • Always Awake
정보처리기사/4과목

[정보처리기사 필기] 서버 프로그램 구현

by NerdyBoy 2022. 2. 20.

개발환경 구축


1. 하드웨어 환경

사용자와의 인터페이스 역할을 하는 클라이언트(Client) 그리고 클라이언트와 통신하여 서비스를 제공하는 서버(Server)로 구성된다.

  • 클라이언트는 PC, 스마트폰등
  • 서버는 사용목적에 따라 나뉨
    • 웹 서버(Web Server) : 클라이언트로 부터 직접 요청받아 처리하는 서버로, 저용량의 정적 파일 제공
    • 웹 애플리케이션 서버(WAS; Web Application Server) : 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 파일 서버 사이에서 인터페이스 제공
    • 데이터베이스 서버(DataBase Server) : 데이터베이스와 이를 관리하는 DBMS 운영하는 서버
    • 파일 서버(File Server) : 데이터베이스에 저장하기에는 비효율 적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버

정적 파일(Static File) : 별도의 처리과정 없이 사용자에게 바로 보여지는 파일로, CCS, HTML, 이미지 등

 

2. 소프트웨어 환경

클라이언트와 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성된다.

  • 시스템 소프트웨어에는 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS등이 있다.
  • 개발 소프트웨어
    • 요구사항 관리 도구 : 요구사항 수집, 분석, 추적 도와주는 도구
    • 설계/모델링 도구 : UML지원, 개발 전과정에서 설계 및 모델링 도와주는 언어
    • 구현 도구 : 개발 언어 통해 애플리케이션 실제 구현 지원하는 소프트웨어
    • 빌드 도구 : 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리를 지원하는 소프트웨어 
    • 테스트 도구 : 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어
    • 형상 관리 도구 : 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어

 


 

서버 개발


웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것을 의미

 

1. 서버 개발 프레임워크

프레임워크 특징
Spring JAVA를 기반으로 만들어진 프레임워크로, 전자정부 표준 프레임워크의 기반 기술로 사용
Node.js JavaScript를 기반으로 만들어진 프레임워크로, 비동기 입/출력 처리와 이벤트 위주의 높은 처리성능을 갖고있어 실시간으로 입/출력이 빈번한 애플리케이션에 적합하다.
Django Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원한다.
Codeigniter PHP를 기반으로 만들어진 프레임워크로, 인터페이스가 간편하며 서버 자원을 적게 사용한다.
Ruby on Rails Ruby를 기반으로 만들어진 프레임워크로, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화 시켜 개발 코드의 길이가 짧아 신속한 개발이 가능하다.

 

2. 서버 프로그램 구현

응용 소프트웨어와 동일하게 모듈 및 공통 모듈 개발한 후, 모듈 통합하는 방식으로 구현

 

모듈, 공통모듈 알아보기

 

[정보처리기사 필기] 모듈(Module)

모듈 1. 모듈(Module) 개요 모듈은 모듈화 를 통해 분리된 시스템의 각 기능들로, 서브루틴, 서브시스템, 소프트웨어 내 프로그램, 작업 단위 등가 같은 의미 단독으로 컴파일 가능하며, 재사용 가

kimasill.tistory.com

 


 

배치 프로그램


1. 개요

사용자와 상호작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것

  • 정기 배치 : 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
  • 이벤트성 배치 : 특정 조건을 설정해두고 조건이 충족될 때만 수행
  • On-Demand 배치 : 사용자 요청시 수행

배치 프로그램이 갖추어야할 필수 요소

대용량 데이터 대량 데이터 가져오거나, 전달, 처리 가능해야함
자동화 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입없이 수행되어야한다.
견고성 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 한다.
안정성 / 신뢰성 오류가 발생하면 오류의 발생위치, 시간등을 추적할 수 있어야한다.
성능 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간내에 처리가 완료되어야한다.

 

2. 배치 스케줄러(Batch Scheduler)

일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 도와주는 도구이다.

  • 배치 스케줄러는 특정업무를 원하는 시간에 처리할 수 있도록 도와주는 특성 때문에 잡 스케줄러(Job Scheduler) 라고도 불린다.

스프링 배치(Spring Batch)

  • Spring Source 사와 Accenture 사가 2007년 공동 개발한 오픈 소스 프레임워크
  • 스프링 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능 모두 사용가능
  • 데이터베이스나 파일 데이터 교환하는데 필요한 컴포넌트 제공
Job 수행할 작업 정의
Job Launcher 실행을 위한 인터페이스
Step Job 처리를 위한 제어정보
Job Repository Step 의 제어 정보를 포함하여 작업 실행을 위한 모든 정보 저장

 

Quartz

스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈소스 라이브러리

수행할 작업과 수행 시간 관리하는 요소 분리하여 일괄처리 작업에 유연성 제공

Scheduler 실행 환경 관리
Job 수행할 작업 정의
JobDetail Job의 상세정보
Trigger Job의 실행 스케줄 정의

 


 

출처

자료 참고: 

시나공 정보처리기사 필기 2022를 참고하여 작성되었습니다

표지

 

댓글