블로그
-
VDA5050 Action 상태 머신 분석 - pick 액션 처리와 blockingType 구현
VDA5050 order의 node action이 실제로 어떻게 실행되는지, actionStatus 전이·blockingType·load 갱신·에러 처리까지 pick 액션을 중심으로 C++ 구현 패턴을 정리합니다.
-
VDA5050으로 AGV·AMR 관제 통신하기: MQTT 토픽, order·state·instantActions, libVDA5050++ C++ 구현
VDA5050이 AGV·AMR과 관제 시스템을 MQTT로 표준화하는 방법과 order/state/instantActions 메시지 구조, libVDA5050++ 기반 C++ 구현 예제를 정리합니다.
-
MQTT 프로토콜과 발행-구독 메시징 모델 이해하기
MQTT의 Pub/Sub 구조와 Broker·Topic 개념, QoS 0/1/2 차이, Last Will·Retained Message 같은 실무 기능을 Python·Node.js 예제로 설명합니다.
-
WebSocket vs SSE vs 롱 폴링 | 실시간 통신 방식 비교
WebSocket, SSE, 롱 폴링을 통신 방향과 구현 복잡도, 프록시·방화벽 환경 기준으로 비교하고 Node.js 서버·클라이언트 코드로 구현해 봅니다. AI 응답 스트리밍에 SSE를 쓰는 예시, RFC 6455 업그레이드 핸드셰이크와 프레임 구조, Ping/Pong 하트비트도 다룹니다.
-
TLS 프로토콜 심화 가이드 | 핸드셰이크·암호 스위트·TLS 1.3 키 유도
TLS 1.2와 1.3의 핸드셰이크 흐름 차이, 암호 스위트를 구성하는 키 교환·인증·대칭키·해시, 키 유도와 레코드 레이어, QUIC과의 결합, 인증서 체인 오류 진단과 mTLS 인증서 회전까지 설명합니다.
-
Docker 네트워킹 내부 — CNI·veth·브리지·iptables·서비스 디스커버리
Docker·Kubernetes 네트워크 내부: CNI와 libnetwork, veth·Linux bridge, 포트 매핑 iptables/nft, DNS·서비스 디스커버리, 프로덕션 패턴까지 실무 심화 정리.
-
C++ 템플릿 메타프로그래밍 심화 — SFINAE·타입 특성·태그 디스패치
템플릿 메타프로그래밍(TMP)에서 컴파일러가 오버로드 후보를 거르는 SFINAE 규칙, type_traits의 구현 원리, 태그 디스패치와 if constexpr의 선택 기준, 컴파일 타임 계산을 어디에 둘지를 라이브러리 설계 관점에서 정리합니다.
-
CORS 에러 해결: 'No Access-Control-Allow-Origin' 원인과 프리플라이트·credentials 설정
브라우저 콘솔의 CORS 에러 메시지별 원인과 해결 방법을 정리합니다. 동일 출처 정책, 프리플라이트(OPTIONS), credentials와 쿠키, Vary: Origin, Express cors 설정과 흔한 보안 실수를 설명합니다.
-
C++ 배열: 메모리 레이아웃, std::array, 캐시 최적화
C 배열이 함수 인자로 넘어갈 때 포인터로 쇠퇴하는 규칙과 2차원 배열의 함정, std::array 설계와 C 배열·vector의 선택 기준, 행 우선 레이아웃에 맞춘 캐시 친화 순회, C++23 std::mdspan까지 다룹니다.
-
C++ const·constexpr 내부 동작 | 평가 시점·if constexpr
const와 constexpr의 평가 시점 차이, constexpr 함수 제약, if constexpr 분기 제거, consteval 즉시 함수, 프로덕션 const 정확성까지 컴파일러 관점에서 정리합니다.