현행 시스템을 파악
하는 과정은 새로운 시스템을 개발하거나 기존 시스템을 개선하기 위한 첫 단계다.
쉽게 말해, 지금 운영 중인 시스템이 ‘어떻게 생겼고 어떻게 돌아가는지’를 정확히 해부하는 과정이다.
이걸 잘못하면, 나중에 설계 단계에서 현실과 맞지 않는 구조를 만들어버리게 된다.
1. 아키텍처 구성 파악
‘아키텍처(Architecture)’란 시스템의 큰 뼈대 구조를 의미한다.
소프트웨어의 구성 요소들이 어떤 식으로 연결되어 있는지를 시각화한 설계도라 보면 된다.
예를 들어, 클라이언트–서버 구조인지, 3계층 구조(프레젠테이션 / 비즈니스 로직 / 데이터베이스)인지, 또는 마이크로서비스 구조인지 등을 분석한다.
이 단계에서는 시스템이 어떤 구조적 원리로 작동하는지를 파악하고, 각 구성요소 간의 상호 관계를 명확히 하는 것이 핵심이다.
2. 소프트웨어 구성 파악
운영 중인 시스템에 **어떤 프로그램(애플리케이션)**이 존재하고, 각각이 무슨 역할을 하는지를 분석한다.
운영체제(OS), 미들웨어, 데이터베이스(DBMS), 주요 애플리케이션, API 서비스 등을 포함해
버전, 의존성(Dependency), 라이선스 정보까지 점검한다.
예를 들어, “현재 시스템은 Linux 기반, Oracle DB, Spring Framework로 구성되어 있다.”처럼 정리하는 것이다.
3. 하드웨어 구성 파악
하드웨어는 시스템의 **물리적 자원(서버, 스토리지, 백업 장비 등)**을 의미한다.
서버의 CPU, 메모리, 디스크 용량, I/O 처리 속도, 가상화 여부 등을 분석하고, 장애 대비 구조(이중화, 클러스터링 등)도 함께 확인한다.
이는 시스템의 성능, 확장성, 안정성에 직접적인 영향을 준다.
4. 네트워크 구성 파악
네트워크는 시스템 간 통신 구조와 데이터 흐름의 경로를 담당한다.
라우터, 스위치, 방화벽, VPN, VLAN, IP 대역 등 네트워크 토폴로지(Topology)를 파악한다.
이 단계에서 트래픽 병목 지점이나 보안상 취약점을 발견할 수 있다.
예를 들
어, 내부망과 외부망이 어떻게 분리되어 있는지, DMZ 구간이 존재하는지를 분석한다.
5. 시스템 구성 현황 파악
이는 앞선 정보들을 종합하여 전체 시스템의 구성 상태를 한눈에 보는 단계다.
서버 목록, 네트워크 구성도, 애플리케이션 배포 현황, DB 스키마 구조 등을 통합 문서로 작성한다.
‘현재 무엇이 어디에서 어떻게 돌고 있는가?’를 명확히 해야, 이후 단계(개선, 이관, 통합 등)에서 혼선을 줄일 수 있다.
6. 시스템 기능 파악
각 구성요소가 무엇을 수행하는지, 즉 **업무 기능(Function)**을 파악한다.
사용자 입장에서의 기능(로그인, 결제, 데이터 조회 등)뿐 아니라
백엔드에서 수행되는 자동 작업(스케줄링, 로그 수집, 백업 등)도 포함한다.
이 단계는 사용자의 요구사항과 시스템의 실제 기능이 일치하는지 확인하는 역할을 한다.
7. 시스템 인터페이스 현황 파악
시스템 간 데이터 교환 구조, 즉 ‘누가 누구에게 무엇을, 언제, 어떤 방식으로 전달하느냐’를 정리한다.
예를 들어, A시스템이 B시스템에 REST API로 JSON 데이터를 보내는 구조라면,
요청 경로(URL), 인증 방식(Token, Key), 전송 프로토콜(HTTP, HTTPS), 데이터 포맷 등을 명시한다.
이 정보
를 바탕으로 장애 시 원인 추적과 수정이 가능해진다.
아키텍처(Architecture)란?
‘아키텍처’는 본래 건축학에서 유래된 용어로, 건물의 구조적 설계도를 뜻한다.
IT에서는 시스템을 구성하는 모듈, 컴포넌트, 인터페이스, 데이터 흐름을 구조적으로 표현한 것이다.
즉, “어떤 기능을 어떤 구성요소가 담당하고, 그들이 어떻게 상호작용하는가”를 정의한다.
좋은 아키텍처는 확장성과 유지보수성을 높이고, 나쁜 아키텍처는 개발자를 괴롭게 만든다.
단어 정리
아키텍처(構造設計) / Architecture
- 構(얽을 구): 짜이다, 얽다
- 造(지을 조): 만들다
- 設(베풀 설): 설계하다
- 計(꾀할 계): 계획하다
영어 어원: architectura (라틴어 architectus, 그리스어 arkhitéktōn — ‘chief builder’, 즉 ‘주된 건축가’)
소프트웨어(軟體) / Software
- 軟(부드러울 연)
- 體(몸 체)
영어 어원: soft (부드러운) + ware (물건, 제품) → 물리적이지 않은 논리적 구성체
하드웨어(硬體) / Hardware
- 硬(굳을 경)
- 體(몸 체)
영어 어원: hard (단단한) + ware (물건) → 물리적 장치
네트워크 / Network
영어 어원: net (그물) + work (작업, 구조물) → ‘그물처럼 연결된 구조’
인터페이스 / Interface
영어 어원: inter- (사이의) + facies (얼굴, 표면) → ‘사이에서 맞닿는 면’
시스템(系統) / System
- 系(이을 계)
- 統(거느릴 통)
영어 어원: systema (그리스어 sýstēma, 함께 짜여진 것) → 상호 연결된 구조
기능(機能) / Function
- 機(틀 기): 기계, 작동
- 能(능할 능): 가능함
영어 어원: fungi (라틴어, 수행하다)에서 파생 → 어떤 역할을 수행하는 능력
이 단계들을 명확히 해두면, 시스템을 해체하고 다시 조립할 때 실수를 최소화할 수 있다.
현행 시스템 파악은 단순한 “조사”가 아니라, 이후 설계·개선의 방향성을 결정짓는 탐구 과정이다.
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
기능 요구사항과 비기능 요구사항 (0) | 2025.10.11 |
---|---|
하드웨어 구성 파악과 이중화(二重化) – 서버는 왜 ‘복제’를 두려워하지 않는가 (0) | 2025.10.11 |
XP(eXtreme Programming) 개발방법론: “극단의 단순함으로 품질을 높이다” (0) | 2025.10.11 |
🧭 익스트림 프로그래밍 (XP, eXtreme Programming) (0) | 2025.10.10 |
🧭 스크럼 기법 (Scrum) (0) | 2025.10.10 |