2. 11.1 스크립트 바인딩 추가
• 스크립트 바인딩 - 스크립트 언어에서 C++ API에 접근하는
방법을 제공.
3. 11.1.1 확장 VS 임베딩
• 언어 확장 - 스크립트 언어의 기능을 보완하기 위한 모듈로
제공.
• 애플리케이션에 임베딩 - 앱 기능을 스크립트로 제어.
4. 11.1.2 스크립팅의 장점(1)
• 크로스 플랫폼 - 텍스트 기반.
• 빠른 개발 - 컴파일/링크 생략,
빠르게 프로토타입 제작/테스트/결과 확인.
• 적은 코드량 - 고차원적인 스크립트 언어 활용.
• 스크립트 기반의 앱 - MVC에서 M,V는 C++, Controller
는 스크립트로 작성.
5. 11.1.2 스크립팅의 장점(2)
• 전문가 사용자 집단 지원 - 고급 사용자.(반복적 작업, 동작 재
정의).
• 확장성 - 스크립트를 통해 플러그인 제공.
• 테스트를 위한 스크립팅 - 블랙박스 테스트에서 화이트박스
테스트.
• 표현성 - 자신이 생각하는 소프트웨어의 본질이 변하지 않도
록.
6. 11.1.3 언어 호환성 문제
• 명명 규칙 - C++(Camel Case, GetName()),
Python(Snake Case, get_name())
• Getter/Setter - 멤버변수를 노출하지 말고 Getter/Setter 사
용.
object.name = “hello”
name = object.name
• 연산자 - 중첩되거나 추가되는 경우.
• 컨테이너 - C++(정적 타입), 스크립트(동적 타입 지원)
7. 11.1.4 언어 장벽 교차
• 가상 메서드 지원 - 동적 바인딩하는 Python 에서 동작하지
않음.
• 일부 바인딩 기법에서 언어 다형성을 지원.(Boost Python,
SWIG)
• C++ 내부 이벤트나 알림 이벤트를 스크립트와 연동.
• 예외 처리 - C++ 예외를 스크립트로 전달.
8. 11.2 스크립트 바인딩 기법
• 스크립트 바인딩 기술은 어댑터 디자인 패턴 전략.
• 유지보수 비용 증가.
• 꼭 필요한지 다시 한번 생각해 볼 문제.
• Boost.Python, SWIG, Python-SIP(QT)
• COM(XPCOM), CORBA