본문 바로가기

2020 정보처리기사/2020 실기 정리 (수제비 2020 정보처리기사 실기 Vol.2 기준)

2020 정보처리기사 - 서버 프로그램 구현

ㆍ개발환경 구축

시스템 요구사항의 명확한 이해가 필요하며, 개발에 사용되는 도구들의 사용 편의성, 성능, 라이선스를 확인해야한다.

 

ㆍ개발 도구의 분류

구현 도구, 테스트 도구, 형상 관리 도구, 빌드 도구

 

ㆍ서버 하드웨어 개발 환경

웹서버, 웹 애플리케이션 서버, DB서버, 파일 서버로 구분.

 

ㆍ클라이언트 하드웨어 개발환경

클라이언트 프로그램, 웹 브라우저, 모바일 앱, 모바일 웹으로 구분

 

ㆍ소프트웨어 개발환경

운영체제 : 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어

미들웨어 : 컴퓨터와 컴퓨터간 연결을 쉽고 안전하게 할 수 있게 해주고 관리.

DBMS : 사용자와 DB사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리해주는 SW.

 

ㆍ형상 관리

SW개발을 위한 과정에서 발생하는 모든 변경사항을 관리.

 

ㆍ형상 관리 절차

형상 식별 - 형상 통제 - 형상 감사 - 형상 기록

 

ㆍ개발환경 구축 절차

통합 개발환경 설치 - 형상 관리 도구 설치 - 빌드 도구 설치


ㆍ모듈

크게 독립된 하나의 SW 또는 HW 단위를 지칭하는 용어

 

ㆍ모듈의 특징

상대적으로 독립성을 가지고 있다, 단독으로 컴파일, 모듈의 독립성을 높히려면 응집도는 강하고 결합도는 약하게

 

ㆍ모듈화

모듈을 사용하여 SW의 성능을 향상시키는 설계 및 구현 방법

 

ㆍ모듈화 기법

루틴 : SW에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임

메인 루틴 : 프로그램의 주요한 부분으로, 전체의 동작 절차를 표시하도록 만들어진 루틴

서브 루틴 : 메인 루틴에 의해 필요 시 호출되는 루틴

 

ㆍ공통 모듈 구현

SW개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법.

 

ㆍ응집도

모듈의 독립성을 나타내며, 모듈 내부 구성요소간 연관 정도.

 

ㆍ응집도의 유형(응집도 낮음 -> 높음 순)

우연적 응집도 - 논리적 응집도 - 시간적 응집도 - 절차적 응집도 - 통신적 응집도 - 순차적 응집도 - 기능적 응집도

 

ㆍ결합도

외부의 모듈과 연관도, 모듈간의 상호의존성.

 

결합도의 유형(결합도 낮음 -> 높음 순)

자료 결합도 - 스탬프 결합도 - 제어 결합도 - 외부 결합도 - 공통 결합도 - 내용 결합도

 

ㆍ공통 모듈 구현 절차

DTO/VO - SQL - DAO - SERVICE - CONTROLLER - 화면구현

 

ㆍMVC 패턴 역할

MODEL : 애플리케이션이 무엇을 할 것인지 정의 / 내부 로직을 처리하기 위한 역할

VIEW : 화면에 무엇을 보여주기 위한 역할 

CONTROLLER : 모델이 어떻게 처리할지 알려주는 역할.

 

ㆍFAN-IN, FAN-OUT

모듈을 계층적으로 분석하기 위함. 시스템 복잡도 측정가능.

 

ㆍFAN-IN

어떤 모듈을 제어하는 모듈의 수. 팬인이 높으면 재사용 측면에서 설계 잘됌, 관리 비용 및 테스트 비용 증가.

 

FAN-OUT

어떤 모듈에 의해 제어되는 모듈의 수. 팬아웃이 높으면 단순화 여부 검토 필요.

 

ㆍ공통 모듈 테스트

통합 개발 환경(IDE) 도구를 활용하여 개별 공통 모듈에 대한 디버깅 수행. 화이트 박스 기법 사용.

 

ㆍ공통 모듈 테스트 종류

화이트 박스 테스트 : 응용 프로그램의 내부 구조와 동작을 검사하는 테스트.

메소드 기반 테스트 : 공통 모듈의 외부에 공개된 메소드 기반의 테스트

화면 기반 테스트 : 화면과 연계된 서비스, 공통 컴포넌트를 한꺼번에 단위 테스트에 참여

 

ㆍ서버 프로그램 구현

업무 프로세스를 기반으로 개발언어와 도구를 활용해 서비스 제공에 필요한 업무 프로그램을 구현.

 

ㆍ서버 프로그램 구현 절차

DTO/VO - SQL - DAO - SERVICE - CONTROLLER - 화면구현 [공통 모듈 구현 절차와 동일]

 


ㆍ배치 프로그램

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

 

ㆍ배치 프로그램의 유형

이벤트 배치 : 사전에 정의해 둔 조건 충족 시 자동 실행

온디맨드 배치 : 사용자의 명시적 요구가 있을 때마다 실행

정기 배치 : 정해진 시점에 정기적으로 배치

 

ㆍ배치 스케쥴러

일괄 처리를 위해 주기적 또는 반복적으로 발생하는 작업을 지원하는 도구.

 

ㆍ배치 스케쥴러 종류

스프링 배치 : 스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케쥴러

 

쿼츠 스케쥴러 : 스프링 프레임워크에 플러그인되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케쥴러.

 

ㆍCRON 표현식

표현식을 통해 배치 수행시간 설정. 초 분 시간 일 월 요일 연도