삽질로 알아보는 파이썬과 루비의 기본 매개변수
Default Argument X (Python, Ruby)

파이썬과 루비의 문법 차이로 인한 버그를 당한적은 자주 있었지만 글로 다룰 생각까진 (게을러서) 하지 않았다. 하지만 아래의 글을 읽고 파이썬와 루비의 차이로 인한 버

예제로 보는 Python과 Ruby의 문법 차이 - Multiple Assignment
Multiple Assignment with (Python 2.x, Python 3.x, Ruby)

파이썬과 루비는 겉보기에는 비슷해보이면서 완전히 다르게 행동하는 문법이 있다. 그래서 파이썬을 생각하면서 루비 코드를 짜면 어처구니 없는 버그가 생긴다. 이런 일

디버깅 포스트모템 - 박살난 소멸자
LLDB를 이용해서 버퍼 오버플로우 찾기

개요 최근에 레거시 코드에 숨겨진 버퍼 오버플로우 버그를 잡느라고 하루를 날렸습니다. 찾고나니 간단한 버그였지만 하루씩이나 걸렸습니다. 버그를 잡은 다음에 생각

Go language 첫인상
Go language 입갤

개요 주력 언어를 바꾸는건 어려운 일이다. 주력 언어를 바꾸면 상당히 많은걸 버려야하기 때문이다. 익숙한 세계를 버리고, 지금까지 배운 라이브러리를 잊고, 지금까

매크로 상수를 변경하기 쉽게 바꾸는 편법
globals.h 고쳐도 전체 빌드 안하기

int main() { printf("%d\n", FOO + 123); 프로젝트를 진행하면 아무리 설계를 잘해도 여러 파일에서 사용되는 상수를 피할수 없다. 이때는 보통 공유하는 상수/함수 등을 모아서 별도의 헤더 파일

아름다운 PHP array_search()
잘못된 API 설계를 통해 알아보는 여러가지 대안

개요 떡밥 투척 boolean 검사코드 나는 success==false 파벌 https://twitter.com/if1live/status/662925445990498304 집에서 뒹굴다가 뜬금없는 떡밥이 생각나서 트위터에 투표를 던졌다. 투표를 던지고 보니 생각보다 많은 사람들이 if(!success) 를 선호하더

bit mask로 사람 낚기. (flags & MASK == MASK)
연산자 우선순위로 낚시하기. 그리고 회피법

낚시 코드 C/C++ 에서는 한번에 여러개의 플래그를 넘길떄 비트 연산자를 사용하기도 한다. 다음은 간단한 예제 코드이다. 사용 가능한 플래그로는 fullscreen, stencil, double buffer가 있

HTML textarea의 개행문자는 무엇일까?
LF vs CRLF vs 상황에 따라 다르다 vs 충격과 공포

개요 내가 요즘에 만드는 것은 HTTP기반의 모바일 게임이다. 서버와 클라는 HTTP로 통신을 하고 클라는 서버의 요청을 예쁘게 그려주는 역할을 수행한다. 간단히

스택 지역 변수의 주소값을 이용한 버그
Off-By-One Error를 이용한 무한루프 구현(?)

얼마전에 gcc와 clang이 정렬되지 않은 구조체(예를 들어 구조체의 크기가 7바이트) 를 어떤식으로 메모리에 배치하는지 테스트하다가 재밌는 현상을 발견해

Doge Math 개발 포스트모템
You do the math! You do the code!

개요 2015/09/07 ~ 2015/09/12 동안 뻘짓 개발한 개인 플젝을 정리하기로 했다. 지금까지는 개인 프로젝트에 대해서 기록을 남기지 않았지만 이번에는 몇가지 이유로 기록을 남겨볼까한다.