본문 바로가기

자격증/정보처리기사 3과목

3-1장. 서버프로그램 구현-개발환경 구축

[ 목차 ]

1. 개발환경 구축

2. 개발환경 구축 시 구성 요소

3. 형상관리 도구

4. 형상관리 특징

5. 형상관리 절차

6. 전자정부프레임워크 구성

7. 개발환경 구축 순서

8. 서버 개발 프레임워크

9. 서버 프로그램을 구현하기 위한 서버개발 프레임워크

10. 전자 정부프레임워크 서버 개발 환경

 

1. 개발환경 구축

1) 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 스프트웨어 및 하드웨어 장비를 구축하는 것

2) 서버프로그램의 구현을 위한 첫번째 시작은 개발에 필요한 환경을 구축하는 것이며, 구현될 요구사항의 명확한 이해개발도구, 서버의 선정, 도구들의 사용 편의성과 성능, 라이센스 등에 대한 내용 파악이 필요

3) 개발을 위해 사용되는 도구 분류

  1] 구현도구 : 코드의 작성과 디버깅, 수정과 같은 여러가지 작업, 어떤 프로그래밍 언어로 개발되는지에 따라 선택하여 사용, 개발에 가장 많이 사용되는 도구

  2] 테스트 도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용되는 도구

  3] 형상관리도구 : 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위해 사용

  4] 빌드도구 : 작성한 코드에 대한 빌드 및 배포를 수행, 구성 요소들과 모듈들에 대한 의존성 관리를 지원하는 도구

형상관리 
1) 소프트웨어의 생산물을 확인하고 스프트웨어 통제, 변경 상태를 기록하고 보관하는 작업

빌드
1) 소스 코드 파일 및 컴파일 된 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 작업

2. 개발환경 구축 시 구성 요소

1) 하드웨어 - 서버환경

  1] 웹 서버 : HTTP를 이용한 요청/응답을 처리하기 위한 미들웨어가 설치되는 서버로, HTML, CSS, 이미지 등을 제공하는 웹 서버 어플리케이션의 처리를 담당정적인 서버

  2] 웹 애플리케이션 서버 : 웹 페이지를 동적으로 제공하기 위해 WAS 형태인 resin, 톰캣 등 과 관련된 서비스 애플리케이션이 설치되는 서버 

  3] 데이터베이스 서버 : 데이터 수집, 저장을 위한 용도로 mysql, 오라클, ms-sql 등 데이터베이스의 sw에 설치

  4] 파일 서버 : 파일 저장 하드웨어물리적 저장장치를 활용한 hdd, sdd

css
1) 웹 문서의 전반적인 스타일을 미리 저장해 둔 스타일 시트
2) 문서의 일관성, 세세한 스타일 지정의 필요를 감소

mysql
1) 세계에서 가장 많이 쓰이는 오픈 소스


hdd
1) 비휘방성, 순차접근 가능

ssd
1) 자기 디스크(hdd)가 아닌 반도체 매모리를 내장

2) 하드웨어 - 클라이언트 환경

  1] 클라이언트 서버 화면 : 설치를 통해 사용자와 커뮤니케이션을 하는 화면으로 비쥬얼베이직, 시샾, delphi

  2] 웹 브라우저 화면 : 웹서비스의 형태로 서버에서 웹 어플리케이션을 응답 시 브라우저를 통해 사용자와 커뮤니케이션

  3] 스마트폰(모바일앱) : 클라이언트서버 화면과 유사하지만 모바일 디바이스에 설치되어 사용자가 활용하며, 웹 앱의 경우 모바일 상 웹브라우저를 통해 서비스 받음

3) 소프트웨어 

  1] 개발을 위한 기본적 소프트웨어 환경을 선택, 구성하며 프로젝트의 성격과 요구사항에 부합한 운영체제, 언어의 선택에 적절한 미들웨어와 데이터베이스 시스템을 설치

  2] 운영체제 : 서버의 하드웨어를 사용자 측면에서 편리하고 유용하게 사용하기 위한 SW로 프로젝트의 성격에 따라 알맞은 것을 선택

  3] 미들웨어 : 개발을 위한 보조 SW로, 웹 서버, WAS, 자바가상머신(JVM)과 같은 개발 환경의 구성요소로 활용

  4] DBMS : 데이터의 저장, 활용을 위해 설치하고 고객사의 요청, 요구사항에 따라 제품을 선택

JVM
1) 자바로 작성된 응용프로그램을 여러 운용체계에서 원활이 작동하도록 하는 소프트웨어

3. 형상관리 도구

1) 소프트웨어 구현 진행동안 소스 코드 및 문서에 대한 형상은 지속적으로 변화하며, 이를 관리하기 위한 도구

2) 내외부 연계 모듈 통합 구현을 위해서 필요

