Archive for July 2010

rest인자를 통한 인자객체의 대체

함수의 인자를 설정하기 위해 인자객체의 도움을 받으면 매우 편리하게 복잡한 함수 인자설정을 처리할 수 있습니다.

하지만 인자를 위한 별도의 객체를 생성해야 한다는 점과 그 인자를 얻기 위한 추가적인 프로토콜을 배포해야 하는 점이 늘 불만이었습니다. 그래서 이번엔 좀 다른 방법으로 접근해보았습니다.

rest인자

function (…인자명) 의 스타일로 지정하면 해당 인자명은 배열형을 갖는 형태로 지정됩니다. 실제로 이렇게 인자가 지정된 경우 무한히 인자를 받을 수 있는 구조가 됩니다.

자세한 rest인자에 대한 스펙은 공식문서에서 충분히 설명하고 있습니다.

제가 rest인자에서 주요하게 바라봤던 점은 무한히 여러 개의 인자를 받을 수 있다는 점입니다. 보통 이 특징을 배열과 같은 열거형 자료에 대해서 연결시키기 쉬운데 이 부분이야말로 인자객체가 하는 짓과 다를 바 없는 부분이라고 생각했습니다.

Continue reading ‘rest인자를 통한 인자객체의 대체’ »

Developer Book review 10.07.26

IMG_8270

ActionScript for Multiplayer Games and Virtual Worlds

엄청난 실무서인 이 책은 굉장한 내용으로 가득 차 있습니다. 시중에 실질적인 게임서버 구현책자가 흔치 않고 게다가 플래시에 맞춰진 내용은 더욱 희귀하기 때문에 10까지 커버하는 이 책의 가치는 이루 말할 수 없습니다.

따라서 말하지 않겠습니다 ^^

3D GAME TEXTURES

회사가 TAF를 통해 2D를 버리는 현 시점에서 가장 중요한 건 모델링의 품질이고 모델링의 품질에서 가장 중요한 것은 텍스쳐입니다. 텍스쳐의 개념과 어떤 방식으로 텍스쳐를 만들어 가야 하는지에 대한 개념을 알려주는군요

ActionScript 3.0 라이브러리입문

스파크팀의 이번 책은 그야말로 스파크팀의 전원이 집필한 수준입니다. 다양한 라이브러리에 대한 샘플코드가 한 가득 실려있는 책이라 그대로 따라 해보기만 하면 현재 유행(?) 중인 라이브러리를 사용해볼 수 있습니다.

Flex 3 Cookbook

꽤 나온지 오래된 책인데도 제게 없었다는 걸 깨달았습니다. 반쯤 읽어봤는데, 정말 훌륭한 책이군요. Programming Flex3와 함께 두 권을 독파하면 단지 Flex의 문제가 아니라 기업용 어플 작성에 있어서 어떠한 프레임웍구조와 상세적인 정책을 사용하는 게 좋은지에 대해 모범적인 모델을 배울 수 있을 듯 합니다.

Continue reading ‘Developer Book review 10.07.26’ »

Developer Book review 10.07.19

WRITING SOLID CODE

이전부터 명성만 듣다가 갑자기 눈에 띄어 서점에서 집어왔습니다. 명불허전. 역시 대단하군요. 이  책의 배경은 무려 도스와 IBM-PC가 주류이전인 시대입니다.

선구자적인 철학과 개념으로 가득한 프로그래밍의 교과서와도 같은 내용을 담고 있습니다. 요컨데 어느 날 갑자기 켄트백이 TDD를 생각해낸 게 아닙니다. assert는 이미 80년대 개발자들에겐 많이 사용되던 스킬로 전처리가 지원되는 언어라면 거의 이 코드가 안보이는 언어가 없었습니다.

어째서 디버그버전의 검사가 릴리즈버전과 다른지, 어떻게 디버그버전을 보다 버그없이 만들어낼 것인가에 대한 여러 가지 고민은 현대의 개발언어에서도 똑같이 통용됩니다.

제가 주로 사용하는 기본 개발 철학이 격리인데 일단 이 책 제목 자체가 solid를 포함하여 저와는 아주 궁합이 잘 맞는군요.

최근에 추천하는 디버깅 셋트 문고 시리즈에 포함시켜야겠습니다.

제가 추천해드리는 디버깅마스터 코스는 다음과 같습니다(그러고보니 회사에서만 가르치고 한 번도 블로그에서 언급한 적이 없었습니다 ^^)

