Posts by Tag

cpp

Effective Modern C++ (스콧 마이어스, 2015) 독후감

2 minute read

다시 C++을 만지게 됐다. 책장에 꽂혀 있던 ’Effective Modern C++’ 책을 다시 읽었다. 예전에 읽었던 것 같은데, 새롭고 놀랐다. 나보다 더 깊이 생각한다. 여기까지 설명하겠지 하면서 읽다 보면 예상한 것보다 한 발짝 더 깊이 들어가서 설명한다. 스콧 마이어스 ...

#cpp #tr1 shared_ptr, weak_ptr

1 minute read

STL에는 auto_ptr라는 스마트 포인터가 있지만 할당하면 소멸식 복사(destructive copy)로 자원에 대한 소유권을 넘겨주는 동작을 한다. STL 알고리즘은 값에 의한 복사가 기본 동작이라서 컨테이너에 못 넣는 스마트 포인터가 되겠다. 이게 이슈가 많이 돼서 이름도 ...

#review Google C++ Style Guide

1 minute read

사실 style guide가 나와서 말인데, 나는 조엘이 엄선한 소프트웨어 블로그 베스트 29선에서 본 ’스타일은 언어 요소다 - 켄 아놀드’글을 완전 지지한다. 많은 언어가 무시하는 공백 문자를 언어 요소로 넣자고 주장하는데, 지겨운 스타일 논쟁을 완전 없앨 수 있고 파싱이 쉬워...

#cpp #idioms Nifty Counter

1 minute read

목적은 Construct On First Use와 같다. 즉, global static object, global object 초기화 순서가 명확하지 않아서 발생하는 static initialization order fiasco를 막기 위한 idiom이다.

#64bit 포팅 - 32비트 포인터들이여 안녕

less than 1 minute read

포팅을 위해 64bit로 빌드를 하면 갑자기 담배가 급하게 땡기게 된다. 수백 개의 에러를 보면 “어휴~ 이걸 언제 다 잡지?”라는 생각이 절로 든다. 하지만 다 저마다 독특한 상황에서 발생하는 에러가 아니라 에러는 수백 개라도 공통된 패턴이 있기 마련이다. viva64.com에 ...

#term memoization, 메모이제이션

less than 1 minute read

계산한 값을 메모리에 저장해서 여러 번 같은 값 계산을 피하는 최적화 기법을 메모이제이션(memoization)이라고 한다. 실행 속도와 공간을 바꾸는 가장 기초적인 기법이기도 하다. 실수로 메모리제이션이라고 하기도 하는데 메모이제이션이 정확한 용어이다.

비디오 메모리 구하기 (DirectDraw, WMI)

2 minute read

PerfHUD나 DirectX Caps Viewer로 볼 수 있지만, 비디오 메모리 사용량을 렌더링하는 게 그리 힘든 일이 아니라 보통 이 정도는 렌더링해준다. 그건 좋은데 문제는 DirectX9 인터페이스로는 사용 가능한 전용 비디오 메모리를 알 수 없는 거다. 그래서 보통 Di...

#cpp Pimpl 관용구

2 minute read

컴파일할때 파일 간의 디펜던시를 줄이려고 사용하는 관용구(idiom)이다. public 접근 권한으로 정의된 함수가 변경될 때, 이 파일을 include 하는 녀석들이 다시 컴파일되는 건 당연한데, 다른 녀석들이 못 보는 private 접근 권한의 멤버 함수나 변수가 변경될 때도 ...

#stl istreambuf_iterator, ostreambuf_iterator : 서식화(formatted)하지 않는 입출력

less than 1 minute read

사용자 입력은 서식화된 입력(공백 문자 무시 등)이 필요하지만 파일 입출력에서는 서식화된(formatted) 입력이 필요 없는 경우가 대부분이다. 서식화된 입출력은 쌩 입출력보다 처리를 하는 게 많아서 속도가 느린 게 당연하다. 공백 문자 무시 옵션을 켜도 되지만 이런 서식화 입출...

#stl 상등 관계(equality)와 동등 관계(equivalence)의 차이 파악

2 minute read

두 값이 같은가를 판단하는 두 가지 방법이 존재한다. 첫 번째 방법은 두 값이 같은지를 바로 판단하는 것이고 두 번째 방법은 작지도 않고 크지도 않다는 것을 확인해서 두 값이 같은지를 판단한다. 이 첫 번째 방법은 operator== 로 판단하는데, A == B 이면 두 값이 같다...

#stl VS 2005의 std::string 구현(딩컴웨어 STL)

1 minute read

Effective STL 항목 15에서 string이 여러 가지 방식으로 구현되어 있다는 걸 상기시키고 있다. 구현 방법까지 표준 문서에 정의하지 않았기 때문에 당연한 결과이기도 하다. VS 2005에 포함된 딩컴웨어 STL은 어떻게 구현되었나 궁금해서 찾아봤다.

#stl copy_if 알고리즘 구현

1 minute read

STL 알고리즘 이름의 _if 접미사는 술어 함수(predicate)를 인자로 받는 것을 의미한다. 이 술어 함수를 알고리즘 안에서 호출해서 돌려받은 반환 값에 따라 동작을 수행할지 말지를 결정하게 된다. 예를 들면 count_if()는 술어 함수 호출결과가 true인 원소들의 개...

#stl 정렬 알고리즘(sort, stable_sort, partial_sort, nth_element)

3 minute read

컨테이너 정렬이 필요할 때, sort를 사용하고 순서가 유지돼야 하면 stable_sort를 사용했다. partial_sort와 nth_element는 한 번도 사용해본 적이 없는데, 일부분만 정렬이 필요하거나 몇 번째 원소를 뽑을 때 유용하게 사용할 수 있을 것 같다. 예를 들면...

#stl accumulate - 수치 알고리즘

1 minute read

for_each 알고리즘으로 대체 구현이 가능한 거라 한 번도 사용해보지 않은 알고리즘이다. Effective STL 37번 항목에서 accumulate알고리즘에 대한 언급이 나오는데, 으.. 읽고 보니 좋은 걸 안 쓰고 있었구나.

#term predicate, 술어

1 minute read

predicate 발음듣기 [미] [prédikət] 【문법】 술부, 술어 (cf. SUBJECT) 【컴퓨터】 술어 구글 사전

#visualstudio - _noop 키워드

1 minute read

NOOP 혹은 NOP 로 사용하는데, NO OPerator의 줄임말이다. 말 그대로 아무런 연산을 하지 않는 명령어를 뜻한다. 표준이 아니라 VC++ 키워드라는 게 걸리는데, 다른 컴파일러에서 동작하도록 쉽게 수정할 수 있으니 포팅 걱정은 안 하고 VC++에서 편하게 써도 된다. ...

EASTL - 할당자(allocator)

2 minute read

EASTL - Electronic Arts Standard Template Library은 거대 게임 개발사인 EA가 C++ 표준 라이브러리인 STL을 게임 개발에 맞게 수정한 라이브러리이다.

이펙티브 C++ 3판 (Effective C++, 스콧 마이어스, 2015) 독후감

less than 1 minute read

2판이 있는데, 목차를 살펴보니 새로 추가된 내용이 많아서 샀다. 상당히 많은 부분이 추가 되었고 내용들도 수정되고 추가 되었다. TR1에 대한 소개도 추가되었고 템플릿쪽에 대한 얘기가 늘어났다. 두번째로 보는 C++ 책이라 불리는 책이니 책에 대한 다른 칭찬의 말은 필요도 없을 ...

#quiz 몬티 홀 문제(Monty Hall problem)

2 minute read

Suppose you’re on a game show, and you’re given the choice of threedoors: Behind one door is a car; behind the others, goats. You pick adoor, say No. 1, a...

Back to Top ↑

gdc

#gdc13 #review Loading Based on Imperfect Data

less than 1 minute read

ref graph를 활용한 load list 구축. #gdc12 Data is a Four-Letter Word 참고. 개발할 땐 loose loading, 릴리즈에선 loading list를 만들어서 사용.

#gdc12 #review Solving Rigid Body Contacts

less than 1 minute read

contact solve를 이렇게 설명할 수 있구나. NDC 12에서 발표한 게임 물리 엔진의 내부 동작 원리 이해 발표보다 훨씬 세련되게 설명한다. 한 수 배웠다. 설명 방법이 돋보였던 발표.

#gdc11 #review Anti-aliasing from a Different Perspective

less than 1 minute read

blur를 먼저하고 edge를 찾고 마스킹. 여기서 long, short edge를 구분하고 blur 커널 크기를 다르게 적용해서 original layer에 blend한다. 사진으로 보니 MLAA(morphological anti-aliasing)와 비슷한 품질이 나오고 더 빠르...

#gdc10 #review Uncharted 2 Art Direction

less than 1 minute read

윤곽을 잡는 방법이 신기했고 overdraw, 자연스러운 길 유도, … “이런 것까지 생각하는구나.” 라며 감탄.

#gdc10 #review The Asset pipeline for Just Cause 2: Lessons learned

less than 1 minute read

에셋(asset) 버전 컨트롤에 어떤 포맷을 해야 할까? 게임에서 빠르게 읽을 수 있게 최적화한 game ready data? 만약 이 포맷으로 저장한다면 maya와 같은 저작(authoring) 툴에서 export 하면 이전 변경 내용이 모두 없어진다. 특히 editor에서 ga...

#gdc12 #review GDC2012 간단 정리

1 minute read

GDC2012를 간단히 정리했다. 발표하는 분야가 넓어. 이거 다 이해하기는 무리. 잘 모르는 분야는 맛만 본다는 마음가짐으로 간단히 봤다.

#gdc11 #review 늦은 GDC2011 간단 정리

1 minute read

지금은 2012년. 그리고 올해 GDC 행사가 끝난 시점. 작년부터 틈틈이 정리하긴 했지만 질질 끌어오던 GDC2011 정리를 마무리 짓고 싶었다. 그래서 서둘러 마무리. 아직 GDC 2012 볼트가 안 열렸으니. 뭐 오케이.

Back to Top ↑

elixirlang

빈 리스트에 대한 all? 함수의 리턴 값은? - 공허참(vacuous truth)

3 minute read

Enum.all?/1 함수를 사용한 함수 테스트할 때였던 걸로 기억한다. 비어 있는 리스트를 넣어서 테스트했을 때, 기대하지 않은 값이 나와서 의아했다. 비어 있는 리스트를 인자로 넘겼을 때, false 값이 나올 것으로 기대했다. 하지만 true 로 나오는 것이었다. Enum.a...

Testing Elixir (Andrea Leopardi, Jeffrey Matthias, 2021) 독후감

5 minute read

구성이 마음에 들어서 책을 읽었다. otp, ecto schemas, ecto queries, phoenix를 테스트하는 방법이 목차에 담겨있다. 언어만 elixir로 바꾼 일반 테스팅 책이 아니라는 기대가 있었다. 하지만 막 감탄하면서 읽지는 않았다. 주제가 달라진다고 테스트하는...

#elixirlang 매크로 코드 디버깅 팁

2 minute read

Metaprogramming Elixir 책에서 간단한 예제를 가져왔다. HTML DSL(Domain-specific language)를 매크로로 구현하는 예제를 가져오고 싶었지만 멋진 만큼 설명이 많이 필요했다. 그래서 이거 매크로로 만들어서 어디에 쓸 거야? 하는 unless ...

Programming Ecto (Darin Wilson, Eric Meadows-Jonsson, 2019) 독후감

1 minute read

elixir 언어에서 표준으로 쓰는 데이터베이스 래퍼(wrapper)이자 쿼리 생성기 라이브러리인 ecto를 설명한 책이다. 잘못 사용하고 있는 게 있지 않을까? 편한 걸 놔두고 어렵게 사용하고 있지 않을까? 이런 걸 배우고 싶어서 이 책을 선택했다. 생각보단 영양가가 없었다. e...

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Programming Phoenix 1.4 (Chris McCord 외 2명, 2019) 독후감

5 minute read

elixir 언어로 만든 웹 프레임워크 phoenix를 설명한다. phoenix에 관심이 없더라도 추천하고픈 책이다. 잘 만든 웹 프레임워크를 내공 짱짱 맨들이 설명해주기 때문이다. elixir 언어를 만든 Jose Valim도 저자 중 한 명이다. 설명도 좋고 예제 코드도 좋다....

#elixirlang 언어로 #telegram 봇 만들기

1 minute read

텔레그램은 훌륭한 메신저이자 클라이언트다. 훌륭한 클라이언트가 된 건 bot api 덕분이다. 간단한 iOS 앱을 만들려고 했는데, 텍스트로 제어가 충분하다고 생각하니 텔레그램 봇으로 만들면 되겠단 생각이 들었다. 혼자 쓸 거라 만들어 본 슬랙(slack) 봇은 과하다.

#elixirlang 언어로 만든 #slack 봇을 #heroku 서비스에 배포하기

3 minute read

다음 사이드 프로젝트는 slack 봇(bot)이다. 관리 시간을 줄일 아이디어가 떠올랐다. 언어는 요즘 쓰고 있는 elixir 언어로 결정했다. 처음부터 만들어야 하는 거 아니야? 노노. 이쪽 생태계를 무시하면 안 된다. 1986년에 발표된 32살 erlang 언어가 뒤를 든든하게...

Programming Elixir 1.3 (Dave Thomas, 2016) 독후감

1 minute read

챕터 배치 신경 많이 썼네. 처음부터 pattern matching을 설명한다. = operator가 다른 것을 본다. 다른 세계에 왔구나. 이걸 처음부터 느낄 수 있었다. 그래서 그런지 아껴서 쓰는 control flow는 미루고 미루다가 뒤에 설명한다.

Back to Top ↑

review

GitLab 팀 안내서(team handbook)를 보고

3 minute read

입사하면 보게 되는 안내서. 안내서만 보면 어떤 회사인지 알 수 있다. 이렇게 호기롭게 지르고 싶지만 내가 본 안내서가 몇 개 안 될뿐더러 안내서를 공개한 회사 내부 사정을 잘 모른다. 회사 구성원은 어떤 소양을 가진 입사자를 원할까? 자기 동료에게 바라는 건 뭘까? 실상과 다르더...

#ndc_14 #review 모에론 - 김용하 (스마일게이트)

less than 1 minute read

모에. 뭔지 모르지만 익숙하다. 왜냐면 내 첫 게임 프로젝트에서 많이 쓰였기 때문이다. 모델 뷰어는 MoeView였고 월드 에디터는 MoeTanz였다. 뭔지는 모르겠지만 일반적이지 않다는 건 느꼈다. 아. 다행히 클래스 이름 접두어는 Moe가 아니었… 아니, 있었던 거 같기도 하고.

#gdc12 #review GDC2012 간단 정리

1 minute read

GDC2012를 간단히 정리했다. 발표하는 분야가 넓어. 이거 다 이해하기는 무리. 잘 모르는 분야는 맛만 본다는 마음가짐으로 간단히 봤다.

#gdc11 #review 늦은 GDC2011 간단 정리

1 minute read

지금은 2012년. 그리고 올해 GDC 행사가 끝난 시점. 작년부터 틈틈이 정리하긴 했지만 질질 끌어오던 GDC2011 정리를 마무리 짓고 싶었다. 그래서 서둘러 마무리. 아직 GDC 2012 볼트가 안 열렸으니. 뭐 오케이.

#review 그림자 생성 - 니시카와 젠지

1 minute read

간략한 shadow volume 소개와 여러 shadow mapping 알고리즘을 소개한 아티클이다. 프로그래머뿐만 아니라 게임에 관심이 있는 사람들도 읽을 수 있도록 쉽게 써서 그림자를 구현하기 전에 살짝 읽기에 좋은 글이다.

#review Google C++ Style Guide

1 minute read

사실 style guide가 나와서 말인데, 나는 조엘이 엄선한 소프트웨어 블로그 베스트 29선에서 본 ’스타일은 언어 요소다 - 켄 아놀드’글을 완전 지지한다. 많은 언어가 무시하는 공백 문자를 언어 요소로 넣자고 주장하는데, 지겨운 스타일 논쟁을 완전 없앨 수 있고 파싱이 쉬워...

#review 디자인은 죽었는가? - 마틴 파울러(Is Design Dead? - Martin Fowler)

1 minute read

종종 어떤 XPers들은 많은 디자인 활동과 디자인 패턴을 쓸모없다고 한다. 또 어떤 XP 비방자들은 XP를 디자인도 없는 짜보고 고치는(code and fix) 개발방식으로 회귀라고 말한다. 마틴 파울러(Martin Fowler)가 “어휴 둘 다 오해하고 자빠졌네.”라며 교통정리...

#review 해커 문화의 뿌리를 찾아서 - developerWorks

less than 1 minute read

