본문 바로가기
정보처리기사/필기

[정보처리기사] Part04-01-1. 개발환경 구축

by 채연2 2022. 2. 10.

개발 환경 구축

☞ 애플리케이션 설계 기반으로 개발에 필요한 환경 구성하고, 프로그래밍 언어와 도구 활용하여 공통모듈, 업무, 프로그램과 배치 프로그램 구현하는 능력

 

▶  개발 도구 분류 및 특성

        ▷ 구현 도구 (Implementation Tool) : 코드의 작성과 디버깅, 수정 작업 가능하며 구현해야 할 SW가 어떤 프로그래밍 언어로 개발되는지에 따라 적합한 구현 도구 선택하여 사용 (Eclipse, Visual Studio Code, IntelliJ, NetBeans 등)

        ▷ 테스트 도구 (Test Tool) : 코드 기능 검증과 개발 품질 높이기 위해 사용하는 도구이며, 테스트 계획, 수행, 분석 등의 작업 가능 (xUnit, Spring Test 등)

        ▷ 형상관리 도구 (Configuration Management Tool) : 개발자가 작성한 코드와 산출물에 대한 버전 관리 위해 형상과닐 도구 사용됨. 프로젝트 진행 시 필수로 포함되는 도구 (CVS, Subversion, Git 등)

        ▷ 빌드 도구 (Build Tool) : 작성한 코드에 대한 빌드(컴파일) 및 배포 수행하며, 각각 구성요소와 모듈들에 대한 의존성 관리 지원하는 도구

 

 개발환경 구성요소

        1. 하드웨어 환경

                ㄱ. 서버 환경

                        웹 서버

                                클라이언트 PC에서 HTTP 이용한 요청과 응답 처리 위해 Apache, IIS 등 미들웨어 소프트웨어를 설치하는 서버.

                                 주로 웹 브라우저 화면에서 요청하는 서비스를 HTML, CSS, 이미지 등 이용하여 웹 서버에서 처리

                        WAS 서버

                                웹 서비스 동적으로 제공 위한 애플리케이션 설치되는 서버

                                WAS 소프트웨어인 WAS 엔진 설치하고 서비스 처리에 관련된 비즈니스 로직이 구현되는 서버

                        DB 서버

                                데이터 수집, 저장, 처리 위한 용도로 DB 소프트웨어 설치되어 있음.

                                실 서비스에서  사용하는 데이터는 충분한 저장 공간, 빠른 성능 제공하는 외장형 스토리지를 DB 서버와 연결하여 저장

                        파일 서버

                                단독 또는 여러 서버에서 공통으로 사용하는 파일들을 저장하는 서버

                                주로 네트워크와 연결하고 별도의 물리적인 저장장치 활용

                                NAS로 구성하는 경우 많으며, NAS 게이트웨이 소프트웨어와 대용량 외장형 스토리지가 주요 구성 요소

 

                ㄴ. 클라이언트 환경

                        클라이언트 화면

                                주로 사용자와 커뮤니케이션 하는 화면. Visual Basic, C#, Delphi 등으로 개발되어 사용자 PC로 배포

                        웹 브라우저

                                웹 서비스 형태로 서버에서 웹 어플리케이션 응답 시 브라우저 통해 사용자와 커뮤니케이션 함

                        모바일 앱

                                모바일 디바이스에 설치되어 사용자가 활용.

                                웹앱 경우 웹 브라우저와 동일한 형태로 모바일 디바이스 내 웹 브라우저 통해 서비스 받기 가능

 

        2. 소프트웨어 환경

                ㄱ. 운영체제

                        서버의 하드웨어를 사용자가 편리하고 유용하게 사용하기 위한 시스템 소프트웨어

                        프로젝트 성격에 따라 알맞은 운영 체제 선택하여 사용 (Windows, Linux, UNIX 등)

 

                ㄴ. 미들웨어

                        트랜잭션 관리, 부하 분산 등을 지원하는 소프트웨어. TP모니터, 웹서버, WAS, JVM 등의 소프트웨어 설치하여 활용.

                         웹 서비스 경우 웹 서버 설치하여 사용자 요구사항에 적합한 웹서비스 제공

                        자바의 경우 JVM 설치하여 가상환경 위에서 기능 서비스

 

                ㄷ. DBMS

                        데이터 수집, 저장, 처리 위해 DBMS 설치 (DB2, Oracle, Sql Server emd)

 

                ㄹ. 형상관리

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

                        SW 무결성 보장하기 위해 형상항목을 식별, 통제, 감사 및 기록하는 생명주기 지원 및 보호 활동

 

                 특징

                        버전 관리 : 소프트웨어 변경 시 버전 별 관리. 소스 코드뿐 아니라 형상 대상 항목 모두 관리

                        전 단계 수행 : 형상 관리는 프로젝트 사업계획 단계부터 유지보수 단계까지 수행되는 활동

                        추적성 확보 : 형상 관리 통해 소프트웨어 개발 과정에서 발생하는 여러 가지 문제 발생 시 해당 요인 추적관리 가능

 

                  절차

                        1. 형상 식별

                               형상 관리 대상 식별하고 기준선 설정 및 식별 번호 부여.

                               내용 : 식별 번호, 문서 종류, 형상 항목, 변경 상태

                               식별 번호는 문서 구조 명료하고, 추적 용이하게 정함

                               산출물 : 선정 목록, 기준선, 관리체계

                        2. 형상 통제(변경 관리)

                               형상 변경 제안 검토, 승인하여 현 기준선에 반영할 수 있도록 통제

                               변경 요구 관리, 변경 제어, 형상관리 조직 운영

                               개발 업체, 외주 업체에 대한 형상 통제 및 지원

                               산출물 : 변경 요청서, 검토 승인서, 변경보고서

                        3. 형상 감사

                               소프트웨어 기준선 무결성 평가 수단

                               기준선 변경 시 요구사항과 일치 여부 검토

                               요구사항 만족도 확인

                               형상 문서 적합성 검토

                               산출물 : 변경 계획서, 결과 보고서

                        4. 형상 기록

                               소프트웨어 형상 및 변경에 대한 수행 결과 기록

                               저장소로 관리하며 형상 상태에 대한 보고서 작성

                               산출물 : 상태 기록 문서, 상태 기록서

 

  개발환경 구성 순서

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

          시스템 요구사항 분석하여 목표 시스템 구현하는 데 적합한 개발 도구나 개발 언어 파악

     2. 개발 환경 구성 와한 필요 도구 설계

          요구사항에 적절한 구현 도구, 빌드 도구, 테스트 도구, 형상관리 도구 등을 조합하여 최적 개발 환경 설계

     3. 개발 대상에 따른 적정한 개발 언어 설정

          개발 대상 업무 성격에 적합한 특성 확인하고 적합한 언어 선정

          선정 기준

               적정성 : 개발하고자 하는 시스템이나 응용 프로그램 목적에 적합한가 ?

               효율성 : 개발 대상을 효율적으로 구현 가능한가 ?

               이식성 : 여러 디바이스와 운영 체제에 적용 가능한가 ?

               친밀성 : 다수 프로그래머가 사용 가능한 언어인가 ?

               범용성 : 다수 시스템에서 사용 중이며 많은 구축 사례가 존재하는가 ?

     4. 개발 언어와 하드웨어 고려한 구현 도구 구축

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

               프로젝트팀 개발자의 친밀도와 숙련도 고려하여 빌드 도구와 테스트 도구 결정

               특히 통합개발환경과 호환 용이한 도구 선정하는 것이 좋음

 


