정보
-
업무명 : 정보처리기사 실기 : 9강 서버 프로그램 (개발환경 구축하기)
-
작성자 : 이상호
-
작성일 : 2020-05-09
-
설 명 :
-
수정이력 :
내용
[개발환경 준비]
[1] 개발환경 구축의 이해
-
개발환경을 구축하기 위해서는, 해당 프로젝트의 목적과 구축 설계에 대한 명확한 이해가 필요하며, 이에 맞는 하드웨어, 소프트웨어의 선정이 이루어져야 한다.
-
또한 개발에 사용되는 제품들의 성능과 라이선스 그리고 사용 편의성 등에 대한 내용도 파악해야 한다.
[2] 개발환경 구축에 필요한 하드웨어와 소프트웨어에 대한 이해
-
개발환경 구성을 위해서는 어떤 종류의 개발 소프트웨어들이 존재하며 각 종류마다 어떤 특성을 갖는지에 대해 판단할 수 있어야 한다. 그리고 이러한 소프트웨어가 설치되는 하드웨어에 대한 이해도 필요하다.
-
1. 개발을 위해 사용되는 소프트웨어의 종류와 특성
-
(1) 구현 도구
-
프로그램을 개발할 때 가장 많이 사용되는 도구로서 코드의 작성 및 편집, 디버깅 등 과 같은 다양한 작업이 가능하며 Eclipse, Visual Studio Code, IntelliJ, NetBeans 등 다 양한 소프트웨어 도구들이 사용되고 있다.
-
구현해야 할 소프트웨어가 어떤 프로그래밍 언어로 개발되는지에 따라 선택하여 사용한다.
-
-
(2) 테스트 도구 소프트웨어의 품질을 높이기 위해 테스트에 사용되는 소프트웨어 도구들로 코드의 테스트, 테스트에 대한 리포팅 및 분석 등의 작업이 가능하다. 사용되는 테스트 도구 들에는 xUnit, Spring Test 등이 있다.
-
(3) 형상관리 도구 대다수의 프로젝트들은 다수의 개발자들로 구성된 팀 단위 프로젝트로 진행되며, 개발 자들이 작성한 소스 및 리소스 등 산출물에 대한 버전 관리를 위해 형상관리 도구가 사용된다. 대표적인 형상관리 도구로는 CVS, Subversion, Git 등이 있다.
-
(4) 빌드 도구 개발자가 작성한 소스에 대한 빌드 및 배포를 지원하며, 프로젝트에서 사용되는 구성 요소들과 라이브러리들에 대한 의존성 관리를 지원하는 도구이다. 사용되는 빌드 도구 에는 Ant, Maven, Gradle 등이 있다.
-
-
2. 하드웨어를 고려한 개발 소프트웨어의 선정
-
프로그램 개발에 사용되는 소프트웨어들은 OS에 따라 적합한 것을 선정하여야 한다. 개발 에 사용되는 시스템의 하드웨어 사양을 파악하여 해당 시스템 성능에 적합한 소프트웨어 를 선정하여야 한다.
-
[수행]
[1] 개발환경을 준비하기 위해서 목표 시스템의 환경을 분석한다.
-
제안 요청서, 제안서, 사업 수행 계획서, 요구 사항 정의서, 시스템 아키텍처, 애플리케이 션 아키텍처 등 분석 및 설계 시의 산출물을 분석하여 개발환경을 준비한다.
-
1. 목표 시스템의 환경을 분석한다. 다음 예시와 같이 간단한 인사 관리 시스템 구축을 통해 개발환경 구축에 필요한 도구에 대해 파악한다
-
2. 요구 사항을 분석한다.
[2] 개발언어 및 하드웨어 사양을 고려한 구현 도구를 선정한다.
-
1. 개발언어의 선정
-
(1) 개발언어의 선정 기준
-
※ 위 고려 항목은 참고 사항으로 활용되며, 위 항목들 이외에도 알고리즘과 계산상의 난이도, 소프트웨어의 수행 환경, 자료 구조의 난이도, 개발 담당자와의 경험과 지 식 등이 고려되어야 한다
-
-
-
(2) 개발언어의 선정
-
인사 관리 웹 애플리케이션 시스템 프로젝트에서 범용성, 이식성이 뛰어나고 대상 업 무의 성격에 적합한 Java 및 JavaScript/HTML5를 Server와 Client 개발언어로 선정한다.
-
(가) Server Side: 웹 애플리케이션 개발에 적합한 Java 선정
-
(나) Client Side: 차세대 웹 표준인 HTML5와 jQuery를 선정
-
-
-
2. 개발 도구의 선정
-
(1) 통합 개발환경의 종류 및 특징 다양한 프로그래밍 언어를 지원하는 통합 개발환경의 예로 이클립스(Eclipse), 비주얼 스튜디오(Visual Studio) 등을 들 수 있다. 이클립스는 자바를 기본적으로 지원하지만 파이썬(Phython), PHP, JSP, C, C++ 등과 같은 언어들도 추가적으로 설치할 수 있다. 설치된 언어들은 각각의 디버거를 비롯한 다양한 도구들을 지원하고 있다
-
-
(2) 통합 개발환경의 선정 목표 시스템 구축을 위한 통합 개발환경의 선정은 풍부한 기능과 Plug-in을 보유하고 있고, 다양한 적용 사례가 존재하는 통합 개발 도구(IDE: Integrated Development Environment)를 개발 도구로 선정한다.
[3] 프로그램의 배포 및 라이브러리 관리를 위한 빌드(Build) 도구를 선정한다.
-
1. 빌드 도구 Gradle, Maven, Ant의 특징
-
2. 빌드 도구의 선정
-
(1) 프로젝트 팀원의 빌드 도구의 친밀도와 숙련도에 따라 결정한다.
-
(2) 형상관리 도구를 고려하여 빌드 도구를 선정한다.
-
(3) 통합 개발 도구와 호환이 가능한 빌드 도구를 선정한
-
[4] 개발 인원을 고려한 형상관리 도구를 선정한다
-
1. 형상관리 도구의 종류
-
2. 형상관리 도구의 선정
-
(1) 목표 시스템 환경 등을 고려하여 선정한다.
-
(2) 통합 개발 도구와 호환이 가능한 빌드 도구를 선정한다.
-
[5] 프로젝트 검증에 적합한 테스트 도구를 선정한다
-
1. 테스트 도구의 종류
-
2. 테스트 도구의 선정
-
통합 개발 도구와 호환이 가능하고 널리 사용되는 테스트 자동화 도구를 선정한다
-
[개발환경 구축]
[1] 개발환경 구성
-
일반적으로 사용되는 시스템 환경은 프로그램 개발을 위한 개발환경, 테스트를 위한 테스트 환경, 실제 시스템이 운영되는 운영환경과 백업환경 등으로 분류할 수 있다. 이 중 개발환경 구축에 필요한 하드웨어와 소프트웨어 명세를 살펴보기로 한다.
-
1. 개발 하드웨어 환경 개발 하드웨어 환경은 운영환경과 유사한 구조로 구성하는 것이 원칙이며, 개발용 하드웨어 환경을 구축하기 위해서는 다음과 같은 하드웨어 구성을 고려하여야 한다.
-
(1) 클라이언트(Client) 환경 구성 서버 시스템에서 제공하는 서비스를 활용하기 위해 사용자와의 인터페이스(Interface) 를 제공하는 하드웨어로서, 일반적으로 PC(Client/Server 화면), 웹 브라우저 화면, 핸드 폰(모바일 앱)이 클라이언트로 활용된다.
-
(2) 서버(Server) 환경 구성
-
서버 활용 목적에 따라 애플리케이션 서버, 데이터베이스 서버, 파일 서버 등으로 나 눌 수 있다. 웹 서비스를 제공하기 위해서 애플리케이션 서버를 웹 서버와 웹 애플리케이션 서버로 분리하여 구성하기도 한다.
-
(가) 웹(Web) 서버 클라이언트(웹 브라우저 화면)에서 요청하는 서비스의 속도를 향상시키기 위해 정적 파일(HTML, CSS, 이미지 등)들을 제공하는 웹 서버 애플리케이션이 설치되는 하드웨어이다.
-
(나) 웹 애플리케이션(Application) 서버 동적 웹 서비스를 제공하기 위해 Tomcat, Undertow, IIS 등 미들웨어인 WAS(Web Application Server)와 서비스에 관련된 애플리케이션이 설치되는 하드웨어이다.
-
(다) 데이터베이스(Database) 서버 MySql, Oracle, MS-SQL 등 데이터베이스가 설치되는 하드웨어이다.
-
(라) 파일(File) 서버 서비스 제공을 위해 파일을 저장하고, 공유하기 위한 파일 저장 하드웨어이
-
-
-
2. 개발 소프트웨어 환경
-
개발 소프트웨어 환경도 개발 하드웨어 환경과 마찬가지로 운영환경과 동일한 구조로 구성하는 것이 원칙이며, 개발용 소프트웨어 환경을 구축하기 위해서는 다음과 같은 유형 의 소프트웨어 구성을 고려하여야 한다.
-
(1) 시스템 소프트웨어
-
(가) 운영체제(OS: Operation System) :하드웨어 운영을 위한 운영체제로서, Windows/Linux/UNIX 등의 환경으로 구성되는 데, 일반적으로 상세 소프트웨어 명세는 하드웨어를 제공하는 벤더(Vendor)에서 제공한다. (예) Windows, Linux, UNIX(HPUX, Solaris, AIX) 등
-
(나) JVM(Java Virtual Machine) :Java 관련 응용 프로그램을 기동하기 위한 인터프리터 환경으로, 적용 버전을 개발 표준에서 명시하여 모든 개발자가 동일한 버전을 적용하는 것이 좋다.
-
(다) Web Server 정적 웹 서비스를 수행하는 미들웨어로서, 웹 브라우저 화면에서 요청하는 정적 파 일을 제공한다. (예) Apache, Nginx, IIS(Internet Information Server), GWS(Google Web Server) 등
-
(라) WAS(Web Application Server) 웹 애플리케이션을 수행하는 미들웨어로서, 웹 서버와 JSP/Servlet 애플리케이션 수행을 위한 엔진으로 구성된다. (예) Tomcat, Undertow, JEUS, Weblogic, Websphere 등
-
(마) DBMS(Database Management System) 데이터 저장과 관리를 위한 데이터베이스 소프트웨어이다. (예) Oracle, DB2, Sybase, SQL Server, MySQL 등
-
-
(2) 개발 소프트웨어
-
(가) 요구 사항 관리도구 목표 시스템의 기능과 제약 조건 등 고객의 요구 사항을 수집, 분석, 추적을 쉽게 할 수 있게 지원한다.
-
(예) JFeature, JRequisite, OSRMT, Trello 등
-
-
(나) 설계/모델링 도구 기능을 논리적으로 결정하기 위해 통합 모델링 언어(UML: Unified Modeling Language) 지원, Database 설계 지원 등 설계 및 모델링을 지원하는 도구이다.
-
(예) ArgoUML, DB Designer, StarUML 등
-
-
(다) 구현 도구 문제 해결 방법을 소프트웨어 언어를 통해 구현 및 개발을 지원하는 도구이다.
-
(예) Eclipse, IntelliJ, Visual Studio 등
-
-
(라) 테스트 도구 구현 및 개발된 모듈들에 대하여 요구 사항에 적합하게 구현되어 있는지 테스트를 지원하는 도구이다
-
(예) JUnit, CppUnit, JMeter SpringTest 등
-
-
(마) 형상관리 도구 산출물의 변경 사항을 버전별로 관리하여 목표 시스템의 품질 향상을 지원하는 도구이다.
-
(예) Git, SVN 등
-
-
-
[2] 형상관리 구성
-
1. 형상관리의 정의
-
형상관리(SCM: Software Configuration Management)란 소프트웨어의 개발 과정에서 발생 하는 산출물의 변경 사항을 버전 관리하기 위한 일련의 활동으로, 다음과 같은 특성을 가지고 있다.
-
(1) 소프트웨어 변경사항을 파악하고 제어하며, 적절히 변경되고 있는지에 대해 확인하여 해당 담당자에게 통보하는 작업이다.
-
(2) 형상관리는 프로젝트 생명주기의 전 단계에서 수행하는 활동이며, 유지 보수 단계 에서도 수행되는 활동이다.
-
(3) 형상관리를 함으로써 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정에서 발생 하는 여러 가지 문제점 발생 요인이 최소화되도록 보증하는 것을 목적으로 한다.
-
-
2. 형상관리 절차
-
형상관리는 품질 보증을 위한 중요한 요소로서 다음과 같은 절차를 통해 수행된다.
-
(1) 형상 식별
-
(가) 형상관리 대상을 식별하여 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업으로 베이스라인의 기준을 정하는 활동이다
-
(나) 형상관리 대상이 되는 형상인 형상항목은 다음과 같다.
-
1) 소프트웨어 공학 기반 표준과 절차: 방법론, WBS, 개발 표준
-
2) 소프트웨어 프로젝트 계획서
-
3) 소프트웨어 요구 사항 명세서
-
4) 소프트웨어 아키텍처, 실행 가능한 프로토타입
-
5) 소프트웨어 화면, 프로그램 설계서
-
6) 데이터베이스 기술서: 스키마, 파일 구조, 초기 내용
-
7) 소스코드 목록 및 소스코드
-
8) 실행 프로그램
-
9) 테스트 계획, 절차, 결과
-
10) 시스템 사용 및 운영과 설치에 필요한 매뉴얼
-
11) 유지 보수 문서: 변경 요청서, 변경 처리 보고서 등
-
-
-
-
(2) 변경 제어
-
식별된 형상항목의 변경 요구를 검토, 승인하여 적절히 통제함으로써 현재의 베이스라 인에 잘 반영될 수 있도록 조정하는 작업으로, 적절한 형상 통제가 이루어지기 위해서 는 형상통제위원회 승인을 통한 통제가 이루어질 수 있어야 한다.
-
-
(3) 형상 상태 보고
-
베이스라인의 현재 상태 및 변경 항목들이 제대로 반영되는지 여부를 보고하는 절차 이며 형상의 식별, 통제, 감사 작업의 결과를 기록 및 관리하고 보고서를 작성하는 작업이다.
-
-
(4) 형상 감사
-
베이스라인의 무결성을 평가하기 위해 확인, 검증 과정을 통해 공식적으로 승인하는 작업을 말한다.
-
[수행]
[1] 통합 개발환경 도구를 설치한다.
-
통합 개발환경 도구는 Eclipse, IntelliJ, Visual Studio 등 다양한 도구들이 있으나, 본 실습 에서는 준비 단계에서 선정한 통합 개발환경 도구를 설치한다.
-
1. 요구 사항에 적합한 통합 개발환경 도구를 다운받는다.
-
개발환경 도구를 설치한다
-
-
2. 다운받은 통합 개발환경 도구를 설치한다.
-
(1) 통합 개발환경 도구를 실행한다.
-
[2] Java 웹 애플리케이션 환경을 구성한다.
-
1. Spring 프레임워크 환경을 구성한다.
-
Spring 환경을 구성을 위해서는 STS(Spring Tool Suite)를 설치해야 하므로 통합 개발환경 도구에서 STS를 Plug-in 한다.
-
(1) STS를 Plug-in 한다.
-
[3] 형상관리 도구를 설치한다.
-
형상관리 도구는 CVS, SVN, Git 등 다양한 형상관리 도구가 사용되나, 본 예제에서는 Git 를 형상관리 도구로 설치한다.
[연습문제]
-
개발을 위해 사용되는 소프트웨어의 종류와 특성이 잘못된 것은?
-
(1) 구현 도구 :프로그램을 개발할 때 가장 많이 사용되는 도구로서 코드의 작성 및 편집, 디버깅 등 과 같은 다양한 작업이 가능하며 Eclipse, Visual Studio Code, IntelliJ, NetBeans 등 다 양한 소프트웨어 도구들이 사용되고 있다.
-
(2) 테스트 도구: 소프트웨어의 품질을 높이기 위해 테스트에 사용되는 소프트웨어 도구들로 코드의 테스트, 테스트에 대한 리포팅 및 분석 등의 작업이 가능하다. 사용되는 테스트 도구 들에는 xUnit, Spring Test 등이 있다.
-
(3) 형상관리 도구 :대다수의 프로젝트들은 다수의 개발자들로 구성된 팀 단위 프로젝트로 진행되며, 개발 자들이 작성한 소스 및 리소스 등 산출물에 대한 버전 관리를 위해 형상관리 도구가 사용된다. 대표적인 형상관리 도구로는 CVS, Subversion, Git , Gradle 등이 있다.
-
(4) 빌드 도구 :개발자가 작성한 소스에 대한 빌드 및 배포를 지원하며, 프로젝트에서 사용되는 구성 요소들과 라이브러리들에 대한 의존성 관리를 지원하는 도구이다. 사용되는 빌드 도구 에는 Ant, Maven등이 있다.
-
-
서버(Server) 환경 구성 에 대한 설명이 잘못된 것은?
-
1) 웹(Web) 서버 클라이언트(웹 브라우저 화면)에서 요청하는 서비스의 속도를 향상시키기 위해 정적 파일(HTML, CSS, 이미지 등)들을 제공하는 웹 서버 애플리케이션이 설치되는 하드웨어이다.
-
2) 웹 애플리케이션(Application) 서버 : 정적 웹 서비스를 제공하기 위해 Tomcat, Undertow, IIS 등 미들웨어인 WAS(Web Application Server)와 서비스에 관련된 애플리케이션이 설치되는 하드웨어이다.
-
3) 데이터베이스(Database) 서버 MySql, Oracle, MS-SQL 등 데이터베이스가 설치되는 하드웨어이다.
-
4) 파일(File) 서버 서비스 제공을 위해 파일을 저장하고, 공유하기 위한 파일 저장 하드웨어이다.
-
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'자기계발 > 자격증' 카테고리의 다른 글
[자격증] 정보처리기사 실기 : 11강 서버 프로그램 구현 (서버 프로그램 구현하기) (0) | 2020.05.10 |
---|---|
[자격증] 정보처리기사 실기 : 10강 서버 프로그램 (공통 모듈 구현하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 8강 통합 구현 (내/외부 연계 모듈 구현하기) (2) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 7강 통합 구현 (연계 매커니즘 구성하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 6강 통합 구현 (연계 데이터 구성하기) (0) | 2020.05.10 |
최근댓글