태그: 스크립팅
4편
-
C++에 Lua 임베딩하기: C API 스택 연산, 테이블 조작, Sol3 바인딩, 핫 리로드
C++ 게임·앱에 Lua 5.4를 임베딩할 때 필요한 lua_State 스택 인덱스 규칙, C++ 함수 등록과 upvalue 전달, 테이블 읽기·생성, Lua 함수 호출과 반환값 처리를 다룹니다. Sol3 바인딩과 스크립트 핫 리로드도 함께 봅니다.
-
pybind11로 C++와 Python 연결하기: 모듈·클래스 바인딩, NumPy zero-copy, GIL, 예외 변환
pybind11로 C++ 함수·클래스를 Python 모듈로 노출하는 방법입니다. 오버로드와 기본값 인자, 프로퍼티와 상속, 스마트 포인터 반환, NumPy 배열 zero-copy 공유, GIL 해제, C++ 예외를 Python 예외로 바꾸는 법을 예제로 설명합니다.
-
C++에 V8 임베딩하기: Isolate·Context, HandleScope, C++ 함수·객체를 JavaScript에 노출
C++ 앱에 V8을 임베딩해 웹과 같은 JavaScript 로직을 돌리는 방법입니다. Isolate·Context·HandleScope의 역할, TryCatch 예외 처리, FunctionTemplate과 Internal Field로 C++ 함수·객체를 JS에 노출하는 코드를 설명합니다.
-
C++에 스크립트 엔진 붙이기: Lua·pybind11·V8 선택 기준과 바인딩, 샌드박싱
밸런스 수정마다 재빌드하지 않도록 C++에 스크립트 엔진을 붙일 때, Lua·Python(pybind11)·V8 중 무엇을 고를지 기준을 세웁니다. 임베딩과 확장의 차이, 스레드 모델, 메모리·실행 시간 제한, 엔진별 샌드박싱 가능 범위를 비교합니다.