개발 기술 환경 파악

clay·2023년 1월 9일
0

소프트웨어 설계

목록 보기
5/39
post-thumbnail

개발 기술 환경

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

Middle Ware
OS와 응용 프로그램 사이에서 OS가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어

Operating System

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어

  • OS는 사용자와 하드웨어 간의 인터페이스이고 다른 응용 프로램이 유용한 작업을 할 수 있도록 환경을 제공한다.
  • 컴퓨터는 Windows, UNIX, Linux, Mac OS 등이 있고 모바일은 iOS, Android등이 있다.

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

가용성

프로그램이 주어진 시점에서 요구사항에 따라 운영될 수 있는 능력

  • 시스템의 장기간 운영으로 인해 발생할 수 있는 운영체제 고유의 장애 발생 가능성
  • 메모리 누수 = 사용하지 않는 메모리를 반환하지 않고 계속 점유로 인한 성능 저하 및 재가동
  • 보안상 발견된 허점을 보완하기 위한 지속저깅ㄴ 패치 설치로 인한 재가동
  • 운영체제의 결함 등으로 인한 패치 설치를 위한 재가동

성능

  • 대규모 동시 사용자 요청에 대한 처리
  • 대규모 및 대용량 파일 작업에 대한 처리
  • 지원 가능한 메모리 크기(32bit, 64bit)

기술 지원

  • 제작업체의 안정적인 기술 지원
  • 여러 사용자들 간의 정보 공유
  • 오픈 소스 여부(Linux)

주변 기기

  • 설치 가능한 하드웨어
  • 여러 주변기기 지원 여부

구축 비용

  • 지원 가능한 하드웨어 비용
  • 설치할 응용프로그램의 라이선스 정책 및 비용
  • 유지관리 비용
  • 총 소유 비용(TCO)
TCO(Total Cost of Ownership)
어떤 자산을 획득 하려고 할 때 지정된 기간 동안 발생할 수 있는 모든 직간접 비용

DBMS

DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보르 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어

  • DBMS는 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템이고 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 준다.
  • DBMS는 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 진다.
  • DBMS의 종류에는 Oracle, IBM DB2, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis 등이 있다.

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

가용성

  • 시스템의 장기간 운영으로 인해 발생할 수 있는 운영체제 고유의 장애 발생 가능성
  • DBMS의 결함 등으로 인한 패치 설치를 위한 재가동
  • 백업이나 복구의 편의성
  • DBMS 이중화 및 복제 지원

성능

  • 대규모 데이터 처리 성능(분할 테이블 지원 여부)
  • 대용량 트랜잭션 처리 성능
  • 튜닝 옵션의 다양한 지원
  • 최소화된 설정 비용 기반 질의 최적화 = 소요 시간 + 자원 사용량 지원

기술 지원

  • 제작업체의 안정적인 기술 지원
  • 여러 사용자들 간의 정보 공유
  • 오픈 소스 여부

상호 호환성

  • 설치 가능한 운영체제의 종류
  • JDBC, ODBC와의 호환 여부
JDBC(Java DataBase Con-nectivity)
자바에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 자바와 DB를 
연결해 주는 인터페이스

ODBC(Open DataBase Con-nectivity)
응용 프로그램에서 DB에 접근하여 데이터를 조회 삽입, 수정, 삭제할 수 있도록  응용 프로그램과 DB를 연결해 주는 표준 인터페이스

구축 비용

  • 라이선스 정책 및 비용
  • 유지관리 비용
  • 총 소유 비용(TCO)

WAS(Web application Server)

WAS는 정적인 컨텐츠 처리를 하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 컨텐츠를 처리하기 위해 사용되는 미들웨어

  • 데이터 접근, 세션 관리, 트랙잭션 관리 등을 위한 라이브러리를 제공한다.
  • 주로 데이터베이스 서버와 연동해서 사용
  • WAS의 종류에는 Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, Weblogic, WebSphere 등이 있다.
library
주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수),
클래스, 값, 자료형 사양을 포함할 수 있다.

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

가용성

  • 시스템의 장시간 운영으로 인해 발생할 수 있는 고유의 장애 발생 가능성
  • WAS의 결함 등으로 인한 패치 설치를 위한 재가동
  • 안정적인 트랜잭션 처리
  • WAS 이중화 지원
Transaction
데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다.

성능

  • 대규모 트랜잭션 처리 성능
  • 다양한 설정 옵션 진원
  • 가비지 컬렉션(GC)의 다양한 옵션
Garbage Collection
실제로는 사용되지 않으면서 가용 공간 리스트에 반환되지 않는 메모리 공간

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

오픈 소스는 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 것으로 오픈 소스 라이선스를 만족하는 소프트웨어이다.

  • 오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다.
profile
샤코타임 팬

0개의 댓글

관련 채용 정보