개발 기술 환경 정의
개발 기술 환경 현행 시스템 분석
운영체제 현행 시스템 분석
운영체제(Operating System)의 개념
- 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램
- 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어
운영체제 현행 시스템 분석 시 고려 사항
품질 측면
신뢰도
- 장기간 시스템 운영 시 운영체제의 장애 발생 가능성
- 운영체제의 버그로 인한 재기동 여부
성능
- 대규모 및 대량 파일 작업(배치 작업, Batch Job) 처리
- 지원할 수 있는 메모리 크기(32비트, 64비트)
지원 측면
기술 지원
- 공급사들의 안정적인 기술 지원
- 오픈 소스 여부
주변 기기
- 설치할 수 있는 하드웨어
- 다수의 주변 기기 지원 여부
구축 비용
- 지원할 수 있는 하드웨어 비용
- 설치할 응용 프로그램의 라이선스 정책 및 비용
- 유지와 관리 비용
운영체제 종류 및 특징
PC
윈도즈(Windows)/Microsoft
- 중/소규모 서버, 일반 PC 등 유지, 관리 비용 장점
유닉스(UNIX)/IBM, HP, SUN
- 대용량 처리, 안정성 높은 엔터프라이즈급 서버
리눅스(Linux)/Linus Torvalds
- 중/대규모 서버 대상, 높은 보안성 제공
모바일
안드로이드(Android)/Google
- 리눅스 운영체제 위에서 구동하며 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MMS) 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제
- 개발자들이 자바, 코틀린 언어로 응용 프로그램을 작성할 수 있게 했고, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공하는 운영체제
iOS/Apple
- 스마트폰, 태블릿PC의 높은 보안성과 고성능 제공
네트워크 현행 시스템 분석
네트워크(Network)의 개념
- 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술
- 데이터 링크들은 광케이블과 같은 유선 매체 또는 와이파이(Wi-Fi)와 같은 무선 매체를 통해 확립
OSI 7계층(Layer)
응용 계층(Application Layer)
- 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
- HTTP, FTP, 데이터(Data) 단위로 전송
표현 계층(Presentation Layer)
- 데이터 형식 설정과 부호 교환, 암/복호화
- JPEG, MPEG, 데이터(Data) 단위로 전송
세션 계층(Session Layer)
- 연결 접속 및 동기제어
- SSH, TLS, 데이터(Data) 단위로 전송
전송 계층(Transport Layer)
- 신뢰성 있는 통신 보장
- 데이터 분할과 재조립, 흐름 제어, 오류 제어, 혼잡 제어 등을 담당
- TCP, UDP, 세그먼트(Segment) 단위로 전송
네트워크 계층(Network Layer)
- 단말기 간 데이터 전송을 위한 최적화된 경로 제공
- IP, ICMP, 패킷(Packet) 단위로 전송
데이터 링크 계층(Data Link Layer)
- 인접 시스템 간 데이터 전송, 전송오류 제어
- 동기화, 흐름 제어 등의 전송 기능 제공
- 오류 검출/재전송 등 기능 제공
- 이더넷, 프레임(Frame) 단위로 전송
물리 계층(Physical Layer)
- 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
- RS-232C, 비트(Bit) 단위로 전송
네트워크 현행 시스템 분석
- 현행 시스템이 구성된 네트워크 구조를 네트워크 구성도를 통해 분석
- 네트워크 구성도를 통해 서버 위치, 서버 간 연결 방식을 파악할 수 있음
- 백본망(Backbone Network), 라우터(Router), 스위치(Switch), 게이트웨이(Gateway), 방화벽(Firewall) 등을 대상으로 분석
- 네트워크 분석 시 물리적인 위치 관계 파악, 조직 내 보안 취약성 분석 및 대응이 가능
- 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용할 수 있음
DBMS 현행 시스템 분석
DBMS(Database Management System)의 개념
- 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램
DBMS의 기능
- 중복 제어 : 동일한 데이터가 여러 위치에 중복으로 저장되는 현상 방지
- 접근 통제 : 권한에 따라 데이터에 대한 접근 제어
- 인터페이스 제공 : 사용자에게 SQL 및 CLI, GUI 등 다양한 인터페이스 제공
- 관계 표현 : 서로 다른 데이터 간의 다양한 관계를 표현할 수 있는 기능 제공
- 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능 제공
- 무결성 제약 조건 : 무결성에 관한 제약 조건을 정의/검사하는 기능 제공
- 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능 제공
DBMS 현행 시스템 분석 시 고려 사항
성능 측면
가용성
- 장기간 시스템을 운영할 때 장애 발생 가능성
- 백업 및 복구 편의성
- DBMS 이중화 및 복제 지원 여부
성능
- 대규모 데이터 칠 성능
- 대량 거래 처리 성능
- 다양한 튜닝 옵션 지원 여부
- 비용 기반 최적화 지원 및 설정의 최소화 지원 여부
상호 호환성
- 설치할 수 있는 운영체제 종류
- 다양한 운영체제에서 지원되는 JDBC(Java Database Connectivity), ODBC(Open Database Connectivity)
지원 측면
기술 지원
- 공급 업체들의 안정적인 기술 지원 여부
- 사용자들 간의 정보 공유 여부
- 오픈 소스 여부
구축 비용
- 라이선스 정책 및 비용
- 유지 및 관리 비용
미들웨어의 현행 시스템 분석
미들웨어(Middleware)의 개념
- 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해 주는 소프트웨어
- 운영체제와 소프트웨어 애플리케이션 사이에 위치
- 대표적인 미들웨어 WAS
웹 애플리케이션 서버(WAS, Web Application Server)의 개념
- 서버 계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 서버
미들웨어의 현행 시스템 분석 시 고려 사항
성능 측면
가용성
- 장기간 시스템을 운영할 때 장애 발생 가능성
- 안정적인 트랜잭션 처리 능력
- WAS의 버그 등을 개선하는 패치 설치를 위한 재기동 기능 지원 여부
- WAS 이중화 지원 여부
성능
- 대규모 데이터 처리 성능
- 다양한 설정 옵션 지원 여부
- 가비지 컬렉션(GC, Garbage Collection)의 다양한 옵션 기능 여부
지원 측면
기술 지원
- 공급 벤더들의 안정적인 기술 지원 여부
- 사용자들 간의 정보 공유 여부
- 오픈 소스(Open Source) 여부
구축 비용
- 라이선스 정책 및 비용
- 유지 및 관리 비용
- 총 소유 비용(TCO, Total Cost of Ownership)
오픈 소스 사용 시 고려 사항
- 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 함
- 오픈 소스 소프트웨어의 전제 조건인 자유 배포, 소스 코드 공개, 파생 작업 허용, 소스 코드 일관성 확보, 차별 금지, 라이선스 배포, 포괄적 허용을 고려해야 함
'정보처리 > 소프트웨어설계' 카테고리의 다른 글
요구사항 확인 요구사항 2/2 (1) | 2025.04.06 |
---|---|
요구사항 확인 요구사항 1/2 (1) | 2025.04.05 |
요구사항 확인 현행 시스템 분석 2/3 (0) | 2025.04.03 |
요구사항 확인 현행 시스템 분석 1/3 (1) | 2025.04.02 |
요구사항 확인 소프트웨어 개발 방법론 4/4 (1) | 2025.04.01 |