3) 소프트웨어 변경 사항을 관리하기 위해 형상 식별, 형상 통제, 형상 감사, 형상 기록을 수행

4) 모든 항목의 변경 사항을 관리하기 위한 활동

 

4. 형상관리 특징

1) 버전 관리 : 소프트웨어 변경 시 버전별로 관리하며 소프트웨어 뿐만 아니라 형상 대상의 항목을 모두 관리

2) 전단계 수행 : 프로젝트의 전 단계에서의 수행이며, 사업계획 단계부터 유지보수 단계에서도 수행

3) 추적성 확보 : 소프트웨어 개발 과정 시 발생하는 여러 문제 요인 추적

 

5. 형상관리 절차

1) 형상식별 : 식별, ID, 관리번호, 추적성

  1] 형상관리 대상을 식별하여 이름, 관리 번호를 부여하고 계층 구조로 구분하여 수정, 추적이 용이하도록 하는 작업

  2] 베이스라인의 기준을 정하는 활동

2) 변경제어 : 승인-검토 통제, 베이스라인 조정, 형상통제승인위원회

  1] 식별된 형상항목의 변경 요구를 검토, 승인하여 적절히 통제함으로써 현재의 베이스라인에 잘 반영될 수 있도록 조정

3) 형상 상태 보고 - 보고절차, 보고서

  1] 현재 상태 및 변경 항목들이 제대로 반영되는지 여부를 보고하는 절차로, 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리, 보고서 작성

4) 형상검사 

  1] 베이스라인의 무결성을 평가

  2] 공식적으로 승인하는 작업

프레임워크
1) 소프트웨어 개발에 공통적으로 사용되는 구성요소, 아키텍처를 일반화해 쉽게 구현할 수 있도록 여러 가지 기능을 제공하는 소프트웨어
2) 스프링 프레임워크
3) 전자정부 프레임워크 : 국내 공공문화 정보화 사업 시 효율적 정보 시스템 구축을 지원하기 위해 기능을 제공, 오픈 소스
4) 닷넷 프레임워크

6. 전자정부프레임워크 구성

1) 소스코드 에디터 : 자바 에디터

2) IDE : 통합개발환경, 이클립스 기반

3) 공통 컴포넌트

4) 서버 커넥션 매니지먼트

5) add plug-in : 모바일 기반의 프로젝트에서 필요한 기능 선택적 구성 기능

6) batch IDE

7) code generation

8) code inspection

9) DBIO editor

10) 유닛 테스트

.....

 

7. 개발환경 구축 순서

1) 요구사항 분석

  1] 요구사항을 분석하여 어떤 도구가 필요한지 준비

2) 필요 도구 설계

  1] 구현 도구, 빌드 도구, 테스트 도구, 형상관리 도구 등 요구사항에 맞는 시스템을 구축하기 위해 설계

3) 개발 언어 선정

  1] 적정성 : 목적에 적합

  2] 효율성 : 효율적 구현 가능

  3] 이식성 : 여러 디바이스 적용 가능

  4] 친밀성 : 대중의 프로그래머 사용 가능

  5] 범용성 : 다수의 시스템에서 사용중

4) 구현 도구 구축

  1] ex. 자바라면 이클립스를, 씨샵, 비주얼베이직이라면 비쥬얼 스튜디오를 활용

5) 빌드와 테스트 도구 구축

  1] 친밀도, 숙련도, 호환 가능성을 고려하여 도구를 선정

  2] 테스트 도구는 MTP에 적합하게 선정하며 온라인 트랜잭션이 빈벅한 개발 대상인 경우 테스트 자동화 도구를 고려

 

8. 서버 개발 프레임워크

1) 코드 라이브러리, 애플리케이션 인터페이스, 설정 정보 등의 집합으로서 재사용이 가능하도록 필요한 기본을 제공하며 정보 시스템의 개발, 운영을 지원하는 도구 및 가이드를 포함 

2) 모듈화 : 인터페이스에 의한 캡슐화를 통해 모듈화를 강화하고 변경에 따르는 영향을 극소화

3) 재사용성 : 반복적으로 사용

4) 확장성 : 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장

5) 제어의 역흐름 : 애플리케이션이 확장한 메소드를 호출

 

9. 서버 프로그램을 구현하기 위한 서버개발 프레임워크

1) 자바를 이용하는 스프링 프레임워크, 파이선의 장고, 자바스크립트의 노드.js

2) 목표 대상 시스템의 하드웨어와 요구사항을 분석해 개발 언어와 구현도구를 선정함과 유사하게 서버 개발 프레임워크를 선정

 

10. 전자 정부프레임워크 서버 개발 환경

1) 젠킨스, 마빈, 넥서스, snv, 톰캣