
세상에서 가장 "읽기 힘든" 코드를 뽑는 대회
개발 공부를 하다 보면 "코드는 읽기 쉽게 짜라"는 말 정말 많이 듣잖아요. 변수 이름은 의미 있게, 들여쓰기는 정갈하게, 한 함수는 한 가지 일만 하도록. 그런데 이 모든 상식을 정반대로 뒤집은 대회가 있어요. 바로 IOCCC(International Obfuscated C Code Contest), 우리말로 풀면 "국제 난독화 C 코드 경연대회"입니다. 올해로 29회째를 맞은 이 대회의 2025년 수상작들이 공개됐거든요.
여기서 '난독화(obfuscation)'라는 말이 좀 어렵게 들릴 텐데요, 이게 뭐냐면 사람이 봐도 도대체 무슨 일을 하는지 알아보기 힘들게 코드를 꼬아 놓는 것을 말해요. 보통은 나쁜 거예요. 그런데 IOCCC는 이걸 '예술'의 경지로 끌어올린 사람을 뽑는 대회랍니다. 1984년부터 시작됐으니 무려 40년이 넘은 유서 깊은 대회예요.
그냥 못 짠 코드가 아니라 '천재적으로' 꼬아야 한다
오해하면 안 되는 게, 아무렇게나 더럽게 짠다고 상을 주는 게 아니에요. 핵심은 "겉보기엔 도저히 알 수 없는데, 실제로는 놀라운 일을 하는" 코드라는 거예요.
예를 들어 역대 수상작 중에는 이런 것들이 있었어요. 코드 자체의 생김새가 비행기 모양인데 컴파일하면 진짜 비행 시뮬레이터가 돌아간다든가, 별 의미 없어 보이는 한 줄짜리 코드가 알고 보니 원주율(파이)을 소수점 수백 자리까지 계산한다든가, 코드를 종이에 인쇄해서 접으면 그림이 되는 식이죠. 보는 사람이 "이게 어떻게 돌아가는 거지?" 하고 한참을 들여다보게 만드는 게 포인트예요.
대회에는 엄격한 규칙도 있어요. 가장 유명한 게 코드 크기 제한인데요, 정해진 바이트 수 안에서만 작성해야 해요. 공백이나 주석은 일정 부분 빼고 세주기 때문에, 작은 공간 안에 최대한 많은 마법을 욱여넣어야 하죠. 그래서 참가자들은 C 언어의 온갖 어두운 구석을 파고들어요.
사실은 'C 언어 고수 양성소'
재미로 시작한 대회 같지만, 여기서 쓰이는 기술들은 사실 C 언어의 깊은 이해가 없으면 절대 못 써요. 몇 가지 예를 들면요,
- 전처리기(Preprocessor) 마법:
#define으로 매크로를 정의하는 건데, 이걸 극단적으로 활용하면 코드 한 글자가 완전히 다른 의미로 변신해요. - 삼항 연산자와 콤마 연산자 남용:
if문 대신a ? b : c같은 표현을 줄줄이 엮어서 모든 로직을 한 줄에 우겨넣어요. - 미정의 동작(Undefined Behavior)을 아슬아슬하게 활용: 표준에서 "이렇게 하면 어떻게 될지 보장 못 한다"고 한 영역까지 건드리는 거죠.
한국 개발자에게는?
요즘은 파이썬이나 자바스크립트로 개발에 입문하는 분이 많아서 C 언어가 멀게 느껴질 수도 있어요. 하지만 운영체제, 임베디드, 게임 엔진 같은 저수준(low-level) 영역에서는 여전히 C가 왕이거든요. IOCCC 수상작을 한 번 천천히 뜯어보는 건, 마치 고수가 펼쳐놓은 마술의 트릭을 역으로 풀어보는 것과 같아요. 당장 실무에 쓸 일은 없지만, 언어를 바라보는 눈이 한 단계 깊어지는 경험이 될 거예요.
물론 교훈도 분명해요. 이 대회가 역설적으로 보여주는 건 "읽기 쉬운 코드가 왜 그렇게 소중한가"라는 거예요. 실무에서 이렇게 짰다가는 동료한테 혼나는 게 아니라 절교당할 수도 있으니까요(웃음).
마무리
한 줄로 정리하면, IOCCC는 "규칙을 완벽히 이해한 사람만이 규칙을 멋지게 어길 수 있다"는 걸 보여주는 대회예요. 여러분은 지금까지 본 코드 중에 "이건 진짜 예술이다" 싶었던 코드가 있나요? 가독성 좋은 코드와 천재적으로 꼬인 코드, 둘 중 어느 쪽이 더 '잘 짠 코드'라고 생각하시나요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공