알라딘MGG와이드바


게임 프로그래밍 패턴 Part 5 - 디커플링 패턴(Decoupling Patterns) 보충자료 개발 이야기

14장 컴포넌트(Component)

비외른(Bjorn) : 유튜브 혹은 Pronounce Names에서 비외른을 발음하는 방법을 찾아보았다. 나에게는 '뷔욘'으로 들렸지만 비외른이 우리에게 좀더 일반적인 표기라 생각해 비외른으로 썼다.

2. Ninja Coder: 어려운 일을 조용하고 깔끔하게 처리하는 실력 좋은 프로그래머
The Ninja is your team's MVP, and no one knows it. Like the legendary assassins, you do not know that The Ninja is even in the building or working, but you discover the evidence in the morning. You fire up the source control system and see that at 4 AM, The Ninja checked in code that addresses the problem you planned to spend all week working on, and you did not even know that The Ninja was aware of the project! See, while you were in Yet Another Meeting, The Ninja was working.
미국(혹은 서양) 프로그래머들이 카우보이는 폄하하고 닌자는 긍정적으로 표현한다는 점이 재미있다.


7. 컴포넌트는 단품 선택 메뉴(알 라 카르트)와 같다. 메뉴판은 선택할 수 있는 요리들의 목록이고, 손님은 기호에 따라 원하는 메뉴를 이것저것 고를 수 있다.
알 라 카르트(프랑스어: à la carte [alakaʀt], a la carte, alacarte)는 "메뉴로부터"를 뜻하는 프랑스어 구절이다. 식당에서 쓰이는 용어인데 경우에 따라 다음과 같은 것들을 가리킨다. 메인 코스 요리를 주문할 수 있을 뿐만 아니라 그것에 딸린 부수적인 요리를 추가적인 가격 지불 없이 선택하여 먹을 수 있다는 선택 사항을 뜻한다. "메뉴로부터 자유롭게 주문하라"는 뜻으로 통한다. 메뉴 순서가 미리 설정되어 있지는 않고, 여러 가지 요리 조합을 주문할 수 있다는 뜻이다. - 위키피디아

8. Voltron : 미래용사 볼트론. 혹은 고라이온, 킹라이온.
안타깝게도 미래용사 볼트론은 한 가지 방식으로만 합체할 수 있다. 합체 방식에 따라 다양하게 변하는 로봇 애니메이션을 예시로 들고 싶었으나 아직도 뭐가 좋을지 모르겠다.

9. 기업용 소프트웨어에서는 웹을 통해서 통신하도록 서비스를 디커플링하는 것을 ‘컴포넌트’ 디자인 패턴이라고 부르기도 한다.(컴포넌트 기반 개발(component based development)) : COM+, CORBA(Common Object Request Broker Architecture), SOAP 같은 게 꼭 알아야 할 기술인 시절이 있었다. 이제는 OpenAPI로 통일된 셈인가.

NuRi's Tools - iframe 변환기



큰 전기 고양이(Big Electric Cat) - 1996년 11월에 나온 Adobe Photoshop 4.0 버전의 코드명

10년 전이었나? 게임에 엔티티 시스템을 적용해 볼 수 있다는 주장을 들었을 때만 해도 뜬구름 잡는 소리라고 생각했었는데 유니티를 보고 다시 생각하게 되었다. 다만 범용성이 중요한 게임 엔진이 아닌 컨텐츠 시스템 같은 경우에는 기획 개념에 가깝게 클래스를 만드는 게 여전히 유효하다고 생각한다.

delta3d is a game and simulation engine appropriate for a wide variety of simulation and entertainment applications. delta3d uses best-of-breed open source technologies to create a fully integrated game engine and with content creation tools.

15장 이벤트 큐(Event Queue)

6. 개체가 정보를 보내고 통지를 받을 수 있는 공용 공간이 있다는 점에서, AI 분야의 흑판(blackboard) 시스템과 비슷하다.

12. 아무래도 알고리즘 연구자는 최신 자료구조를 연구하는 게 업이다 보니 기본 자료구조에 대해서는 언급을 덜 하게 된다.


18. 큐에 데이터를 넣는 작업은 여전히 평균적으로(amortized) 상수 시간 안에 가능하다.
amortized : 보통은 '분할 상환'이라고 번역하는데 회계 용어라 의미 전달이 안 될 수 있다고 생각해 영문 병기와 함께 '평균적'이라고 번역했다. amortized에 대해서는 다음 링크를 읽어보자.

서로 통신을 주고받는 상태 기계가 여러 개 있고, 각자 입력을 보류하기 위해 (우체통mailbox이라고 불리는) 소형 큐를 사용한다면, 계산 액터 모델(actor model)을 만든 셈이 된다.

16장 서비스 중개자(Service Locator)

Locator를 중개자라고 번역했다. 부동산 중개인 할 때의 그 중개자이다. 전세를 내 놓는 사람과 전세를 구하는 사람은 부동산 중개인(Service Locator)을 통해서 물건(집)을 대여한다. 집주인은 부동산 중계인에게 집(Service Provider)을 '가져다 놓'거나 '등록'하고, 세입자는 집을 '찾'는다. 부동산 중개인은 전세물건을 집주인으로부터 '받아서' 세입자에게 '알려'준다.

3. 이렇게 두 가지 다른 코드를 정해진 순서대로 실행해야만 제대로 동작하는 것을 ‘시간적 결합(temporal coupling)’이라고도 한다(『실용주의 프로그래머』(인사이트, 2014) 28장 ‘시간적 결합’ 참고)

핑백

덧글

댓글 입력 영역


Yes24위대한게임의탄생3

위대한 게임의 탄생 3
예스24 | 애드온2