개발 기술 환경의 현행 시스템 분석, 요구사항 파악

이주희·2022년 9월 14일
0

CS

목록 보기
35/66

[현행 시스템 파악 - 5]

개발 기술 환경 현행 시스템 분석

1. OS :: 운영체제

Operating System

  • 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있게 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램

  • 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어

리눅스

리눅스는 커널과 쉘로 구성되어있다.
쉘은 명령어를 해석해주는 부분이고, 커널은 운영체제의 핵심 기능인 메모리 할당, 프로세스 할당을 담당한다.


1-1. 운영체제 분석 시 고려사항🌟

개발할 시스템에 어떤 운영체제를 사용할 지 결정(현행 유지 or 변경)

품질 측면

1. 신뢰도

  • 장애 발생 가능성
  • 운영체제의 버그로 인한 재기동 여부

2. 성능

  • 대규모 및 대량 파일 작업(배치 작업) 처리
  • 지원 가능한 메모리 크기

배치 작업 :: Batch Job

실시간 작업의 반대 개념으로, 일련의 작업을 하나의 작업 단위로 묶어서 일괄로 처리하는 작업

지원 측면

3. 기술 지원

  • 공급사들의 안정적인 기술 지원 여부
  • 오픈 소스 여부
    (리눅스, 유닉스와 같은 오픈소스는 비교적 지원이 잘 안됨. 윈도우 같은 상용 소프트웨어는 비교적 빠른 서비스 가능)

    오픈소스(Open Source)

    • 소스코드를 공개해 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 소스코드를 누구나 열람/사용할 수 있도록 한 오픈 소스 라이선스를 만족하는 소프트웨어
    • 오픈소스를 사용할 경우, 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다.
    • 오픈 소스 소프트웨어의 전제 조건인 자유 배포, 소스 코드 공개, 파생작업 허용, 소스코드 일관성 확보, 차별 금지, 라이선스 배포, 포괄적 허용을 고려해야 한다.

4. 주변 기기

  • 설치 가능한 하드웨어
    (운영체제는 하드웨어의 영향을 받는다.)
  • 주변 기기 지원 여부

5. 구축 비용

  • 지원 가능한 하드웨어 비용
  • 설치할 응용 프로그램의 라이선스 정책 및 비용
  • 유지 및 관리 비용

1-2. 운영체제 종류 및 특징🌟

PC

1) Windows

  • Microsoft
  • 중/소규모 서버, 관리 비용 저렴

2) Max

  • Apple
  • 매킨토시용으로 개발한 GUI 운영체제

3) UNIX

  • IBM, HP, SUN
  • 대용량 처리, 안정성 높은 엔터프라이즈급 서버

4) Linux

  • Linus Torvalds🌟
  • 중/대규모 서버 대상, 높은 보안성 제공
  • 리눅스 기반 시스템이 하드웨어 및 소프트웨어 소유 비용이 가장 적게 소요된다.

Mobile

1) Android

  • Google
  • Linux 운영체제 위에서 구동

2) iOS

  • Apple
  • OS X 기반
  • 스마트폰, 태블릿 PC의 높은 보안성과 고성능 제공

2. Network

  • 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술

  • 데이터 링크들은 광케이블과 같은 유선 매체 또는 와이파이와 같은 무선 매체를 통해 확립된다.


2-1. 네트워크 분석 시 고려사항

  • 네트워크 분석 시 물리적인 위치 관계 파악한다.
    (서버팜에 위치하는지, 웹서버 구간에 위치하는지 등)

  • 조직 내 보안 취약성 분석 및 대응 고려한다.
    (보안 시스템을 어떻게 배치할 지도 함께 고려)

  • 현행 시스템이 구성된 네트워크 구조를 네트워크 구성도를 통해 분석한다.

  • 네트워크 구성도를 통해 서버 위치, 서버 간 연결 방식을 파악할 수 있다.

  • 백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석한다.

  • 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용할 수 있다.

백본망(Backbone Network)

다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망

라우터(Router)

3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비

스위치(Switch)

2계층 장비로, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비

게이트웨이(Gateway)

컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 네트워크 장비

방화벽(Firewall)

외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크의 상호간 영향을 차단하기 위한 보안 시스템


2-2. OSI 7 Layer :: OSI 7계층🌟

  • 네트워크 통신에서 생긴 여러가지 충돌 문제를 완화하기 위해 국제 표준화 기구에서 제시한 네트워크 기본 모델
    ISO; International Standardization Organization


