본문 바로가기
IT License/정처기-4과목

2021 #정보처리기사 필기요약 #4-1. 서버프로그램 구현

by 시뮝 2021. 3. 1.
728x90
2021년 NCS기반 정처기 필기입니다.

참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.

참고2. 주황강조는 약어 혹은 중요한 내용입니다.

참고3. 회색마킹은 예시입니다. 

 


제 4과목 프로그래밍 언어 활용 > 서버프로그램 구현


개발환경 구축

개발환경 구축은 응용 소프트웨어의 개발 편의성, 개발 성능 향상을 위해 하드웨어 및 소프트웨어 개발환경을 구축하는 과정이다.

 

개발환경 구축 도구의 분류 (빌구테형)

드 도구 / 현 도구 / 스트 도구 / 상 관리 도구

 

개발환경 구축 절차

  1. 프로젝트 요구사항 분석
  2. 필요 도구 설계
  3. 개발언어 선정
  4. 구현도구 선정
  5. 빌드, 테스트 도구 선정

개발환경 구성요소

개발환경 구분
하드웨어 개발환경 서버 하드웨어
개발환경
웹 서버 (Web Server)
웹 애플리케이션 서버 (WAS; Web Application Server)
데이터베이스 서버 (DB Server)
파일 서버 (File Server)
클라이언트 하드웨어
개발환경
클라이언트 프로그램
웹 브라우저
모바일 앱
모바일 웹
소프트웨어 개발환경 운영체제
미들웨어
DBMS

 

서버 개발 프레임워크

프레임워크(Framework)

  • 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 틀이다.
  • 프레임워크의 사례로 전자정부 프레임워크 등이 있다.

 

프레임워크의 특징 (모재확역)

모듈화(Modularity) / 재사용성(Reusability) / 확장성(Extensibility) / 제어의 역행(IoC; Inversion of control)

 

 

프레임워크의 구성요소 (개실운관)

구성요소 설명
발환경 설계, 구현, 테스트 등 개발에 필요한 지원도구 모음
행환경 자바 기반 응용시스템 개발 시 필수적 기능을 패턴화해 미리 구현해둔 라이브러리 코드 모음
영환경 표준 프레임워크 기반 개발 시스템에 대한 운영 시 필요한 의사소통 및 모니터링 도구 모음
리환경 표준 프레임워크에 대한 기술지원, 업그레이드 등 관리하기 위한 내부 업무 시스템

 

전자정부 프레임워크 

  • 2015년 6월 버전 3.5 이후 2020년 2월 버전 3.9이 발표됐다.
  • 실행환경 내 서버 환경 파일 암·복호화 기능 탑재, 공통 컴포넌트 기능 개선, MyBatis, Jenkins 신규 지원 등이 보강되었다.

전자정부 프레임워크 구성요소

구성요소 설명
공통 컴포넌트 보안, 사용자 디렉터리 통합인증, 시스템관리, 통계 리포팅, 협업, 시스템-서비스 연계, 사용자 지원, 요소 기술로 구성
표준 프레임워크 개발환경, 실행환경, 관리환경, 운영환경으로 구성

 

 


공통 모듈 구현

재사용(Reuse)

재사용의 유형

함수와 객체 재사용 / 컴포넌트 재사용 / 애플리케이션 재사용

 

재사용 프로그래밍 기법 (객체자메)

체지향 프로그래밍 / 네릭 프로그래믹 / 동 프로그래밍 / 타 프로그래밍

 

재사용의 사례

라이브러리(Library) / 프레임워크(Framework) / 소프트웨어 아키텍처(Software Architecture)

 

 

모듈화(Modularization)

모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도를 약하게 하고 응집도를 강하게 하며 모듈의 크기를 작게 만들어야 한다.

 

단위 모듈화의 원리 (정분추모)

보 은닉(Information Hiding) / 할과 정복(Divide & Conquer) / 데이터 상화(Data Abstraction) / 듈 독립성(Module Independency)

 

모듈화의 장점

  • 프로그램의 효율적인 관리 및 성능 향상 가능
  • 소프트웨어 이해의 용이성 증대와 복잡성 감소
  • 기능 분리 가능, 단순한 인터페이스
  • 모듈의 재사용 가능으로 개발과 유지보수 용이

 

모듈 설계 유의사항 [2020년 3회]

  • 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다.
  • 복잡도와 중복성을 줄이고 일관성을 유지시킨다.
  • 모듈의 기능은 예측이 가능해야 하며 지나치게 제한적이면 안된다.
  • 유지보수가 용이해야 한다.

 

모듈화의 유형 (모컴서 함매인)

구분 유형
설계 측면 듈 (Module)
포넌트 (Component)
비스 (Service)
구현 측면 수 (Function)
크로 (Macro)
라인 (Inline)

 

 

