정보처리기사

[정보처리기사 요약 4-4] 서버 개발 프레임워크(Spring, Node.js)와 배치 스케줄러(Batch Scheduler)

Hong's_Computer 2026. 2. 26. 16:03
반응형
본문에 오류가 있을 수 있음을 감안하고 봐주시길 바랍니다.
# 문제 풀이 중 오답노트 하면서 나온 내용을 정리한 것

 

통합 개발 환경(Integrated Development Environment, IDE): 개발에 필요한 환경, 즉 편집기(Editor)·컴파일러(Compiler)·디버거(Debugger) 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 환경을 말한다. 통합 개발 환경 도구는 코드를 실행하거나 테스트할 때 오류가 발생한 부분을 시각화하므로 수정이 용이하다. 다양한 프로그래밍 언어를 지원한다.

  • IDEA: JetBrains에서 만들었으며 멀티 플랫폼 기반으로 실행되고 Java·JSP·XML 등의 다양한 언어 지원
IDE 도구의 기능 내용
코딩(Coding) C, JAVA 등의 프로그래밍 언어로 프로그램 작성하는 기능
컴파일(Compile) 개발자가 작성한 고급 언어로 된 프로그램을 컴퓨터가 이해할 수 있는 목적 프로그램으로 번역하여 컴퓨터에서 실행 가능한 형태로 변환하는 기능
디버깅(Debugging) 소프트웨어나 하드웨어의 오류나 잘못된 동작, 즉 버그(Bug)를 찾아 수정하는 기능
배포(Deployment) 소프트웨어를 사용자에게 전달하는 기능

 

 

 

빌드 도구: 소스코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물을 말한다. 빌드 도구는 전처리(Preprocessing)·컴파일(Compile) 등의 작업을 수행한다.

종류 특징
Ant(Another Neat Tool) · 아파치 소프트웨어 재단에서 개발
· 자바 프로젝트의 공식적인 빌드 도구
· 정해진 규칙이나 표준이 없음
Maven · 아파치 소프트웨어 재단에서 Ant의 대안으로 개발
· 의존성(Dependency)을 설정하여 라이브러리를 관리함
· 규칙이나 표준이 존재하여 예외 사항만 기록
Gradle · 한스 도커가 Ant와 Maven을 보완하여 개발
· 안드로이드 스튜디오의 공식 빌드 도구
· 그루비(Groovy) 기반의 빌드 스크립트를 사용함

 

 

 

서버 개발: 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것을 의미한다. 서버 개발에 사용되는 프로그래밍 언어에는 Java, JavaScript, Python, PHP, Ruby 등이 있다.

  • 서버 개발 프레임워크: 서버 프로그램 개발시 다양한 네트워크 설정·요청 및 응답 처리·아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어를 의미한다. 대부분은 모델-뷰-컨트롤러(MVC) 패턴을 기반으로 개발되었다.
프레임워크 특징
Spring · Java를 기반으로 만든 프레임워크
· 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음
Node.js · JavaScript를 기반으로 만든 프레임워크
· 비동기 입·출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있어 실시간으로 입·출력이 빈번한 애플리케이션에 적합함
Django · Python을 기반으로 만든 프레임워크
· 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원함
Codeigniter · PHP를 기반으로 만든 프레임워크
· 인터페이스가 간편하며 서버 자원을 적게 사용함
Ruby on Rails · Ruby를 기반으로 만든 프레임워크
· 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화·자동화시켜 개발 코드의 길이가 짧아지게 함으로써 신속한 개발이 가능함
  • 서버 개발 과정: DTO/VO·SQL·DAO·Service·Controller를 각각 구현하는 과정이다. 구현 순서는 개발자가 임의로 변경할 수 있고 개발하려는 서버 프로그램의 목적·개발 언어·규모 등의 이유로 통합되거나 세분화 할 수 있다.
과정 내용
DTO/VO 구현 · 데이터 교환을 위해 사용할 객체를 만드는 과정
· 송·수신할 데이터의 자료형에 맞는 변수 및 객체를 생성함
SQL 구현 · 데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문을 생성하는 과정
· SQL문은 소스 코드 내에 직접 입력 또는 별도의 XML 파일로 관리함
DAO 구현 데이터베이스에 접근하고 SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정
Service 구현 사용자의 요청에 응답하기 위한 로직을 구현하는 과정
Controller 구현 사용자의 요청에 적절한 서비스를 호출하여 그 결과를 사용자에게 반환하는 코드를 구현하는 과정

서버 개발 과정

 

 

배치 프로그램(Batch Program): 사용자의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램을 의미한다.

  • 배치 프로그램의 필수 요소: 대용량 데이터, 자동화, 견고성, 안전성/신뢰성, 성능
    • 대용량 데이터: 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함
    • 자동화: 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함
    • 견고성: 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 함
    • 안전성/신뢰성: 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함
    • 성능: 다른 응용 프로그램의 수행을 방해하지 않아야 하고 지정된 시간 내에 처리가 완료되어야 함
  • 배치 스케줄러(Batch Scheduler): 일괄 처리 작업(Batch Processing)이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구이다. 특정 업무를 지정한 시간에 처리할 수 있도록 지원한다는 특성 때문에 잡 스케줄러라고도 불린다.
배치 스케줄러 특징
Spring Batch · Spring Source와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임워크
· 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공함
Quartz · 자바(Java) 환경의 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리
· 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공함
Cron · 리눅스의 기본 스케줄러 도구
· crontab 명령어를 통해 작업을 예약할 수 있음

Crontab

반응형