3. DBMS

  • 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램

  • DBMS 기능
    중복 제어, 접근 통제, 인터페이스 제공, 관계 표현, 샤딩/파티셔닝, 무결성 제약조건, 백업 및 회복 등 제공


3-1. DBMS 분석 시 고려사항

1) 가용성

  • 장애 발생 가능성
  • 백업 및 복구 편의성
  • DBMS 이중화 및 복제 지원 여부

2) 성능

  • 대규모 데이터 처리 성능
  • 대량 거래 처리 성능
  • 다양한 튜닝 옵션 지원 여부
  • 비용 기반 최적화 지원 및 설정의 최소화 지원 여부

3) 상호 호환성

  • 설치 가능한 운영체제 종류
  • 다양한 운영체제에서 지원되는 JDBC, ODBC

    JDBC; Java Database Connectivity

    자바에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스

    ODBC; Open Database Connectivity

    데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스

4) 기술 지원

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

5) 구축 비용

  • 라이선스 정책 및 비용
  • 유지 및 관리 비용

4. Middleware

  • 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어

  • 운영체제와 소프트웨어 애플리케이션 사이에 위치한다.
    말 그대로, 중간에서 중재해주는 소프트웨어!


4-1. WAS :: 웹 애플리케이션 서버

Web Application Server

  • 대표적인 미들웨어

  • 서버 계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 서버

  • 동적 콘텐츠에 대한 처리를 지원하는 기능을 제공한다.

트랜잭션(Transaction)

데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위


4-2. 미들웨어 현행 시스템 분석 시 고려 사항

1) 가용성

  • 장애 발생 가능성
  • 안정적인 트랜잭션 처리 능력
  • WAS의 버그 등을 개선하는 패치 설치를 위한 재기동 기능 지원 여부
  • WAS 이중화 지원 여부

2) 성능

  • 대규모 데이터 처리 성능
  • 다양한 설정 옵션 지원 여부
  • 가비지 컬렉션의 다양한 옵션 기능 여부

    가비지 컬렉션(GC; Garbage Collection)

    메모리 관리 기법의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능

3) 기술 지원

  • 공급 벤더들의 안정적인 기술 지원 여부
  • 다수의 사용자들 간의 정보 공유 여부
  • 오픈 소스 여부

4) 구축 비용

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

    총 소유 비용(TCO; Total Cost of Ownership)

    기업이 시간 경과에 따라 지불해야 하는 컴퓨팅 비용을 통합적 관점에서 직접 비용뿐 아니라 이와 관련된 숨겨진 비용까지 포함하여 파악하는 기법


개발 기술 환경 요구사항 파악

1. 기술 환경 정의를 위한 자료 수집

  • 수집 자료 목록 및 조사 항목을 설정한다.

자료 수집 항목

1) 온라인 트랜잭션 처리(OLTP) 시스템

  • 시스템 구축 형태: 단독 시스템, 고가용성 시스템, 병렬 구성 여부
  • 사용자 수: 전체 사용자 수, 동시 사용자 비율, 연간 사용자 증가율
  • 트랜잭션 수: 연간 트랜잭션 수, 1일 평균 트랜잭션 수, 피크타임 트랜잭션 수, 예상 연간 트랜잭션 증가율

고가용성(HA; High Availability)

서버와 네트워크, 프로그램 등의 정보시스템이 시스템의 장애에 대응하여 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질

2) 웹/웹 애플리케이션 서버(WEB/WAS)

  • 시스템 용도 및 서비스 형태: 웹 페이지만 제공, 트랜잭션이 빈번하게 일어나는 웹서비스인지 여부
  • 시스템 구성 형태: 1티어=1계층(WEB/WAS/DB가 모두 한 시스템에 구축) / 2티어(WEB/WAS, DB) / 3티어(WEB, WAS, DB)
  • 접속자 수: 평균/최고/연간 접속자 수, 증가율

2. 조사 자료 분석 및 개발 기술 환경 결정

  • 조사한 자료를 이용하여 운영체제, 데이터베이스, 웹 애플리케이션 서버 등을 결정한다.

3. 요구사항 정의서, 목표 시스템 구성도 반영 및 검토

  • 운영체제, 데이터베이스, 웹 애플리케이션 서버 등 시스템 용량 산정 결과를 요구사항 정의서, 목표 소프트웨어 구성도, 목표 하드웨어 구성도에 반영한다.
  • 각 팀별로 작성된 산출물을 상호 검토하여 의견을 제시한다.
  • 검토 의견을 반영하여 산출물을 수정하고 최종 완료한다.
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글