개발 환경 구축
☞ 애플리케이션 설계 기반으로 개발에 필요한 환경 구성하고, 프로그래밍 언어와 도구 활용하여 공통모듈, 업무, 프로그램과 배치 프로그램 구현하는 능력
▶ 개발 도구 분류 및 특성
▷ 구현 도구 (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로 프로젝트 또는 기업에서 필요로 하는 내부 저장소 구성 위한 도구
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part04-01-3. 서버 프로그램 구현 (0) | 2022.02.15 |
---|---|
[정보처리기사] Part04-01-2. 공통 모듈 구현 (0) | 2022.02.10 |
[정보처리기사 필기 요약] 시스템 소프트웨어 (0) | 2021.03.04 |
[정보처리기사 필기 요약] 프로그램 개발 언어 (객체지향, 선언형) (0) | 2021.03.04 |
[정보처리기사 필기 요약] 배치 프로그램 (0) | 2021.03.04 |
댓글