50. [책 리뷰]프로그래밍 루아 3판 리뷰(Programming in Lua, 3rd edtion)

프로그래밍 루아 3판
                                               

작가
호베르토 이에루자림스키
출판
인사이트
발매
2014.07.22.


- 처음 루아를 개발하기 시작 했을 때는, 지금처럼 인기 있으리라고 생각하지 못했다. 지금은 단순함, 확장성, 이식성, 효율적인 스크립트 언어라는 특징 때문에 임베디드 시스템, 모바일 기기, 게임프로그래밍 등 많은 분야에 이용되고 있다. 
- 루아는 처음부터 c/c++같은 기존의 언어로 작성된 소프트웨어와 쉽게 통합되도록 설계되었고, 덕분에 많은 장점을 지닌다. 
- 루아는 작고 간단한 언어이다. 복잡한 기능은 루아는 c를 사용할 수 있다. 루아는 하드웨어를 직접 알 필요가 없는 추상화 유지, 동적인 자료구조, 중복방지, 테스팅과 디버깅이 쉬운구조처럼 c가 잘 하지 않는 일에 집중한다. 루아는 안전한 환경을 가지고 있고, 자동으로 메모리를 관리하며, 문자열과 동적으로 크기가 변하는 데이터를 효과적으로 처리한다. 
- 루아는 확장성 있는 언어일 뿐 아니라, 연결언어(glue language)이기도 하다. 루아는 정적인 타입언어인 c나 c++로 컴파일된 컴포넌트들을 서로 연결해서 조직화 한다. 
- 확장성 : c, c++, 포트란, 자바, 스몰토크, ada, c#, 파이썬 같은 스크립트언어도 통합가능하다.
- 단순함 : 루아는 작고 단순한 언어임. 배우기 쉽고 크기가 작다. 
- 효율성 : 스크립트 언어계에서 가장 빠른 언어중 하나임.
- 이식성 : 일반적으로 들어본 모든 플랫폼에서 루아가 실행된다. 루아 소스코드에서는 다른기계에서 수행되는 코드를 컴파일하기 위해 조건 컴파일을 사용하지 않는다. 대신 ansi c표준에 의존한다. 
- 사용자 유형
1. 애플리케이션 프로그램에 내장해서 사용.
2. 루아언어만 독립적으로 사용하는 법.
3. 루아를 C언어와 함께 사용하는 부류.
- 루아를 독립 실행형 언어로 사용할 때는 라이브러리를 잘 아는 것이 중요하다. 
- 파일이나 대화모드에서 입력하는 한 줄의 코드처럼, 루아가 실행하는 코드 조각을 청크라 한다. 루아에서는 연속되는 명령문 사이에 구분자를 쓰지 않아도 되지만, 세미콜론을 쓸 수 있다. 여러 명령문을 한줄에 쓸때는 세미콜론으로 분리할 수 있다. 
lua -i prog
와 같이 실행하면 디버깅에 유용하다. 
- 한줄주석 : --
- 여러줄 주석 : --[[  --]]
- 전역변수는 선언할 필요가 없다. 그냥 쓰면 된다. 초기화되지 않은 변수를 사용해도 오류가 나지 않는다. 그저 nil값을 얻을 뿐이다. 
- 루아를 계산기로도 활용할 수 있다. 
- 루아는 동적 타입언어다. 루아에서는 모든 값마다 타입이 있으므로, 변수를 선언할 때 타입을 지정하지 않는다. 
- 루아는 8가지 기본타입을 가짐 : nil, boolean, number, string, userdata, function, thread, table.
- 유저데이터 타입을 써서 임의의 c데이터를 루아 변수에 저장할 수 있다. 
- 사용자 입장에서 모듈이란, require를 호출해서 불러오고, 그 결과로 테이블을 생성해서 반환하는 루아나 c로 작성된 코드를 말한다. 함수나 상수 같이 모듈에서 내보내는 모든 것은 네임스페이스로 사용되는 테이블 안에서 정의된다. 모든 표준 라이브러리는 모듈이다. 
- require함수 : require함수로 모듈을 공개하기 위해서 지켜야 할 사항은 많지 않다. require입장에서 모듈은 어떤 값을 정의하는 코드일 뿐이다. 일반저긍로 이 코드에서 모듈의 함수를 가지고 있는 테이블을 반환한다. 
- 루아의 테이블은 여러 가지 면으로 볼 때 객체가 맞다. 테이블도 객체처럼 상태를 가진다. 
- 클래스는 객체를 생성하기 위한 틀로, 대부분의 객체지향 언어에서 클래스의 개념을 제공한다. 루아에서는 클래스란 개념이 없다. 
- 루아는 내장형 언어이다. 이 말은 루아를 독립된 패키지가 아니라, 다른 애플리케이션에서 연결해서 루아의 기능을 이용하는 라이브러리로 볼 수 있다. 루아 인터프리터는 독립 실행형 인터프리터를 구현하기 위해서 루아 라이브러리를 사용하는 아주 작은 애플리케이션이다.  500줄이 채 되지 않는다. 즉, 애플리케이션을 확장하기 위해서 라이브러리로 사용될 수 있기 때문에 루아를 확장언어라 부를 수 있다. 동시에 루아를 이용하는 프로그램에서 새로운 함수를 루아에 등록할 수 있다. 
- c에서 루아를 라이브러리로 사용하는 방법.
- c가 애플리케이션코드로 이용되든지 라이브러리 코드로 이용되든지 상관없이 루아와 정보를 주고 받을 때는 동일한 c api를 사용한다. c api는 c코드가 루아와 상호작용할 수 있는 함수의 모음이다. api는 루아의 전역변수를 읽거나 전역변수에 쓸 수 있는 함수, 루아 함수를 호출할 수 있는 함수, 루아 코드조각을 실행할 수 있는 함수, 나중에 루아 코드에서 호출할 수 있도록 c함수를 등록하는 함수 등으로 구성된다. 루아 코드에서 할 수 있는 거의 모든 작업이 c api를 통해서 c코드로도 가능하다. 
- c api는 루아코드를 작성하던 방식과 다르데, c코드를 작성하던 방식을 따른다. c로 프로그래밍할 때는 자료형 확인, 오류복구, 메모리 할당 오류외에도 많은 복잡한 문제를 다루어야 한다. 

//  https://blog.naver.com/nosleep/221121328029 
50. [책 리뷰]프로그래밍 루아 3판 리뷰(Programming in Lua, 3rd edtion) 50. [책 리뷰]프로그래밍 루아 3판 리뷰(Programming in Lua, 3rd edtion) Reviewed by kukanuc on 1월 23, 2019 Rating: 5

댓글 없음:

Powered by Blogger.