개발환경 구축의 이해
- 개발환경 구축을 위해서는 해당 프로젝트의 목적과 구축 설계에 대한 명확한 이해가 필요하고 이에 따라 하드웨어와 소프트웨어의 선정이 이루어져야 함
- 개발에 사용되는 제품들의 성능, 라이센스, 사용 편의성 등에 대한 내용도 파악해야 함
개발환경 구축에 필요한 하드웨어와 소프트웨어에 대한 이해
1) 개발을 위해 사용되는 소프트웨어의 종류와 특성
종류 | 특성 |
구현 도구 |
1. 프로그램 개발 시 가장 많이 사용하는 도구로서 코드의 작성 편집, 디버깅 등 여러 작업을 할 수 있다. 2. 종류 : Eclipse, Visual Studio Code, IntelliJ, NetBeans 등(프로그래밍 언어에 따라 도구를 선택해서 사용) |
테스트 도구 |
1. 테스트 도구는 소프트웨어 품질을 높이기 위해 사용하며 코드 테스트, 테스트 결과 리포팅 및 분석 등의 작업을 할 수 있다. 2. 종류 : xUnit, Spring Test 등 |
형상관리 도구 |
1. 형상관리 도구는 프로젝트 내에서 개발자들이 작성한 소스, 리소스, 산출물 등에 대한 버전을 관리하기 위해 사용한다. 2. 종류 : CVS, Subversion, Git 등 |
빌드 도구 |
1. 빌드 도구는 소스코드에 대한 빌드, 배포를 지원하며, 프로젝트에서 사용되는 구성 요소들과 라이브러리에 대한 의존성 관리를 지원하는 도구이다. 2. Ant, Maven, Gradle 등 |
개발환경 구성
- 시스템 환경은 개발환경, 테스트환경, 운영환경, 백업환경 등으로 분류
- 개발환경 구축을 할 때에는 하드웨어와 소프트웨어 환경 구성 필요
개발 하드웨어 환경
개발 하드웨어 환경은 운영환경과 유사한 구조로 구성하는 것이 원칙이며, 개발용 하드웨어 환경 구축 시 클라이언트와 서버 환경의 하드웨어 구성을 고려하여야 한다.
1) 클라이언트 환경 구성
- 서버 시스템에서 제공하는 서비스를 활용하기 위해 사용자와의 인터페이스를 제공하는 하드웨어
- 일반적으로 PC(Client/Server 화면), 웹 브라우저 화면, 핸드폰(모바일 앱)이 클라이언트로 활용됨
2) 서버 환경 구성
- 서버 활용 목적에 따라 애플리케이션 서버, 데이터베이스 서버, 파일 서버 등으로 나눌 수 있음
- 웹 서비스를 제공하기 위해서 애플리케이션 서버를 웹 서버와 웹 애플리케이션 서버로 분리하여 구성하기도 함
종류 | 설명 |
웹 서버 | 웹 브라우저와 같은 클라이언트가 요청하는 서비스의 속도를 향상시키기 위해 정적 파일(HTML, CSS, 이미지 등)들을 제공하는 웹 서버 애플리케이션이 설치되는 하드웨어 |
웹 애플리케이션 서버 | 동적 웹 서비스를 제공하기 위해 Tomcat, Underflow, IIS 등 미들웨어인 WAS(Web Application Server)와 서비스에 관련된 애플리케이션이 설치되는 하드웨어 |
데이터베이스(Database) 서버 | MySql, Oracle, MS-SQL 등 데이터베이스가 설치되는 하드웨어 |
파일(File) 서버 | 서비스 제공을 위해 파일을 저장하고 공유하기 위한 파일 저장 하드웨어 |
개발 소프트웨어 환경
개발 소프트웨어 환경는 개발 하드웨어 환경과 마찬가지로 운영환경과 동일한 구조로 구성하는 것이 원칙이며, 개발용 소프트웨어 환경을 구축하기 위해서는 시스템 소프트웨어와 개발 소프트웨어 구성을 고려해야 한다.
1) 시스템 소프트웨어
종류 | 설명 |
운영체제(OS : Operation System) |
1. 시스템 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해 하드웨어 플랫폼과 공동 시스템 서비스를 제공한다. 2. 일반적으로 상세 소프트웨어 명세를 하드웨어를 제공하는 벤더(vendor)에서 제공한다. ex : Windows, Linux, UNIX(HPUS, Solaris, AIX) 등 |
JVM(Java Virtual Machine) |
1. Java 관련 응용 프로그램을 기동하기 위한 주체이다. 2. 인터프리터 환경으로 적용 버전을 개발 표준에서 명시하여 모든 개발자가 동일한 버전을 적용하는 것이 좋다. |
Web Server |
정적 웹 서비스를 수행하는 미들웨어로서, 웹 브라우저 화면에서 요청하는 정적 파일을 제공한다. ex : Apache, Nginx, IIS(Internet Information Server), GWS(Google Web Server) 등 |
WAS(Web Application Server) |
웹 애플리케이션을 수행하는 미들웨어로서, 웹 서버와 JSP/Servlet 애플리케이션 수행을 위한 엔진으로 구성된다. ex : Tomcat, Undertow, JEUS, Weblogic, Websphere 등 |
DBMS(Database Management Server) |
데이터 저장과 관리를 위한 데이터베이스 소프트웨어이다. ex : Oracle, DB2, Sybase, SQL Server, MySQL, MS-SQL 등 |
2) 개발 소프트웨어
종류 | 설명 |
요구사항 관리도구 |
목표 시스템의 기능과 제약 조건 등 고객의 요구사항을 수집, 분석, 추적을 쉽게 할 수 있게 지원한다. ex : JFeature, JRequisite, OSRMT, Trello 등 |
설계/모델링 도구 |
기능을 논리적으로 결정하기 위해 통합 모델링 언어(UML : Unified Modelling Language) 지원, 데이터베이스 설계 지원 및 모델링을 지원하는 도구이다. ex : ArgoUML, DB Designer, StarUML 등 |
구현 도구 |
문제 해결 방법을 소프트웨어 언어를 통해 구현 및 개발을 지원하는 도구이다. ex : Eclipse, IntelliJ, Visual Studio 등 |
테스트 도구 |
구현 및 개발된 모듈들에 대하여 요구사항에 적합하게 구현되어 있는지 테스트를 지원하는 도구이다. ex : JUnit, CppUnit, JMeter, SpringTest 등 |
형상관리 도구 |
산출물의 변경 사항을 버전 별로 관리하여 목표 시스템의 품질 향상을 지원하는 도구이다. ex : Git, SVN 등 |
형상관리 구성
형상관리의 정의
- 형상관리(SCM : Software Configuration Management)란 소프트웨어의 개발 과정에서 발생하는 산출물의 변경 사항 버전 등 산출물을 체계적으로 관리하여 SW의 가시성 및 추적성을 부여하고 품질보증을 향상시키는 일련의 활동
- 소프트웨어 변경사항을 파악하고 제어하며, 적절히 변경되고 있는 지에 대해 확인하여 해당 담당자에게 통보하는 작업
형상관리의 특징
- 형상관리는 프로젝트 생명주기의 전 단계에서 수행하는 활동이며, 유지 보수 단계에서도 수행되는 활동
- 형상관리를 함으로써 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정에서 발생하는 여러 가지 문제를 발생 요인이 최소화되도록 보증하는 것이 목적
형상관리의 구조
형상관리의 절차
형상관리는 품질 보증을 위한 중요한 요소로서 '형상 식별 → 형상 통제 → 형상 감사 → 형상 기록'의 절차로 수행된다.
1) 형상 식별 : 형상관리 대상을 식별하여 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업으로 베이스라인 기준을 정하는 활동이다.
2) 형상 통제 : 식별된 형상 항목의 변경 요구를 검토, 승인하여 적절히 통제함으로써 현재의 베이스라인에 잘 반영될 수 있도록 조정하는 작업으로, 적절한 형상 통제가 이루어지기 위해서는 형상통제위원회 승인을 통한 통제가 이루어질 수 있어야 한다.
3) 형상 감사 : 베이스라인의 무결성을 평가하기 위해 확인(Validation), 검증(Varification) 과정을 통해 공식적으로 승인하는 작업을 말한다.
4) 형상 기록(보고) : 베이스라인의 현재 상태 및 변경 항목들이 제대로 반영되는지 여부를 보고하는 절차이며 형상의 식별, 통제, 감사 작업의 결과를 기록 및 관리하고 보고서를 작성하는 작업이다.
'정보처리기사 실기(개편) > 서버 프로그램 구현' 카테고리의 다른 글
[정보처리기사 실기 - 서버 프로그램 구현]공통 모듈 테스트 (0) | 2020.05.05 |
---|---|
[정보처리기사 실기 - 서버 프로그램 구현]공통 모듈 구현 (0) | 2020.05.05 |