해당 시리즈는 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계 강의를 보고 정리한 내용입니다.
빅데이터 아키텍처
빅데이터?
- 매우 크거나, 아주 복잡하거나, 매우 빠른 속도로 시스템에 들어와 기존 어플리케이션의 처리 속도를 뛰어 넘는 데이터셋
- 다음의 특징을 가짐
- Volume
- 처리, 저장, 분석해야 하는 데이터의 양
- 하루에 테라바이트나 페타바이트 이상을 처리함
- Variety
- 다양한 소스의 비정형 데이터를 수집하여 처리해야 함
- 모든 데이터를 처리하고 결합하여 새로운 인사이트를 얻는데 활용됨
- Velocity
- 시스템의 규모가 크거나 이벤트 빈도가 잦아 빠른 속도로 데이터가 들어오게 됨
- Volume
- 빅데이터 처리의 목적
- 경쟁사보다 강력한 서비스 경쟁력
- 데이터 시각과, 쿼리 능력, 예측 분석을 통한 인사이트
- 결과적으로 다양한 비정형 데이터 스트림을 인사이트, 시각화, 예측 등의 결과로 처리하는 것이 빅데이터 처리의 목적이 됨
빅데이터 처리 패턴
일괄 처리 방식
들어오는 데이터를 주로 분산 데이터베이스나 분산 파일 시스템에 저장함
- 이는 절대 수정하지 않고 추가하기만 함
일정 기간 혹은 일정량을 모아 특정 시간, 갯수에 처리를 수행함
마지막으로 처리한 이후 데이터들에 대해 처리하고, 이를 최신 View로 저장함
- View는 구조화된 데이터베이스나 인덱스 데이터베이스를 활용하여 쉽게 결과를 얻을 수 있게 함
- 전체적인 데이터세트에 대한 지식이 view에 반영되어 있어야 함
최신에 들어온 데이터만 처리하거나 전체를 처리하는 방식으로 인사이트를 도출함
대표적으로 추천 시스템, 검색 엔진 등에 활용할 수 있음
장점
- 지연 시간 걱정이 없어 구현이 쉬움
- 분석한 데이터 세트를 저장해두므로 고가용성을 제공함
- 일괄 처리를 통해 효율성이 높음
- 인적 오류에 대한 내결함성이 높음 ⇒ 원본 데이터를 별도로 저장하기 떄문
- 큰 데이터셋에 대한 깊고 복잡한 분석 가능
단점
데이터 유입부터 결과 도출까지 오랜 시간이 걸림
- 실시간으로 빠른 대처가 불가능함
시스템에서 이뤄진 피드백이 적용되기까지 오랜 시간이 걸림
어느 정도 시간이 걸리는지 사용자에게 미리 공지하는 것이 필요함
ex) 제품 등록 시 1 영업일 이후 반영 등등..
실시간 처리 방식
- 메시지 브로커나 대기열에 배치하고, 데이터가 들어오는대로 처리함
- 처리 완료된 데이터는 데이터베이스에 반영되어 실시간 시각화와 분석 능력을 제공함
- 장점
- 처리까지 오랜 시간을 기다릴 필요가 없음
- 단점
- 복잡한 분석 능력을 가지기 힘듦
- 각기 다른 시간에 발생한 데이터의 융합이나 데이터 이력 분석이 불가능함
람다 아키텍처
- 일괄 처리 능력과 실시간 처리 능력을 동시에 요구할 수 있음
- 승차 관리 시스템, 이상 감지 시스템 등등..
- 람다 아키텍처는 일괄 처리의 내결함성, 통합적 데이터 분석과 실시간 처리의 짧은 대기 시간 사이에서 균형을 찾은 아키텍처
구성요소
- 데이터는 Batch Layer와 Speed Layer에 동일하게 입력됨
- Batch Layer
- 데이터 세트를 관리하며 기록 시스템으로 사용됨
- 일괄 처리와 동일하게 수정이 불가능하고, 새로운 데이터를 추가할 수 있음
- 배치 뷰를 사전 계산함
- 데이터를 일괄 처리해서 완료되면 읽기 전용 데이터베이스로 따로 저장함
- 결과는 보통 이전 처리 작업을 덮어씀
- 완벽한 정확성을 목적으로 하며, 전체 데이터셋에 대해 동작함
- 데이터 세트를 관리하며 기록 시스템으로 사용됨
- Speed Layer
- 실시간 처리 전략을 사용함 - 메시지 브로커를 이용한 실시간 분석
- 짧은 대기 시간을 가지지만 종합적인 뷰나 복잡한 데이터 수정을 진행하지 않음
- Batch Layer의 이전 결과와 현재 계산중인 결과 사이의 간극을 메우는 역할을 함
- Serving Layer
- 쿼리에 반응하여 결과를 도출해내는 레이어
- Batch Layer를 통한 과거 데이터와 Speed Layer를 통한 최신 데이터를 모두 내보낼 수 있음
- Batch Layer
'개인 공부 일지 > 아키텍처' 카테고리의 다른 글
| 소프트웨어 아키텍처 및 시스템 설계 - (5) 소프트웨어 아키텍처 패턴 (0) | 2025.09.14 |
|---|---|
| 소프트웨어 아키텍처 및 시스템 설계 - (4) 데이터 스토리지 (0) | 2025.09.14 |
| 소프트웨어 아키텍처 및 시스템 설계 - (3) 빌딩 블록(DNS, 로드밸런스, 메시지 브로커) (0) | 2025.09.14 |
| 소프트웨어 아키텍처 및 시스템 설계 - (2) 인터페이스 (0) | 2025.09.14 |
| 소프트웨어 아키텍처 및 시스템 설계 - (1) 시스템 설계 (0) | 2025.09.14 |