이미 소장하고 있다면 판매해 보세요.
|
추천사
역자서문 서문 1부. 언어 1장. 시작하기 1.1 코드뭉치 1.2 어휘 규정 1.3 전역 변수 1.4 독립형 인터프리터 2장. 루아 타입과 값 2.1 닐 2.2 부울형 2.3 수치 2.4 문자열 2.5 테이블 2.6 함수 2.7 사용자 데이터와 스레드 3장. 수식 3.1 산술 연산자 3.2 관계 연산자 3.3 논리 연산자 3.4 문자열 병합 연산자 3.5 연산자 우선순위 3.6 테이블 생성자 4장. 문장 4.1 배정 4.2 지역 변수와 블록 4.3 제어 구조 4.4 break와 return 문 5장. 함수 개요 5.1 다중 반환 5.2 가변 개수 인수 5.3 이름 있는 인수 6장. 함수 고급 활용 6.1 클로저 6.2 비전역 함수 6.3 자동 꼬리 호출 7장. 반복자와 일반 for 문 7.1 반복자와 클로저 7.2 일반 for 문의 문법 7.3 무상태 반복자 7.4 복잡한 상태를 가진 반복자 함수 7.5 진짜 반복자 8장. 컴파일, 실행 및 오류검사 8.1 컴파일 8.2 C 코드 8.3 오류 8.4 오류처리와 예외 8.5 오류 메시지와 역추적 9장. 코루틴 9.1 코루틴 기초 9.2 파이프와 필터 패턴 9.3 반복자로 동작하는 코루틴 9.4 비선점형 멀티 스레딩 10장. 통합 예제 10.1 데이터 묘사 10.2 마르코프 연쇄 알고리즘 2부. 테이블과 객체 11장. 자료구조 11.1 배열 11.2 행렬과 다차원 배열 11.3 연결 리스트 11.4 큐와 이중 큐 11.5 집합과 멀티셋 11.6 문자열 버퍼 11.7 그래프 12장. 자료 파일 관리와 지속성 구현 12.1 자료 파일 12.2 직렬화 13장. 메타테이블과 메타메서드 13.1 산술 연산 메타메서드 13.2 관계 연산 메타메서드 13.3 라이브러리 전용 메타메서드 13.4 테이블 접근 메타메서드 14장. 환경 14.1 동적 명칭을 가진 전역 변수 14.2 전역 변수 선언 14.3 비전역 환경 15장. 모듈과 패키지 15.1 require 함수 15.2 모듈 작성의 기본 15.3 환경 이용하기 15.4 module 함수 15.5 하위 모듈과 패키지 16장. 객체지향 프로그래밍 16.1 클래스 16.2 상속 16.3 다중 상속 16.4 비공개 선언 16.5 단일 메서드 방식 17장. 약 참조 테이블 17.1 메모이제이션 함수 17.2 객체 속성 17.3 테이블 기본값 기법의 또 다른 방법 3부. 표준 라이브러리 18장. 수학 라이브러리 19장. 테이블 라이브러리 19.1 삽입과 제거 19.2 정렬 19.3 병합 20장. 문자열 라이브러리 20.1 기본 문자열 함수 20.2 패턴 검색 함수 20.3 패턴 20.4 캡처 20.5 문자열 대체 20.6 활용 방법 21장. 입출력 라이브러리 21.1 단순 입출력 모델 21.2 완전 입출력 모델 21.3 파일에 대한 나머지 명령들 22장. 운영체제 라이브러리 22.1 날짜와 시간 22.2 다른 시스템 함수들 23장. 디버그 라이브러리 23.1 관찰 함수 23.2 훅 23.3 프로파일 4부. C API 24장. C API 소개 24.1 첫 번째 예제 24.2 루아 스택 24.3 C API 오류 처리 25장. 루아를 사용한 애플리케이션 확장 25.1 기초 25.2 테이블 관리 25.3 루아 함수 호출하기 25.4 일반화된 호출 함수 26장. 루아에서 C 호출하기 26.1 C 함수 26.2 C 모듈 27장. C 함수 작성기법 27.1 배열 관리 27.2 문자열 관리 27.3 C 함수 안에 스테이트 저장하기 28장. C로 사용자 정의 타입 만들기 28.1 사용자 데이터 28.2 메타테이블 28.3 객체지향적 접근 28.4 배열 접근 28.5 경량 사용자 데이터 29장. 자원 관리 29.1 디렉터리 반복자 29.2 XML 파서 30장. 스레드와 스테이트 30.1 멀티스레드 30.2 루아 스테이트 31장. 메모리 관리 31.1 메모리 할당 함수 31.2 쓰레기 수거기 찾아보기 |
|
게임 프로그램을 만들다 보면, 프로그래머로서의 욕심이 점점 생기기 마련이다. 어떻게 하면 더 깔끔하고 빠르고 재사용하기 좋은 프로그램을 만들 수 있을까? 어떻게 하면 지금 만든 프로그램을 내가 아닌 기획자들이 직접 수정할 수 있도록 만들어주고 나는 놀 수 있을까?
초창기의 개발자들은 게임 개발 시간의 많은 부분을 자체적인 언어 제작에 할애해야만 했다. 게임이라는 인터렉티브한 특성상, 성능이 좋으면서 너무 무겁지 않으면서 융통성이 있는 언어를 구할 수 없기 때문이다. 그러나 언어를 제대로 만들어 활용하는 것은 상당한 노력을 요하는 일이며, 제약조건도 많아지기 때문에 역시 만만치 않은 작업이다. 그러다가 언제부턴가 루아라는 언어가 게임 쪽에 도입되어 성공적으로 프로젝트에 적용되었다는 사례가 개발자들 사이에 알려지면서 루아에 대한 관심이 높아지게 되었다. 나의 경우 그라나도 에스파다의 서버에 루아를 적용해보았고 결과는 성공적이었다. 루아를 이용해 적절히 최적화된 설계를 적용하여 충분한 성능을 확보했으며, 기획자들의 자유도가 늘어남과 동시에 프로그래머들의 부하를 줄일 수 있다. 또한, 기획자들도 처음에는 루아의 기초적인 기능만 사용하다가 점점 시스템에 익숙해지면서 프로그래머의 도움 없이 많은 기능을 스스로 만들어내었다. 지금도 프로그래머의 도움 없이 기획자들의 선에서 많은 업데이트가 행해지고 있으니 루아를 통해 오랫동안 고민했던 부분이 해결된 셈이다. 『프로그래밍 루아』는 루아에 대한 가장 권위 있고 포괄적인 설명을 담고 있다. 나는 앞으로 루아의 활용도가 점점 넓어질 것을 기대하고 있다. 특히 루아는 단순한 스크립트 언어 이상의 고급 기능을 많이 지니고 있기 때문에 C나 C++ 위주로만 사고방식이 굳어지기 쉬운 게임 프로그래머에게는 꼭 루아를 접하고 활용해 볼 것을 권하고 싶다. --- 김학규 |