<개발 환경 구축> ☆★★★
1. 개발 환경 구축의 개요
- 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것을 의미함
- 개발 환경은 응용 소프트웨어가 운영될 환경과 유사한 구조로 구축함
- 개발 프로젝트의 분석 단계의 산축물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어를 선정함
- 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품들을 최종적으로 결정하여 구축
2. 하드웨어 환경
- 사용자와의 인터페이스 역할의 클라이언트(Client),
클라이언트와 통신해 서비스를 제공하는 서버(Server)로 구성됨
- 클라이언트
: PC, 스마트폰 등
- 서버
- 웹 서버(Web Server)
: 클라이언트로부터 직접 요청을 받아 처리하는 서버, 저용량의 정적 파일들 제공
- 웹 애플리케이션 서버(WAS; Web Application Server)
: 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나
웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버
- 데이터베이스 서버(DB Server)
: 데이터베이스와 이를 관리하는 DBMS를 운영하는 서버
- 파일 서버(File Server)
: 데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버
3. 소프트웨어 환경
- 시스템 소프트웨어
: 클라이언트와 서버 운영을 위한 소프트웨어
- 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등
- 개발 소프트웨어
: 개발에 사용되는 소프트웨어
- 요구사항 관리 도구
: 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어
- 설계/모델링 도구
: UML(통합 모델링 언어)을 지원하며, 개바르이 전 과정에서 설계 및 모델링을 도와주는 소프트웨어
- 구현 도구
: 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어
- 빌드 도구
: 개발 언어를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어
- 테스트 도구
: 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어
- 형상 관리 도구
: 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어
<보안 및 API> ☆★★★
1. 소프트웨어 개발 보안의 개요
- 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여
보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동을 의미함
- 소프트웨어 개발 보안은 데이터의 기밀성, 무결성, 가용성을 유지하는 것을 목표로 함
- 정부에서 제공하는 소프트웨어 개발 보안 가이드를 참고하여
소프트웨어 개발 과정에서 점검해야 할 보안 항목들을 점검함
2. 소프트웨어 개발 보안 점검 항목
- 소프트웨어 개발의 각 단계에서 점검되어야 할 보안 항목들을 말함
- 세션 통제
- 세션은 서버와 클라이언트의 연결을 말함
- 세션 통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미함
- 보안 약점 : 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출 등
- 입력 데이터 검증 및 표현
- 입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩하는 것을 의미
- 보안 약점 : SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS) 등
- 보안 기능
- 인증, 접근 제어, 기밀성, 암호화 등의 기능을 의미함
- 보안 약점 : 적절한 인증 없는 중요기능 허용, 부적절한 인가 등
- 시간 및 상태
- 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서
시간과 실행 상태를 관리하여 시스템이 원활히 동작되도록 코딩하는 것을 의미함
- 보안 약점 : 검사 시점과 사용 시점(TOCTOU) 경쟁조건, 종료되지 않는 반복문 또는 재귀 함수 등
- 에러 처리
- 소프트웨어 실행 중 발생할 수 잇는 오류들을 사전에 정의하여 에러로 인해 발생할 수 있는 문제들을 예방하는 것
- 보안 약점 : 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재 등
- 코드 오류
- 개발자들이 코딩 중 실수할 수 있는 형(Type) 변환, 자원 변환 등을 고려하며 코딩하는 것을 의미함
- 보안 약점 : 널 포인터 역참조, 부적절한 자원 헤제 등
- 캡슐화
- 데이터(속성)와 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것을 의미함
- 보안 약점 : 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드 등
- API 모음
- API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 고려하여 코딩하는 것을 의미
- 보안 약점 : DNS lookup에 의존한 보안결정, 취약한 API 사용이 있음
3. API(Application Programming Interface)
- 응용 프로그램 개발 시 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 의미함
- 프로그래밍 언어에서 특정한 작업을 수행하기 위해 사용되거나,
운영체제의 파일 제어, 화상 처리, 문자 제어 등의 기능을 활용하기 위해 사용됨
- 종류
: Windows API, 단일 유닉스 규격(SUS), Java API, 웹 API 등이 있으며,
누구나 무료로 사용할 수 있게 공개된 API를 Open API라고 함
<배치 프로그램> ☆★★★
1. 배치 프로그램(Batch Program)의 개요
- 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것을 의미함
- 배치 프로그램이 자동으로 수행되는 주기에 따라 구분됨
- 정기 배치
: 일, 주 월과 같이 정해진 기간에 정기적으로 수행됨
- 이벤트성 배치
: 특정 조건을 설정해두고 조건이 충족될 때만 수행됨
- On-Demand 배치
: 사용자 요청 시 수행됨
- 배치 프로그램이 갖추어야 할 필수 요소
- 대용량 데이터
: 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함
- 자동화
: 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함
- 견고성
: 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일이 없이 수행되어야 함
- 안정성/신뢰성
: 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함
- 성능
: 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 함
2. 배치 스케줄러(Batch Scheduler) (= 잡 스케줄러(Job Scheduler))
- 일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
- 특정 업무(Job)를 원하는 시간에 처리할 수 있도록 지원한다는 특성
- 주로 사용되는 배치 스케줄러
- 스프링 배치(Spring Batch)
- 스프링 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능들을 모두 사용할 수 있음
- 데이터베이스나 파일의 데이터를 교환하는데 필요한 컴포넌트들을 제공함
- 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공함
- 스프링 배치의 주요 구성 요소와 역할
- Job : 수행할 작업 정의
- Job Launcher : 실행을 위한 인터페이스
- Step : Job 처리를 위한 제어 정보
- Job Repository : Step의 제어 정보를 포함하여 작업 실행을 위한 모든 정보 저장
- Quartz
- 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한
다양한 기능을 제공하는 오픈 소스 라이브러리
- 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공함
- Quartz의 주요 구성 요소와 역할
- Scheduler : 실행 환경 관리
- Job : 수행할 작업 정의
- JobDetail : Job의 상세 정보
- Trigger : Job의 실행 스케줄 정의
www.yes24.com/Product/Goods/82838724?OzSrank=6
2020 시나공 정보처리기사 필기
2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중 정보통신 분야의 ‘정보기술’ 분류에 포함된 ‘정보기술개발’과 ‘정보기술운영’에 속한 125개의 학습 모듈을
www.yes24.com
* 2020 시나공 정보처리기사 필기 요약한 내용입니다.
'security > 정보처리기사' 카테고리의 다른 글
오답 풀이 5 - 정처기 데이터베이스 구축2 (0) | 2021.02.23 |
---|---|
정처기 프로그래밍 언어 활용 - 4.2 프로그래밍 언어 활용 (0) | 2021.02.23 |
오답 풀이 5 - 정처기 데이터베이스 구축1 (0) | 2021.02.16 |
정처기 데이터베이스 구축 - 3.4 SQL 활용, 3.5 데이터 전환 (0) | 2021.02.16 |
정처기 데이터베이스 구축 - 3.3 SQL 응용 (0) | 2021.02.16 |
댓글