C++ 프로그래밍(7)
-
GPIO 프로그래밍 개요 - 3. 라이브러리 활용 (wiringPi, pigpio 등)
3. 라이브러리 활용 (wiringPi, pigpio 등)직접 제어 방식(sysfs)은 속도가 느리고 코드가 복잡하므로, 일반적으로 GPIO를 제어할 때 라이브러리를 활용하는 것이 더 효율적이다.라이브러리를 사용하면 더 간단하고 빠르게 GPIO를 제어할 수 있으며, PWM(펄스 폭 변조), 인터럽트(Interrupt) 같은 고급 기능도 쉽게 활용할 수 있다.대표적인 GPIO 제어 라이브러리로는 wiringPi, pigpio가 있으며, 각 라이브러리는 특정한 장점과 차이점을 가지고 있다.📌 wiringPi 라이브러리wiringPi는 C언어 기반 GPIO 제어 라이브러리로, 라즈베리파이에서 널리 사용되었다.하지만 라즈베리파이 OS 최신 버전(2020년 이후)에서는 기본 제공되지 않으며, 직접 설치해야 한다..
2025.02.25 -
소프트웨어 디자인 패턴 - 6. Flux 패턴
Flux 패턴이란?Flux 패턴은 단방향 데이터 흐름을 기반으로 애플리케이션 상태를 관리하는 소프트웨어 디자인 아키텍처입니다. React와 함께 사용되는 Redux의 기반이 되는 패턴으로, 상태 관리와 데이터 흐름을 단순하고 예측 가능하게 만듭니다. Flux는 복잡한 애플리케이션에서도 데이터 흐름을 명확히 설계할 수 있도록 돕습니다.구성 요소1. Store애플리케이션 상태와 비즈니스 로직을 관리합니다.상태를 읽고 변경하는 유일한 소스로 작동하며, View에 상태를 제공합니다.2. Action사용자 또는 시스템 이벤트를 나타냅니다.상태 변경 요청을 Store로 전달하기 위한 명령 역할을 합니다.3. DispatcherAction을 Store로 전달하는 역할을 합니다.중앙에서 모든 Action을 관리하며, ..
2025.01.20 -
소프트웨어 디자인 패턴 - 5. PAC 패턴 (Presentation-Abstraction-Control)
PAC 패턴이란?PAC(Presentation-Abstraction-Control) 패턴은 애플리케이션을 Presentation, Abstraction, Control의 세 가지 계층으로 분리하여 설계하는 소프트웨어 디자인 패턴입니다. 이 패턴은 특히 복잡한 시스템을 계층적으로 나누어 높은 모듈화와 재사용성을 제공하는 데 적합합니다. 각 PAC 단위는 독립적으로 동작하며 느슨하게 결합되어 있어 복잡한 시스템에서도 유지보수와 확장이 용이합니다.구성 요소1. Presentation사용자 인터페이스(UI)와 입력 처리 담당.사용자의 요청을 Control로 전달하고, 데이터를 화면에 표시.2. Abstraction데이터 처리와 비즈니스 로직 담당.Control에서 전달받은 데이터를 처리하고 결과를 반환.3. C..
2025.01.20 -
소프트웨어 디자인 패턴 - 4. MVU 패턴 (Model-View-Update)
MVU 패턴이란?MVU 패턴은 애플리케이션의 상태 관리와 UI 갱신을 단순화하기 위해 설계된 패턴으로, Model, View, Update의 세 가지 구성 요소로 나뉩니다. 상태 변경 흐름이 명확하고 불변성을 유지하여 안정적이고 예측 가능한 애플리케이션을 만드는 데 적합합니다. Elm 아키텍처와 Redux와 같은 상태 관리 라이브러리에서 사용됩니다.구성 요소1. Model애플리케이션의 상태를 표현합니다.단순한 변수, 구조체, 또는 복잡한 객체일 수 있습니다.상태는 불변성을 유지하며, 새로운 상태를 반환하는 방식으로 갱신됩니다.2. ViewUI를 렌더링하는 역할을 합니다.Model의 현재 상태를 기반으로 화면에 데이터를 표시합니다.3. Update사용자 이벤트를 처리하고 새로운 상태를 반환합니다.상태 변경..
2025.01.20 -
소프트웨어 디자인 패턴 - 3. MVVM 패턴 (Model-View-ViewModel)
MVVM 패턴이란?MVVM 패턴은 애플리케이션을 Model, View, ViewModel의 세 가지 역할로 나누어 설계하는 소프트웨어 디자인 패턴입니다. 이 패턴은 특히 데이터 바인딩을 지원하는 프레임워크에서 효과적입니다. ViewModel이 View와 Model 사이에서 중간 역할을 하며, View와 데이터를 동기화하는 데 초점이 맞춰져 있습니다.구성 요소1. Model데이터를 관리하고 저장.비즈니스 로직과 데이터베이스와의 상호작용을 담당.2. View사용자 인터페이스(UI)를 나타냄.사용자와 상호작용하며 데이터를 표시.ViewModel과 바인딩하여 데이터를 동기화.3. ViewModelView와 Model 간의 중간 역할.데이터 바인딩을 통해 View와 통신.Model의 상태를 관찰하고 변화가 있을 ..
2025.01.20 -
소프트웨어 디자인 패턴 - 2. MVP 패턴 (Model-View-Presenter)
MVP 패턴이란?MVP(Model-View-Presenter) 패턴은 애플리케이션을 Model, View, Presenter로 나누어 설계하는 소프트웨어 디자인 패턴입니다. MVC(Model-View-Controller) 패턴과 유사하지만, Presenter와 View가 1:1 관계를 가지며 Presenter가 View와 Model 사이의 모든 로직을 처리한다는 점에서 차이가 있습니다. 이 패턴은 UI 코드와 비즈니스 로직을 명확히 분리하여 유지보수성과 테스트 용이성을 향상시킵니다.구성 요소1. Model데이터를 관리하고 저장.데이터베이스와 상호작용하거나 상태를 유지.MVC의 Model과 동일한 역할을 수행.2. View사용자 인터페이스(UI)를 담당.Presenter로부터 데이터를 받아 화면에 표시.사..
2025.01.19