자격증/정보처리기사

[정보처리기사] 서버 개발 프로그램

IT록흐 2021. 10. 8. 00:03
반응형

서버개발

 

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

서버 프로그램 : 웹서버로부터 받은 요청을 처리하여 결과를 반환하는 역할

 

서버개발 프레임워크

 

서버프로그램 개발시 다양한 네트워크 설정, 요청 및 응답처리, 아키텍처 모델 구현등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어

 

서버 개발 프레임워크는 대부분 모델-뷰 컨트롤러(MVC) 패턴을 기반으로 개발되었다.

*MVC : 시스템을 세부분으로 분리하여 서로 영향 받지 않고 개발할 수 있는 아키텍처 패턴

 

종류

 

Spring

JAVA 기반 프레임워크, 전자 정부 표준 프레임워크 기반 기술로 사용

 

Node.js

JavaScript 기반 프레임워크, 비동기 입출력 처리와 이벤트 위주의 높은 처리 성능, 실시간 입출력이 빈번한 애플리케이션에 적합

 

Django

Phython 기반 프레임워크, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능

 

Codeigniter

PHP기반 프레임워크, 인터페이스가 간편하며 서버자원을 적게 사용

 

Ruby on Rails

Ruby 기반 프레임워크, 테스트를 위한 웹서버를 지원, 데이터베이스 작업 단순화, 자동화시켜 개발 코드의 길가 짧아 신속한 개발 가능

 

 

DBMS 접속

 

 

 

DBMS 접속 기술

 

API : DBMS 접근

프레임워크 : API 사용 편리

 

- JDBC(Java DataBase Connectivity)

 

Java언어로 DB에 접속, SQL문 실행하는 표준 API

 

- ODBC(Open DataBase Connectivity)

 

DB 접근 표준 개방형 API. 언어 상관 X

 

- MyBatis

 

JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈소스 접속 프레임워크

 

 

동적 SQL (Dynamic SQL)

 

다양한 조건에 따라 SQL 구문을 동적으로 변경하여 처리할 수 있는 SQL 처리방식(느리다)

문자열 변수에 SQL 구문 담아 처리

NVL 함수 없이 로직으로 통해 SQL 작성

 

정적 SQL(Static SQL)

 

SQL 코드를 변수에 담지 않고 코드 사이에서 직접 기술한 SQL(빠르다)

커서(Cussor)를 통한 처리

커서 범위 안에서 반복문 활용 SQL 작성

서버 개발 과정

 

개발 순서는 개발자 임의로 변경가능

소프크웨어 개발 보안 가이드를 참고하여 보안 약점을 예방

 

DTO (Data Transfer Object) / VO (Value Object)

 

데이터(변수,객체) 교환에 사용할 객체를 만드는 과정

구현 : DataType 변수 + get, set 메소드

 

 

SQL 구현

 

데이터 삽입 , 변경, 삭제 등의 작업을 수행할 SQL문을 생성

구현 : 코드내 SQL 삽입 or 별도의 XML 파일로 SQL문 저장(중복 최소화, 관리 효율 증가)

 

DAO(Data Access Object) 구현

 

데이터 베이스 접근 및 실제 데이터 조작 구현

 

Service 구현

 

사용자 요청에 응답하기 위한 로직 구현

 

Controller 구현

 

사용자 요청에 맞는 적절한 서비스 호출, 그 결과를 사용자에게 반환

 

 

 

배치프로그램(Batch)

 

사용자와 상호작용 없이 정해진 순서에 따라 일괄적으로 처리하는 프로그램

 

종류

 

정기 배치 : 정해진 기간에 정기적 수행

이벤트성 배치 : 특정 조건 설정 후 조건 충족 시 수행

On-Demand : 사용자 요청 시 수행

 

배치프로그램 필수요소

 

대용량 데이터 : 대용량 데이터 처리가 가능한 환경(읽기, 쓰기, 계산)

자동화 : 사용자 개입없이 수행

견고성 : 잘못된 데이터나 중복으로 중단되는 일 없이 수행(예외처리)

안정성/신뢰성 : 오류 발생시 오류 추적이 가능

성능 : 다른 응용프로그램 방해하지 않고 지정된 시간 내에 처리

 

배치 스케줄러(Batch Scheduler)

 

일괄처리작업이 설정된 주기에 맞춰 자동 수행되도록 지원하는 도구(Job Scheduler)

( 구성 : 스프링 프레임워크 + 오픈소스 라이브러리 + 리눅스 스케줄러 도구 )

 

- 스프링 배치(Spring Batch)

 

오픈 소스 스프링 프레임 워크

데이터를 교환하는데 필요한 컴포넌트 제공

프레임워크를 통해 배치응용프로그램 생성

 

- Quartz

 

스프링 프레임 워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능 제공

오픈 소스 라이브러리

 

- Cron

 

리눅스 스케줄러 도구, crontab 명령어로 작업 예약

편집기(editor)에서 요일 , , , 시 분을 기준으로 수행할 명령어 지정

 

-e 편집기 호출 작업추가 및 수정

-l 작업 목록(list) 출력

-r 작업삭제(Remove)

 

cron 예시

 

*작업예약형식

분 시 일 월 요일(0()~6()) / 저장된 파일 위치 (순서 기억)

 

 

1) 30 1 * * * /root/com_1.sh (*매시기)

 

매월 매일 모든 요일 130분에 작업 수행

 

2) 30 1 */3 * * /root/com_1.sh (*/3 3으로 나누었을 때 0인 경우만 작업실행)

 

매월

36912151821242730

모든 요일

130분 마다 작업 수행

 

3) 30 18-23 * * * /root/com_1.sh (18-2318~23시 사이 30분마다 수행)

 

매월 매분 모든 요일 18시에서 23시 사이 30분마다 수행

 

4) 30 1 * 4,9,11 * /root/com_1.sh ( ‘,’ 를 통해 특정 시기를 정할 수 있다.)

 

4911월 매일 모든 요일 130분마다 작업 수행

 

 

 


 

 

참고자료

 

2021 시나공 정보처리기사 실기

수험생들의 궁금증을 100% 반영시험에 나올만한 내용만 구성시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도

book.naver.com

 

반응형