본문 바로가기
반응형

C++4

DI(Dependency Injection), DIP(Dependency Inversion Principle) C++에서의 DI(Dependency Injection)와 DIP(Dependency Inversion Principle)✅ DIP(의존성 역전 원칙, Dependency Inversion Principle)📌 정의상위 모듈(정책 결정)은 하위 모듈(세부 사항)에 의존하면 안 되며, 둘 다 추상(인터페이스)에 의존해야 한다.🎯 목적구체적인 구현이 아니라 추상화된 인터페이스에 의존하여 유연한 구조 유지코드 결합도 감소 → 변경에 강한 코드📎 C++ 예시// 상위 모듈은 추상 인터페이스에 의존class ICommunication {public: virtual void send(const std::string& msg) = 0; virtual ~ICommunication() = default;};//.. 2025. 5. 22.
c, c++ 임베디드 설계 비교 C (.c) vs C++ (.cpp) 기반 임베디드 설계 비교 정리요약항목C 기반 설계 (.c)C++ 기반 설계 (.cpp)주요 개념구조체 + 함수 분리클래스 (캡슐화, 상속, 다형성 등)상태/동작struct로 상태, function()으로 동작클래스 멤버 변수 + 멤버 함수로 통합모듈화파일 단위 (.c/.h) 모듈화객체 단위 (클래스) 모듈화의존성extern 또는 handle 방식참조(&) 또는 포인터 기반 의존성 주입싱글톤 처리전역변수 또는 getInstance() 직접 구현정적 멤버 or 싱글톤 패턴상속/다형성직접 구현 어렵고 불편명시적 지원 (virtual 등)코드 재사용성낮음 (구조체 확장 어려움)높음 (클래스 재사용 용이)초기화/생성자별도 init_XXX() 함수 필요생성자 자동 호출 가능컨텍.. 2025. 5. 21.
[c++] 로봇 시스템 상태 관리 및 로직 설계 c++에서 로봇 시스템 상태 관리 및 로직 설계 정리1. 시스템 구조의 계층화로봇을 소프트웨어로 제어할 때는 다음과 같이 3계층 구조로 나누는 것이 일반적Layer 1: 하드웨어 제어 (컨트롤러)MotorController, LedController, BuzzerControllerHAL 드라이버 기반으로 GPIO, PWM, UART 등을 직접 제어Layer 2: 역할 단위 매니저InputManager: 센서, 리모컨, 버튼 등 입력 수집OutputManager: 모터, LED, 부저 등 출력 실행LogicController: 입력에 따라 로직을 처리하고 행동을 결정Layer 3: 통합 객체 (예: Robot)Robot은 InputManager, OutputManager, LogicController를 통.. 2025. 5. 20.
[c++] 싱글톤 패턴 정리 C++ Singleton Pattern 정리🔷 개념Singleton은 애플리케이션 전체에서 하나의 인스턴스만 존재하도록 보장하는 디자인 패턴입니다.✅ 핵심 특징항목설명인스턴스 유일성정적 멤버로 하나의 인스턴스를 내부에 보관접근 제어정적 getInstance() 함수로만 인스턴스 접근 가능생성자 제한생성자는 private 또는 protected로 막음복사/이동 금지복사 생성자, 대입 연산자 삭제로 복제 차단🛠️ 기본 구현 예제🔹 Singleton.hpp#pragma onceclass Singleton {public: static Singleton& getInstance(); // 전역 인스턴스 접근 void doSomething(); // 예시 함수private: Singleton(); .. 2025. 5. 19.
반응형