맨먼스미신 → WRITING SOLID CODE → 켄트백의 테스트주도개발 → Debug It → 프로그램은 왜 실패하는가?

개념 상의 위치를 보건데 저 자리에 이 책이 들어가는군요. 참 왜 이렇게 고대인(?)들은 위대한지 모르겠습니다. 미천한 후손들은 그저 노가다나 할 뿐.

C++ 클래스와 상속

야자와 아저씨의 모든 저서는 항상 훌륭합니다. How to 시리즈로 대표되는 그의 시리즈 저서는 공통된 특징을 지니면서도 명쾌한 문체로 일관성있는 철학을 전달합니다.

국내에는 성안당이 성공과 실패를 결정하는 1% 시리즈로 역서를 출간하고 있습니다(개인적으로 왜 이런 제목을 쓴 건지 이해가 되지만 용서는 안되는 심정이랄까요^^)

일단 야자와 아저씨가 How to에서 깔고 있는 기초적인 철학은 컴터란 물리적인 하드웨어적인 측면하에서 작동하기 때문에 프로그래밍을 작성하거나 개념적인 이론을 다룰 때 반드시 그 하부구조를 이해해야 바른 결론에 도달할 수 있다는 것입니다.

당연하다고요? 당연하다면 당연하지만 전 대부분의 책이 이러한 당연함에 수렴하지 않고 응용층을 이용해 더욱 응용된 코드로 유인하며 무개념만 양산하는 샘플코드로 가득히 채우는 책들만 만나게 됩니다.

따라서 야자와사장님이 외치는 How to는 How to Use라는 답변이 아니라 How to Work? 라는 질문입니다.

책도 이에 충실하게 집필되어 그것이 그렇게 움직이는 원리를 보다 하부구조부터 알기 쉽게 차근차근 설명해갑니다.

또 삽소리를 많이 했군요 ^^;

암튼 간에 이 책은 보통 c++책보다 훨씬 재밌습니다. 전 비얀스트롭책이 아니라 프라이머스 시리즈로 c++을 처음에 배웠습니다. 그 이후 오랜 시간 후에 더욱 제게 영향을 끼친 책은 빅c++이었습니다. 하지만 c++의 역사적인 사실은 결국 비얀스트롭책에 자세하게 있어서 괜히 안보고 버텼다란 후회도 한 적이 있었습니다.

하고 싶은 말이 뭐냐면 야자와사장님의 책은 처음 c++클래스가 어떻게 해서 만들어진 건지 역사적인 사실을 매우 자세하게 코드로 설명해줍니다.

구조체에서 구조체포인터가 생겨나고 구조체 포인터를 함수에 보내기 시작하면서 OOP개념을 도입하는 과정이 어떻게 일어나는지, 결과적으로 구조체의 포인터를 공유하는 함수가 탄생하고 컴파일러 수준에서 함수와 구조체를 바인딩하게 되는 모든 과정을 상세히 설명합니다.

물론 그 이후의 자세한 c++클래스의 스펙도 하나하나 알기 쉽게 설명하는 센스는 여전합니다.

c++의 클래스는 역사적으로 가장 오래된 oop의 아버지입니다.

단지 c++의 클래스를 배우는 문제를 넘어 클래스의 본래 의미를 고찰하는 시간을 갖는 것으로서도 이 책은 충분한 매력이 넘칩니다.

그나저나 주문한 원서 2권은 아직 안왔군요. 대략 도착하면 합쳐서 리뷰를 쓰려고 했는데 곧 하나 더 쓰게 될 듯.

Error #1023: Stack overflow occurred

이거 혹시 당해 보신 적 없으신가요? 아래 코드를 실행하시면 바로 나옵니다.

Continue reading ‘Error #1023: Stack overflow occurred’ »

함수 인자의 기본값에 대해

as3는 함수의 인자를 선언할 때 기본값을 줄 수 있습니다. 기본값을 주는 의미를 명확히 이해하지 않으면 독이 되기 쉽기 때문에 한 번쯤 되짚어보는 시간을 마련했습니다.

as3에는 overload가 없다.

as3에는 overload가 없긴 하죠. 하지만 왜 overload를 사용하는지를 이해하면 딱히 없다고도 말하기 힘듭니다. 먼저 overload가 된다는 가정 하에 다음과 같은 두 개의 시그니쳐를 보죠.

Continue reading ‘함수 인자의 기본값에 대해’ »