최근에 SICP 스터디가 끝났는데 , SICP에서 배우는 리스프(Lisp)의 방언(dialect)인 스킴(Scheme)의 역사와 중요 개념의 소개를 다룬 글이라서 너무 재미있게 읽었다. 관심 없는 역사는 연도와 사건들의 map으로 밖에 안 느껴져서 너무 지겨운데, 관심이 있거나 지...

#review 초보 개발자를 위한 오픈 소스 라이선스 길잡이

2 minute read

특허는 … 알고리즘이 같다면 어떤 컴퓨터 언어로 표현되었는지에 상관없이 침해로 규율할 수 있기 때문이다. … 그러나 출원 및 등록유지 비용이 든다는 점이 단점이다. 이에 비해 저작권은 알고리즘이 표현된 것을 보호하므로 보호받는 범위가 좁고 프로그램 저작물을 의도적으로 보...

#review 이슈 트래커 개발자가 들려주는 이슈 트래커 이야기

2 minute read

맨티스, 버그 질라, 트랙 등 유명한 이슈 트래커가 팀 요구 사항에 맞지 않아 ECUS라는 사내 이슈 트래커를 개발하면서 겪은 경험담을 적어 놓았다. 많이 쓰이는 오픈 소스 기반의 이슈 트래커들의 장단점과 ECUS에서 어떤 걸 버리고 개선했는지에 대한 얘기를 1부에서 다뤘고 이슈 ...

Back to Top ↑

slides

Back to Top ↑

code

#cpp #tr1 shared_ptr, weak_ptr

1 minute read

STL에는 auto_ptr라는 스마트 포인터가 있지만 할당하면 소멸식 복사(destructive copy)로 자원에 대한 소유권을 넘겨주는 동작을 한다. STL 알고리즘은 값에 의한 복사가 기본 동작이라서 컨테이너에 못 넣는 스마트 포인터가 되겠다. 이게 이슈가 많이 돼서 이름도 ...

#review Google C++ Style Guide

1 minute read

사실 style guide가 나와서 말인데, 나는 조엘이 엄선한 소프트웨어 블로그 베스트 29선에서 본 ’스타일은 언어 요소다 - 켄 아놀드’글을 완전 지지한다. 많은 언어가 무시하는 공백 문자를 언어 요소로 넣자고 주장하는데, 지겨운 스타일 논쟁을 완전 없앨 수 있고 파싱이 쉬워...

#cpp #idioms Nifty Counter

1 minute read

목적은 Construct On First Use와 같다. 즉, global static object, global object 초기화 순서가 명확하지 않아서 발생하는 static initialization order fiasco를 막기 위한 idiom이다.

#term memoization, 메모이제이션

less than 1 minute read

계산한 값을 메모리에 저장해서 여러 번 같은 값 계산을 피하는 최적화 기법을 메모이제이션(memoization)이라고 한다. 실행 속도와 공간을 바꾸는 가장 기초적인 기법이기도 하다. 실수로 메모리제이션이라고 하기도 하는데 메모이제이션이 정확한 용어이다.

비디오 메모리 구하기 (DirectDraw, WMI)

2 minute read

PerfHUD나 DirectX Caps Viewer로 볼 수 있지만, 비디오 메모리 사용량을 렌더링하는 게 그리 힘든 일이 아니라 보통 이 정도는 렌더링해준다. 그건 좋은데 문제는 DirectX9 인터페이스로는 사용 가능한 전용 비디오 메모리를 알 수 없는 거다. 그래서 보통 Di...

#cpp Pimpl 관용구

2 minute read

컴파일할때 파일 간의 디펜던시를 줄이려고 사용하는 관용구(idiom)이다. public 접근 권한으로 정의된 함수가 변경될 때, 이 파일을 include 하는 녀석들이 다시 컴파일되는 건 당연한데, 다른 녀석들이 못 보는 private 접근 권한의 멤버 함수나 변수가 변경될 때도 ...

#stl istreambuf_iterator, ostreambuf_iterator : 서식화(formatted)하지 않는 입출력

less than 1 minute read

사용자 입력은 서식화된 입력(공백 문자 무시 등)이 필요하지만 파일 입출력에서는 서식화된(formatted) 입력이 필요 없는 경우가 대부분이다. 서식화된 입출력은 쌩 입출력보다 처리를 하는 게 많아서 속도가 느린 게 당연하다. 공백 문자 무시 옵션을 켜도 되지만 이런 서식화 입출...

#stl 상등 관계(equality)와 동등 관계(equivalence)의 차이 파악

2 minute read

두 값이 같은가를 판단하는 두 가지 방법이 존재한다. 첫 번째 방법은 두 값이 같은지를 바로 판단하는 것이고 두 번째 방법은 작지도 않고 크지도 않다는 것을 확인해서 두 값이 같은지를 판단한다. 이 첫 번째 방법은 operator== 로 판단하는데, A == B 이면 두 값이 같다...

#stl VS 2005의 std::string 구현(딩컴웨어 STL)

1 minute read

Effective STL 항목 15에서 string이 여러 가지 방식으로 구현되어 있다는 걸 상기시키고 있다. 구현 방법까지 표준 문서에 정의하지 않았기 때문에 당연한 결과이기도 하다. VS 2005에 포함된 딩컴웨어 STL은 어떻게 구현되었나 궁금해서 찾아봤다.

#stl copy_if 알고리즘 구현

1 minute read

STL 알고리즘 이름의 _if 접미사는 술어 함수(predicate)를 인자로 받는 것을 의미한다. 이 술어 함수를 알고리즘 안에서 호출해서 돌려받은 반환 값에 따라 동작을 수행할지 말지를 결정하게 된다. 예를 들면 count_if()는 술어 함수 호출결과가 true인 원소들의 개...

#stl 정렬 알고리즘(sort, stable_sort, partial_sort, nth_element)

3 minute read

컨테이너 정렬이 필요할 때, sort를 사용하고 순서가 유지돼야 하면 stable_sort를 사용했다. partial_sort와 nth_element는 한 번도 사용해본 적이 없는데, 일부분만 정렬이 필요하거나 몇 번째 원소를 뽑을 때 유용하게 사용할 수 있을 것 같다. 예를 들면...

#stl accumulate - 수치 알고리즘

1 minute read

for_each 알고리즘으로 대체 구현이 가능한 거라 한 번도 사용해보지 않은 알고리즘이다. Effective STL 37번 항목에서 accumulate알고리즘에 대한 언급이 나오는데, 으.. 읽고 보니 좋은 걸 안 쓰고 있었구나.

#term predicate, 술어

1 minute read

predicate 발음듣기 [미] [prédikət] 【문법】 술부, 술어 (cf. SUBJECT) 【컴퓨터】 술어 구글 사전

#visualstudio - _noop 키워드

1 minute read

NOOP 혹은 NOP 로 사용하는데, NO OPerator의 줄임말이다. 말 그대로 아무런 연산을 하지 않는 명령어를 뜻한다. 표준이 아니라 VC++ 키워드라는 게 걸리는데, 다른 컴파일러에서 동작하도록 쉽게 수정할 수 있으니 포팅 걱정은 안 하고 VC++에서 편하게 써도 된다. ...

EASTL - 할당자(allocator)

2 minute read

EASTL - Electronic Arts Standard Template Library은 거대 게임 개발사인 EA가 C++ 표준 라이브러리인 STL을 게임 개발에 맞게 수정한 라이브러리이다.

Unicode - (3) UTF-8 in Windows

3 minute read

UTF-8 문자의 크기는 그림과 같이 1-byte에서 4-byte까지 가질 수 있다. 가장 큰 특징인 기존 US-ASCII와 호환성을 위해 이런 가변 길이 인코딩을 선택했는데, 덕분에 영어는 1-byte로 표현할 수 있지만 한글은 3-byte가 필요하다. 양키들이 쓰는 US-ASC...

Unicode - (2) UTF-16(wide character) in Windows

1 minute read

Windows에서 Unicode 인코딩은 UTF-16을 기본으로 사용하고 Unicode라고 부르기보다는 wide character라고 부른다. 그래서 Windows에서 wide character는 UTF-16 character라고 생각하면 된다. wide character 자료형인...

#define D3D_DEBUG_INFO

1 minute read

Debugging시 Watch창으로 내부 변수들을 볼 수 있다. 위의 그림은 IDirect3DDevice9를 Watch창으로 본 화면. 어휴! 역시 DirectX 새로운 SDK 나오면 무조건 Document부터 다 훑어봐야 한다. 발견한 지 일주일이 안 됐지만 그전부터 사용 가능한...

#quiz 몬티 홀 문제(Monty Hall problem)

2 minute read

Suppose you’re on a game show, and you’re given the choice of threedoors: Behind one door is a car; behind the others, goats. You pick adoor, say No. 1, a...

Back to Top ↑

testing

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

예제로 보는 Property-Based Testing (feat. Kata09: Back to the Checkout)

10 minute read

’속성 기반 테스트(Property-based Testing)와 속성 정의에 도움을 주는 네 가지 방법’ 글에서 속성 기반 테스트를 간략히 살펴봤다. 대략 감은 잡겠지만 속성 기반 테스트를 짜라고 하면 막막하다. 이럴 때는 좋은 예제가 도움을 줄 수 있다.

단위 테스트 (블라디미르 코리코프, 2021) 독후감

3 minute read

단위 테스트(Unit Testing)에 관한 책을 한 권만 꼽는다면 이 책을 꼽고 싶다. 늦게 알아서 억울한 책이다. 예제가 C#이지만 자신이 사용하는 언어와 상관없이 읽으면 도움이 되는 내용들로 가득하다.

단위 테스트가 의미 있는 코드 유형은 뭘까? 통합 테스트는?

3 minute read

’단위 테스트 (블라디미르 코리코프, 2021)’ 책의 ’7장 가치 있는 단위 테스트를 위한 리팩터링’을 보고 정리한 내용이다. 모든 코드를 테스트할 수는 없다. 그래서 중요하고 의미 있는 영역부터 테스트를 짜야 한다. 중요한 영역부터 시작해 덜 중요한 영역까지 테스트 커버리지를 ...

Testing Elixir (Andrea Leopardi, Jeffrey Matthias, 2021) 독후감

5 minute read

구성이 마음에 들어서 책을 읽었다. otp, ecto schemas, ecto queries, phoenix를 테스트하는 방법이 목차에 담겨있다. 언어만 elixir로 바꾼 일반 테스팅 책이 아니라는 기대가 있었다. 하지만 막 감탄하면서 읽지는 않았다. 주제가 달라진다고 테스트하는...

#testing #bash 간단한 assert

less than 1 minute read

팀 패스워드 관리 프로그램 tpass 개발하면서 간단하게 만들어서 썼다. 독립된 환경을 가진 유저 2 명으로 테스트를 해야 했기 때문에 테스트 환경에 공을 들였다. 독립된 환경을 구축하는 데 docker를 사용했다. 스크립트 언어로 bash를 사용했다.

xUnit 테스트 패턴 (제라드 메스자로스, 2010) 독후감

1 minute read

테스트 코드도 계속 관리해야 하는 코드다. 릴리즈 빌드에 포함이 안 된다고 해서 악취가 진동하게 놔뒀다가는 하나만 고쳐도 엄청나게 많은 테스트 코드가 깨지는 등 감당을 못하게 된다. 좋자고 하는 건데, 테스트 코드가 오히려 병목이 될 수도 있다. ’Invoice를 테스트하려니깐 C...

Working Effectively With Legacy Code (Michael Feathers, 2004) 독후감

1 minute read

TDD(Test-Driven Development, 테스트 주도 개발)를 처음 접했을 때, 개발 방법이 충격적이었다. 테스트를 먼저 추가하면서 시작되는 TDD의 리듬을 타면 테스트가 바탕이 된 매우 견고한 코드로 갈 수 있을 것 같다. 하지만 낯선 개발 방법에 적용하는 시간과 노력...

Back to Top ↑

patterns

프로그래머의 길, 멘토에게 묻다 (데이브 후버, 애디웨일 오시나이, 2010) 독후감

1 minute read

책 제목 보고 이 책 안 사려고 했다. 책 제목이 마음에 안 든다. 아꿈사 스터디 책으로 선정돼서 어쩔 수 없이 사긴 했지만 그닥 내키진 않았다. 예전에 읽었던 ’사랑하지 않으면 떠나라’와 비슷해 보였고 어디서 긁어모은 멋진 말들로 도배된 책에 질려 있었는데, 제목을 보니 딱 멋진...

xUnit 테스트 패턴 (제라드 메스자로스, 2010) 독후감

1 minute read

테스트 코드도 계속 관리해야 하는 코드다. 릴리즈 빌드에 포함이 안 된다고 해서 악취가 진동하게 놔뒀다가는 하나만 고쳐도 엄청나게 많은 테스트 코드가 깨지는 등 감당을 못하게 된다. 좋자고 하는 건데, 테스트 코드가 오히려 병목이 될 수도 있다. ’Invoice를 테스트하려니깐 C...

Design Patterns (Erich Gamma 외 2인, 1994) 독후감

less than 1 minute read

원조. 뭔 말이 더 필요할까? 읽기가 딱딱해서 그렇지 사실 여기 있는 내용을 이해하기 쉽게 풀어놓은 책이 태반이다. 결국 그 말은 이 책에 있는 내용 이상을 쓴 책이 잘 없다는 뜻. 다른 책을 먼저 읽다가 “아~ 이런 시각을 가질 수 있구나!”라고 생각한 항목이 몇 개 있었는데, ...

#review 디자인은 죽었는가? - 마틴 파울러(Is Design Dead? - Martin Fowler)

1 minute read

종종 어떤 XPers들은 많은 디자인 활동과 디자인 패턴을 쓸모없다고 한다. 또 어떤 XP 비방자들은 XP를 디자인도 없는 짜보고 고치는(code and fix) 개발방식으로 회귀라고 말한다. 마틴 파울러(Martin Fowler)가 “어휴 둘 다 오해하고 자빠졌네.”라며 교통정리...

Head First Design Patterns (에릭 프리먼 외, 2005) 독후감

less than 1 minute read

“IT 서적이 이런식으로 쓰일 수도 있구나!” 처음 한 챕터를 읽고 난 뒤에 충격을 받았다. 기술서적으로는 항상 딱딱한 구성의 책만 보아왔고, 또 당연히 그렇다고 생각했는데 말이다. 이런 구성과 설명이 내 뇌를 어떻게 자극하는지는 모르지만, 분명한 건 이런 구성이 나한테는 꽤 잘 ...

Back to Top ↑

gdc13

#gdc13 #review Loading Based on Imperfect Data

less than 1 minute read

ref graph를 활용한 load list 구축. #gdc12 Data is a Four-Letter Word 참고. 개발할 땐 loose loading, 릴리즈에선 loading list를 만들어서 사용.

Back to Top ↑

stl

#cpp #tr1 shared_ptr, weak_ptr

1 minute read

STL에는 auto_ptr라는 스마트 포인터가 있지만 할당하면 소멸식 복사(destructive copy)로 자원에 대한 소유권을 넘겨주는 동작을 한다. STL 알고리즘은 값에 의한 복사가 기본 동작이라서 컨테이너에 못 넣는 스마트 포인터가 되겠다. 이게 이슈가 많이 돼서 이름도 ...

#stl istreambuf_iterator, ostreambuf_iterator : 서식화(formatted)하지 않는 입출력

less than 1 minute read

사용자 입력은 서식화된 입력(공백 문자 무시 등)이 필요하지만 파일 입출력에서는 서식화된(formatted) 입력이 필요 없는 경우가 대부분이다. 서식화된 입출력은 쌩 입출력보다 처리를 하는 게 많아서 속도가 느린 게 당연하다. 공백 문자 무시 옵션을 켜도 되지만 이런 서식화 입출...

#stl 상등 관계(equality)와 동등 관계(equivalence)의 차이 파악

2 minute read

두 값이 같은가를 판단하는 두 가지 방법이 존재한다. 첫 번째 방법은 두 값이 같은지를 바로 판단하는 것이고 두 번째 방법은 작지도 않고 크지도 않다는 것을 확인해서 두 값이 같은지를 판단한다. 이 첫 번째 방법은 operator== 로 판단하는데, A == B 이면 두 값이 같다...

#stl VS 2005의 std::string 구현(딩컴웨어 STL)

1 minute read

Effective STL 항목 15에서 string이 여러 가지 방식으로 구현되어 있다는 걸 상기시키고 있다. 구현 방법까지 표준 문서에 정의하지 않았기 때문에 당연한 결과이기도 하다. VS 2005에 포함된 딩컴웨어 STL은 어떻게 구현되었나 궁금해서 찾아봤다.

#stl copy_if 알고리즘 구현

1 minute read

