본문 바로가기

자격증/정보처리기사 - 필기

프로그래밍 언어 활용 - 서버 프로그램 구현

728x90

개발 환경 구축 : 응용 SW가 운영될 환경과 유사한 구조로 구축

< 하드웨어 환경 >

● 클라이언트와 서버로 구성

-> 웹 서버 : 클라이언트로부터 직접 요청 받아 처리, 저용량 정적 파일 제공

-> 웹 어플리케이션 서버( WAS ) : 동적 서비스 제공

-> DB 서버 : DB와 DBMS를 운영

-> 파일 서버 : DB에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장

< SW 환경 >

● 시스템 SW와 개발 SW로 구성

-> 시스템 SW : OS, 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS

-> 개발 SW : 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구 등

 

서버 개발

● WAS 만듬  ● 서버 프로그램 : 웹 서버로부터 받은 요청을 처리하여 결과 반환

● 각 프로그래밍 언어에는 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크 있음

< 서버 개발 프레임워크 >

● 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리하도록 클래스나 인터페이스를 제공

-> Spring : Java  -> Node.js : JavaScript

-> Django : Python  -> Codeigniter : PHP  -> Ruby on Rails : Ruby

< 프레임워크 특성 >

● 모듈화 : 설계 및 구현의 변경에 따른 영향을 최소화  ● 재사용성

● 확장성  ● 제어의 역흐름 : 객체들의 제어를 프레임워크에 넘김

 

SW 개발 보안

데이터의 기밀성, 무결성, 가용성 유지

● SW 개발 보안 가이드 참고하여 보안 항목 점검

< 점검 항목 >

- 세션 통제

● 세션 : 서버와 클라이언트의 연결

● 세션의 연결로 인해 발생하는 정보 관리

- 입력 데이터 검증 및 표현

● 입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩

- 보안 기능

● 인증, 접근 제어, 기밀성, 암호화

- 예외 처리

- 캡슐화

● 함수를 하나의 객체로 묶어 코딩

 

API : OS나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스

 

배치 프로그램 : 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리

< 주기 >

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

● 이벤트성 배치 : 특정 조건을 설정해두고 조건이 충족될 때만 수행

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

< 필수 요소 >

● 대용량 데이터  ● 안정성/신뢰성

● 자동화 : 심각한 오류 발생 상황을 제외하고는 사용자의 개입 없이 수행

● 견고성 : 잘못된 데이터나 데이터 중복 상황으로 중단되는 일 없이 수행

● 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야 함

 

패키지 SW : 기업에서 일반적으로 사용하는 여러 기능들을 통합하여 제공

● 기업 환경에서 적합하게 커스터마이징 하여 사용

● 기능 요구사항을 70% 이상 충족시키는 패키지 SW가 있을 때만 사용

< 패키지 SW와 전용 개발 SW 비교 >

  패키지 SW 전용 개발 SW
기능 요구사항 70% 이상 충족시키는 패키지 SW가 있는 경우 모든 기능 요구사항 반영 가능
안정성 품질 검증, 업계 표준 준용 개발자의 역량
라이선스 판매자 회사