프로그래머에게 있어 자료구조는 반드시 필요한 것이기에 자체적으로 링크드리스트를 만들어서 사용 하다가, C++로 처음 넘어가, 표준 STL 을 사용 하면서 그 강력함에 맛을 들게 되었다. 어줍잖은 실력으로 Boost 라이브러리를 사용하면서, 꼭 알고 넘어가야 겠다는 생각이 들어, 국내 번역서 책을 찾다가 물망에 오른 책이 C++ Template Metaprogramming Modern C++ Design 책이였다. Modern 은 너무 어려워서, 못보겠다는 말을 너무 많이 들어, C++ Template Metaprogramming 책을 구입하게 되었다. 번역은 류광씨가 했다. 류광씨 번역이 다소 이해하기 어려운 부분이 있지만, 번역되는 책 자체가 대부분 어려운 책이라 번역할 때 매우 힘들지 않았을까? 느낌..
책 정리 검색 결과
항목 17에서 객체의 생명주기와 예외의 관련성에 대해서 이야기 했다면, 이번 항목에서는 객체 생성자에서 발생된 예외는 어떻게 진행되며, 어떻게 처리 해야 좋을 지에 대한 고민을 하는 항목이다. 질문 1. 항목 17의 예제 1에서 A나 B의 생성자가 예외를 발생시키면 C의 생성자가 그 예외를 흡수해서 예외를 아예 발생하지 않게 하는 것이 가능한가? 예와 함께 왜 이런 식으로 되었는지에 대한 근거를 제시하라. 질문 2. C의 생성자(들)에 안전하게 빈 throw 정의를 넣을 수 있도록 A와 B가 지켜야 하는 최소한의 요건은 무엇인가? 해설 질문 1. 해당 질문에 답하기 위해선 표준 예외 발생에 대한 규정을 알고 있어야 할 듯 싶어, 책에서 몇가지 규칙을 설명해 준다. 1. 핸들러가 단순히 'return;' ..
사냥하고 요리했으면 먹는 일만 남았다. 문장 자체는 다른 언어와 비슷 하니 쉽게 설명 되어 진다. 문장으로는 배정문과 제어문, 프로시저 호출문이 있으며, 특이하게 다중 배정문과 지역변수 선언문이 있다. 배정문(assignment) 예제코드 : http://www.lua.org/pil/4.1.html 변수에 값을 배정하는 문을 뜻한다. 방법은 a = 1 처럼 사용 한다. 다중 배정문 a,b = 1,2 형태로 사용 된다. 일반적으로 이렇게 안쓰지만, 함수의 반환값이 두개 이상의 값을 반환 할 때 쓰곤 한다고 필자는 말하고 있다. 여기서 잠깐, 배정문을 쓰지 않고 사용된 변수에는 기본적으로 nil값이 들어 가며, 다중 배정문시 a,b,c = 1,2 일 때 c 는 nil 값이 들어가고 a,b = 1,2,3 일 ..
타입 개념을 사냥했으니, 이제 수식 개념을 요리하자. 변수를 어떻게 사용 할지는 수식으로 결정짓기 때문에, 반드시 요리해야 한다. 루아는 산술 연산자 관계 연산자 논리 연산자 문자열 병합 연산자 연산자 우선순위 테이블 생성자 를 가지고 있다. 산술연산자 말그대로 산술연산을 지원하며, 추가적으로 나머지 연산자( % ) 연산자를 지원한다. 그리고 단항연산자로 '-' 연산자가 있다. 바로 부호를 바꾸어 주는 연산자이다. 나머지 연산자는 5.1 이상 부터 된다고 하니, 유념하자. 즉, + - * / % - 가 지원 된다. 관계 연산자 관계 연산자는 ture false 를 반환하는 연산자 이다. 지원 되는건 = == ~= 인데, ~= 는 C 에서 처럼 != 과 동일 하다. 문자와 숫자에 대한 비교는 허용치..
아마도 언어를 배움에 있어, 제일 먼저 알아야 하는 것은 그 언어가 지원하는 타입을 먼저 알아야 할 것이다. 조사, 동사, 명사.. 처럼은 아니구나... 컴퓨터 언어로 국한 될 듯 싶다. : ) C와 다르게 루아는 동적 타입 지정 언어이다. PHP와 비교한다면 변수의 선언 없이 그냥 쓰면 되는 점이 똑같다. 쉽게 풀어 보면, "타입 자체에는 의미를 두지마, 변수 자체에 의미를 두라구! 변수가 있기에 타입이 있는 거라구!" 란 개념으로 정리가 된다. 그래도 타입이 어떤게있는지 정도는 알아야 한다.^^; 왜냐하면 컴퓨터 언어에서는 최소한 숫자형과 문자형은 구분짓기 때문이다. : ) 루아에는 총 8가지의 타입이 있다. nil : 닐 타입 C언어의 NULL 과 비슷하다. DB의 null 과 비슷하다. numbe..
루아는 애초에 다른 언어에서 동작 될 수 있도록 개발 되었기 때문에, 확장성이 어마어마하다고 한다. 이는 접착 언어(glue language)로 괜찮은 평가를 받고 있는 증거이다. 어디에 쓸까? 응용할 수 있는 부분은 "알고리즘" 부분이라고 생각한다. 프로그램 생명 주기 동안, 알고리즘이 개선 되었을 때, 재컴파일 하지 않고, 스크립트만 바꾸어 주면 되기 때문이다. 게임을 예로 들자면, 여러 공식들이 있을 것이다. (아직 써보진 안아서 이거 밖에는 모르겠다.) 이는 개발 중 시간을 많이 아낄 수 있음을 보여주며, 이렇게 벌어둔 시간으로 "최적화"를 지연평가(ㅋㅋ)하여, "설계"에 몰두할 수 있는 장점을 지닐 수 있게 된다. 이번에 맡은 프로젝트로 인하여 시작하게 되었는데, ... 뒤로 미루고 미루고 미루..
최근댓글