[정보처리기사 필기] 요구사항 확인 - 005. 개발 기술 환경 파악

1. 개발 기술 환경의 정의

  • 개발하고자 하는 소프트웨어와 관련된 운영체제, 데이터베이스 관리시스템, 미들웨어 등을 선정할 때 고려해야 할 사항을 기술하고, 오픈 소스 사용 시 주의해야 할 내용을 제시
    • 미들웨어 (Middle Ware) : 운영체제와 해당 운영체제에 의해 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어

2. 운영체제 Operating System (OS)

  • 컴퓨터 시스템의 자원들을 효율적으로 관리
  • 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어
  • 컴퓨터 운영체제의 종류에는 Windows, UNIX, Linux, Mac OS 등이, 모바일 운영체제에는 iOS, Android 등이 있음
  • 자원 : 시스템에서 사용할 수 있는 CPU, 주기억장치, 보조기억장치, 프린터, 파일 및 정보 등을 의미

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

  • 가용성
    • 프로그램이 주어진 시점에서 요구사항에 따라 운영될 수 있는 능력
    • 시스템의 장시간 운영으로 인해 발생할 수 있는 운영체제 고유의 장애 발생 가능성
    • 메모리 누수로 인한 성능 저하 및 재가동
      • 메모리 누수 : 응용 프로그램이 더 이상 사용하지 않는 메모리를 반환하지 않고 계속 점유하고 있는 현상
    • 보안상 발견된 허점을 보완하기 위한 지속적인 패치 설치로 인한 재가동
    • 운영체제의 결함 등으로 인한 패치 설치를 위한 재가동
  • 성능
    • 대규모 동시 사용자 요청에 대한 처리
    • 대규모 및 대용량 파일 작업에 대한 처리
    • 지원 가능한 메모리 크기 (32bit, 64bit)
  • 기술 지원
    • 제작업체의 안정적인 기술 지원
    • 여러 사용자들 간의 정보 공유
    • 오픈 소스 여부 (Linux)
      • 오픈 소스 : 누구나 별다른 제한없이 사용할 수 있도록 소스 코드를 공개해 무료로 사용이 가능한 소프트웨어
  • 주변 기기
    • 설치 가능한 하드웨어
    • 여러 주변기기 지원 여부
  • 구축 비용
    • 지원 가능한 하드웨어 비용
    • 설치할 응용 프로그램 라이선스 정책 및 비용
    • 유지관리 비용
    • 총 소유 비용 (TCO)
      • 어떤 자산을 획득하려고 할 때 지정된 기간 동안 발생할 수 있는 모든 직간접 비용들
      • 하드웨어 구매, 소프트웨어 구매 및 라이선스 설치, 교육, 지속적인 기술 지원, 유지보수, 가동 중지로 인한 손실, 에너지 등의 비용

4. 데이터베이스 관리 시스템 DBMS

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
  • 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
  • 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리
    • 응용 프로그램 : 조직이나 기업체에서 특정 부서에 정보를 제공하기 위해 데이터베이스에 접근하여 운영되는 프로그램, 데이터베이스는 여러 개의 응용 프로그램들이 공동으로 사용
  • 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐
  • DBMS의 종류 : Oracle, IBM DB2, Microsoft SQL Server, MYSQL, SQLite, MongoDB, Redis 등

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

  • 가용성
    • 시스템의 장시간 운영으로 인해 발생할 수 있는 DBMS 고유의 장애 발생 가능성
    • DBMS의 결함 등으로 인한 패치 설치를 위한 재가동
    • 백업이나 복구의 편의성
    • DBMS의 이중화 및 복제 지원
  • 성능
    • 대규모 데이터 처리 성능 (분할 테이블 지원 여부)
    • 대용량 트랜잭션 처리 성능
    • 튜닝 옵션의 다양한 지원
    • 최소화된 설정과 비용 기반 질의 최적화 지원
      • 비용 기반 질의 최적화
        • 사용자의 질의에 대한 최적의 실행 방법을 결정하기 위한 것
        • 질의에 대한 다양한 실행 방법을 만들고 각각의 방법에 대해 비용을 추정
        • 비용 추정은 실행에 필요한 소요 시간과 자웹 사용량을 기준으로 추정
        • 추정된 비용이 가장 최소인 방법을 선택하게 됨
  • 기술 지원
    • 제작업체의 안정적인 기술 지원
    • 여러 사용자들 간의 정보 공유
    • 오픈 소스 여부
  • 상호 호환성
    • 설치 가능한 운영체제의 종류
    • JDBC, ODBC와의 호환 여부
      • JDBC (Java DataBase Con-nectivity) : 자바에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 자바와 DB를 연결해주는 인터페이스
      • ODBC (Open DataBase Con-nectivity) : 응용 프로그램에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 응용 프로그램과 DB를 연결해주는 표준 인터페이
  • 구축 비용
    • 라이선스 정책 및 비용
    • 유지관리 비용
    • 총 소유 비용 (TCO)

6. 웹 애플리케이션 서버 Web Application Server (WAS)

  • 정적인 콘텐츠 처리를 하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
  • 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리 제공
  • 데이터베이스 서버와 연동해서 사용
  • 웹 애플리케이션 서버의 종류 : Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, WebLogic, WebSphere 등

7. 웹 애플리케이션 서버 (WAS) 관련 요구사항 식별 시 고려사항

  • 가용성
    • 시스템의 장시간 운영으로 인해 발생할 수 있는 고유의 장애 발생 가능성
    • WAS의 결함 등으로 인한 패치 설치를 위한 재가동
    • 안정적인 트랜잭션 처리
    • WAS 이중화 지원
  • 성능
    • 대규모 트랜잭션 처리 성능
    • 다양한 설정 옵션 지원
    • 가비지 컬렉션(GC)의 다양한 옵션
  • 기술 지원
    • 제조업체의 안정적인 기술 지원
    • 여러 사용자들 간의 정보 공유
    • 오픈 소스 여부
  • 구축 비용
    • 라이선스 정책 및 비용
    • 유지관리 비용
    • 총 소유 비용 (TCO)

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

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