프레임워크

 효율적인 정보 시스템 개발 위한 구조나 틀 의미.

 공통 라이브러리, 온라인, 배치, 모바일 개발 및 실행환경, 애플리케이션 인터페이스와 개발에 유용한 각종 도구나 설정 정보 등을 제공.

 소프트웨어 개발에 필요한 다양한 부가 기능, 도구, 가이드 등을 제공하여 개발 및 운영 효율성과 생산성 향상 가능

 

▶  특징

    모듈화(modularity) : 인터페이스에 의한 캡슐화 통해 모듈성 강화하고 설계와 구현 변경에 따르는 영향 극소화하여 SW 품질 향상시킴

    재사용성(reusability) : 반복적 사용 가능한 컴포넌트 정의하여 재사용성 높여 줌

    확장성(extensibility) : 애플리케이션이 프레임워크의 다양한 기능과 인터페이스 이용 가능

    제어의 역전 (Inversion of Control) : 프레임워크가 전체 애플리케이션 처리 흐름 제어하여 특정 이벤트 발생 시 특정 함수나 메소드를 처리 흐름에 삽입 가능

 

▶ 주요 프레임워크

    1. 스프링 프레임워크

          EJB 기반의 복잡함과 무거움 극복하고 개발 생산성 향상과 고품질 시스템 개발 위한 자바 플랫폼 상 경량화된 오픈소스 웹 애플리케이션 프레임워크

