서버개발
웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 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 (*매시기)
매월 매일 모든 요일 1시 30분에 작업 수행
2) 30 1 */3 * * /root/com_1.sh (*/3 은 3으로 나누었을 때 0인 경우만 작업실행)
매월
3일 6일 9일 12일 15일 18일 21일 24일 27일 30일
모든 요일
1시 30분 마다 작업 수행
3) 30 18-23 * * * /root/com_1.sh (18-23은 18시~23시 사이 30분마다 수행)
매월 매분 모든 요일 18시에서 23시 사이 30분마다 수행
4) 30 1 * 4,9,11 * /root/com_1.sh ( ‘,’ 를 통해 특정 시기를 정할 수 있다.)
4월 9월 11월 매일 모든 요일 1시 30분마다 작업 수행
참고자료
2021 시나공 정보처리기사 실기
수험생들의 궁금증을 100% 반영시험에 나올만한 내용만 구성시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도
book.naver.com
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 모듈 연계를 위한 인터페이스 (0) | 2021.10.09 |
---|---|
[정보처리기사] 인터페이스 기본 (0) | 2021.10.09 |
[정보처리기사] 코드(Code) 및 디자인 패턴 (0) | 2021.10.07 |
[정보처리기사] 모듈(Module) (0) | 2021.10.07 |
[정보처리기사] 객체지향 ( Object-Oriented ) (0) | 2021.10.06 |