개발 기술 환경의 정의

  • 개발하고자하는 소프트웨어와 관련된 운영체제, 데이베이스 관리 시스템(DBMS), 미들 웨어 등을 선정할 때 고려해야 할 사항을 기술, 오픈 소스 사용시 주의해야 할 내용을 제시

운영 체제(OS; Operating System)

  • 운영 체제 -> 컴퓨터 시스템 자원 효율적 관리
  • 사용자와 하드웨어 간 인터페이스

운영체제 관련 요구사항 식별 시 고려사항

  • 가용성: 장시간 운영으로 인한 장애, 메모리 누수 , 보안/에러 패치로 인한 재가동
  • 성능: 대규모 사용자 처리, 대용량 파일 처리, 지원가능한 메모리 크기(32bit, 64bit)
  • 기술 지원: 제작자의 기술지원, 여러 사용자간 커뮤니티, 오픈소스 여부
  • 주변기기: 설치 가능한 하드웨어, 주변 기기 지원 여부
  • 구축 비용: 히드웨어 비용, 라이선스, 유지관리 비용, 총 소유비용(TCO)

데이터베이스 관리 시스템(DBMS; DataBase Management System)

  • 사용자와 데이터 베이스 사이에서 사용자의 요구에 따라 정보를 생성, 데이터베이스를 관리
  • 기존 파일 시스템(각 응용 프로그램들이 개별적으로 자기 데이터를 file로 관리)의 데이터 종속성과 중복성 문제 를 해결하기 위해 제안됨
  • 데이터 종속성: 데이터의 구성방식이나 접근 방법에 대한 응용 프로그램과 데이터 간의 상호 종속 관계
  • 데이터 중복성: 같은 데이터를 여러 응용 프로그램에서 이용해야 하는 경우
  • 모든 응용 프로그램이 데이터베이스를 공용 할 수 있도록 관리
  • 데이터베이스 구성, 접근 방법, 유지관리 에 대한 모든 책임을 짐
  • Oracle, DB2, MS SQL Server, MySQL, SQLite, MongoDB, Redis

DBMS 관련 요구사항 식별 시 고려사항

  • 가용성: 백업/복구의 편의성, DBMS 이중화 지원 여부
  • 성능: 대규모 데이터 처리, 분할 테이블 지원 여부, 대용량 트랜잭션 처리, 다양한 튜닝 옵션, 비용기반 질의 최적화(질의의 대한 다양한 실행방법을 만들고 각각의 방법에 대한 비용을 추정)
  • 기술지원: 제작자의 기술지원, 커뮤니티, 오픈소스
  • 상호 호환성: 설치 가능한 운영체제, JDBC/ODBC 여부(JDBC: 자바와 DB를 연결해주는 인터페이스, ODBC: 응용 프로그램과 DB를 연결해주는 인터페이스)
  • 구축 비용: 라이선스,, 유지관리, 총 소유비용

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

  • 정적인 콘텐츠 -> 웹서버, 동적인 콘텐츠 -> 웹 어플리케이션 서버
  • 데이터 접근, 세션 관리, 트랜잭션 관리 를 위한 라이브러리
  • 주로 데이터베이스 서버와 연결
  • TomCat, GlassFish, JBoss, Jetty, JEUS, Resin,, Web Logic, Websphere

웹 어플리케이션 서버 관련 요구사항 식별 시 고려사항

  • 가용성: 고유적인 장애, 안정적 트랜잭션, WAS 이중화 지원여부
  • 성능: 대규모 트랜잭션 처리 여부, 다양한 설정 옵션, 가비지 콜렉션(사용하지 않는 메모리 공간을 강제로 해제하는 기법) 지원
  • 기술지원: 안정적인 기술지원, 커뮤니티, 오픈 소스 여부
  • 구축 비용: 라이선스, 유지/보수 비용, 총 소유 비용

오픈 소스 사용에 따른 고려사항

  • 오픈소스: 누구나 별 다른 제한 없이 사용할 수 있도록 소스코드를 공개한 것, 오픈소스 라이선스를 만족하는 소프트웨어
  • 라이선스의 종류, 사용자 수, 기술의 지속 가능성 을 고려

+ Recent posts