19일차 : 4. 서버프로그램 구현

Dev_HG·2020년 7월 21일
0

1. 개발환경 구축

1. 개발환경 구축의 개념

  • 개발 환경 구성 시 구현될 요구사항의 명확한 이해가 필요
  • 개발 도구와 서버의 선정이 이루어져야 한다. 또한 개발에 사용되는 도구들의 사용 편의성과 성능, 라이선스 등에 대한 내용도 파악해야 한다.

2. 개발 도구의 분류

  • 개발 환경 구성을 위한 도구는 4가지로 분류

1. 빌드 도구

  • 작성한 코드의 빌드 및 배포를 수행하는 도구
  • 각각의 구성요소와 모듈에 대한 의존성 관리를 지원하는 도구

2. 구현 도구

  • 코드의 작성과 디버깅, 빌드 및 배포를 수행하는 도구
  • 프로그램을 개발할 때 가장 많이 사용되는 도구

3. 테스트 도구

  • 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
  • 코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 수행

4. 형상 관리 도구

  • 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구
  • 프로젝트 진행 시 필수로 포함되는 도구

3. 개발환경 구성요소

1. 하드웨어 개발환경

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

웹 서버

  • HTTP를 이용한 요청/응답을 처리
  • 웹 상의 정적 콘텐츠(CSS,Javascript,Image)를 처리
  • WEB-WAS-DB의 3계층 구조를 실무에서 활용

웹 애플리케이션 서버(WAS; Web Application Server)

  • 동적 콘텐츠를 처리하고 제공하기 위해 사용
  • WAS 제품으로 Tomcat, Weblogic, Jeus, Resin 등 존재

데이터베이스 서버

  • 데이터의 수집, 저장을 위한 용도로 사용
  • DB 제품으로 MySql, Oracle, MS-SQL 등 존재

파일 서버

  • 파일 저장 하드웨어로 물리 저장 장치를 활용한 서버
  • 대용량 HDD, SSD 등의 장치가 존재
    cf : WAS(Web Application Server) : 사용자 요청 스레드를 처리하고, 데이터베이스에 접속하여 SQL 쿼리문에 대한 결과 값을 반환하는 역할을 수행하는 서버

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

  • 서버 개발환경에서 제공된 서비스를 사용하기 위해 UI(User Interface)를 제공한다.
  • 클라이언트 서버, 웹 브라우저, 모바일 앱, 모바일 웹으로 구분한다.

클라이언트 프로그램

  • 설치를 통해 사용자와 커뮤니케이션하는 프로그램
  • Visual Basic, C#, Delphi 등으로 개발되어 사용

웹 브라우저

  • 웹 서비스의 형태로 서버에서 웹 애플리케이션을 응답 시 브라우저를 통해 사용자와 커뮤니케이션
  • 일반적인 형태의 웹 사이트가 해당

모바일 앱

  • 모바일 디바이스에 설치되어 활용되는 애플리케이션
  • App Store, Android Market 등을 통해 다운로드 가능

모바일 웹

  • 웹 브라우저와 동일한 형태로 모바일 상 웹 브라우저를 통해 서비스를 제공
  • 모바일에 최적화 되어 제공되는 웹 사이트가 해당

2. 소프트웨어 개발환경

  • 개발을 위한 기본적인 소프트웨어 개발환경을 선택 및 구성
  • 프로젝트 요구사항에 부합한 운영체제, 미들웨어, DBMS를 선정

운영체제

  • 서버의 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어
  • 프로젝트의 성격에 따른 운영체제 사용

미들웨어

  • 웹 서버, JVM과 같은 개발 환경의 구성요소로 활용
  • 웹 서비스는 웹 서버를 설치하여 사용자 요구사항에 적합한 웹 서비스를 제공
  • 자바(JAVA) 기반 환경에서 JVM을 설치하여 컨테이너로의 기능을 이용

DBMS

  • 데이터의 저장 및 활용을 위해 DBMS를 설치
  • 사용자 요청에 따라 DBMS 제품을선택

cf : JVM(Java Virtual Machine) : Java Byte Code를 Os에 맞게 해석 해주는 역할을 수행한다. Java Byte Code는 JVM 위에서 OS 상관없이 실행된다. 이식성, 호환성이 장점
cf : 컨테이너(Container) : JSP와 서블릿을 실행시킬 수 있는 소프트웨어

3. 형상관리

가. 형상관리의 개념

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

나. 형상 관리의 목적

  • 프로젝트 생명주기 동안 제품의 무결성과 변경에 대한 추적성을 확보할 수 있다.
  • 프로젝트 변경이 발생 되었을 때 처리하는 메커니즘을 제공한다.
  • 대표적인 메커니즘으로 형상 관리 대상파악, 베이스라인 지정, 버전관리, 접근제어 등이 있다.

다. 형상 관리의 절차

  • 형상 관리는 식별, 통제, 감사, 기록의 절차를 통해 품질 보증의 목적으로 수행된다.