STL 알고리즘 이름의 _if 접미사는 술어 함수(predicate)를 인자로 받는 것을 의미한다. 이 술어 함수를 알고리즘 안에서 호출해서 돌려받은 반환 값에 따라 동작을 수행할지 말지를 결정하게 된다. 예를 들면 count_if()는 술어 함수 호출결과가 true인 원소들의 개...

#stl 정렬 알고리즘(sort, stable_sort, partial_sort, nth_element)

3 minute read

컨테이너 정렬이 필요할 때, sort를 사용하고 순서가 유지돼야 하면 stable_sort를 사용했다. partial_sort와 nth_element는 한 번도 사용해본 적이 없는데, 일부분만 정렬이 필요하거나 몇 번째 원소를 뽑을 때 유용하게 사용할 수 있을 것 같다. 예를 들면...

#stl accumulate - 수치 알고리즘

1 minute read

for_each 알고리즘으로 대체 구현이 가능한 거라 한 번도 사용해보지 않은 알고리즘이다. Effective STL 37번 항목에서 accumulate알고리즘에 대한 언급이 나오는데, 으.. 읽고 보니 좋은 걸 안 쓰고 있었구나.

#term predicate, 술어

1 minute read

predicate 발음듣기 [미] [prédikət] 【문법】 술부, 술어 (cf. SUBJECT) 【컴퓨터】 술어 구글 사전

EASTL - 할당자(allocator)

2 minute read

EASTL - Electronic Arts Standard Template Library은 거대 게임 개발사인 EA가 C++ 표준 라이브러리인 STL을 게임 개발에 맞게 수정한 라이브러리이다.

Back to Top ↑

pragmatic

macOS 화면 공유(feat. Tailscale)

1 minute read

맥 미니(Mac mini M2, 2023)를 꺼본 적이 없다. 매직 트랙패드(Magic Trackpad) 2를 손가락으로 간지럽히면 언제든 깨어난다. 팬이 있는지도 모르겠다. 이게 다 조용해서 그렇다.

마음에 드는 #gitlab todos

less than 1 minute read

참 애정하는 기능이다. Todo를 모아서 보여준다. 나를 맨션(@mention) 하거나 담당자로 지정하면 자동으로 Todo 항목이 된다. 물론 이슈에 있는 Add Todo 버튼을 눌러 직접 추가할 수도 있다.

실용주의 사고와 학습 (앤디 헌트, 2010) 독후감

3 minute read

많은 HR은 아직 잘 모르고 있지만 사실 자바, 루비, .NET, 혹은 아이폰 SDK를 아는지 모르는지는 별로 중요하지 않습니다. 배워야 할 신기술이나 예전 기술의 새 버전은 끊임없이 등장합니다. 기술 자체는 별로 중요하지 않습니다. 중요한 것은 지속적으로 배우는 것입니다.

실용주의 프로그래머 (데이비드 토머스, 앤드류 헌트, 2005) 독후감

1 minute read

실용주의 프로그래머는 무엇이 다른가? 우리는 태도와 스타일 그리고 문제와 해법에 접근하는 철학에 차이가 있다고 생각한다. 그들은 직면한 문제 너머를 생각하며, 문제를 항상 더 큰 맥락에 놓으려 노력하고, 항상 더 큰 그림을 보려 한다. 어쨌건 이런 더 큰 맥락 없이 도대체 어...

CapsLock! 자네에게 어울리는 자리는 그곳이 아닐세

less than 1 minute read

사실 이제까지 아무런 불평불만 없이 잘 써왔다. Lisp를 틈틈이 배우고 있는데, 가장 잘 어울리는 환경이 Emacs라서 설치하고 도움말을 찾아봤다. 그런데 얼씨구! 키 입력에 왜 이리 컨트롤 키(Ctrl)가 많은지 모르겠다. 같이 누르기가 너무 불편하다. 단축키를 배정한 사람이 ...

큐브 - 머리가 안 돌아가면 이거라도 돌려야지

less than 1 minute read

머리로 하는 직업인데, 머리가 안 돌아가면 정말 막막하다. XP의 아버지 켄트 벡(Kent Beck)은 머리가 안 돌아갈 때 밖에 나가서 톱질한다고 한다. 육체적인 움직임이 머리를 돌리는데 도움을 준다는 얘기인데, 여기저기 찾아볼 필요없이 내 경험만 들추어봐도 이런 경험을 한 경우...

Back to Top ↑

git

#git merge 커밋 리버트(revert)

2 minute read

merge 한 커밋(commit)이 잘못됐다. push 해버려서 amend는 불가능. amend 가능해도 못하겠네. 꽤 복잡한 문제라서 revert를 하고 찬찬히 봐야겠다.

#git object model을 보니 clojure persistent vector가 생각났다

less than 1 minute read

이런 persistent vector가 있다. 왜 persistent인가 하면 vector가 생성된 후, 변경할 수 없기 때문이다. 즉, 4를 5로 바꾸고 싶다면 5를 생성해 간선(edge)으로 연결하고 4를 연결하는 간선을 제거한 새로운 vector를 생성해야 한다.

Back to Top ↑

github

프로젝트 템플릿을 모아두는 github 저장소를 만들었다

less than 1 minute read

최근 elixir 프로젝트를 몇 개 진행하며 프로젝트 템플릿을 모아두는 github 저장소를 만들어야겠다고 생각했다. 매번 필요한 스크립트를 이전 프로젝트 디렉터리를 뒤져서 복사해서 사용했기 때문이다. 그냥 가져다 쓰는 경우도 있지만 수정하거나 추가하는 경우도 있다. 갱신한 스크립...

Back to Top ↑

game-dev

#graphics The Unique Lighting of Mirror

less than 1 minute read

에디터에서 커브(curve)로 색 보정(color correction)을 할 수 있다. R, G, B, 휘도(luminance) 커브를 지원한다. 결과를 실시간으로 확인할 수 있다. 이게 가장 큰 장점. 인터페이스도 아티스트에게 친숙한 커브다.

Game Engine Architecture (Jason Gregory, 2009) 독후감

less than 1 minute read

게임 엔진에 관한 모든 부분을 다룬다. foundation layer부터 rendering, animation, physics, … 보면서 Real-time Rendering과 Code Complete가 생각났다. 주제는 다르지만, 책 성격이 비슷하기 때문이다. 타겟팅 공격보다는 ...

위대한 게임의 탄생 (Michael Thornton Wyman, 2011) 독후감

4 minute read

살아 있는 교훈이 담긴 게임 개발 포스트모템 모음집. 포스트모템이라도 잘 모르는 게임이면 재미가 덜하다. 구현한 콘텐츠를 예로 들어도 무슨 얘기인지 알아먹기도 어렵고. 하지만 이 책은 그런 걱정 없다. 진짜 유명하고 성공한 게임 이야기가 담겨 있으니. WoW, HL2, Unchar...

Back to Top ↑

clojure

#git object model을 보니 clojure persistent vector가 생각났다

less than 1 minute read

이런 persistent vector가 있다. 왜 persistent인가 하면 vector가 생성된 후, 변경할 수 없기 때문이다. 즉, 4를 5로 바꾸고 싶다면 5를 생성해 간선(edge)으로 연결하고 4를 연결하는 간선을 제거한 새로운 vector를 생성해야 한다.

Back to Top ↑

ux

#ux 초보자에게 너무 편한 구글 크롬 빈 페이지 UI

less than 1 minute read

처음 봤을 때, 그냥 괜찮은 디자인처럼 보였다. 나는 Ctrl+L 로 주소창을 열고 URL 주소를 타이핑해서 사이트를 찾아가기 때문에, 저런 인터페이스는 그냥 예쁜 인터페이스에 불과했다. 키보드에 얹은 손을 마우스로 다시 옮기기도 귀찮아서 키보드로 할 수 있는 건 웬만하면 다 키보...

Back to Top ↑

graphics

#graphics The Unique Lighting of Mirror

less than 1 minute read

에디터에서 커브(curve)로 색 보정(color correction)을 할 수 있다. R, G, B, 휘도(luminance) 커브를 지원한다. 결과를 실시간으로 확인할 수 있다. 이게 가장 큰 장점. 인터페이스도 아티스트에게 친숙한 커브다.

Real-Time Rendering (토마스 아케나인 몰러, 2003) 독후감

less than 1 minute read

이 책은 사이트맵과 같다. 실시간 렌더링에 관한 지식을 참 꼼꼼하게도 군데군데 구석구석 잘 퍼트려 놨는데, 그걸 잘 정리해주기 때문이다. 물론 하나하나 자세하게 설명하진 않는다. 그래 맞아. 사이트맵이 그러면 안 돼. 대신 핵심을 이해할 수 있게 설명한다. 그래서 그런지 설명을 좀...

#review 그림자 생성 - 니시카와 젠지

1 minute read

간략한 shadow volume 소개와 여러 shadow mapping 알고리즘을 소개한 아티클이다. 프로그래머뿐만 아니라 게임에 관심이 있는 사람들도 읽을 수 있도록 쉽게 써서 그림자를 구현하기 전에 살짝 읽기에 좋은 글이다.

Back to Top ↑

gdc11

#gdc11 #review Anti-aliasing from a Different Perspective

less than 1 minute read

blur를 먼저하고 edge를 찾고 마스킹. 여기서 long, short edge를 구분하고 blur 커널 크기를 다르게 적용해서 original layer에 blend한다. 사진으로 보니 MLAA(morphological anti-aliasing)와 비슷한 품질이 나오고 더 빠르...

#gdc11 #review 늦은 GDC2011 간단 정리

1 minute read

지금은 2012년. 그리고 올해 GDC 행사가 끝난 시점. 작년부터 틈틈이 정리하긴 했지만 질질 끌어오던 GDC2011 정리를 마무리 짓고 싶었다. 그래서 서둘러 마무리. 아직 GDC 2012 볼트가 안 열렸으니. 뭐 오케이.

Back to Top ↑

gdc12

#gdc12 #review Solving Rigid Body Contacts

less than 1 minute read

contact solve를 이렇게 설명할 수 있구나. NDC 12에서 발표한 게임 물리 엔진의 내부 동작 원리 이해 발표보다 훨씬 세련되게 설명한다. 한 수 배웠다. 설명 방법이 돋보였던 발표.

#gdc12 #review GDC2012 간단 정리

1 minute read

GDC2012를 간단히 정리했다. 발표하는 분야가 넓어. 이거 다 이해하기는 무리. 잘 모르는 분야는 맛만 본다는 마음가짐으로 간단히 봤다.

Back to Top ↑

asset

#gdc13 #review Loading Based on Imperfect Data

less than 1 minute read

ref graph를 활용한 load list 구축. #gdc12 Data is a Four-Letter Word 참고. 개발할 땐 loose loading, 릴리즈에선 loading list를 만들어서 사용.

#gdc10 #review The Asset pipeline for Just Cause 2: Lessons learned

less than 1 minute read

에셋(asset) 버전 컨트롤에 어떤 포맷을 해야 할까? 게임에서 빠르게 읽을 수 있게 최적화한 game ready data? 만약 이 포맷으로 저장한다면 maya와 같은 저작(authoring) 툴에서 export 하면 이전 변경 내용이 모두 없어진다. 특히 editor에서 ga...

Back to Top ↑

ndc

#ndckr 들은 발표 간단 리뷰 - 2017

2 minute read

관심사가 한쪽으로 몰려있다. 이번엔 가능하면 관심사에서 벗어나는 주제를 다룬 발표를 선택했다. ndc 아니면 언제 듣겠나 싶어서.

#ndc_14 #review 모에론 - 김용하 (스마일게이트)

less than 1 minute read

모에. 뭔지 모르지만 익숙하다. 왜냐면 내 첫 게임 프로젝트에서 많이 쓰였기 때문이다. 모델 뷰어는 MoeView였고 월드 에디터는 MoeTanz였다. 뭔지는 모르겠지만 일반적이지 않다는 건 느꼈다. 아. 다행히 클래스 이름 접두어는 Moe가 아니었… 아니, 있었던 거 같기도 하고.

Back to Top ↑

imo

#jekyll 워드프레스에서 지킬로 본진 이동

1 minute read

본진 programming notes 블로그 툴을 wordpress에서 jekyll로 바꿨다. 덩치가 있어 핫 하다고 무턱대고 바꾸기가 망설여진다. 그래서 개인 프로젝트 개발 일기 블로그 툴로 사용해봤다. 쓸만한가? 만족. 전진기지 안정화에 성공했으니 이제 본진에 신경 쓸 차례다.

#ndc_14 #review 모에론 - 김용하 (스마일게이트)

less than 1 minute read

모에. 뭔지 모르지만 익숙하다. 왜냐면 내 첫 게임 프로젝트에서 많이 쓰였기 때문이다. 모델 뷰어는 MoeView였고 월드 에디터는 MoeTanz였다. 뭔지는 모르겠지만 일반적이지 않다는 건 느꼈다. 아. 다행히 클래스 이름 접두어는 Moe가 아니었… 아니, 있었던 거 같기도 하고.

#yahoopipes 로 여러 #rss 피드 대통합

less than 1 minute read

yahoo pipes를 사용하면 된다. 편하네. 예전에 알았던 야후 파이프를 이제야 써먹어 본다. 복잡하지 않으면 그래프 기반 다이어그램처럼 직관적인 게 따로 없다. 내가 만든 파이프.

Back to Top ↑

naming

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

Back to Top ↑

naughty-dog

#bts #review 언차티드 4(Uncharted) 메이킹 영상

less than 1 minute read

언차티드 1을 만들기 시작했을 때는 스튜디오에 젊은 사람들이 많았습니다. 대다수가 이 업계에서 일을 시작한 것이 20대 초반 무렵이었습니다. 시작 무렵에 주인공과 인물들 모두 20대 초반의 나이였어요. [.] 게임을 비롯해 예술 분야가 반영하는 것은 창작자의 내면이...

#gdc10 #review Uncharted 2 Art Direction

less than 1 minute read

윤곽을 잡는 방법이 신기했고 overdraw, 자연스러운 길 유도, … “이런 것까지 생각하는구나.” 라며 감탄.

#bts 언차티드 2(Uncharted) 메이킹 영상

1 minute read

저희는 관리와 회의, 장문의 전자우편을 별로 좋아하지 않습니다. 게임에서 뭔가 고치고 싶으면 허락을 받는 게 아니라 일단 멋지게 고쳐놓고 보는 거죠.

Back to Top ↑

game-design

Back to Top ↑

visual-studio

#visualstudio - _noop 키워드

1 minute read

NOOP 혹은 NOP 로 사용하는데, NO OPerator의 줄임말이다. 말 그대로 아무런 연산을 하지 않는 명령어를 뜻한다. 표준이 아니라 VC++ 키워드라는 게 걸리는데, 다른 컴파일러에서 동작하도록 쉽게 수정할 수 있으니 포팅 걱정은 안 하고 VC++에서 편하게 써도 된다. ...

Back to Top ↑

shaderx

Back to Top ↑

math

빈 리스트에 대한 all? 함수의 리턴 값은? - 공허참(vacuous truth)

3 minute read

Enum.all?/1 함수를 사용한 함수 테스트할 때였던 걸로 기억한다. 비어 있는 리스트를 넣어서 테스트했을 때, 기대하지 않은 값이 나와서 의아했다. 비어 있는 리스트를 인자로 넘겼을 때, false 값이 나올 것으로 기대했다. 하지만 true 로 나오는 것이었다. Enum.a...

이산수학 (Judith L. Gersting, 2004) 독후감

less than 1 minute read

정말 오랜만에 보는 이산수학. 책을 보는 내내 연습문제 숙제로 시달리던 대학교 생각이 났다. 이 책도 더럽게 연습문제 많더라. 처음엔 연습문제와 같이 있는 프로그래밍 문제도 같이 풀려고 했는데, 보는데 조급해서 풀어보진 않았다. 예제를 열심히 보는 것에 만족.

게임 & 인터랙티브 애플리케이션을 위한 수학 (James M. Van Verth, 2008) 독후감

less than 1 minute read

간혹 수학이 발목을 잡을 때가 있어서 수학 책을 한 권 봐야겠다 싶었던 차에 눈에 띈 책이다. 선형 대수부터 셰이딩, 조명, 래스터화, 강체 역학까지 게임에 필요한 기초 수학은 다 다루고 있다. 자세히 설명을 안 하고 넘어가는 게 간혹 있지만 대부분 충실히 설명하고 있다. 다행히 ...

Back to Top ↑

gdc10

#gdc10 #review Uncharted 2 Art Direction

less than 1 minute read

윤곽을 잡는 방법이 신기했고 overdraw, 자연스러운 길 유도, … “이런 것까지 생각하는구나.” 라며 감탄.

