개발 기술 환경을 정의할 때 고려할 사항을 [그림. 개발 기술 환경 정의 시 고려 사항]과 같이 운영체제, DBMS, 미들웨어, 오픈 소스 순으로 살펴본다.
본 학습에서는 모든 미들웨어에 대하여 기술하지는 않으며 자주 사용되는 웹 애플리케이션 서버(WAS: Web Application Server)를 선정할 경우 고려해야 할 사항에 대해서 기술하고, 오픈 소스 사용 시 주의해야 할 내용과 저작권 관련 정보를 제시한다.
운영체제 주요 특징 및 고려 사항
(1) 운영체제의 정의
운영체제(OS: Operating System)는 하드웨어와 소프트웨어 리소스를 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어를 의미한다. 관련 사이트 참고
(2) 운영체제의 종류 및 특징
주요 운영체제로는 마이크로소프트 윈도즈(Microsoft Windows), 유닉스(UNIX), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등이 있다.
종류 | 저작자 | predecessor | 비용 및 라이선스 | 주요 용도 |
---|---|---|---|---|
Windows | Microsoft | OS/2, MS-DOS | 유상, 다양한 라이선스 정책 | 중소 규모 서버, 개인용 PC, Tablet PC, Embedded System |
UNIX | IBM(AIX), HP(HP-UX), SUN(Solaris) | UNIX, System V, SunOS | 유상, 다양한 라이선스 정책 | 대용량 처리, 안정성이 요구되는 서버, Server, NAS, Workstation |
Linux | Linus Torvalds | Linux kernel | 무료, GNU GPLv2 | 중대 규모 서버 |
iOS | Apple | OS X, NeXTSTEP, BSD | 하드웨어에 번들 (Budle) | 스마트폰, 태블릿 PC, Music 플레이어 등 |
Android | Linux | 무료, Apache 2.0, GNU GPLv2 | 스마트폰, 태블릿 PC |
자바 가상 머신(JVM: Java Virtual Machine)은 다양한 하드웨어 및 운영체제에서 자바(Java) 언어로 작성된 애플리케이션을 수행하기 위한 사양(JVM Specification)의 구현체(Implementation)를 의미한다. 오라클(Oracle)이 자바(Java) 상표를 소유하고 있으며, 핫스팟(Hotspot) 구현체와 클래스 라이브러리(Class Library) 구현체를 배포하고 있다. 아이비엠(IBM)의 J9, 오라클(Oracle)의 JRockit(이전 BEA System 제공) 등 벤더별로 여러 자바 가상 머신(JVM: Java Virtual Machine) 구현체를 배포하고 있다. 관련 사이트 참고
(3) 고려 사항
정보시스템 구축 시 운영체제 관련 요구사항을 식별할 때 고려해야 할 사항은 다음과 같다.
구분 | 내용 |
---|---|
신뢰도 | – 장기간 시스템을 운영할 때 운영체제 고유의 장애 발생 가능성 – 특정 응용프로그램의 메모리 누수로 인한 성능 저하 및 재기동 – 운영체제의 보안상 허점으로 인한 반복적인 패치 설치를 위한 재기동 – 운영체제의 버그 등으로 인한 패치 설치를 위한 재기동 |
성능 | – 대규모 동시 사용자 요청 처리 – 대규모 및 대량 파일 작업 처리 – 지원 가능한 메모리 크기(32bit, 64bit) |
기술 지원 | – 공급 벤더들의 안정적인 기술 지원 – 다수의 사용자들 간의 정보 공유 – 오픈 소스 여부(Linux) |
주변 기기 | – 설치 가능한 하드웨어 – 다수의 주변 기기 지원 여부 |
구축 비용 | – 지원 가능한 하드웨어 비용 – 설치할 응용프로그램의 라이선스 정책 및 비용 – 유지 및 관리 비용 – 총 소유 비용(TCO) |
- 일반적으로 리눅스(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: Itanium Architecture)-64 칩은 여러 운영체제를 지원한다.
- 리스크(RISC) 설계 방식이 적용된 암(ARM) 칩은 스마트폰이나 태블릿에 주로 채용되고 있으며, 아이오에스(iOS), 안드로이드(Android) 등의 운영체제를 지원하고 있다. 관련 사이트 참고
DBMS 주요 특징 및 고려 사항
(1) DBMS의 정의
사용자, 다른 애플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고 분석하기 위한 컴퓨터 소프트웨어 애플리케이션으로, 데이터베이스 생성, 조회, 변경 등의 관리가 주요 기능이다. 관련 사이트 참고
(2) DBMS의 종류 및 특징
종류 | 저작자 | 비용 및 라이선스 | 주요 용도 |
---|---|---|---|
Oracle | Oracle | 상용 | 대규모, 대량 데이터의 안정적인 처리 |
IBM DB2 | IBM | 상용 | 대규모, 대량 데이터의 안정적인 처리 |
Microsoft SQL Server | Microsoft | 상용 | 중소 규모 데이터의 안정적인 처리 |
MySQ | MySQL AB, Oracle | GPL 또는 상용 | 오픈 소스 RDBMS |
SQLite | D. Richard Hipp | Public Domain 저작권 보호 만료 | 스마트폰, 태블릿 PC 등의 임베디드 데이터베이스(Embedded Database) 용 |
MongoDB | MongoDB Inc. | GNU AGPL v3.0 | 오픈 소스 NoSQL 데이터베이스 |
Redis | Salvatore Sanfilippo | BSD | 오픈 소스, 메모리, 키-값(Key-Value) 데이터베이스 |
(3) 고려 사항
정보시스템 구축 시 DBMS 관련 요구사항 식별을 위하여 고려할 사항은 <표 1-12>와 같다.
구분 | 내용 |
---|---|
가용성 | – 장기간 시스템을 운영할 때 장애 발생 가능성 – DBMS의 버그 등으로 인한 패치 설치를 위한 재기동 – 백업 및 복구 편의성 – DBMS 이중화 및 복제 지원 |
성능 | – 대규모 데이터 처리 성능(분할 테이블의 지원 여부) – 대량 거래 처리 성능 – 다양한 튜닝 옵션 지원 – 비용 기반 최적화 지원 및 설정의 최소화 |
기술 지원 | – 공급 벤더들의 안정적인 기술 지원 – 다수의 사용자들 간의 정보 공유 – 오픈 소스 여부 |
상호 호환성 | – 설치 가능한 운영체제 종류 – 다양한 운영체제에서 지원되는 JDBC, ODBC |
구축 비용 | – 라이선스 정책 및 비용 – 유지 및 관리 비용 – 총 소유 비용(TCO) |
인 메모리 DB(In-memory DB)는 속도가 빠르지만 물리적인 메모리 용량 확장에 한계가 있다.
미들웨어의 주요 특징 및 고려 사항
(1) 미들웨어의 정의
운영체제와 소프트웨어 애플리케이션 사이에 위치하는 미들웨어(Middleware)는 소프트웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴퓨터 소프트웨어를 말한다. 여기에서는 미들웨어 중 웹 애플리케이션 서버(WAS: Web Application Server)에 대해서 알아본다.
(2) 웹 애플리케이션 서버(WAS: Web Application Server)의 정의
동적인 웹 사이트, 웹 애플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소프트웨어로서 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공하고 있다. 관련 사이트 참고
(3) 웹 애플리케이션 서버(WAS: Web Application Server)의 종류 및 특징
종류 | 벤더 | 비용 및 라이선스 | 주요 용도 |
---|---|---|---|
GlassFish | GlassFish Community | CDDL, GPL | NetBeans 개발 툴과 연동하여 사용 |
JBoss | Red Hat | LGPL | JBoss 기반 오픈 소스 제품들을 이용하는 경우 |
Jetty | Eclipse Foundation | Apache 2.0, EPL | 빠른 처리 속도가 요구되는 경우 |
JEUS | TmaxSoft | 상용 | 대량의 안정적인 거래 처리가 요구되며 적시의 기술 지원이 필요한 경우 |
Resin | Caucho Technology | GPL, 상용 | 빠른 처리 속도가 요구되는 경우 |
WebLogic | Oracle Cor. | 상용 | 대량의 안정적인 거래 처리가 요구되는 경우 |
WebSphere | IBM | 상용 | 대량의 안정적인 거래 처리가 요구되는 경우 |
(4) 고려 사항
정보시스템 구축 시 웹 애플리케이션 서버(WAS: Web Application Server) 관련 요구사항 식별을 위하여 고려할 사항은 다음과 같다.
구분 | 내용 |
---|---|
가용성 | – 장기간 시스템을 운영할 때 장애 발생 가능성 – 안정적인 트랜잭션 처리 – WAS의 버그 등으로 인한 패치 설치를 위한 재기동 – WAS 이중화 지원 |
성능 | – 대규모 거래 요청 처리 성능 – 다양한 설정 옵션 지원 – 가비지 컬렉션(GC: Garbage Collection)의 다양한 옵션 |
기술 지원 | – 공급 벤더들의 안정적인 기술 지원 – 다수의 사용자들 간의 정보 공유 – 오픈 소스 여부 |
구축 비용 | – 라이선스 정책 및 비용 – 유지 및 관리 비용 – 총 소유 비용(TCO: Total Cost of Ownership) |
오픈 소스 사용에 따른 고려 사항
(1) 오픈 소스의 정의
오픈 소스(Open Source)는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말한다. 관련 사이트 참고
(2) 오픈 소스 사용 시 고려 사항
오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다. 라이선스의 종류 등 자세한 내용은 한국저작권위원회의 OLIS 사이트를 참조한다. 어떠한 오픈 소스를 사용해야 라이선스의 문제가 없을지 판단이 어려운 경우에는 전자정부 표준 프레임워크에서 사용 중인 오픈 소스 소프트웨어를 참조할 수 있다. 관련 사이트 참고
출처
NCS 학습모듈: 20.정보통신 > 01.정보기술 > 02.정보기술개발 > 02.응용SW엔지니어링 (일부 수정)