구성 모듈 설명 특징
코어 컨테이너 코어, 빈즈 - IoC와 DI 포함하는 프레임워크 기본이 되는 기능 제공 의존성에 대한 설정과 명세 분리
컨텍스트 - 코어와 빈즈 모델 기반 위에 구성
- JNDI 등록과 유사한 프레임워크 스타일로 객체에 접근
- JNDI는 자바 프로그램들이 DNS, LDAP 및 NDS 등과 같은 네이밍/디렉토리 서비스에 연결 위한 API
EJB, JMX, 기본적 원격 기능 등 Java EE 지원
표현언어 - 런 타임에서 객체 그래프 조회하고 조작하는 강력 표현 언어 리스트 객체 및 투명한 선택 지원
데이터 접근/통합 JDBC - JDBC 추상화 계층 제공 가상화 미들웨어
ORM - 객체-관계 매핑 API에 대한 통합 계층 제공  
OXM 객체/XML 매핑 구현 지원  
JMS 메시지 생산 및 소비 기능 포함  
트랜잭션 특별한 인터페이스와 모든 POJO 클래스에 대한 트랜잭션 관리 지원  
- 멀티 파트 파일 업로드 기능, 서블릿 리스너와 웹 지향적 애플리케이션 컨텍스트 사용한 IoC 컨테이너 초기화  
웹-서블릿 스프링 MVC 구현  
웹-포틀릿 포틀릿 환경에서 사용되는 MVC 구현과 웹-서블릿 모듈 기능 미러 기능 제공  
AOP - AOP 모듈은 관점 지향 프로그래밍 구현체 핵심 관심, 횡단 관심

 

    2. 전자 정부 표준 프레임워크

          전자정부 서비스 품질향상 및 정보화 투자 효율성 향상 위해 응용 소프트웨어 구성 기반 및 개발에 필요한 기본 기능 제공

          대한민국 공공기관 : 스프링 프레임워크 기반 전자정부 표준 프레임워크 개발, 공개하여 이를 서버 프레임워크로 사용, 지원

          정보 시스템을 개발하거나 운영할 때 필요한 기본기능 미리 구현한 것. 이를 기반으로 추가 기능 개발 및 조립함으로써 전체 정보시스템 효율적으로 완성 가능

          경량화된 서버용 개발환경 설치할 수 있는 설치 파일, 개발 및 운영 가이드 제공

          서버 개발환경 설치 시 기본으로 설치되는 항목과 선택적으로 설치되는 항목으로 구분 가능

          기본 설치 항목 : Tomcat, Jenkins, Maven 등

          선택 항목 : Nexus, Subversion

 

           구성요소

              공통 컴포넌트

                전자정부 사업에서 응용 소프트웨어 개발 시 공통으로 활용하기 위해 재사용 가능토록 개발한 애플리케이션 집합

                공통기술 서비스 : 프레임워크 기반에서 동작하는 공통 컴포넌트

                요소 기술 서비스 : 프레임워크와 상관 없이 일반 자바 환경에서 동작하는 공통 컴포넌트

              개발 환경

                업무 프로그램 개발에 필요한 환경 제공

              실행 환경

                업무 프로그램 개발 시 화면, 서버 프로그램, 데이터, 배치 처리 기능 개발을 표준화 쉽도록 지원하는 응용 프로그램 환경

              관리 환경

                개발 프레임워크 및 공통 서비스를 각 프로젝트에 배포 및 관리 지원

              운영 환경

                실행 환경에서 운영되는 서비스를 모니터링, 배포, 관리 시스템 제공

                배치 환경 운영하기 위한 배치 실행, 스케줄링, 결과 모니터링 등

              모바일 디바이스 API 

                Core API : 모바일 디바이스 자원에 대한 직접적인 접근과 활용 가능한 다양한 API 제공

                가이드 앱 : 디바이스 API를 손쉽게 접근 가능토록 제공하는 디바이스 API 활용 예제

              모바일 디바이스 API 실행 환경

                디바이스 애플리케이션이 웹 리소스 기반으로 구현 및 실행 가능토록 지원하는 응용 프로그램 환경

                디바이스 API, 자바 스크립트 프레임워크, 하이브리드 프레임워크 등

              모바일 디바이스 API 개발 환경

                안드로이드 기반 환경에서 개발 위한 Eclipse 플러그인

                 iOS 환경에서 개발 위한 X-Code 내 프레임워크 프로젝트

 

           개발 도구

              형상관리 (SW:Subversion)

                프로젝트에서 사용하는 파일들 관리 위한 형상관리 도구. 소스 파일의 일관성 있는 관리

              배포 (SW:Jenkins)

                지속적 개발 지원하는 도구. 자동 빌드 및 빌드 결과 개발자에게 피드백

              라이브러리 관리 (SW:Maven)

                PMO(Project Management Object) 이용하여 빌드에서부터 의존성 관리 및 배포 관리 도구

              저장소 관리 (SW:Nexus)

                Maven Repository Manager로 프로젝트 또는 기업에서 필요로 하는 내부 저장소 구성 위한 도구 

320x100

댓글