#gdc10 #review The Asset pipeline for Just Cause 2: Lessons learned

less than 1 minute read

에셋(asset) 버전 컨트롤에 어떤 포맷을 해야 할까? 게임에서 빠르게 읽을 수 있게 최적화한 game ready data? 만약 이 포맷으로 저장한다면 maya와 같은 저작(authoring) 툴에서 export 하면 이전 변경 내용이 모두 없어진다. 특히 editor에서 ga...

Back to Top ↑

jekyll

pass, expect 프로그램과 함께한 #jekyll 블로그 deploy 스크립트

2 minute read

static 블로깅 툴인 jekyll은 직접 빌드를 해야 한다. 빌드 결과물인 html, css 파일을 웹호스팅 서버로 배포한다. 이걸 수동으로 하고 있었다. script/build 스크립트로 빌드하고 filezilla로 업로드하고 있다. 언젠가는 aws로 옮기고 push hook...

#jekyll 워드프레스에서 지킬로 본진 이동

1 minute read

본진 programming notes 블로그 툴을 wordpress에서 jekyll로 바꿨다. 덩치가 있어 핫 하다고 무턱대고 바꾸기가 망설여진다. 그래서 개인 프로젝트 개발 일기 블로그 툴로 사용해봤다. 쓸만한가? 만족. 전진기지 안정화에 성공했으니 이제 본진에 신경 쓸 차례다.

Back to Top ↑

uncharted

#bts #review 언차티드 4(Uncharted) 메이킹 영상

less than 1 minute read

언차티드 1을 만들기 시작했을 때는 스튜디오에 젊은 사람들이 많았습니다. 대다수가 이 업계에서 일을 시작한 것이 20대 초반 무렵이었습니다. 시작 무렵에 주인공과 인물들 모두 20대 초반의 나이였어요. [.] 게임을 비롯해 예술 분야가 반영하는 것은 창작자의 내면이...

#gdc10 #review Uncharted 2 Art Direction

less than 1 minute read

윤곽을 잡는 방법이 신기했고 overdraw, 자연스러운 길 유도, … “이런 것까지 생각하는구나.” 라며 감탄.

#bts 언차티드 2(Uncharted) 메이킹 영상

1 minute read

저희는 관리와 회의, 장문의 전자우편을 별로 좋아하지 않습니다. 게임에서 뭔가 고치고 싶으면 허락을 받는 게 아니라 일단 멋지게 고쳐놓고 보는 거죠.

Back to Top ↑

postmortem

위대한 게임의 탄생 (Michael Thornton Wyman, 2011) 독후감

4 minute read

살아 있는 교훈이 담긴 게임 개발 포스트모템 모음집. 포스트모템이라도 잘 모르는 게임이면 재미가 덜하다. 구현한 콘텐츠를 예로 들어도 무슨 얘기인지 알아먹기도 어렵고. 하지만 이 책은 그런 걱정 없다. 진짜 유명하고 성공한 게임 이야기가 담겨 있으니. WoW, HL2, Unchar...

Back to Top ↑

bot

강렬했던 텔레그램 BotFather와의 첫 만남

less than 1 minute read