결합도(Coupling)

  • 결합도는 두 모듈 간의 상호작용, 또는 의존도 정도를 나타내는 것이다.
  • 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다.
  • 결합도의 유형은 '내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도' 순으로 결합도가 낮아진다.

 

결합도의 유형 (내공 외제 스자) [2020년 4회]

사는 외제를 쓰()자

구분 설명
용 결합도
(Content Coupling)
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도, 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있는 경우의 결합도
통 결합도
(Common Coupling)
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
부 결합도
(External Coupling)
어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
어 결합도
(Control Coupling)
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우이며, 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하게 되는 결합도 [2020년 3회]
탬프 결합도
(Stamp Coupling)
모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
료(데이터) 결합도
(Data Coupling)
모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도

 

응집도(Cohesion)

  • 응집도의 유형은 '우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 응집도' 순서로 응집도가 높아진다.
  • 응집도가 낮아지면 독립성이 낮아진다.
  • 응집도가 높아지면 독립성이 높아지고, 유지보수가 용이하다.

 

응집도의 특징

유사기능 영역구성 / 단일 책임할당 / 함수 간 상호협력

 

응집도의 유형 (우논시절 통순기)

리가 논 시절합짱은 순기

구분 설명
연적 응집도
(Coincidental Cohesion)
모듈 내부의 구성요소들이 연관이 없을 경우의 응집도 [2020년 4회]
리적 응집도
(Logical Cohesion)
유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리되는 경우의 응집도
간적 응집도
(Temporal 
Cohesion)
연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
차적 응집도
(Procedural 
Cohesion)
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
신적 응집도
(Communication 
Cohesion)
동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
차적 응집도
(Sequential 
Cohesion)
모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우의 응집도
능적 응집도
(Functional 
Cohesion)
모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

서버 프로그램 구현

보안 취약성 식별

응용 프로그램의 보안 취약점, 위협 요소, 허점을 탐지하는 데 도움을 준다.

 

침투 테스트(Penetration Test)

침투 테스트는 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 시스템의 취약점을 찾기 위한 방법이다.

 

침투 테스트의 절차

정찰 → 탐색 → 접근권한취득 → 액세스유지 → 추적방지

 

취약성에 따른 공격기법

서비스 거부(Dos) / 코드 실행 / 버퍼 오버플로우 / 정보 수집 / 권한 상승 / SQL 삽입 / 크로스 사이트 스크립팅 / 사이트 간 요청 위조 공격 / 디렉터리 접근 / FTP 바운스 공격

유형 설명
서비스 거부
(Dos)
무의미한 서비스 요청 등의 반복을 통해 시스템의 가용자원을 소모시켜 서비스 가용성을 저하시키는 공격기법
버퍼 오버플로우 정해진 메모리의 범위를 넘치게 해서 원래의 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법
SQL 삽입
(Injection)
데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람할 수 있는 공격기법
크로스 사이트 스크립팅
(XSS)
공격자가 게시판에 악성 스크립트를 작성, 삽입하여 사용자가 보았을 때 이벤트를 발생시켜 사용자의 쿠키정보, 개인정보 등을 특정 사이트로 전송하는 공격기법
디렉토리 접근 HTTP 기반의 공격으로 액세스가 제한된 디렉터리에 접근하여, 서버의 루트 디렉터리에서 외부 명령을 실행하여 파일, 웹 소스 등을 강제로 내려받을 수 있는 공격기법
FTP 바운스 공격 FTP 서버가 데이터를 전송할 때 목적지가 어디인지 검사하지 않는 설계상의 문제점을 이용한 공격기법

 

 

API(Application Programming Interface)

API는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

 

API 유형

오픈 API(Open API) / 비공개 API(Close API)

 

API 종류

윈도즈 API / 웹 API / 오픈 API / 자바 API

 


배치 프로그램 구현

배치 프로그램(Batch Program)

배치 프로그램은 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법이다.

 

배치 프로그램의 필수 요소 [2020년 3회]

필수 요소 내용
자동화 자동화는 심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 한다.
안정성  안정성은 어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 한다.
대용량 데이터 대용량 데이터는 대용량의 데이터를 처리할 수 있어야 한다.
견고성 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 한다.
성능 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.

 

배치 프로그램의 유형 (이온정)

벤트 배치 / 디맨드 배치 / 기 배치

 

배치 프로그램의 종류

스프링 배치(Spring Batch) / 쿼츠 스케줄러(Quartz Scheduler)

 

배치 프로그램 절차

  1. 배치 프로그램 확인
  2. 배치 설계서 확인

 

 

#정보처리기사필기요약 #정처기필기요약

728x90

댓글