- 1 - 서버 프로그램 구현
1. 개발 환경 구축
1) 개발 환경 구축의 개요
응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것
2) 하드웨어 환경
사용자와의 인터페이스 역할을 하는 클라리언트, 클라이언트와 통신해 서비스를 제공하는 서버로 구성된다.
웹 서버의 기능
HTTP/HTTPS 지원 | 브라우저 요청/응답 프로토콜 |
통신 기록 | 처리한 요청들을 로그 파일로 기록 |
정적 파일 관리 | HTML, CSS, 이미지 등의 정적 파일을 저장하고 관리 |
대역폭 제한 | 네트워크 트래픽의 포화를 방지하기 위해 응답속도 제한 |
가상 호스팅 | 하나의 서버로 여러 개의 도메인 이름을 연결 |
인증 | 사용자가 합법적인 사용자인지를 확인 |
3) 소프트웨어 환경
클라이언트와 서버 운영을 위한 시스템 소프트웨어, 개발에 사용되는 개발 소프트웨어로 구성된다.
시스템 소프트웨어 : 운영체제, 웹 서버 및 WAS 서버, DBMS
개발 소프트웨어 : 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구, 테스트 도구, 형상 관리 도구
* 개발언어의 선정 기준 : 적정성, 효율성, 이식성, 친밀성, 범용성
* 프레임워크의 특성 : 모듈화, 재사용성, 확장성, 제어의 역흐름
2. 보안 및 API
1) 소프트웨어 개발 보안 개요
소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화해 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동.
데이터의 기밀성, 무결성, 가용성을 유지하려는 목적.
2) 소프트웨어 개발 보안 점검 항목
세션 통제 | 서버와 클라이언트의 연결을 통제하는 것 보안 약점 : 불충분한 세션 관리, 정보 노출 |
입력 데이터 검증 및 표현 |
유효성 검증 체계를 갖추고 검증 실패시 처리할 수 있도록 코딩 하는 것 보안 약점 : SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS) |
보안 기능 | 인증, 접근제어, 기밀성, 암호화 등의 기능 보안 약점 : 부적절한 인가, 중요기능 허용 |
시간 및 상태 | 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행상태를 관리해 시스템이 월활히 동작되도록 코딩하는 것 보안 약점 : 검사시점, 사용시점 경쟁조건. 종료되지 않는 반복문 또는 재귀함수 |
에러처리 | 오류를 사전에 정의해 문제를 예방하는 것 보안 약점 : 오류 메시지를 통한 정보 노출 |
코드 오류 | 형 변환, 자원의 반환 등을 고려하며 코딩하는 것 보안 약점 : 널포인터 역 참조, 부적절한 자원 해제 |
캡슐화 | 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것 보안 약점 : 잘못된 세션에 의한 데이터 정보 노출 |
API 오용 | API를 잘못 사용하는 것 보안 약점 : DNS lookup에 의존한 보안 결정, 취약한 API 사용 |
3) API(Application Programming Interface)
응용프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 사용할 수 있도록 규칙을 정의해 놓은 인터페이스.
종류 : Windows API, 단일 유니스 규격(SUS), Java API, 웹 API 등
누구나 무료로 이용할 수 있는 공개된 API를 Open API라고 한다.
3. 배치 프로그램
1) 배치 프로그램
사용자와 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것
정기 배치 | 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 |
이벤트성 배치 | 특정 조건을 설정해두고 조건이 충족될때만 수행 |
On-Demand 배치 | 사용자 요청시 수행 |
배치 프로그램의 필수 요소
대용량 데이터 | 대량의 데이터를 가져오고 계산하는 처리가 가능해야 함 |
자동화 | 심각한 오류를 제외하고, 사용자의 개입 없이 수행되어야 함 |
견고성 | 잘못된 데이터나 데이터 중복 등의 상황으로 중단되지 않아야 함 |
안정성/신뢰성 | 오류가 발생하면 오류의 발생 위치, 시간을 추적할 수 있어야 함 |
성능 | 지정된 시간 내에 처리가 완료되어야 함 |
2) 배치 스케줄러
일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
특정 업무를 원하는 시간에 처리할 수 있도록 지원하기 때문에 잡 스케쥴러라고도 불린다.
스프링 배치(Spring Batch)
Spring Source사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임워크
스프링 프레임워크가 가지고 있는 다양한 기능을 사용 가능
DB와 파일의 데이터를 교환 하는데 필요한 컴포넌트를 제공
로그 관리, 추적, 트랜잭션 관리, 작업처리 통계, 작업 재시작 기능 제공
구성 요소 : Job, Job Launcher, Step, Job Repository
Quartz
스프링 프레임워크로 개발되는 응용프로그램들의 일괄 처리를 위한 오픈 소스 라이브러리다.
수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공
구성 요소 : Scheduler, Job, JobDetail, Trigger
'2020 정보처리기사 필기 > 4과목 - 프로그래밍 언어 활용' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 4과목 - 프로그래밍 언어 활용(응용 SW 기초 기술 활용_5) (0) | 2020.08.13 |
---|---|
[2020 정보처리기사 필기 요약] 4과목 - 프로그래밍 언어 활용(응용 SW 기초 기술 활용_4) (0) | 2020.08.12 |
[2020 정보처리기사 필기 요약] 4과목 - 프로그래밍 언어 활용(응용 SW 기초 기술 활용_3) (0) | 2020.08.11 |
[2020 정보처리기사 필기 요약] 4과목 - 프로그래밍 언어 활용(응용 SW 기초 기술 활용_2) (0) | 2020.08.05 |
[2020 정보처리기사 필기 요약] 4과목 - 프로그래밍 언어 활용(응용 SW 기초 기술 활용_1) (0) | 2020.08.04 |