02. 개발 기술 환경 정의

개발 기술 환경 정의
개발하고자 하는 응용소프트웨어와 관련된 운영체제, 데이터베이스관리시스템, 미들웨어 등의 요구사항을 식별할 수 있다
현행 시스템을 분석하여, 개발하고자 하는 응용소프트웨어가 이후 적용될 목표시스템을 명확하고 구체적으로 기술할 수 있다.
개발 기술 환경
개발 기술 환경을 정의할 때 고려할 사항을 [그림 1-6]과 같이 운영체제, DBMS, 미들웨어, 오픈소스 순으로 살펴본다. 본 학습에서는 모든 미들웨어에 대하여 기술하지는 않으며 자주 사용되는 웹 애플리케이션 서버(WAS: Web Application Server)를 선정할 경우 고려해야 할 사항에 대해서 기술하고, 오픈 소스 사용 시 주의해야 할 내용과 저작권 관련 정보를 제시한다.

1. 운영체제 주요 특징 및 고려 사항
(1) 운영체제의 정의
운영체제(OS: Operating System)는 하드웨어와 소프트웨어 리소스를 관리하고 컴퓨터프로그램을 위한 공통 서비스를 제공하는 소프트웨어를 의미한다. 관련 사이트 참고
(https://en.wikipedia.org/wiki/Operating_system)
(2) 운영체제의 종류 및 특징
주요 운영체제로는 마이크로소프트 윈도즈(Microsoft Windows), 유닉스(UNIX), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등이 있다.

자바 가상 머신(JVM: Java Virtual Machine)은 다양한 하드웨어 및 운영체제에서 자바(Java) 언어로 작성된 애플리케이션을 수행하기 위한 사양(JVM Specification)의 구현체(Implementation)를 의미한다. 오라클(Oracle)이 자바(Java) 상표를 소유하고 있으며, 핫스팟(Hotspot) 구현체와 클래스 라이브러리(Class Library) 구현체를 배포하고 있다. 아이비엠(IBM)의 J9, 오라클(Oracle)의 JRockit(이전 BEA System 제공) 등 벤더별로 여러 자바 가상 머신(JVM: Java Virtual Machine) 구현체를 배포하고 있다. 관련 사이트 참고
(https://en.wikipedia.org/wiki/Java_virtual_machine)
(3) 고려 사항
정보시스템 구축 시 운영체제 관련 요구사항을 식별할 때 고려해야 할 사항은 다음과같다.

(가) 일반적으로 리눅스(Linux) 기반 시스템이 하드웨어 및 소프트웨어 소유 비용이 가장 적게 소요된다.
(나) 유지 및 관리 비용 측면에서는 윈도즈(Windows) 기반 시스템이 강점을 가진다.
(다) 안정적이고 신뢰할 수 있으며 대용량 처리를 위해서는 유닉스(UNIX) 기반 시스템이 선호되고 있다.
(라) 32bit 운영체제는 4GB 메모리까지 액세스 가능(사용자 메모리는 2GB)하지만, 64bit 운영체제에서는 4GB 이상의 메모리에 액세스 가능하며 구체적인 한계는 운영체제의 종류 및 버전에 따라 다양하다. (마) 시스크(CISC: Complex Instruction Set Computer) 설계 방식이 적용된 인텔의 x86 아키텍처 기반 칩을 사용하고 있는 하드웨어는 윈도즈(Windows)나 리눅스(Linux)를 운영체제로 설치할 수 있으며, 리스크(RISC: Reduced Instruction Set Computer) 설계 방식이 적용된 칩들은 유닉스(UNIX) 운영체제를 설치한다.
(바) 에이치피(HP)와 인텔(Intel)이 협력해서 만든 아이테니엄 아키텍처(IA: ItaniumArchitecture)-64 칩은 여러 운영체제를 지원한다. (사) 리스크(RISC) 설계 방식이 적용된 암(ARM) 칩은 스마트폰이나 태블릿에 주로 채용되고 있으며, 아이오에스(iOS), 안드로이드(Android) 등의 운영체제를 지원하고있다. 관련 사이트 참고 (https://en.wikipedia.org/wiki/Complex_instruction_set_computing)
2. DBMS 주요 특징 및 고려 사항
(1) DBMS의 정의
사용자, 다른 애플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고 분석하기 위한 컴퓨터 소프트웨어 애플리케이션으로, 데이터베이스 생성, 조회, 변경 등의 관리가 주요 기능이다. 관련 사이트 참고(https://en.wikipedia.org/wiki/Database)
(2) DBMS의 종류 및 특징

(3) 고려 사항
정보시스템 구축 시 DBMS 관련 요구사항 식별을 위하여 고려할 사항은 <표 1-12>와 같다.

인 메모리 DB(In-memory DB)는 속도가 빠르지만 물리적인 메모리 용량 확장에 한계가 있다.
3. 미들웨어의 주요 특징 및 고려 사항
(1) 미들웨어의 정의
운영체제와 소프트웨어 애플리케이션 사이에 위치하는 미들웨어(Middleware)는 소프트웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴퓨터 소프트웨어를 말한다. (https://en.wikipedia.org/wiki/Middleware) 여기에서는 미들웨어 중 웹 애플리케이션 서버(WAS: Web Application Server)에 대해서 알아본다.
(2) 웹 애플리케이션 서버(WAS: Web Application Server)의 정의
동적인 웹 사이트, 웹 애플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소프트웨어로서 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공하고 있다. 관련 사이트 참고(https://en.wikipedia.org/wiki/Web_application_framework)
(3) 웹 애플리케이션 서버(WAS: Web Application Server)의 종류 및 특징

(4) 고려 사항
정보시스템 구축 시 웹 애플리케이션 서버(WAS: Web Application Server) 관련 요구사항 식별을 위하여 고려할 사항은 다음과 같다.

4. 오픈 소스 사용에 따른 고려 사항
(1) 오픈 소스의 정의
오픈 소스(Open Source)는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말한다. 관련 사이트참고 (https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_%EC%86%8C%EC% 8A%A4_%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
(2) 오픈 소스 사용 시 고려 사항
오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다. 라이선스의 종류 등 자세한 내용은 한국저작권위원회의 OLIS 사이트(https://www.olis.or.kr)를 참조한다. 어떠한 오픈 소스를 사용해야 라이선스의 문제가 없을지 판단이 어려운 경우에는 전자정부 표준 프레임워크에서 사용 중인 오픈 소스 소프트웨어를 참조할 수 있다. 관련 사이트 참고 (http://www.egovframe.go.kr/EgovOSS.jsp?menu=1&submenu=2&leftsub=3)
시스템 용량산정 방법
시스템을 구축하기 위하여 필요한 하드웨어 규모는 부록에 제시한 한국정보통신기술협회의 “정보시스템 하드웨어 규모산정 지침” TTAK.KO-10.0292 관련 내용을 참조하여, CPU 용량, 메모리 용량, 디스크 용량을 산정할 수 있다.