개발환경 구축

2022. 9. 5. 17:19정처기(실기)/서버 프로그램 구현

(1) 개발환경 구축

- 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해가 필요하다.

- 개발 도구와 서버의 선정이 이루어져야 하고, 개발에 사용되는 도구들의 사용편의성과 성능, 라이선스를 확인한다.

 

 

 

(2) 개발 도구의 분류

 

구분 설명
빌드 도구 작성한 코드의 빌드 및 배포를 수행하는 도구
각각의 구성요소와 모듈에 대한 의존성 관리를 지원
구현 도구 개발자의 코드 작성고 디버깅, 수정 등과 같은 작업을 지원하는 도구
프로그램을 개발할 때 가장 많이 사용되는 도구
테스트 도구 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 가능
형상 관리 도구 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구
프로젝트 진행 시 필수로 포함되는 도구

 

(3) 개발환경 구성요소

1.하드웨어 개발환경

①서버 하드웨어 개발환경

- 프로젝트 구성에 따라 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버로 구분한다.

 

구분 설명
웹 서버 HTTP를 이용한 요청/응답을 처리
웹 상의 정적 콘텐츠(CSS, Javascript, Image)를 처리
WEB-WAS-DB의 3계층 구조를 실무에서 활용
주요 제품으로 Apache 웹 서버, IIS 웹 서버, Google Web Server, Nginx 등이 존재함
웹 애플리케이션 서버 동적 콘텐츠(Servlet, JSP)를 처리하기 위해 사용
주요 제품으로 Tomcat, Weblogic, Jeus, Resin 등 존재
데이터베이스 서버 데이터의 수집, 저장을 위한 용도로 사용
연계되는 주요 DBMS로 MySql, Oracle, MS-SQL, DB2 등 존재
파일 서버 파일 저장 하드웨어로 물리 저장장치를 활용한 서버
대용량 HDD, SSD 등의 장치가 존재

 

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

- 서버 개발환경에서 제공된 서비스를 사용하기 위해 UI를 제공한다.

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

구분 설명
클라이언트 프로그램 설치를 통해 사용자와 커뮤니케이션하는 프로그램
Visual Basic, C#, Delphi 등으로 개발되어 사용
웹 브라우저 웹 서비스의 형태로 서버에서 웹 애플리케이션을 응답 시 브라우저를 통해 사용자와 커뮤니케이션
일반적인 형태의 웹 사이트가 해당
모바일 앱 모바일 디바이스에 설치되어 활용되는 애플리케이션
앱 스토어, 안드로이드 마켓 등을 통해 다운로드 가능
모바일 웹 웹 브라우저와 동일한 형태로 모바일상 웹 브라우저를 통해 서비스를 제공
모바일에 최적화되어 제공되는 웹사이트가 해당

 

2. 소프트웨어 개발환경

- 개발을 위한 기본적인 소프트웨어 개발환경을 선택 및 구성한다.

- 큰 틀에서 프로젝트 요구사항에 부합한 운영체제, 미들웨어, 데이터베이스 시스템을 선정한다.

 

구분 설명
운영체제 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
프로젝트의 성격에 따른 운영체제 사용
미들웨어 컴퓨터오 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어
자바 기반 환경에서 JVM을 설치하여 컨테이너로의 기능을 주로 이용
DBMS 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
데이터의 저장 및 활용을 위해 DBMS를 설치

 

3. 형상 관리

- 형상 관리는 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동이다.

- SW 생명 주기 동안 형상 관리를 통해 산출물을 체계적으로 관리하여 SW의 가시성, 추적성, 무결성 등의 품질 보증을 보장할 수 있다.

- 프로젝트 생명주기 동안 제품의 무결성과 변경에 대한 추적성을 확보할 수 있다.

- 프로젝트 변경이 발생 되었을 때 처리하는 메커니즘을 제공한다.

- 대표적인 메커니즘으로 형상 관리대상 파악, 베이스라인 지정, 형상 관리, 접근제어 등이 있다.

 

▼형상 관리의 절차

  1. 형상 식별 : 형상 관리 대상을 정의 및 식별하는 활동, 추적성 부여를 위해 ID와 관리번호를 부여, 변경 관련 이슈 발생 시 ID와 관리번호를 이용하여 추적
  2. 형상 통제 : 형상 항목의 버전 관리를 위한 형상통제위원회 운영, 변경요구 관리, 변경제어, 형상 관리 등 통제 지원, 베이스라인에 대한 관리 및 형상 통제 수행 가능
  3. 형상 감사 : 소프트웨어 베이스라인의 무결성 평가, 베이스라인 변경 시 요구사항과 일치 여부 검토
  4. 형상 기록 : 소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록, 형상결과 보고서 작성

 

