본문 바로가기

Computer Science120

IoT 시스템 아키텍처 — 통신 모델부터 AWS까지, 이론과 실전의 연결 IoT(Internet of Things)는 단순히 센서를 인터넷에 연결하는 것이 아닙니다. 수많은 이질적 시스템들이 유기적으로 협력하여 하나의 인텔리전트 시스템처럼 동작하는 것 - 이것이 IoT 어플리케이션의 본질입니다.이 글에서는 IoT 시스템의 통신 모델(Client/Server vs Messaging), 네트워크 계층 구조, MQTT 프로토콜의 CS적 배경, 그리고 실제 AWS 서비스와의 연결까지 정리합니다.1. IoT 시스템의 계층 구조IoT 시스템은 크게 세 개의 계층(Layer)으로 구성됩니다.Device Layer (하단)센서, 액추에이터, 카메라, 스마트 락 등 물리적 장치가 존재하는 계층입니다. 이 장치들은 현실 세계를 모니터링(sensing)하거나, 제어 명령을 실행(actuating.. 2026. 3. 25.
이벤트 기반 아키텍처(EDA) 이론과 실무 패러다임 - Event-Driven Architecture Event-Driven Architecture(EDA)는 특정 기술이 아니라 설계 패러다임입니다.소프트웨어 컴포넌트들이 다른 컴포넌트의 직접 호출(invocation)이 아닌, 이벤트의 발생에 반응하여 실행되는 구조를 말합니다.개념 자체는 수십 년 전부터 UI 프로그래밍, 게임 엔진, 임베디드 시스템 등에서 사용되어 왔지만, 최근 IoT·클라우드·마이크로서비스의 부상과 함께 시스템 통합(Integration)의 핵심 방법론으로 급격히 부각되고 있습니다.이 글에서는 EDA의 아키텍처적 구성 요소를 이론적으로 정리하고, 이것이 실제 AWS 서비스와 분산 시스템 패러다임에 어떻게 매핑되는지를 연결합니다.1. Event Processing의 세 단계EDA를 이해하기 전에, Event Processing 자체가 .. 2026. 3. 25.
[데이터베이스] recovery 알고리즘 종류과 checkpoint 동작 원리 데이터베이스 장애와 복구, 데이터 접근 구조Failure Classification(장애 분류)데이터베이스 시스템에서 발생할 수 있는 장애(failure)는 크게 세 가지로 분류된다.Transaction failure(트랜잭션 장애)Logical errors: 트랜잭션 내부 오류로 인해 완료되지 못하는 경우System errors: 데드락(deadlock) 등 시스템이 트랜잭션을 강제로 종료해야 하는 경우System crash(시스템 크래시)전원 장애, 하드웨어/소프트웨어 오류 등으로 시스템이 중단되는 현상Fail-stop assumption: 비휘발성 저장장치의 데이터는 시스템 크래시로 손상되지 않는다고 가정데이터베이스 시스템은 무결성(integrity) 체크를 통해 데이터 손상 방지Disk failu.. 2025. 6. 12.
[운영체제] 가상 메모리의 이해와 최적화 (demand paging, 페이지 교체 알고리즘, 프레임 할당) 가상 메모리 (Virtual Memory)정의: 가상 메모리는 user logical 메모리를 physical 메모리로부터 분리하는 개념입니다. 프로그램의 일부분만 메모리에 있어도 실행이 가능하며, 논리 주소 공간이 물리 주소 공간보다 훨씬 커질 수 있습니다.프로세스 관리 효율: 여러 프로세스가 주소 공간을 공유할 수 있게 하고, 프로세스 생성(fork)을 더 효율적으로 만들며, 더 많은 프로그램이 동시에 실행되도록 합니다. 가상 메모리의 배경과 이점코드 실행 및 부분 로딩프로그램 코드는 실행을 위해 메모리에 있어야 하지만, 프로그램 전체가 한 번에 사용되는 경우는 드뭅니다. 오류 처리 코드, 자주 사용되지 않는 루틴, 또는 대규모 데이터 구조 등이 대표적입니다. 가상 메모리 시스템은 프로그램의 부분적인.. 2025. 6. 12.
[데이터베이스] 타임스탬프 기반과 버전 기반 제어 프로토콜의 동작 원리 - Timestamp-Ordering(TSO), Validation-based, Optimistic Concurrency Control(OCC) Timestamp-Based Protocols각 transaction Ti는 고유한 timestamp TS(Ti)를 가진다.Timestamp는 transaction이 시작할 때 할당되며, 새로운 transaction들은 이전 것들보다 큰 timestamp를 가진다.Timestamp는 logical counter를 기반으로 할 수 있다.Real time은 unique하지 않을 수 있으므로 (wall-clock time, logical counter)를 사용하여 uniqueness를 보장할 수 있다.Timestamp-based protocol은 timestamp order = serializability order가 되도록 concurrent execution을 관리한다.Timestamp-Ordering P.. 2025. 6. 6.
[데이터베이스] 데드락과 팬텀현상을 해결 위한 동시성 제어 프로토콜의 종류 (deadlock, 교착상태, Phantom, Granularity) - Index Locking, Next-Key Locking Protocol Deadlock HandlingDeadlock이란 transaction들의 집합에서 각 transaction이 집합 내의 다른 transaction을 기다리고 있는 상황이다. 이러한 deadlock 상황을 처리하는 방법에는 prevention, detection, recovery가 있다. Deadlock PreventionDeadlock prevention protocol은 시스템이 deadlock 상태에 절대 진입하지 않도록 보장하는 기법들이다.1. Pre-declaration 방식각 transaction이 실행을 시작하기 전에 필요한 모든 data item들을 미리 lock하는 방법이다.2. Graph-based Protocol모든 data item에 partial ordering을 부과하고, tra.. 2025. 6. 6.
[데이터베이스] 동시성, 격리 수준 이론과 락(lock) 기반 프로토콜의 종류 - 2PL, graph based protocol, tree, lock table Concurrency ControlDBMS에서 Concurrency Control의 목표는 다음과 같다.스케줄링 결정이 conflict serializable 또는 view serializable이어야 하며,recoverable하고 가능하면 cascadeless해야 한다.Scheduler는 높은 수준의 concurrency(동시성)를 제공해야 한다.단일 트랜잭션만 실행하는 정책은 serial schedule을 만들지만 concurrency가 매우 낮다.Concurrency-control scheme은 허용하는 concurrency의 양과 발생하는 오버헤드 사이에서 tradeoff를 가진다.어떤 scheme은 conflict-serializable schedule만 생성하고, 어떤 scheme은 confl.. 2025. 6. 6.