형상 식별

  • 형상 관리 대상을 정의 및 식별하는 활동
  • 추적성 부여를 위해 ID와 관리번호를 부여
  • 변경 관련 이슈(Issue) 발생 시 ID와 관리번호를 이용하여 추적

형상 통제

  • 형상항목의 버전 관리를 위한 형상통제위원회 운영
  • 변경요구 관리, 변경제아, 형상 관리 등 통제 지원
  • 베이스라인에 대한 관리 및 형상 통제 수행 가능

형상 감사

  • 소프트웨어 베이스라인의 무결성 평가
  • 베이스라인 변경 시 요구사항과 일치 여부 검토

형상 기록

  • 소프트웨어 형상 및 변경관리에 대한 각종 수행결과를 기록
  • 형상결과 보고서 작성
    cf: 베이스라인(Baseline) : 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점의 기준이다.

4. 개발환경 구축 절차

  • 개발환경을 구축하기 위한 절차는 요구사항 분석, 설계, 개발언어 선정, 개발 도구 선정, 테스트 및 빌드 도구 선정이 있다.

1. 프로젝트 요구사항 분석

  • 대상이 되는 시스템의 요구사항을 분석하여 어떠한 도구들이 필요할지 준비하는 과정
  • 시스템의 환경을 분석하여 개발환경 구축에 필요한 도구에 대해 파악

2. 필요 도구 설계

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

3. 개발언어 선정

  • 특성을 고려하여 개발언어의 기준을 선정
  • 개발 대상 업무의 성격에 적합한 특성을 확인하고 적합한 언어를 선정

4. 구현도구

  • 선정된 개발언어에 따라 적합한 구현 도구를 선정

5. 빌드, 테스트 도구 선정

  • 프로젝트 팀원의 빌드 도구의 숙련도를 고려
  • 통합 개발환경(IDE; Integrated Development Environment)과 호환이 가능한 도구를 선정
  • 테스트 도구는 MTP(Master Test Plan)에 적합하게 계획에 따라 필요한 도구를 선정

2. 서버 개발 프레임워크

1. 프레임워크(Framework)의 개념

  • 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 틀이다.
  • 재사용이 가능하도록 소프트웨어 구성에 필요한 기본을 제공
  • 정보 시스템의 개발 및 운영을 지원하는 도구 및 가이드 등을 포함한다.

2. 프레임워크(Framework)의 특징

  • 프레임워크는 모듈화, 재사용성, 확장성, 젱어의 역행(IoC; Inversion Of Control) 이라는 대표 4가지 특징을 보유

1. 모듈화(Modulity)

  • 프레임워크는 구현을 인터페이스 뒤에 감춰 모듈화 강화
  • 설계와 구현 변경에 따르는 영향을 최소화

2. 재사용성(Reusability)

  • 인터페이스를 통해 여러 애플리케이션에서 반복적으로 사용하는 일반적 컴포넌트를 정의하여 재사용성을 높임

3. 확장성(Extensibility)

  • 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장
    cf: 다형성(Polymorphism) : 한 타입의 참조 변수로 여러 타입의 객체를 참조 할 수 있도록 하는 것이며, 여러 가지 형태를 가질 수 있는 능력을 의미

4. 제어의 역행(Inversion of Control)

  • 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어
  • 외부의 이벤트에 대해 애플리케이션이 어떤 메서드를 수행해야할지 결정

3. 프레임워크의 구성요소

  • 프레임워크의 구성요소로는 개발환경, 실행환경, 운영환경, 관리환경이 있다.

1. 개발 환경

  • 설계, 구현, 테스트 등 개발에 필요한 지원도구 모음

2. 실행환경

  • 자바 기반 응용시스템 개발 시 필수적 기능을 패턴화해 미리 구현해두 라이브러리 코드 모음

3. 운영환경

  • 표준 프레임워크 기반 개발 시스템에 대한 운영 시 필요한 의사소통 및 모니터링 도구 모음

4. 관리환경

  • 표준 프레임워크에 대한 기술 지워느 업그레이드 등 관리하기 위한 내부 업무 시스템

4. 프레임워크의 사례 - 전자정부 프레임워크

개념

  • 전자정부 프레임워크는 전자정부 서비스 품질향상, 정보화 투자 효율을 위하여 범정부적 개발 프레임워크 표준을 정립, 응용 SW에 대한 구성기반과 서비스를 공유하는 프레임워크

구성요소

  • 공통 컴포넌트: 보안, 사용자 디렉터리/통합인증, 시스템관리, 통계/리포팅, 협업, 시스템/서비스 연계, 사용자 지원, 요소 기술로 구성
  • 표준 프레임워크: 개발환경, 실행환경, 관리환경, 운영환경으로 구성

버전

  • 2015년 6월 V3.5 이후 2019년 2월 버전 3.8이 발표
  • 실행환경 내 서버환경 파일 암/복호화 기능 탑재, 공통 컴포넌트 기능 개선,MyBatis, Jenkins 신규 지원 등이 보강됨
profile
꾸준함

0개의 댓글