① 소프트웨어 형상 관리 도구 유형

- 초기의 소프트웨어 형상 관리 도구는 공유 폴더 방식을 많이 활용하였지만, 최근에는 클라이언트/서버 방식과 분산 저장소 방식이 많이 활용된다.

 

형상 관리 도구 유형 설명
공유 폴더 방식
(RCS, SCCS)
매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식
담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사하고 컴파일하여 에러 확인과 정상 동작 여부 확인
정상 동작일 경우 다음날 각 개발자들이 동작 여부 확인
클라이언트/서버 방식
(CVS, SVN)
중앙에 버전 관리 시스템을 항시 동작시키는 방식
개발자들의 현재 작업 내용과 이전 작업내용 추적에 용이
서로 다른 개발자가 같은 파일을 작업했을 때 경고 메시지 출력
분산 저장소 방식
(Git 등)
로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 방식
중앙의 저장소에서 로컬 파일을 복사한 순간 개발자 자신만의 로컬 저장소에 생성
개발 완료한 파일을 수정한 다음에 로컬 저장소에 우선적으로 커밋한 이후, 다시 원격 저장소에 반영하는 방식

 

② 소프트웨어 형상 관리 도구별 특징

- 현재 국내 개별 프로젝트에서는 SVN을 가장 많이 사용하고 있으나, 전 세계적으로는 오픈 소스 기반의 소프트웨어 형상 관리 도구인 Git을 가장 많이 사용하고 있다.

 

  • CVS : 서버와 클라이언트로 구성되어있고, 다수의 인원이 동시에 범용적인 운영체제로 접근 가능한 형상 관리 도구
  • SVN : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구, 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 도구
  • RCS : CVS와 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상을 관리하는 도구
  • BitKeeper : SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 형상 관리 도구
  • Git : Git의 속도에 중점을 둔 분산형 버전 관리 시스템이며, 대형 프로젝트에서 효과적이고 유용함, Git의 커밋 동작은 로컬 저장소에서 이루어지고, 푸시라는 동작으로 원격 저장소에 반영함, 로컬 저장소에서 작업이 이루어져 매우 빠른 응답을 받을 수 있음, Git의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하는 완전한 형태의 저장소
  • Clear Case : 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음

③ 소프트웨어 형상 관리 도구  사용 시 요구사항

버전에 대한 쉬운 정보 접근성 -> 형상 관리 지침에 의한 버전에 대한 정보를 언제든지 접근할 수 있어야 함

 

불필요한 사용자에 대한 접근 제어 -> 제품 소프트웨어 개발자, 배포자 이외에 불필요한 사용자가 소스를 수정할 수 없도록 해야 함

 

동일 프로젝트에 대한 동시 사용성 -> 동일 프로젝트에 대해서 여러 개발자가 동시에 개발할 수 있어야 함

 

빠른 오류 복구 -> 에러 발생 시 최대한 빠른 시간 내에 복구가 가능해야 함, 과거 버전의 소스를 가지고 신속하게 원복

 

 

(4) 개발환경 구축 절차

- 통합 개발환경을 구축하기 위한 절차를 명시한다.

 

  1. 통합 개발 환경 설치 : 통합 개발환경 도구로 Eclipse, IntelliJ, Android Studio 등 존재함
  2. 형상 관리 도구 설치 : 형상 관리 도구로는 Git, SVN, CVS 등이 있으며, 현재는 깃허브 등올 통해 Git이 각광받음
  3. 빌드 도구 설치 : 빌드 도구로는 Ant, Maven, Gradle이 있음

 

▼ 형상 관리 도구(Git, SVN) 주요 명령어

실행 동작 Git SVN
저장소 생성 git init svn import
저장소 복제 git clone svn checkout
커밋 git commit svn commit
추가 git add svn add
이동 git mv svn mv
삭제 git rm svn rm
브랜치 생성 git branch svn copy
병합 git merge svn merge
원격 저장소 반영 git push svn commit
설정 확인 git config svn info

'정처기(실기) > 서버 프로그램 구현' 카테고리의 다른 글

배치 프로그램 구현  (0) 2022.09.07
서버 프로그램 구현  (0) 2022.09.07
서버 프로그램 구현  (0) 2022.09.06
공통 모듈 구현  (0) 2022.09.06