BotFather. 크. 네이밍 보소. godfather. 텔레그램 봇을 만드려면 반드시 만나야 하는 봇이다. 처음 텔레그램 봇을 만들 때, BotFather와의 만남은 강렬했다. 만들 봇 이름, 설명 등을 적는 웹페이지를 기대했다. 하지만 텔레그램은 봇을 만들 때, 모범 사례(b...

#elixirlang 언어로 #telegram 봇 만들기

1 minute read

텔레그램은 훌륭한 메신저이자 클라이언트다. 훌륭한 클라이언트가 된 건 bot api 덕분이다. 간단한 iOS 앱을 만들려고 했는데, 텍스트로 제어가 충분하다고 생각하니 텔레그램 봇으로 만들면 되겠단 생각이 들었다. 혼자 쓸 거라 만들어 본 슬랙(slack) 봇은 과하다.

#elixirlang 언어로 만든 #slack 봇을 #heroku 서비스에 배포하기

3 minute read

다음 사이드 프로젝트는 slack 봇(bot)이다. 관리 시간을 줄일 아이디어가 떠올랐다. 언어는 요즘 쓰고 있는 elixir 언어로 결정했다. 처음부터 만들어야 하는 거 아니야? 노노. 이쪽 생태계를 무시하면 안 된다. 1986년에 발표된 32살 erlang 언어가 뒤를 든든하게...

Back to Top ↑

management

몽키 비즈니스 (윌리엄 언컨 3세, 2001) 독후감

4 minute read

매니저(manager)는 개인 기여자(Individual Contributor, IC, 팀원) 여러 명을 관리해야 한다. 일 대 다 관계이다. 그 말인즉슨 항상 병목이 될 수 있다는 걸 명심하고 있어야 한다. 여유 좀 부려서 팀원이 내 결정을 기다리게 했다가는 삽시간에 내가 병목이...

HARD CODE (에릭 브레히너, 2009) 독후감

2 minute read

마이크로 소프트(MS)가 어떻게 프로젝트, 사람을 관리하는지 살짝 엿볼 수 있는 책이다. 어떤 책인고 하니 MS에서 개발 혁신 부서장을 맡은 에릭 브레히너가 사내 웹진에 올린 글들을 묶어 놓은 책이다. 이 사람도 미지근하게 글을 안 쓴다. 한 마디로 깔건 확실하게 까는 스타일이지.

데드라인 (톰 디마르코, 2004) 독후감

less than 1 minute read

“강사님은 지금 사람 선별법, 작업 할당, 동기 부여, 팀 구성 같이 관리에서 가장 필수적인 네 가지 기본사항은 전혀 다루지도 않으면서 관리의 자연과학적인 부분을 우리에게 가르치시겠다는 건가요?” “강사님은 그 네 가지를 빠뜨린 과정을 가지고 ‘프로젝트 관리’라고 부르고...

똑똑하고 100배 일 잘하는 개발자 모시기 (조엘 스폴스키, 2007) 독후감

1 minute read

조엘 온 소프트웨어를 보고 느낀 것이 많아서 새로운 책이 나왔다길래 닥치고 구입했다. 조엘 온 소프트웨어를 읽었을 때의 즐거움을 다시 느껴보고 싶었고 글 제목만 얼핏 보면 개발자를 뽑는 사람에게만 도움이 될 것 같지만 개발자로서 어떤 개발자를 모시고 싶어하는지 아는 것도 무척이나 ...

Back to Top ↑

unicode

Unicode - (3) UTF-8 in Windows

3 minute read

UTF-8 문자의 크기는 그림과 같이 1-byte에서 4-byte까지 가질 수 있다. 가장 큰 특징인 기존 US-ASCII와 호환성을 위해 이런 가변 길이 인코딩을 선택했는데, 덕분에 영어는 1-byte로 표현할 수 있지만 한글은 3-byte가 필요하다. 양키들이 쓰는 US-ASC...

Unicode - (2) UTF-16(wide character) in Windows

1 minute read

Windows에서 Unicode 인코딩은 UTF-16을 기본으로 사용하고 Unicode라고 부르기보다는 wide character라고 부른다. 그래서 Windows에서 wide character는 UTF-16 character라고 생각하면 된다. wide character 자료형인...

Unicode - (1) 개념

1 minute read

모든 문자에 고윳값을 할당하는 테이블을 만드는 프로젝트가 유니코드 컨소시엄과 ISO 10646에 의해 시작됐다. 문제는 하나의 단체가 아니라 두 단체라는 거. 이거 다 편하자고 하는 일인데, 다른 두 개의 테이블이 만드는 것은 모든 사람이 원하지 않는 일이라는 것을 알고 같은 문자...

Back to Top ↑

windows

이메일은 언제 확인하나? / 2018-06

less than 1 minute read

모든 이메일에 데스크톱 알림을 띄우고 이메일이 오는 족족 확인해서 답장을 해주면 다른 업무는 안 하고 메일만 기다리는 사람은 바로 일을 시작할 수 있다. 하지만 이렇게 확인해서야 프로그래밍이 불가능하다. 인터럽트가 너무 많다. 프로그래밍에는 그냥 시간이 아닌 연속된 시간이 필요하다...

비디오 메모리 구하기 (DirectDraw, WMI)

2 minute read

PerfHUD나 DirectX Caps Viewer로 볼 수 있지만, 비디오 메모리 사용량을 렌더링하는 게 그리 힘든 일이 아니라 보통 이 정도는 렌더링해준다. 그건 좋은데 문제는 DirectX9 인터페이스로는 사용 가능한 전용 비디오 메모리를 알 수 없는 거다. 그래서 보통 Di...

Back to Top ↑

term

Elixir 언어에서 Behaviour란?

9 minute read

Elixir에서 Behaviour란 용어가 나온다. Erlang의 어깨 위에 올라서서 만든 언어라 Erlang에서 사용하는 Bahaviour라는 용어를 그대로 가져온 것 같다. C++의 pure virtual function만 정의한 클래스 혹은 C#의 interface와 비슷한 ...

#term memoization, 메모이제이션

less than 1 minute read

계산한 값을 메모리에 저장해서 여러 번 같은 값 계산을 피하는 최적화 기법을 메모이제이션(memoization)이라고 한다. 실행 속도와 공간을 바꾸는 가장 기초적인 기법이기도 하다. 실수로 메모리제이션이라고 하기도 하는데 메모이제이션이 정확한 용어이다.

#term predicate, 술어

1 minute read

predicate 발음듣기 [미] [prédikət] 【문법】 술부, 술어 (cf. SUBJECT) 【컴퓨터】 술어 구글 사전

Back to Top ↑

debugging

WRITING SOLID CODE (Steve Maguire, 2001) 독후감

less than 1 minute read

이 책을 처음 본 게 언젠지 기억나지 않는다. 책에 줄이 그어진 걸 보니, 그 시점 이전인 것 같다. 언젠가부터 책에 메모를 안 하고 포스트잇을 사용하기 시작했거든. 최근 다시 볼 기회가 생겨서 글을 남긴다.

Debug It! 실용주의 디버깅 (폴 부처, 2010) 독후감

1 minute read

정석 맞다. 이런 책이 늦게 나온 게 아쉽다. 읽으니깐 신입 프로그래머 시절에 하던 디버깅 방법이 생각났다. 제대로 재현도 하지 않고 코드를 읽다가 의심되는 곳을 발견하면 수정. 실행해서 버그가 발생하지 않으면 ’고쳤구나!’. 제대로 넘어갈 리가 있나. 당장 다른 곳에서 문제가 안...

실전 윈도우 디버깅 (Mario Hewardt, Daniel Pravat, 2008) 독후감

less than 1 minute read

아꿈사에서 <프로그램은 왜 실패하는가?>라는 디버깅 책을 공부했었다. 이 책이 끝나고 난 뒤, 너무 이론에 치우쳐 있어서 아쉬우니 실전에서 쓸 수 있는 경험들이 담긴 디버깅 서적을 공부하자고 했다. 고르고 고르던 중에 걸린 이 책. 윈도우 시스템에 관한 이야기도 많아서 ...

프로그램은 왜 실패하는가? (Andreas Zeller, 2006) 독후감

less than 1 minute read

프로그래머가 만든 결함(defect)에 의해 프로그램 상태가 감염(infection)되고 이 감염된 상태 때문에 실패(failure)하게 된다. 감염을 따로 격리하고 결함을 찾아서 고치는 과정을 디버깅이라 하는데, 이 책은 짜임새 있고 논리적인 접근법을 가르쳐 주는 이론서이다. 딱...

Back to Top ↑

taocp

The Art of Computer Programming 1 (도널드 커누스, 2006) 독후감

1 minute read

커누스 형님이 지은 책. 감히 art를 붙인 책. 10년 동안 TEX를 만들게 한 책. 빌 게이츠가 다 보면 이력서를 달라는 책. 지금 다 보고 이력서 넣으면 자선 단체에서 일하겠지만. 아 그리고 많이 추천은 하지만 본 소감을 찾아보기 어려운 책이기도 하다. 그리고 또. 다 한번 ...

Back to Top ↑

physics

#gdc12 #review Solving Rigid Body Contacts

less than 1 minute read

contact solve를 이렇게 설명할 수 있구나. NDC 12에서 발표한 게임 물리 엔진의 내부 동작 원리 이해 발표보다 훨씬 세련되게 설명한다. 한 수 배웠다. 설명 방법이 돋보였던 발표.

Game Physics Engine Development (Ian Millington, 2010) 독후감

less than 1 minute read

force generator, integrator, collision detection, contact resolution으로 구성되는 큰 그림을 잘 설명해서 도움이 됐다. 물리 엔진에 관심이 있다면 게임 물리 관련 공식들이 가득 담긴 책보다는 큰 그림을 그려주는 이 책이 나은 선...

Back to Top ↑

side-project

Back to Top ↑

shell

Back to Top ↑

gitlab

이메일 관리법 snapshot / 2018-06

2 minute read

비동기(asynchronous)로 일을 잘하고 싶다. 그 중심에 이메일이 있다. 이메일만 주고받아도 충분히 일을 진행할 수 있는 동료가 있는 반면 꼭 찾아가서 얼굴을 보고 얘기를 해야 일이 진행되는 동료가 있다. 난 이메일처럼 비동기 도구를 사용해도 충분해서 찾아갈 필요 없는 동료...

마음에 드는 #gitlab todos

less than 1 minute read

참 애정하는 기능이다. Todo를 모아서 보여준다. 나를 맨션(@mention) 하거나 담당자로 지정하면 자동으로 Todo 항목이 된다. 물론 이슈에 있는 Add Todo 버튼을 눌러 직접 추가할 수도 있다.

GitLab 팀 안내서(team handbook)를 보고

3 minute read

입사하면 보게 되는 안내서. 안내서만 보면 어떤 회사인지 알 수 있다. 이렇게 호기롭게 지르고 싶지만 내가 본 안내서가 몇 개 안 될뿐더러 안내서를 공개한 회사 내부 사정을 잘 모른다. 회사 구성원은 어떤 소양을 가진 입사자를 원할까? 자기 동료에게 바라는 건 뭘까? 실상과 다르더...

Back to Top ↑

metrics

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Back to Top ↑

property-based-testing

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

예제로 보는 Property-Based Testing (feat. Kata09: Back to the Checkout)

10 minute read

’속성 기반 테스트(Property-based Testing)와 속성 정의에 도움을 주는 네 가지 방법’ 글에서 속성 기반 테스트를 간략히 살펴봤다. 대략 감은 잡겠지만 속성 기반 테스트를 짜라고 하면 막막하다. 이럴 때는 좋은 예제가 도움을 줄 수 있다.

Back to Top ↑

csharp

C# 동시성 프로그래밍 2/e (스티븐 클리어리, 2019) 독후감

less than 1 minute read

C# 비동기 프로그래밍에 익숙하지 않아서 책을 사서 읽었다. 비동기 기초, 비동기 스트림, TPL(task parallel library)을 활용한 병렬 처리, System.Reactive, 테스트, 컬렉션, 동기화 등 동시성 프로그래밍에 필요한 폭넓은 지식이 담겨 있다. 여기서 ...

이펙티브 C# (빌 와그너, 2017) 독후감

2 minute read

제목에 effective가 붙은 책은 믿고 본다. 아이템 별로 스토리가 있어서 재미있다. 책보다는 스토리가 있는 팁에 더 끌리는 것과 비슷하다고 생각한다. 간단한 팁을 넘어서서 왜 이렇게 동작하는지 좀 더 깊게 설명해서 몰랐던 부분도 배운다. 스콧 마이어스(Scott Meyers)...

Back to Top ↑

metaprogramming

#elixirlang 매크로 코드 디버깅 팁

2 minute read

Metaprogramming Elixir 책에서 간단한 예제를 가져왔다. HTML DSL(Domain-specific language)를 매크로로 구현하는 예제를 가져오고 싶었지만 멋진 만큼 설명이 많이 필요했다. 그래서 이거 매크로로 만들어서 어디에 쓸 거야? 하는 unless ...

Back to Top ↑

twitter

Back to Top ↑

blogging

#jekyll 워드프레스에서 지킬로 본진 이동

1 minute read

본진 programming notes 블로그 툴을 wordpress에서 jekyll로 바꿨다. 덩치가 있어 핫 하다고 무턱대고 바꾸기가 망설여진다. 그래서 개인 프로젝트 개발 일기 블로그 툴로 사용해봤다. 쓸만한가? 만족. 전진기지 안정화에 성공했으니 이제 본진에 신경 쓸 차례다.

#yahoopipes 로 여러 #rss 피드 대통합

less than 1 minute read

yahoo pipes를 사용하면 된다. 편하네. 예전에 알았던 야후 파이프를 이제야 써먹어 본다. 복잡하지 않으면 그래프 기반 다이어그램처럼 직관적인 게 따로 없다. 내가 만든 파이프.

Back to Top ↑

bash

#testing #bash 간단한 assert

less than 1 minute read

팀 패스워드 관리 프로그램 tpass 개발하면서 간단하게 만들어서 썼다. 독립된 환경을 가진 유저 2 명으로 테스트를 해야 했기 때문에 테스트 환경에 공을 들였다. 독립된 환경을 구축하는 데 docker를 사용했다. 스크립트 언어로 bash를 사용했다.

Back to Top ↑

heroku

#elixirlang 언어로 만든 #slack 봇을 #heroku 서비스에 배포하기

3 minute read

다음 사이드 프로젝트는 slack 봇(bot)이다. 관리 시간을 줄일 아이디어가 떠올랐다. 언어는 요즘 쓰고 있는 elixir 언어로 결정했다. 처음부터 만들어야 하는 거 아니야? 노노. 이쪽 생태계를 무시하면 안 된다. 1986년에 발표된 32살 erlang 언어가 뒤를 든든하게...

Back to Top ↑

blizzard

Back to Top ↑

cppcon

Back to Top ↑

phoenix

Programming Phoenix 1.4 (Chris McCord 외 2명, 2019) 독후감

5 minute read

elixir 언어로 만든 웹 프레임워크 phoenix를 설명한다. phoenix에 관심이 없더라도 추천하고픈 책이다. 잘 만든 웹 프레임워크를 내공 짱짱 맨들이 설명해주기 때문이다. elixir 언어를 만든 Jose Valim도 저자 중 한 명이다. 설명도 좋고 예제 코드도 좋다....

Back to Top ↑

prometheus

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

Back to Top ↑

macro

#elixirlang 매크로 코드 디버깅 팁

2 minute read

Metaprogramming Elixir 책에서 간단한 예제를 가져왔다. HTML DSL(Domain-specific language)를 매크로로 구현하는 예제를 가져오고 싶었지만 멋진 만큼 설명이 많이 필요했다. 그래서 이거 매크로로 만들어서 어디에 쓸 거야? 하는 unless ...

Back to Top ↑

joel-spolsky

조엘 온 소프트웨어를 넘어서 (조엘 스폴스키, 2009) 독후감

1 minute read

그래! 벌써 밑천이 다 떨어져 할 말이 없을 리가 없다. ’조엘 온 소프트웨어’ 다음 편인 ’조엘 온 소프트웨어를 넘어서’가 나왔다. ’조엘 온 소프트웨어’와 ’조엘 온 소프트웨어를 넘어서’ 사이에 책이 2권 나왔지만, 진짜 후속편이라 부를만한 책은 아니었다. 좋은 블로그 글을 골...

조엘이 엄선한 소프트웨어 블로그 베스트 29선 (조엘 스폴스키, 2006) 독후감

1 minute read

조엘이 소프트웨어에 관한 좋은 글들을 묶어서 책으로 냈다. 내가 관심 있는 분야에 관한 글도 있고 소셜 네트워크와 같이 관심 없는 분야의 글도 실려 있다. 처음에는 관심 있는 분야만 쏙쏙 골라서 봤는데, 관심이 없는 분야라도 좋은 글이라고 하니 억지로라도 읽어봤다. 사실 이런 관심...

조엘 온 소프트웨어 (조엘 스폴스키, 2005) 독후감

1 minute read

프로그래밍 경험도 풍부하고 그 경험에 걸맞은 내공을 가진 사람이 프로그래머로서 소프트웨어에 관한 글을 쓴다면 어떤 책이 나올까? 내가 생각하기에는 바로 ’조엘 온 소프트웨어’와 같은 책이 나올 것 같다. 소프트웨어에 관한 그의 통찰력을 무미건조하지 않고 재미있게 풀어놓았다. 미국식...

똑똑하고 100배 일 잘하는 개발자 모시기 (조엘 스폴스키, 2007) 독후감

1 minute read

조엘 온 소프트웨어를 보고 느낀 것이 많아서 새로운 책이 나왔다길래 닥치고 구입했다. 조엘 온 소프트웨어를 읽었을 때의 즐거움을 다시 느껴보고 싶었고 글 제목만 얼핏 보면 개발자를 뽑는 사람에게만 도움이 될 것 같지만 개발자로서 어떤 개발자를 모시고 싶어하는지 아는 것도 무척이나 ...

Back to Top ↑

commit

#훌륭한습관 코드 commit(submit, check-in) 전에 diff

less than 1 minute read

소스 코드 commit 전에 항상 모든 파일 diff를 확인한다. 하나하나 확인하는 과정에서 commit 메시지를 적는다. 이렇게 해야 자세하고 정확하게 적을 수 있기 때문이다. 그리고 이 과정에서 변경 사항과 관련 없는 부분을 되돌린다. 또한, 수정이 없거나 공백만 바뀐 파일은 ...

#vcs 소스 컨트롤 시스템에서 메시지 내용, 커밋 단위를 이렇게 하는게 좋지 않을까?

1 minute read

업무를 하다가 보면 이런 메시지로 커밋된 것을 발견할 수 있다. 이런 메시지를 보는 즉시 한숨이 나오는건 당연. 가끔 너무 짜증나서 책상을 내려칠때도 있다. 도대체 어떤 버그가 고쳐졌다는 얘긴지 알 수가 없다. 이런 메시지를 적어서 커밋을 한 당사자에게 1달 정도 뒤에 어떤 버그를...

Back to Top ↑

effective

Effective Modern C++ (스콧 마이어스, 2015) 독후감

2 minute read

다시 C++을 만지게 됐다. 책장에 꽂혀 있던 ’Effective Modern C++’ 책을 다시 읽었다. 예전에 읽었던 것 같은데, 새롭고 놀랐다. 나보다 더 깊이 생각한다. 여기까지 설명하겠지 하면서 읽다 보면 예상한 것보다 한 발짝 더 깊이 들어가서 설명한다. 스콧 마이어스 ...

이펙티브 C# (빌 와그너, 2017) 독후감

2 minute read

제목에 effective가 붙은 책은 믿고 본다. 아이템 별로 스토리가 있어서 재미있다. 책보다는 스토리가 있는 팁에 더 끌리는 것과 비슷하다고 생각한다. 간단한 팁을 넘어서서 왜 이렇게 동작하는지 좀 더 깊게 설명해서 몰랐던 부분도 배운다. 스콧 마이어스(Scott Meyers)...

이펙티브 C++ 3판 (Effective C++, 스콧 마이어스, 2015) 독후감

less than 1 minute read

2판이 있는데, 목차를 살펴보니 새로 추가된 내용이 많아서 샀다. 상당히 많은 부분이 추가 되었고 내용들도 수정되고 추가 되었다. TR1에 대한 소개도 추가되었고 템플릿쪽에 대한 얘기가 늘어났다. 두번째로 보는 C++ 책이라 불리는 책이니 책에 대한 다른 칭찬의 말은 필요도 없을 ...

Back to Top ↑

headfirst

Head First SQL (린 베일리, 2008) 독후감

less than 1 minute read

SQLite를 사용하는데 SQL 문법이 가물가물했다. 대학교 때 사용한 DB 수업 교재는 너무 두껍고 어려운 내용이라서 간단히 복습하는 용도에는 맞지 않았다. Head First 시리즈에 SQL 책이 있어서 고민하지 않고 샀다. <Head First Design Pattern...

Head First Design Patterns (에릭 프리먼 외, 2005) 독후감

less than 1 minute read

“IT 서적이 이런식으로 쓰일 수도 있구나!” 처음 한 챕터를 읽고 난 뒤에 충격을 받았다. 기술서적으로는 항상 딱딱한 구성의 책만 보아왔고, 또 당연히 그렇다고 생각했는데 말이다. 이런 구성과 설명이 내 뇌를 어떻게 자극하는지는 모르지만, 분명한 건 이런 구성이 나한테는 꽤 잘 ...

Back to Top ↑

design

Back to Top ↑

sicp

#review 해커 문화의 뿌리를 찾아서 - developerWorks

less than 1 minute read

최근에 SICP 스터디가 끝났는데 , SICP에서 배우는 리스프(Lisp)의 방언(dialect)인 스킴(Scheme)의 역사와 중요 개념의 소개를 다룬 글이라서 너무 재미있게 읽었다. 관심 없는 역사는 연도와 사건들의 map으로 밖에 안 느껴져서 너무 지겨운데, 관심이 있거나 지...

Back to Top ↑

lisp

해커와 화가 (폴 그레이엄, 2005) 독후감

2 minute read

리스프(Lisp) 얘기가 나오면 컴퓨터 프로그램의 구조와 해석 (SICP)과 같이 언급되는 책이다. 리스프가 짱이고 빠심이 충만한 책이라고 들었다. 마침 SICP로 내 속에 리스프에 대한 빠심이 쌓여 있는 터라 지금이 아니면 못 읽겠다 싶어서 책을 구해서 읽었다. 절판이라 도서관에...

#review 해커 문화의 뿌리를 찾아서 - developerWorks

less than 1 minute read

최근에 SICP 스터디가 끝났는데 , SICP에서 배우는 리스프(Lisp)의 방언(dialect)인 스킴(Scheme)의 역사와 중요 개념의 소개를 다룬 글이라서 너무 재미있게 읽었다. 관심 없는 역사는 연도와 사건들의 map으로 밖에 안 느껴져서 너무 지겨운데, 관심이 있거나 지...

Back to Top ↑

code-review

Back to Top ↑

ios

Back to Top ↑

summary

#gdc12 #review GDC2012 간단 정리

1 minute read

GDC2012를 간단히 정리했다. 발표하는 분야가 넓어. 이거 다 이해하기는 무리. 잘 모르는 분야는 맛만 본다는 마음가짐으로 간단히 봤다.

#gdc11 #review 늦은 GDC2011 간단 정리

1 minute read

지금은 2012년. 그리고 올해 GDC 행사가 끝난 시점. 작년부터 틈틈이 정리하긴 했지만 질질 끌어오던 GDC2011 정리를 마무리 짓고 싶었다. 그래서 서둘러 마무리. 아직 GDC 2012 볼트가 안 열렸으니. 뭐 오케이.

Back to Top ↑

culture

Back to Top ↑

iphone

Back to Top ↑

tool

Back to Top ↑

gerrit

docker가 있으니 gerrit 업그레이드 스트레스는 잊으시오

3 minute read

코드 리뷰 툴로 gerrit을 쓰고 있다. 자연스럽게 작업자들이 pull, push하는 중앙 저장소가 gerrit이 된다. 잘 쓰고 있는데, 업그레이드하려니 걱정이 된다. 한 번에 문제없이 업그레이드되면 좋은데, 이걸 보장할 수가 없다. 만약 업그레이드가 실패해서 엉망이 되면 고통...

vagrant로 쓰고 버릴 gerrit plugin 빌드환경 구축

less than 1 minute read

gerrit plugin을 설치하려고 찾아보니 jar는 없다. 소스만 있다. 직접 빌드해야지 뭐. GerritForge jenkins에서 다운로드 받을 수 있긴 한데, 깨져 있는 것들도 보이고 해서 직접 빌드하기로 결정.

Back to Top ↑

emacs

Back to Top ↑

batch

UAC 관리자 권한 요청을 batch script에서

less than 1 minute read

ohyecloudy/dotfiles에 있는 windows bootstrap 배치 스크립트에는 심볼릭 링크 생성이 있다. 관리자 권한으로 실행해야 하는 커맨드. 심볼릭 링크 생성이 뒤에 있어서 배치 스크립트 실패를 더럽게 한다. 그리고 관리자 권한이 필요하다는 걸 항상 실패하고 난 ...

Back to Top ↑

grafana

Back to Top ↑

scott-meyers

Effective Modern C++ (스콧 마이어스, 2015) 독후감

2 minute read

다시 C++을 만지게 됐다. 책장에 꽂혀 있던 ’Effective Modern C++’ 책을 다시 읽었다. 예전에 읽었던 것 같은데, 새롭고 놀랐다. 나보다 더 깊이 생각한다. 여기까지 설명하겠지 하면서 읽다 보면 예상한 것보다 한 발짝 더 깊이 들어가서 설명한다. 스콧 마이어스 ...

이펙티브 C++ 3판 (Effective C++, 스콧 마이어스, 2015) 독후감

less than 1 minute read

2판이 있는데, 목차를 살펴보니 새로 추가된 내용이 많아서 샀다. 상당히 많은 부분이 추가 되었고 내용들도 수정되고 추가 되었다. TR1에 대한 소개도 추가되었고 템플릿쪽에 대한 얘기가 늘어났다. 두번째로 보는 C++ 책이라 불리는 책이니 책에 대한 다른 칭찬의 말은 필요도 없을 ...

Back to Top ↑

directx

#define D3D_DEBUG_INFO

1 minute read

Debugging시 Watch창으로 내부 변수들을 볼 수 있다. 위의 그림은 IDirect3DDevice9를 Watch창으로 본 화면. 어휴! 역시 DirectX 새로운 SDK 나오면 무조건 Document부터 다 훑어봐야 한다. 발견한 지 일주일이 안 됐지만 그전부터 사용 가능한...

Back to Top ↑

maxis

스포어(spore) 프로토타입(prototype)

1 minute read

Spore Prototypes Available for Free[gamedev.net]라는 글을 통해 알게 됐다. Spore - Prototypes에서 스포어 게임을 개발할 때 사용한 프로토타입들을 받아서 실행해 볼 수 있다.

Back to Top ↑

developerWorks

#review 해커 문화의 뿌리를 찾아서 - developerWorks

less than 1 minute read

최근에 SICP 스터디가 끝났는데 , SICP에서 배우는 리스프(Lisp)의 방언(dialect)인 스킴(Scheme)의 역사와 중요 개념의 소개를 다룬 글이라서 너무 재미있게 읽었다. 관심 없는 역사는 연도와 사건들의 map으로 밖에 안 느껴져서 너무 지겨운데, 관심이 있거나 지...

#review 초보 개발자를 위한 오픈 소스 라이선스 길잡이

2 minute read

특허는 … 알고리즘이 같다면 어떤 컴퓨터 언어로 표현되었는지에 상관없이 침해로 규율할 수 있기 때문이다. … 그러나 출원 및 등록유지 비용이 든다는 점이 단점이다. 이에 비해 저작권은 알고리즘이 표현된 것을 보호하므로 보호받는 범위가 좁고 프로그램 저작물을 의도적으로 보...

#review 이슈 트래커 개발자가 들려주는 이슈 트래커 이야기

2 minute read

맨티스, 버그 질라, 트랙 등 유명한 이슈 트래커가 팀 요구 사항에 맞지 않아 ECUS라는 사내 이슈 트래커를 개발하면서 겪은 경험담을 적어 놓았다. 많이 쓰이는 오픈 소스 기반의 이슈 트래커들의 장단점과 ECUS에서 어떤 걸 버리고 개선했는지에 대한 얘기를 1부에서 다뤘고 이슈 ...

Back to Top ↑

idioms

#cpp #idioms Nifty Counter

1 minute read

목적은 Construct On First Use와 같다. 즉, global static object, global object 초기화 순서가 명확하지 않아서 발생하는 static initialization order fiasco를 막기 위한 idiom이다.

#cpp Pimpl 관용구

2 minute read

컴파일할때 파일 간의 디펜던시를 줄이려고 사용하는 관용구(idiom)이다. public 접근 권한으로 정의된 함수가 변경될 때, 이 파일을 include 하는 녀석들이 다시 컴파일되는 건 당연한데, 다른 녀석들이 못 보는 private 접근 권한의 멤버 함수나 변수가 변경될 때도 ...

Back to Top ↑

니시카와젠지

#review 그림자 생성 - 니시카와 젠지

1 minute read

간략한 shadow volume 소개와 여러 shadow mapping 알고리즘을 소개한 아티클이다. 프로그래머뿐만 아니라 게임에 관심이 있는 사람들도 읽을 수 있도록 쉽게 써서 그림자를 구현하기 전에 살짝 읽기에 좋은 글이다.

Back to Top ↑

google

회사 메일로 google 계정을 만들어 업무용 google 계정을 분리

1 minute read

업무에서 사용하는 google 스프레드시트 때문에 회사에서도 google 계정을 사용하게 됐다. 구글 계정은 무조건 gmail.com 도메인을 사용해야 하는 줄 알았다. 초반에 개인 이메일을 써버려서 바꾸려니 귀찮다. 이런 이유로 개인 google 계정과 회사 google 계정을 ...

#review Google C++ Style Guide

1 minute read

사실 style guide가 나와서 말인데, 나는 조엘이 엄선한 소프트웨어 블로그 베스트 29선에서 본 ’스타일은 언어 요소다 - 켄 아놀드’글을 완전 지지한다. 많은 언어가 무시하는 공백 문자를 언어 요소로 넣자고 주장하는데, 지겨운 스타일 논쟁을 완전 없앨 수 있고 파싱이 쉬워...

Back to Top ↑

low-level

Back to Top ↑

lua

Back to Top ↑

db

Head First SQL (린 베일리, 2008) 독후감

less than 1 minute read

SQLite를 사용하는데 SQL 문법이 가물가물했다. 대학교 때 사용한 DB 수업 교재는 너무 두껍고 어려운 내용이라서 간단히 복습하는 용도에는 맞지 않았다. Head First 시리즈에 SQL 책이 있어서 고민하지 않고 샀다. <Head First Design Pattern...

Back to Top ↑

algorithm

Back to Top ↑

vim

Back to Top ↑

template

Back to Top ↑

refactoring

리팩토링 Refactoring (마틴 파울러, 2012) 독후감

2 minute read

리팩토링 카탈로그 부분은 좀 지겹지만, 의사소통을 간편하게 할 수 있는 용어를 배울 수 있다. 안전하게 해당 리팩토링을 할 수 있는 절차를 적어 놓은 게 인상적. 같은 리팩토링이라도 실수를 예방할 방법이 있기 마련이기 때문이다.

Back to Top ↑

aws

#review AWS + Tajo를 이용한 ‘테라 렉 로그 분석 이야기’

less than 1 minute read

클라이언트 로그 수집할 때, 참고로 쓸 수 있는 좋은 발표. 로그 사이즈 때문에 클라이언트 로그를 수집하는 게 상당히 부담스러운 일인데, AWS를 사용하면 할 만하다. 하루에 5억건. 500GB 정도가 로그로 쌓인다.

Back to Top ↑

python

Learn Python the Right Way (Ritza Scott, 2021) 독후감

less than 1 minute read

python 공식 홈페이지에 튜토리얼이 있는 걸 발견했다. 이걸로 시작하려고 했는데, ’올바른 방법으로 Python 배우기 {무료 E북}​’ 글에서 “유명한 책인 ‘컴퓨터 과학자처럼 생각하며 배우는 파이썬’의 최신 개정판”이란 소개 글을 보고 읽기 시작했다. 고맙게도 무료 E북이다.

Back to Top ↑

trailing-whitespace

Back to Top ↑

password

pass, expect 프로그램과 함께한 #jekyll 블로그 deploy 스크립트

2 minute read

static 블로깅 툴인 jekyll은 직접 빌드를 해야 한다. 빌드 결과물인 html, css 파일을 웹호스팅 서버로 배포한다. 이걸 수동으로 하고 있었다. script/build 스크립트로 빌드하고 filezilla로 업로드하고 있다. 언젠가는 aws로 옮기고 push hook...

Back to Top ↑

dotfiles

UAC 관리자 권한 요청을 batch script에서

less than 1 minute read

ohyecloudy/dotfiles에 있는 windows bootstrap 배치 스크립트에는 심볼릭 링크 생성이 있다. 관리자 권한으로 실행해야 하는 커맨드. 심볼릭 링크 생성이 뒤에 있어서 배치 스크립트 실패를 더럽게 한다. 그리고 관리자 권한이 필요하다는 걸 항상 실패하고 난 ...

Back to Top ↑

telemetry

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Back to Top ↑

lod

Back to Top ↑

ea

Back to Top ↑

io-interactive

Back to Top ↑

insomniac

#gdc13 #review Loading Based on Imperfect Data

less than 1 minute read

ref graph를 활용한 load list 구축. #gdc12 Data is a Four-Letter Word 참고. 개발할 땐 loose loading, 릴리즈에선 loading list를 만들어서 사용.

Back to Top ↑

log

#review AWS + Tajo를 이용한 ‘테라 렉 로그 분석 이야기’

less than 1 minute read

클라이언트 로그 수집할 때, 참고로 쓸 수 있는 좋은 발표. 로그 사이즈 때문에 클라이언트 로그를 수집하는 게 상당히 부담스러운 일인데, AWS를 사용하면 할 만하다. 하루에 5억건. 500GB 정도가 로그로 쌓인다.

Back to Top ↑

slack

#elixirlang 언어로 만든 #slack 봇을 #heroku 서비스에 배포하기

3 minute read

다음 사이드 프로젝트는 slack 봇(bot)이다. 관리 시간을 줄일 아이디어가 떠올랐다. 언어는 요즘 쓰고 있는 elixir 언어로 결정했다. 처음부터 만들어야 하는 거 아니야? 노노. 이쪽 생태계를 무시하면 안 된다. 1986년에 발표된 32살 erlang 언어가 뒤를 든든하게...

Back to Top ↑

outlook

이메일은 언제 확인하나? / 2018-06

less than 1 minute read

모든 이메일에 데스크톱 알림을 띄우고 이메일이 오는 족족 확인해서 답장을 해주면 다른 업무는 안 하고 메일만 기다리는 사람은 바로 일을 시작할 수 있다. 하지만 이렇게 확인해서야 프로그래밍이 불가능하다. 인터럽트가 너무 많다. 프로그래밍에는 그냥 시간이 아닌 연속된 시간이 필요하다...

이메일 관리법 snapshot / 2018-06

2 minute read

비동기(asynchronous)로 일을 잘하고 싶다. 그 중심에 이메일이 있다. 이메일만 주고받아도 충분히 일을 진행할 수 있는 동료가 있는 반면 꼭 찾아가서 얼굴을 보고 얘기를 해야 일이 진행되는 동료가 있다. 난 이메일처럼 비동기 도구를 사용해도 충분해서 찾아갈 필요 없는 동료...

Back to Top ↑

telegram

강렬했던 텔레그램 BotFather와의 첫 만남

less than 1 minute read

BotFather. 크. 네이밍 보소. godfather. 텔레그램 봇을 만드려면 반드시 만나야 하는 봇이다. 처음 텔레그램 봇을 만들 때, BotFather와의 만남은 강렬했다. 만들 봇 이름, 설명 등을 적는 웹페이지를 기대했다. 하지만 텔레그램은 봇을 만들 때, 모범 사례(b...

#elixirlang 언어로 #telegram 봇 만들기

1 minute read

텔레그램은 훌륭한 메신저이자 클라이언트다. 훌륭한 클라이언트가 된 건 bot api 덕분이다. 간단한 iOS 앱을 만들려고 했는데, 텍스트로 제어가 충분하다고 생각하니 텔레그램 봇으로 만들면 되겠단 생각이 들었다. 혼자 쓸 거라 만들어 본 슬랙(slack) 봇은 과하다.

Back to Top ↑

ecto

Programming Ecto (Darin Wilson, Eric Meadows-Jonsson, 2019) 독후감

1 minute read

elixir 언어에서 표준으로 쓰는 데이터베이스 래퍼(wrapper)이자 쿼리 생성기 라이브러리인 ecto를 설명한 책이다. 잘못 사용하고 있는 게 있지 않을까? 편한 걸 놔두고 어렵게 사용하고 있지 않을까? 이런 걸 배우고 싶어서 이 책을 선택했다. 생각보단 영양가가 없었다. e...

Back to Top ↑

elixir

Elixir 언어에서 Behaviour란?

9 minute read

Elixir에서 Behaviour란 용어가 나온다. Erlang의 어깨 위에 올라서서 만든 언어라 Erlang에서 사용하는 Bahaviour라는 용어를 그대로 가져온 것 같다. C++의 pure virtual function만 정의한 클래스 혹은 C#의 interface와 비슷한 ...

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

code-reading

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Back to Top ↑

upbit

Back to Top ↑

zsh

Back to Top ↑

perfhud

PerfHUD 6 새로 추가된 Feature 간략 리뷰

less than 1 minute read

역경을 딛고 집에 PerfHUD 6 - NVIDIA를 설치하고 새로 추가된 피쳐들을 살펴봤다. 앞자리 숫자가 바뀐 버전인 만큼 정말 멋진 기능들이 많이 추가됐다. 더 쾌적하게 게임을 하려고 ATI 비디오 카드를 꼽을 수는 있겠는데, 개발용으론 이제 NVIDIA 비디오 카드밖에 못 ...

Back to Top ↑

prototype

스포어(spore) 프로토타입(prototype)

1 minute read

Spore Prototypes Available for Free[gamedev.net]라는 글을 통해 알게 됐다. Spore - Prototypes에서 스포어 게임을 개발할 때 사용한 프로토타입들을 받아서 실행해 볼 수 있다.

Back to Top ↑

michael-feathers

Working Effectively With Legacy Code (Michael Feathers, 2004) 독후감

1 minute read

TDD(Test-Driven Development, 테스트 주도 개발)를 처음 접했을 때, 개발 방법이 충격적이었다. 테스트를 먼저 추가하면서 시작되는 TDD의 리듬을 타면 테스트가 바탕이 된 매우 견고한 코드로 갈 수 있을 것 같다. 하지만 낯선 개발 방법에 적용하는 시간과 노력...

Back to Top ↑

64bit

#64bit 포팅 - 32비트 포인터들이여 안녕

less than 1 minute read

포팅을 위해 64bit로 빌드를 하면 갑자기 담배가 급하게 땡기게 된다. 수백 개의 에러를 보면 “어휴~ 이걸 언제 다 잡지?”라는 생각이 절로 든다. 하지만 다 저마다 독특한 상황에서 발생하는 에러가 아니라 에러는 수백 개라도 공통된 패턴이 있기 마련이다. viva64.com에 ...

Back to Top ↑

uml

Back to Top ↑

martin-fowler

리팩토링 Refactoring (마틴 파울러, 2012) 독후감

2 minute read

리팩토링 카탈로그 부분은 좀 지겹지만, 의사소통을 간편하게 할 수 있는 용어를 배울 수 있다. 안전하게 해당 리팩토링을 할 수 있는 절차를 적어 놓은 게 인상적. 같은 리팩토링이라도 실수를 예방할 방법이 있기 마련이기 때문이다.

#review 디자인은 죽었는가? - 마틴 파울러(Is Design Dead? - Martin Fowler)

1 minute read

종종 어떤 XPers들은 많은 디자인 활동과 디자인 패턴을 쓸모없다고 한다. 또 어떤 XP 비방자들은 XP를 디자인도 없는 짜보고 고치는(code and fix) 개발방식으로 회귀라고 말한다. 마틴 파울러(Martin Fowler)가 “어휴 둘 다 오해하고 자빠졌네.”라며 교통정리...

Back to Top ↑

gpu-gems

Back to Top ↑

shader

Back to Top ↑

톰-디마르코

데드라인 (톰 디마르코, 2004) 독후감

less than 1 minute read

“강사님은 지금 사람 선별법, 작업 할당, 동기 부여, 팀 구성 같이 관리에서 가장 필수적인 네 가지 기본사항은 전혀 다루지도 않으면서 관리의 자연과학적인 부분을 우리에게 가르치시겠다는 건가요?” “강사님은 그 네 가지를 빠뜨린 과정을 가지고 ‘프로젝트 관리’라고 부르고...

Back to Top ↑

coding-style

#review Google C++ Style Guide

1 minute read

사실 style guide가 나와서 말인데, 나는 조엘이 엄선한 소프트웨어 블로그 베스트 29선에서 본 ’스타일은 언어 요소다 - 켄 아놀드’글을 완전 지지한다. 많은 언어가 무시하는 공백 문자를 언어 요소로 넣자고 주장하는데, 지겨운 스타일 논쟁을 완전 없앨 수 있고 파싱이 쉬워...

Back to Top ↑

uncle-bob

Back to Top ↑

gerald-weinberg

프로그래밍 심리학 (제럴드 M. 와인버그, 2008) 독후감

1 minute read

프로그래밍은 엄연히 인간 행동의 한 형태임에도 그런 관점에서 프로그래밍을 연구한 사람은 거의 없다. 그렇다면 프로그래밍을 인간 행위로 조명하지 않은 이유가 있었던 건 아닐까? 아마도 프로그래밍은 연구 대상으로 삼기에 너무나 복잡한 행위이기 때문에 커다란 불가사의로 남을 수밖에...

Back to Top ↑

chrome

회사 메일로 google 계정을 만들어 업무용 google 계정을 분리

1 minute read

업무에서 사용하는 google 스프레드시트 때문에 회사에서도 google 계정을 사용하게 됐다. 구글 계정은 무조건 gmail.com 도메인을 사용해야 하는 줄 알았다. 초반에 개인 이메일을 써버려서 바꾸려니 귀찮다. 이런 이유로 개인 google 계정과 회사 google 계정을 ...

#ux 초보자에게 너무 편한 구글 크롬 빈 페이지 UI

less than 1 minute read

처음 봤을 때, 그냥 괜찮은 디자인처럼 보였다. 나는 Ctrl+L 로 주소창을 열고 URL 주소를 타이핑해서 사이트를 찾아가기 때문에, 저런 인터페이스는 그냥 예쁜 인터페이스에 불과했다. 키보드에 얹은 손을 마우스로 다시 옮기기도 귀찮아서 키보드로 할 수 있는 건 웬만하면 다 키보...

Back to Top ↑

short-circuit-evaluation

Back to Top ↑

ai

실용적 예제로 본 게임인공지능 프로그램하기 (Mat Buckland, 2006) 독후감

less than 1 minute read

게임 인공지능을 개념을 잡기에 좋은 책이다. 인공지능에 기본 요소인 자동으로 움직이는 에이전트, 내비게이션 생성 및 길 찾기, FSM 설명을 책 제목처럼 실용적 예제로 설명하고 있다. 따라 하기 쉽고 이해하기 쉬운 예제를 사용해서 단순 이론 공부에 그치지 않고 어떻게 적용되는지를 ...

Back to Top ↑

multithread

Back to Top ↑

presentation

Back to Top ↑

andy-hunt

실용주의 사고와 학습 (앤디 헌트, 2010) 독후감

3 minute read

많은 HR은 아직 잘 모르고 있지만 사실 자바, 루비, .NET, 혹은 아이폰 SDK를 아는지 모르는지는 별로 중요하지 않습니다. 배워야 할 신기술이나 예전 기술의 새 버전은 끊임없이 등장합니다. 기술 자체는 별로 중요하지 않습니다. 중요한 것은 지속적으로 배우는 것입니다.

실용주의 프로그래머 (데이비드 토머스, 앤드류 헌트, 2005) 독후감

1 minute read

실용주의 프로그래머는 무엇이 다른가? 우리는 태도와 스타일 그리고 문제와 해법에 접근하는 철학에 차이가 있다고 생각한다. 그들은 직면한 문제 너머를 생각하며, 문제를 항상 더 큰 맥락에 놓으려 노력하고, 항상 더 큰 그림을 보려 한다. 어쨌건 이런 더 큰 맥락 없이 도대체 어...

Back to Top ↑

ci

Back to Top ↑

andstudy

Back to Top ↑

geg

Back to Top ↑

nosql

Back to Top ↑

gpg

Game Programming Gems 7 (Scott Jacobs, 2010) 독후감

less than 1 minute read

Game Programming Gems를 보고 난 뒤, 2권을 읽으려고 했다. 하지만 내공을 쌓는 책이라기보단 실용적인 내용이 더 많아서 역순으로 보는 게 낫겠다 싶어서 그다음으로 7권을 읽었다. 8권 번역판이 나오기 전에 읽으려고 했는데, 실패. 벌써 나왔네.

Game Programming Gems 1 (Mark Deloura, 2001) 독후감

less than 1 minute read

레퍼런스 성격을 가지고 있는 책이다. 어느 한 영역에 집중하는 게 아니라 게임 프로그래밍에 관련된 다양한 주제를 책에서 다루고 있다. 그래서 처음부터 끝까지 쭉~ 정주행 하기엔 좋은 책이 아니다. 게임 프로그래밍 분야가 어디 좁나요? 보통 어떤 작업을 시작하기 관련 아티클을 찾아 ...

Back to Top ↑

objective-c

Back to Top ↑

java

Thinking in Java (브루스 에켈, 2006) 독후감

less than 1 minute read

Java를 사용할 일이 있어서 고른 책. 이 책을 많이 추천하더라. 번역이 나쁘단 얘기가 있어서 원서로 구입. 중고장터에 싸게 한 권이 나왔길래 잽싸게 주문했다.

Back to Top ↑

hubot

Back to Top ↑

speaker

Back to Top ↑

paper

Back to Top ↑

valve

Back to Top ↑

handbook

GitLab 팀 안내서(team handbook)를 보고

3 minute read

입사하면 보게 되는 안내서. 안내서만 보면 어떤 회사인지 알 수 있다. 이렇게 호기롭게 지르고 싶지만 내가 본 안내서가 몇 개 안 될뿐더러 안내서를 공개한 회사 내부 사정을 잘 모른다. 회사 구성원은 어떤 소양을 가진 입사자를 원할까? 자기 동료에게 바라는 건 뭘까? 실상과 다르더...

Back to Top ↑

osx

Back to Top ↑

rich-hickey

Back to Top ↑

conference

Back to Top ↑

deview

Back to Top ↑

remote-work

재택근무 장비와 소프트웨어 셋업 후기 - 데스크 셋업

2 minute read

찔끔찔끔 하나씩 준비했다. 코로나19가 이렇게 길어질 줄 알았다면 투자 좀 할걸. 2021년 5월 정도에 재택근무 환경을 쾌적하게 만들었다. 늦었지만 퇴근 후 개인 작업을 할 환경을 만든다고 생각하자면서 투자를 했는데, 웬걸 코로나19로 재택근무가 더 길어졌다. 되돌아보니 그리 늦...

Back to Top ↑

tweetbot

Back to Top ↑

wordpress

#jekyll 워드프레스에서 지킬로 본진 이동

1 minute read

본진 programming notes 블로그 툴을 wordpress에서 jekyll로 바꿨다. 덩치가 있어 핫 하다고 무턱대고 바꾸기가 망설여진다. 그래서 개인 프로젝트 개발 일기 블로그 툴로 사용해봤다. 쓸만한가? 만족. 전진기지 안정화에 성공했으니 이제 본진에 신경 쓸 차례다.

Back to Top ↑

build

Back to Top ↑

tampermonkey

Tampermonkey로 YouTube 우측에 있는 비슷한 영상 목록 제거

1 minute read

youtube 영상 하나 보고 끝내면 되는데, 우측에 보이는 비슷한 영상 목록에서 재미있어 보이는 걸 새 탭으로 열고 봐서 문제다. youtube에 정보가 많아서 마냥 피할 수는 없다. 내 의지 따위는 믿지 않고 하나만 보고 끝내는 환경을 만들기로 했다. ’눌러라 그러면 열릴 것이...

Back to Top ↑

elisp

Back to Top ↑

optional

Back to Top ↑

linux

Back to Top ↑

automation

Back to Top ↑

overwatch

#bts 오버워치 이야기 (The Story of Overwatch, GameSpot)

less than 1 minute read

저희에게 이건 마지막 기회였어요. 우리 분야에선 “네가 만든 마지막 게임이 너를 보여준다”는 말을 자주 써요. 예를 들면 “야 내가 2008년에 와우라는 개쩌는 게임을 만들었어”라면서 자만하지 말라는 거죠. 2008년 얘기잖아요. 제가 최근에 담당한 게임은 타...

Back to Top ↑

docker

docker가 있으니 gerrit 업그레이드 스트레스는 잊으시오

3 minute read

코드 리뷰 툴로 gerrit을 쓰고 있다. 자연스럽게 작업자들이 pull, push하는 중앙 저장소가 gerrit이 된다. 잘 쓰고 있는데, 업그레이드하려니 걱정이 된다. 한 번에 문제없이 업그레이드되면 좋은데, 이걸 보장할 수가 없다. 만약 업그레이드가 실패해서 엉망이 되면 고통...

Back to Top ↑

one-page

Back to Top ↑

game-art

#gdc10 #review Uncharted 2 Art Direction

less than 1 minute read

윤곽을 잡는 방법이 신기했고 overdraw, 자연스러운 길 유도, … “이런 것까지 생각하는구나.” 라며 감탄.

Back to Top ↑

dice

Back to Top ↑

optimization

Back to Top ↑

bungie

Back to Top ↑

halo

Back to Top ↑

dead-space

Back to Top ↑

communication

몽키 비즈니스 (윌리엄 언컨 3세, 2001) 독후감

4 minute read

매니저(manager)는 개인 기여자(Individual Contributor, IC, 팀원) 여러 명을 관리해야 한다. 일 대 다 관계이다. 그 말인즉슨 항상 병목이 될 수 있다는 걸 명심하고 있어야 한다. 여유 좀 부려서 팀원이 내 결정을 기다리게 했다가는 삽시간에 내가 병목이...

Back to Top ↑

hitman

Back to Top ↑

animation

Back to Top ↑

league-of-legends

Back to Top ↑

riot

Back to Top ↑

gdc16

Back to Top ↑

variant

Back to Top ↑

kindle

Programming Elixir 1.3 (Dave Thomas, 2016) 독후감

1 minute read

챕터 배치 신경 많이 썼네. 처음부터 pattern matching을 설명한다. = operator가 다른 것을 본다. 다른 세계에 왔구나. 이걸 처음부터 느낄 수 있었다. 그래서 그런지 아껴서 쓰는 control flow는 미루고 미루다가 뒤에 설명한다.

Back to Top ↑

email

이메일은 언제 확인하나? / 2018-06

less than 1 minute read

모든 이메일에 데스크톱 알림을 띄우고 이메일이 오는 족족 확인해서 답장을 해주면 다른 업무는 안 하고 메일만 기다리는 사람은 바로 일을 시작할 수 있다. 하지만 이렇게 확인해서야 프로그래밍이 불가능하다. 인터럽트가 너무 많다. 프로그래밍에는 그냥 시간이 아닌 연속된 시간이 필요하다...

이메일 관리법 snapshot / 2018-06

2 minute read

비동기(asynchronous)로 일을 잘하고 싶다. 그 중심에 이메일이 있다. 이메일만 주고받아도 충분히 일을 진행할 수 있는 동료가 있는 반면 꼭 찾아가서 얼굴을 보고 얘기를 해야 일이 진행되는 동료가 있다. 난 이메일처럼 비동기 도구를 사용해도 충분해서 찾아갈 필요 없는 동료...

Back to Top ↑

slab

Back to Top ↑

erlang

소스 코드 읽기: prometheus.erl, prometheus.ex

5 minute read

deadtrickster/prometheus.erl은 모니터링 시스템인 prometheus.io의 erlang 클라이언트다. 각종 메트릭(metric)을 프로메테우스가 파싱할 수 있는 포맷으로 텍스트를 만든다. deadtrickster/prometheus.ex는 prometheus...

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Back to Top ↑

office

회사 메일로 google 계정을 만들어 업무용 google 계정을 분리

1 minute read

업무에서 사용하는 google 스프레드시트 때문에 회사에서도 google 계정을 사용하게 됐다. 구글 계정은 무조건 gmail.com 도메인을 사용해야 하는 줄 알았다. 초반에 개인 이메일을 써버려서 바꾸려니 귀찮다. 이런 이유로 개인 google 계정과 회사 google 계정을 ...

Back to Top ↑

bitcoin

Back to Top ↑

genstage

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

interactive-shell

Back to Top ↑

non-interactive-shell

Back to Top ↑

login-shell

Back to Top ↑

non-login-shell

Back to Top ↑

mock

Back to Top ↑

stateful-property

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

Back to Top ↑

quiz

#quiz 몬티 홀 문제(Monty Hall problem)

2 minute read

Suppose you’re on a game show, and you’re given the choice of threedoors: Behind one door is a car; behind the others, goats. You pick adoor, say No. 1, a...

Back to Top ↑

version-control-system

#vcs 소스 컨트롤 시스템에서 메시지 내용, 커밋 단위를 이렇게 하는게 좋지 않을까?

1 minute read

업무를 하다가 보면 이런 메시지로 커밋된 것을 발견할 수 있다. 이런 메시지를 보는 즉시 한숨이 나오는건 당연. 가끔 너무 짜증나서 책상을 내려칠때도 있다. 도대체 어떤 버그가 고쳐졌다는 얘긴지 알 수가 없다. 이런 메시지를 적어서 커밋을 한 당사자에게 1달 정도 뒤에 어떤 버그를...

Back to Top ↑

svn

#vcs 소스 컨트롤 시스템에서 메시지 내용, 커밋 단위를 이렇게 하는게 좋지 않을까?

1 minute read

업무를 하다가 보면 이런 메시지로 커밋된 것을 발견할 수 있다. 이런 메시지를 보는 즉시 한숨이 나오는건 당연. 가끔 너무 짜증나서 책상을 내려칠때도 있다. 도대체 어떤 버그가 고쳐졌다는 얘긴지 알 수가 없다. 이런 메시지를 적어서 커밋을 한 당사자에게 1달 정도 뒤에 어떤 버그를...

Back to Top ↑

float

Back to Top ↑

cmd

Back to Top ↑

font

Back to Top ↑

msdn

Back to Top ↑

spore

스포어(spore) 프로토타입(prototype)

1 minute read

Spore Prototypes Available for Free[gamedev.net]라는 글을 통해 알게 됐다. Spore - Prototypes에서 스포어 게임을 개발할 때 사용한 프로토타입들을 받아서 실행해 볼 수 있다.

Back to Top ↑

open-source

#review 초보 개발자를 위한 오픈 소스 라이선스 길잡이

2 minute read

특허는 … 알고리즘이 같다면 어떤 컴퓨터 언어로 표현되었는지에 상관없이 침해로 규율할 수 있기 때문이다. … 그러나 출원 및 등록유지 비용이 든다는 점이 단점이다. 이에 비해 저작권은 알고리즘이 표현된 것을 보호하므로 보호받는 범위가 좁고 프로그램 저작물을 의도적으로 보...

Back to Top ↑

maxima

Back to Top ↑

video-memory

비디오 메모리 구하기 (DirectDraw, WMI)

2 minute read

PerfHUD나 DirectX Caps Viewer로 볼 수 있지만, 비디오 메모리 사용량을 렌더링하는 게 그리 힘든 일이 아니라 보통 이 정도는 렌더링해준다. 그건 좋은데 문제는 DirectX9 인터페이스로는 사용 가능한 전용 비디오 메모리를 알 수 없는 거다. 그래서 보통 Di...

Back to Top ↑

keyboard

CapsLock! 자네에게 어울리는 자리는 그곳이 아닐세

less than 1 minute read

사실 이제까지 아무런 불평불만 없이 잘 써왔다. Lisp를 틈틈이 배우고 있는데, 가장 잘 어울리는 환경이 Emacs라서 설치하고 도움말을 찾아봤다. 그런데 얼씨구! 키 입력에 왜 이리 컨트롤 키(Ctrl)가 많은지 모르겠다. 같이 누르기가 너무 불편하다. 단축키를 배정한 사람이 ...

Back to Top ↑

memoization

#term memoization, 메모이제이션

less than 1 minute read

계산한 값을 메모리에 저장해서 여러 번 같은 값 계산을 피하는 최적화 기법을 메모이제이션(memoization)이라고 한다. 실행 속도와 공간을 바꾸는 가장 기초적인 기법이기도 하다. 실수로 메모리제이션이라고 하기도 하는데 메모이제이션이 정확한 용어이다.

Back to Top ↑

bug

Back to Top ↑

defect

Back to Top ↑

infection

Back to Top ↑

failure

Back to Top ↑

performance

Back to Top ↑

gamasutra

Back to Top ↑

jordan-mechner

Back to Top ↑

tr1

#cpp #tr1 shared_ptr, weak_ptr

1 minute read

STL에는 auto_ptr라는 스마트 포인터가 있지만 할당하면 소멸식 복사(destructive copy)로 자원에 대한 소유권을 넘겨주는 동작을 한다. STL 알고리즘은 값에 의한 복사가 기본 동작이라서 컨테이너에 못 넣는 스마트 포인터가 되겠다. 이게 이슈가 많이 돼서 이름도 ...

Back to Top ↑

interview

Back to Top ↑

agile

Back to Top ↑

mutlithread

Back to Top ↑

david-thomas

실용주의 프로그래머 (데이비드 토머스, 앤드류 헌트, 2005) 독후감

1 minute read

실용주의 프로그래머는 무엇이 다른가? 우리는 태도와 스타일 그리고 문제와 해법에 접근하는 철학에 차이가 있다고 생각한다. 그들은 직면한 문제 너머를 생각하며, 문제를 항상 더 큰 맥락에 놓으려 노력하고, 항상 더 큰 그림을 보려 한다. 어쨌건 이런 더 큰 맥락 없이 도대체 어...

Back to Top ↑

data-structure

Back to Top ↑

linus-torvals

Back to Top ↑

study-group

Back to Top ↑

visualization

Back to Top ↑

readme

Back to Top ↑

documentation

Back to Top ↑

clojurescript

Back to Top ↑

seminar

Back to Top ↑

chat-ops

Back to Top ↑

light-table

Back to Top ↑

yahoo-pipes

#yahoopipes 로 여러 #rss 피드 대통합

less than 1 minute read

yahoo pipes를 사용하면 된다. 편하네. 예전에 알았던 야후 파이프를 이제야 써먹어 본다. 복잡하지 않으면 그래프 기반 다이어그램처럼 직관적인 게 따로 없다. 내가 만든 파이프.

Back to Top ↑

37signals

Back to Top ↑

stackoverflow

Back to Top ↑

jeff-atwood

Back to Top ↑

speakerdeck

Back to Top ↑

slide

Back to Top ↑

moe

#ndc_14 #review 모에론 - 김용하 (스마일게이트)

less than 1 minute read

모에. 뭔지 모르지만 익숙하다. 왜냐면 내 첫 게임 프로젝트에서 많이 쓰였기 때문이다. 모델 뷰어는 MoeView였고 월드 에디터는 MoeTanz였다. 뭔지는 모르겠지만 일반적이지 않다는 건 느꼈다. 아. 다행히 클래스 이름 접두어는 Moe가 아니었… 아니, 있었던 거 같기도 하고.

Back to Top ↑

vocaloid

Back to Top ↑

mikumikudance

Back to Top ↑

miku

Back to Top ↑

tbot-800

Back to Top ↑

travis-ci

Back to Top ↑

ndc-oslo

Back to Top ↑

artifacts

Back to Top ↑

분유통

Back to Top ↑

modern-cpp-design

Back to Top ↑

evernote

Back to Top ↑

senior

Back to Top ↑

greasemonkey

Back to Top ↑

amazon

Back to Top ↑

logistics

Back to Top ↑

pixar

Back to Top ↑

collaboration

Back to Top ↑

url

Back to Top ↑

report

Back to Top ↑

issue-tracker

Back to Top ↑

devcat

Back to Top ↑

newline

Back to Top ↑

boost

Back to Top ↑

1password

Back to Top ↑

lastpass

Back to Top ↑

dropbox

Back to Top ↑

software

Back to Top ↑

water-bottle

Back to Top ↑

clipboard

Back to Top ↑

uac

UAC 관리자 권한 요청을 batch script에서

less than 1 minute read

ohyecloudy/dotfiles에 있는 windows bootstrap 배치 스크립트에는 심볼릭 링크 생성이 있다. 관리자 권한으로 실행해야 하는 커맨드. 심볼릭 링크 생성이 뒤에 있어서 배치 스크립트 실패를 더럽게 한다. 그리고 관리자 권한이 필요하다는 걸 항상 실패하고 난 ...

Back to Top ↑

blue-wavelenghts

Back to Top ↑

melatonin

Back to Top ↑

ted

Back to Top ↑

motivation

Back to Top ↑

dan-pink

Back to Top ↑

question

Back to Top ↑

ifixit

Back to Top ↑

emoji

Back to Top ↑

css

Back to Top ↑

vagrant

vagrant로 쓰고 버릴 gerrit plugin 빌드환경 구축

less than 1 minute read

gerrit plugin을 설치하려고 찾아보니 jar는 없다. 소스만 있다. 직접 빌드해야지 뭐. GerritForge jenkins에서 다운로드 받을 수 있긴 한데, 깨져 있는 것들도 보이고 해서 직접 빌드하기로 결정.

Back to Top ↑

game-spot

#bts 오버워치 이야기 (The Story of Overwatch, GameSpot)

less than 1 minute read

저희에게 이건 마지막 기회였어요. 우리 분야에선 “네가 만든 마지막 게임이 너를 보여준다”는 말을 자주 써요. 예를 들면 “야 내가 2008년에 와우라는 개쩌는 게임을 만들었어”라면서 자만하지 말라는 거죠. 2008년 얘기잖아요. 제가 최근에 담당한 게임은 타...

Back to Top ↑

profile

Back to Top ↑

fluid

Back to Top ↑

double-fine

Back to Top ↑

bio-ware

Back to Top ↑

god-of-war

#bts God of War 3 메이킹 영상

less than 1 minute read

유튜브에서 검색하다 우연히 발견해 올라온 건 다 봤다.HD 화질로 한 분이 쫙 올렸다. 빠진 게 있으려나 모르겠네.

Back to Top ↑

santa-monica-studio

#bts God of War 3 메이킹 영상

less than 1 minute read

유튜브에서 검색하다 우연히 발견해 올라온 건 다 봤다.HD 화질로 한 분이 쫙 올렸다. 빠진 게 있으려나 모르겠네.

Back to Top ↑

dod

Back to Top ↑

particle

Back to Top ↑

lionhead

Back to Top ↑

ui

Back to Top ↑

lucas-arts

#gdc11 #review Anti-aliasing from a Different Perspective

less than 1 minute read

blur를 먼저하고 edge를 찾고 마스킹. 여기서 long, short edge를 구분하고 blur 커널 크기를 다르게 적용해서 original layer에 blend한다. 사진으로 보니 MLAA(morphological anti-aliasing)와 비슷한 품질이 나오고 더 빠르...

Back to Top ↑

anti-aliasing

#gdc11 #review Anti-aliasing from a Different Perspective

less than 1 minute read

blur를 먼저하고 edge를 찾고 마스킹. 여기서 long, short edge를 구분하고 blur 커널 크기를 다르게 적용해서 original layer에 blend한다. 사진으로 보니 MLAA(morphological anti-aliasing)와 비슷한 품질이 나오고 더 빠르...

Back to Top ↑

bioware

Back to Top ↑

level

Back to Top ↑

boxen

Back to Top ↑

explain

Back to Top ↑

eidos-montreal

Back to Top ↑

diablo

Back to Top ↑

nvidia

#gdc12 #review Solving Rigid Body Contacts

less than 1 minute read

contact solve를 이렇게 설명할 수 있구나. NDC 12에서 발표한 게임 물리 엔진의 내부 동작 원리 이해 발표보다 훨씬 세련되게 설명한다. 한 수 배웠다. 설명 방법이 돋보였던 발표.

Back to Top ↑

assert

Back to Top ↑

undo

Back to Top ↑

havok

Back to Top ↑

rtti

Back to Top ↑

script

Back to Top ↑

reflection

Back to Top ↑

frostbite

Back to Top ↑

terrain

Back to Top ↑

architecture

Back to Top ↑

server

Back to Top ↑

arena-net

Back to Top ↑

tomb-raider

Back to Top ↑

crystal-dynamics

Back to Top ↑

replay

Back to Top ↑

2k

Back to Top ↑

serialization

Back to Top ↑

wow

Back to Top ↑

simcity

Back to Top ↑

space-chem

Back to Top ↑

design-based-puzzle

Back to Top ↑

sound

Back to Top ↑

devsisters

Back to Top ↑

cppcon14

Back to Top ↑

codebase

Back to Top ↑

module

Back to Top ↑

microsoft

Back to Top ↑

tajo

#review AWS + Tajo를 이용한 ‘테라 렉 로그 분석 이야기’

less than 1 minute read

클라이언트 로그 수집할 때, 참고로 쓸 수 있는 좋은 발표. 로그 사이즈 때문에 클라이언트 로그를 수집하는 게 상당히 부담스러운 일인데, AWS를 사용하면 할 만하다. 하루에 5억건. 500GB 정도가 로그로 쌓인다.

Back to Top ↑

bluehole

#review AWS + Tajo를 이용한 ‘테라 렉 로그 분석 이야기’

less than 1 minute read

클라이언트 로그 수집할 때, 참고로 쓸 수 있는 좋은 발표. 로그 사이즈 때문에 클라이언트 로그를 수집하는 게 상당히 부담스러운 일인데, AWS를 사용하면 할 만하다. 하루에 5억건. 500GB 정도가 로그로 쌓인다.

Back to Top ↑

tera

#review AWS + Tajo를 이용한 ‘테라 렉 로그 분석 이야기’

less than 1 minute read

클라이언트 로그 수집할 때, 참고로 쓸 수 있는 좋은 발표. 로그 사이즈 때문에 클라이언트 로그를 수집하는 게 상당히 부담스러운 일인데, AWS를 사용하면 할 만하다. 하루에 5억건. 500GB 정도가 로그로 쌓인다.

Back to Top ↑

ab

Back to Top ↑

mab

Back to Top ↑

solve

Back to Top ↑

herb_sutter

Back to Top ↑

gcpp

Back to Top ↑

type

Back to Top ↑

phantom-types

Back to Top ↑

error-report

Back to Top ↑

dev-env

Back to Top ↑

engine

Back to Top ↑

tuple

Back to Top ↑

bjarne-stroustrup

Back to Top ↑

bitsquid

Back to Top ↑

gdc09

Back to Top ↑

cpp-proposal

Back to Top ↑

cpp11

Back to Top ↑

mobile

Back to Top ↑

ubisoft

Back to Top ↑

tdd

Back to Top ↑

picasa

Back to Top ↑

package-manager

Back to Top ↑

pass

pass, expect 프로그램과 함께한 #jekyll 블로그 deploy 스크립트

2 minute read

static 블로깅 툴인 jekyll은 직접 빌드를 해야 한다. 빌드 결과물인 html, css 파일을 웹호스팅 서버로 배포한다. 이걸 수동으로 하고 있었다. script/build 스크립트로 빌드하고 filezilla로 업로드하고 있다. 언젠가는 aws로 옮기고 push hook...

Back to Top ↑

expect

pass, expect 프로그램과 함께한 #jekyll 블로그 deploy 스크립트

2 minute read

static 블로깅 툴인 jekyll은 직접 빌드를 해야 한다. 빌드 결과물인 html, css 파일을 웹호스팅 서버로 배포한다. 이걸 수동으로 하고 있었다. script/build 스크립트로 빌드하고 filezilla로 업로드하고 있다. 언젠가는 aws로 옮기고 push hook...

Back to Top ↑

lazy

Back to Top ↑

enumeration

Back to Top ↑

chrome-driver

Back to Top ↑

templates

프로젝트 템플릿을 모아두는 github 저장소를 만들었다

less than 1 minute read

최근 elixir 프로젝트를 몇 개 진행하며 프로젝트 템플릿을 모아두는 github 저장소를 만들어야겠다고 생각했다. 매번 필요한 스크립트를 이전 프로젝트 디렉터리를 뒤져서 복사해서 사용했기 때문이다. 그냥 가져다 쓰는 경우도 있지만 수정하거나 추가하는 경우도 있다. 갱신한 스크립...

Back to Top ↑

big-data

Back to Top ↑

protocol

Back to Top ↑

polymorphism

Back to Top ↑

example-code

Back to Top ↑

sentry

Back to Top ↑

error

Back to Top ↑

error-tracking

Back to Top ↑

twitter-card

Back to Top ↑

metadata

Back to Top ↑

the-open-graph-protocol

Back to Top ↑

ets

소스 코드 읽기: erlang telemetry

4 minute read

telemetry는 erlang과 elixir에서 표준처럼 쓰는 메트릭(metric) 및 계측(instrumentation) 용도로 사용하는 동적 디스패치(dynamic dispatching) 라이브러리다.

Back to Top ↑

firefox

회사 메일로 google 계정을 만들어 업무용 google 계정을 분리

1 minute read

업무에서 사용하는 google 스프레드시트 때문에 회사에서도 google 계정을 사용하게 됐다. 구글 계정은 무조건 gmail.com 도메인을 사용해야 하는 줄 알았다. 초반에 개인 이메일을 써버려서 바꾸려니 귀찮다. 이런 이유로 개인 google 계정과 회사 google 계정을 ...

Back to Top ↑

gdc15

Back to Top ↑

optionparser

Back to Top ↑

cli

Back to Top ↑

macbook

Back to Top ↑

sticker

Back to Top ↑

programmer-swag

Back to Top ↑

jwt

Back to Top ↑

hadolint

Back to Top ↑

open-api

Back to Top ↑

decorator

Back to Top ↑

plug

Back to Top ↑

websocket

Back to Top ↑

replit

Learn Python the Right Way (Ritza Scott, 2021) 독후감

less than 1 minute read

python 공식 홈페이지에 튜토리얼이 있는 걸 발견했다. 이걸로 시작하려고 했는데, ’올바른 방법으로 Python 배우기 {무료 E북}​’ 글에서 “유명한 책인 ‘컴퓨터 과학자처럼 생각하며 배우는 파이썬’의 최신 개정판”이란 소개 글을 보고 읽기 시작했다. 고맙게도 무료 E북이다.

Back to Top ↑

layers

Back to Top ↑

재택근무

재택근무 장비와 소프트웨어 셋업 후기 - 데스크 셋업

2 minute read

찔끔찔끔 하나씩 준비했다. 코로나19가 이렇게 길어질 줄 알았다면 투자 좀 할걸. 2021년 5월 정도에 재택근무 환경을 쾌적하게 만들었다. 늦었지만 퇴근 후 개인 작업을 할 환경을 만든다고 생각하자면서 투자를 했는데, 웬걸 코로나19로 재택근무가 더 길어졌다. 되돌아보니 그리 늦...

Back to Top ↑

setup

재택근무 장비와 소프트웨어 셋업 후기 - 데스크 셋업

2 minute read

찔끔찔끔 하나씩 준비했다. 코로나19가 이렇게 길어질 줄 알았다면 투자 좀 할걸. 2021년 5월 정도에 재택근무 환경을 쾌적하게 만들었다. 늦었지만 퇴근 후 개인 작업을 할 환경을 만든다고 생각하자면서 투자를 했는데, 웬걸 코로나19로 재택근무가 더 길어졌다. 되돌아보니 그리 늦...

Back to Top ↑

desk-setup

재택근무 장비와 소프트웨어 셋업 후기 - 데스크 셋업

2 minute read

찔끔찔끔 하나씩 준비했다. 코로나19가 이렇게 길어질 줄 알았다면 투자 좀 할걸. 2021년 5월 정도에 재택근무 환경을 쾌적하게 만들었다. 늦었지만 퇴근 후 개인 작업을 할 환경을 만든다고 생각하자면서 투자를 했는데, 웬걸 코로나19로 재택근무가 더 길어졌다. 되돌아보니 그리 늦...

Back to Top ↑

youtube

Tampermonkey로 YouTube 우측에 있는 비슷한 영상 목록 제거

1 minute read

youtube 영상 하나 보고 끝내면 되는데, 우측에 보이는 비슷한 영상 목록에서 재미있어 보이는 걸 새 탭으로 열고 봐서 문제다. youtube에 정보가 많아서 마냥 피할 수는 없다. 내 의지 따위는 믿지 않고 하나만 보고 끝내는 환경을 만들기로 했다. ’눌러라 그러면 열릴 것이...

Back to Top ↑

google-calendar

Back to Top ↑

ics

Back to Top ↑

vpn

macOS 화면 공유(feat. Tailscale)

1 minute read

맥 미니(Mac mini M2, 2023)를 꺼본 적이 없다. 매직 트랙패드(Magic Trackpad) 2를 손가락으로 간지럽히면 언제든 깨어난다. 팬이 있는지도 모르겠다. 이게 다 조용해서 그렇다.

Back to Top ↑

macOS

macOS 화면 공유(feat. Tailscale)

1 minute read

맥 미니(Mac mini M2, 2023)를 꺼본 적이 없다. 매직 트랙패드(Magic Trackpad) 2를 손가락으로 간지럽히면 언제든 깨어난다. 팬이 있는지도 모르겠다. 이게 다 조용해서 그렇다.

Back to Top ↑

tailscale

macOS 화면 공유(feat. Tailscale)

1 minute read

맥 미니(Mac mini M2, 2023)를 꺼본 적이 없다. 매직 트랙패드(Magic Trackpad) 2를 손가락으로 간지럽히면 언제든 깨어난다. 팬이 있는지도 모르겠다. 이게 다 조용해서 그렇다.

Back to Top ↑

cookbook

C# 동시성 프로그래밍 2/e (스티븐 클리어리, 2019) 독후감

less than 1 minute read

C# 비동기 프로그래밍에 익숙하지 않아서 책을 사서 읽었다. 비동기 기초, 비동기 스트림, TPL(task parallel library)을 활용한 병렬 처리, System.Reactive, 테스트, 컬렉션, 동기화 등 동시성 프로그래밍에 필요한 폭넓은 지식이 담겨 있다. 여기서 ...

Back to Top ↑

asdf

Back to Top ↑

escript

Back to Top ↑

environment-variables

Back to Top ↑

paas

Back to Top ↑

tar

Back to Top ↑

curl

Back to Top ↑

oh-my-zsh

Back to Top ↑

macos

Back to Top ↑

github-codespaces

Back to Top ↑

vacuous-truth

빈 리스트에 대한 all? 함수의 리턴 값은? - 공허참(vacuous truth)

3 minute read

Enum.all?/1 함수를 사용한 함수 테스트할 때였던 걸로 기억한다. 비어 있는 리스트를 넣어서 테스트했을 때, 기대하지 않은 값이 나와서 의아했다. 비어 있는 리스트를 인자로 넘겼을 때, false 값이 나올 것으로 기대했다. 하지만 true 로 나오는 것이었다. Enum.a...

Back to Top ↑

material-conditional

빈 리스트에 대한 all? 함수의 리턴 값은? - 공허참(vacuous truth)

3 minute read

Enum.all?/1 함수를 사용한 함수 테스트할 때였던 걸로 기억한다. 비어 있는 리스트를 넣어서 테스트했을 때, 기대하지 않은 값이 나와서 의아했다. 비어 있는 리스트를 인자로 넘겼을 때, false 값이 나올 것으로 기대했다. 하지만 true 로 나오는 것이었다. Enum.a...

Back to Top ↑

business-logic

단위 테스트가 의미 있는 코드 유형은 뭘까? 통합 테스트는?

3 minute read

’단위 테스트 (블라디미르 코리코프, 2021)’ 책의 ’7장 가치 있는 단위 테스트를 위한 리팩터링’을 보고 정리한 내용이다. 모든 코드를 테스트할 수는 없다. 그래서 중요하고 의미 있는 영역부터 테스트를 짜야 한다. 중요한 영역부터 시작해 덜 중요한 영역까지 테스트 커버리지를 ...

Back to Top ↑

orchestration

단위 테스트가 의미 있는 코드 유형은 뭘까? 통합 테스트는?

3 minute read

’단위 테스트 (블라디미르 코리코프, 2021)’ 책의 ’7장 가치 있는 단위 테스트를 위한 리팩터링’을 보고 정리한 내용이다. 모든 코드를 테스트할 수는 없다. 그래서 중요하고 의미 있는 영역부터 테스트를 짜야 한다. 중요한 영역부터 시작해 덜 중요한 영역까지 테스트 커버리지를 ...

Back to Top ↑

test-double

Back to Top ↑

stub

Back to Top ↑

dependency

Back to Top ↑

database

Back to Top ↑

postgresql

Back to Top ↑

hbase

Back to Top ↑

mongodb

Back to Top ↑

couchdb

Back to Top ↑

neo4j

Back to Top ↑

dynamodb

Back to Top ↑

redis

Back to Top ↑

code-kata

예제로 보는 Property-Based Testing (feat. Kata09: Back to the Checkout)

10 minute read

’속성 기반 테스트(Property-based Testing)와 속성 정의에 도움을 주는 네 가지 방법’ 글에서 속성 기반 테스트를 간략히 살펴봤다. 대략 감은 잡겠지만 속성 기반 테스트를 짜라고 하면 막막하다. 이럴 때는 좋은 예제가 도움을 줄 수 있다.

Back to Top ↑

parallel

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

Back to Top ↑

race-condition

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

Back to Top ↑

beam

Stateful Property-Based Testing 병렬 테스트

4 minute read

속성 기반 테스트 프레임워크인 PropEr, PropCheck를 사용하면 ’Cache 예제코드를 테스트하며 맛보는 Stateful Property-Based Testing’ 예제를 손쉽게 병렬 테스트로 바꿀 수 있다.

Back to Top ↑

proper

Back to Top ↑

elixirlnag

Back to Top ↑

procheck

Back to Top ↑

task

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

genserver

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

flow

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

boadway

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

concurrency

Concurrent Data Processing In Elixir (Svilen Gospodinov, 2021) 독후감

less than 1 minute read

Task 모듈부터 시작해 GenServer, GenStage, Flow, Broadway까지 간다. 동시성 데이터 처리에 관련된 유용한 라이브러리를 망라하고 있다. 마지막으로 나오는 Broadway가 막판 대장이다. 여러 stage를 GenStage로 꾸역꾸역 구현해서 사용하고 있...

Back to Top ↑

behaviour

Elixir 언어에서 Behaviour란?

9 minute read

Elixir에서 Behaviour란 용어가 나온다. Erlang의 어깨 위에 올라서서 만든 언어라 Erlang에서 사용하는 Bahaviour라는 용어를 그대로 가져온 것 같다. C++의 pure virtual function만 정의한 클래스 혹은 C#의 interface와 비슷한 ...

Back to Top ↑