태그: 스크립팅
5편
-
Bash 스크립팅 깊이 보기: 파라미터 확장·서브셸·리다이렉션·trap과 프로덕션 패턴
Bash 파라미터 확장 순서·매개변수 문법·서브셸과 명령 치환·프로세스 치환·FD 리다이렉션(2>&1 순서)·시그널·trap·set -Eeuo pipefail·ShellCheck까지 프로덕션 스크립트 내부 동작을 정리합니다.
-
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 중 무엇을 고를지 기준을 세웁니다. 임베딩과 확장의 차이, 스레드 모델, 메모리·실행 시간 제한, 엔진별 샌드박싱 가능 범위를 비교합니다.