[소프트웨어 설계] 현행시스템 분석 (플랫폼, 운영체제, 네트워크, DBMS)
필기시험의 과목 중 하나인 소프트웨어 설계와 관련된 내용이다. 현행시스템을 분석할 때는 운영체제 분석, 네트워크 분석, DBMS 분석, 플랫폼 분석이 필요하다. 2021년 기출문제로 인적 자원 분석이 오답으로 출제되었던 바 있다.
따라서 오늘 포스팅에서는 현행 시스템 분석과 관련된 내용에 대해 살펴보도록 하겠다.
현행 시스템 분석
1. 플랫폼 분석
플랫폼 (Platform)은 우리가 평소에도 많이 들어보던 단어였을 것이다. 하지만 정확한 정의를 물어본다면 선뜻 대답할 수 있는 사람이 많지 않을 것이다. 플랫폼은 애플리케이션을 구동시키는 데 필요한 소프트웨어의 환경을 폭넓게 의미한다. 공급자와 수요자들이 모여 공정한 거래를 통해 각 그룹이 원하는 가치를 교환하기 위해 구축된 환경이라고 말할 수 있다. 따라서 플랫폼을 통해 동일 플랫폼의 커뮤니티를 형성하고 네트워크 효과를 유발할 수 있다.
네트워크 효과란 어떤 상품에 대한 수요가 형성되면 이것이 다른 사람들의 상품 선택에 큰 영향을 미치는 현상을 의미함
또한 플랫폼을 활용하면 소프트웨어 개발과 운영비용이 감소될 뿐만 아니라 생산성이 향상된다는 장점이 있다. 따라서 현행 시스템을 분석할 때 필시 플랫폼의 기능과 성능을 분석해야 하며 이를 소프트웨어 설계 과목에서 다루는 이유도 이와 비슷한 맥락이라고 생각하면 된다.
플랫폼에는 크게 다음과 같이 세 가지 유형이 존재한다.
- Single-Side Platform: 안드로이드 마켓처럼 소비자와 공급자가 존재하는 형태로 해당 플랫폼에서는 제휴 관계를 통해 소비자와 공급자를 연결해준다.
- Two-Side Platform: 이름이 의미하는 바처럼 두 그룹이 존재하여 해당 플랫폼은 두 그룹을 중개하고 모두에게 개방된 형태의 플랫폼이라고 할 수 있다. 소개팅 앱이 대표적이다.
- Multi-Side Platform: 그룹이 단순히 두 개가 아니라, 다양한 형태로 존재하는 플랫폼이다. 다양한 이해관계를 가진 그룹을 연결하여 중개하는 형태로 최근 SNS는 3번 유형에 속한다. 페이스북과 인스타그램만 보더라도 소개팅 앱처럼 두 사람이 연결되는 것이 아닌, 여러 사람들이 다양한 이해관계를 가지고 소통하는 형식을 띄는 것을 알 수 있다.
이러한 플랫폼의 성능을 분석하기 위해서 어떠한 조건을 따져볼 필요가 있을까?
플랫폼의 성능 특성을 측정하는 항목에는 네 가지 (경과시간, 사용률, 응답시간, 가용성)이 있다고 한다. 2020년에 기출로 출제된 바가 있었던 문제이며, 특히 필기 시험에서는 이렇게 네 가지 항목이 객관식으로 출제가 잘 되는 경향이 있는 것 같다.
- 경과시간 (Turnaround Time) : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지의 걸린 시간을 의미함
- 사용률 (Utilization) : 애플리케이션이 의뢰한 작업을 처리하는 동안 CPU, 메로리 등의 자원 사용률
- 응답시간 (Response Time) : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간. 요청을 전달한 이후에 응답을 받은 시간이라는 점에서 1번와 명확한 차이가 있음
- 가용성 (Availability): 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도
2020년 기출문제에서는 서버 튜닝 (Server Tuning)이 오답선지로 출제된 바 있다. 플랫폼 성능 특성 측정 항목에는 위와 같이 네 가지 항목이 있다는 것을 알아두자.
2. 운영체제 분석
운영체제는 OS로 더 많이 알려져 있는 개념으로, 하드웨어와 소프트웨어 자원을 효율적으로 관리하며 공통된 기능을 제공하는 소프트웨어이다. 컴퓨터 관련 운영체제로는 Windows, Unix, Linux가 존재하며, 모바일 관련 운영체제로는 Android, iOS가 존재한다.
운영체제 현행 시스템을 분석하기 위해서는 품질 측면과 지원 측면을 함께 고려하여야 한다.
먼저 품질 측면에서는 신뢰도와 성능을 고려하여야 하는데 신뢰도는 장기간동안 시스템을 운영 할 때 운영체제에서 장애가 발생할 가능성을 보는 것이며 성능의 경우 대규모, 대량 파일 작업 처리가 가능한지를 살펴 보는 것이다.
지원측면에서는 공급사들의 안정적인 기술 지원이 가능한지를 분석하는 기술지원, 다수의 주변 기기가 지원되는지 여부를 분석하는 주변 기기 측면, 유지/관리 비용 등을 포괄하는 구축 비용 측면 등의 고려사항이 있다.
3. 네트워크 분석
네트워크는 컴퓨터 장치들이 노드 간 연결을 사용하여 서로에게 데이터를 교환하는 기술을 말한다.
네트워크 현행 시스템 분석에서는 네트워크 구성도를 통해 네트워크 구조를 분석하며, 이를 통해 서버 위치와 서버 간 연결 방식을 파악한다. 주로 Backbone Network (백본망), Router (라우터), Switch (스위치), 게이트웨이 (Gateway), 방화벽 (Firewall)을 대상으로 분석하고 네트워크 장애 발생시 추적하고 대응할 때 요긴하게 사용될 수 있는 분석이다.
4. DBMS 분석
DBMS란 Database Management System의 약자로 데이터베이스를 만들고 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다.
DBMS의 현행 시스템 분석은 2020년에 기출로 출제된 바 있으니 잘 알아두자. 크게 아래와 같이 성능 측면과 지원 측면으로 나눌 수 있고 각각의 관점에서 고려해야 하는 요소가 다르다.
- 성능측면
- 가용성 : 장기간 시스템을 운영할 때 장애가 발생할 수 있는 가능성/ 백업, 복구 편의성
- 성능 : 대규모 데이터 처리 성능, 대량 거래 처리 성능
- 상호 호환성: 설치 가능한 운영체제 종류 - 지원측면
-기술지원: 공급 업체들의 안정적인 기술 지원, 오픈소스 여부
-구축 비용: 유지/관리 비용, 라이선스 정책 및 비용
2020년에는 네트워크 구성도가 오답 선지로 출제된 바 있다. 네트워크 구성도는 DBMS 분석에서 사용되는 고려사항이 아니라 3번 네트워크 분석에서 고려해야 할 사항이다. 이처럼 각각의 고려사항이 무엇을 의미하는지도 중요하지만, 해당 고려사항이 어떠한 큰 분류에 속하는지를 아는 것도 중요하다.