오늘의 포스팅은 소프트웨어 아키텍쳐에 대해 설명하도록 하겠습니다.
1. 소프트웨어 아키텍쳐란?
소프트웨어 아키텍처는 소프트웨어 시스템의 구조와 구성 요소들 간의 상호 작용을 정의하는 것입니다. 이는 소프트웨어 시스템의 디자인, 구축, 유지 보수, 및 확장에 대한 기본적인 방향성과 틀을 제공합니다. 소프트웨어 아키텍처는 일종의 청사진이며, 소프트웨어 시스템의 다양한 측면들을 고려하여 이를 설계하고 구축함으로써 시스템의 성능, 확장성, 보안성, 유지 보수성 등을 보장합니다.
2. 아키텍쳐의 종류
(1) 모놀리식 아키텍처 (Monolithic Architecture):
모놀리식 아키텍처는 시스템을 하나의 단일 프로세스 또는 애플리케이션으로 구성합니다.
모든 기능이 단일 애플리케이션 내에 포함되어 있으며, 모든 사용자 요청을 해당 애플리케이션에서 처리합니다.
전통적인 웹 애플리케이션과 모놀리식 애플리케이션이 이러한 아키텍처를 사용합니다.
(2) 마이크로서비스 아키텍처 (Microservices Architecture):
시스템을 작은 독립적인 서비스로 분해하고, 각 서비스는 자체적으로 배포되고 운영됩니다.
각 서비스는 특정한 비즈니스 기능을 담당하며, 서비스 간의 통신은 API를 통해 이루어집니다.
마이크로서비스 아키텍처는 확장성, 유연성, 배포 용이성을 제공하며, 다양한 기술 스택의 선택이 가능합니다.
(3) 클라이언트-서버 아키텍처 (Client-Server Architecture):
클라이언트-서버 아키텍처는 사용자 인터페이스와 데이터 처리 로직을 분리하여 클라이언트와 서버 간에 역할을 나눕니다.
클라이언트는 사용자와 상호 작용하며, 서버는 데이터 처리와 비즈니스 로직을 담당합니다.
이러한 아키텍처는 다중 플랫폼 지원과 중앙 집중식 데이터 관리를 가능하게 합니다.
(4) MVC 아키텍처 (Model-View-Controller, MVC):
MVC 아키텍처는 소프트웨어를 모델(Model), 뷰(View), 컨트롤러(Controller) 세 가지 요소로 분할합니다.
모델은 데이터와 비즈니스 로직을 포함하고, 뷰는 사용자 인터페이스를 표시하며, 컨트롤러는 사용자 입력을 처리합니다.
이러한 아키텍처는 코드의 재사용성과 유지 보수성을 향상시킵니다.
3. 아키텍쳐 검토
(1) 현행분석
현행 시스템의 기술환경(서버, 네트워크, DB, Appl 등)을 분석
(2) 플랫폼 적합성
Public/Private Cloud와 On-Prem 간 비용 비교 및 성능 차이
사용률의 변동성 확인 (ex. 네트워크 트래픽, CPU, Mem 등)
Appl은 Cloud 환경에 적합 여부 (ex. 컨테이너, 서버리스, 오픈소스 활용 등)
Appl 변경이 자주 발생하는지 (지속적인 배포 환경)
선정한 솔루션과 동일한 기능이 Cloud 서비스에 존재하는지 확인
향후 Cloud 서비스 통합/활용 가능성 확인 (ex. 데이터분석 활용, 사례 등)
(3) 신뢰성 (Reliability)
SLA, RTO, RPO 정의
데이터 백업 검토
SPoF(Single Point of Failure)구성 검토
도입 솔루션/하드웨어에 대한 PoC 방안 검토
(4) 보안(Security)
인프라 측면의 보안 Compliance 분석
보안 측면에서 네트워크 구성
보안 측면에서 권한 및 정책 검토
데이터 보안 및 암호화를 검토
(5) 비용 최적화 (Cost Optimization)
비용 최적화 요소 분석
향후 비용 최적화 계획 여부
적절한 스펙의 리소스 구성
오픈소스(ex:OS, DBMS) 활용 검토
Spot Instance 또는 RI에 대한 계획
(6) 성능 효율성 (Performance Efficiency)
도입 인프라 대한 BMT 방안 검토
성능 목표 정의
용량 및 성능 확장 방안을 검토
부하/성능 검증을 위한 테스트 시나리오 방안 검토
(7) 운영 및 유지보수
운영/유지보수 메뉴얼 작성 검토
패치 및 배포 관리 방안 검토
인프라 배포 방안 검토
'#IT 업무노트' 카테고리의 다른 글
[IT용어] Benchmark Test, Spot Instance, RI, Offshoring 란? (0) | 2024.04.04 |
---|---|
[IT용어] RTO, RPO, SPOF, POC 란? (0) | 2024.03.22 |
개발/운영 시스템 장애 보고 절차 (0) | 2024.03.11 |
사번 체계 변경시 고려해야 하는 사항 (2) | 2024.02.08 |
EDI (Electronic Data Interchange) EAI 차이 (1) | 2024.02.06 |