더 빠르고 정확한 코드 작성의 비밀: 멘탈 코드 증명

2025-07-16

이 글에서는 더 빠르고 정확하게 코드를 작성하는 기법을 소개합니다. 코딩 흐름을 중단하지 않고 코드의 정확성을 머릿속으로 증명하는 "온라인" 증명 방법입니다. 저자는 코드의 단조로움에 집중하고, 전조건과 후조건을 활용하며, 불변량을 유지하고, 변경의 영향 범위를 격리하는 등 이 과정을 돕는 몇 가지 전략을 자세히 설명합니다. 재귀 함수와 데이터 구조에 대한 귀납적 추론도 강조하며, "증명 친화성"을 코드 품질 지표로 제시합니다. 마지막으로 저자는 수학적 증명 연습을 통해 코드 증명 능력을 향상시킬 것을 제안합니다.

더 보기

Y 콤비네이터를 처음부터 굽기: 파트 1 - 고정점 콤비네이터

2025-04-09

이 게시글에서는 명시적인 자기 참조 없이 함수형 언어에서 재귀를 구현하는 수학적 구조인 Y 콤비네이터를 자세히 설명합니다. 먼저 고정점에 대해 설명하고, 그런 다음 Y 콤비네이터 공식을 단계적으로 유도하여 자기 복제 메커니즘을 설명합니다. Ω 콤비네이터 분석을 통해 저자는 런타임에서 자기 복제를 통해 Y 콤비네이터가 무한 중첩을 피하는 방법을 보여줍니다. 또한 람다 계산과 형식 시스템에 대한 간략한 소개를 통해 후속 파트에서 Y 콤비네이터를 더 깊이 이해할 수 있는 기반을 마련합니다.

더 보기

부울 대수로 풀어보는 미궁의 고블린 수수께끼

2025-03-06

이 글에서는 영화 '라비린스'에 나오는 고전적인 기사와 악당 논리 퍼즐을 부울 대수를 이용하여 푸는 방법을 보여줍니다. 저자는 A를 답으로, Q를 질문에 대한 정답으로, G를 고블린이 거짓말을 하는지 여부로 나타내어 문제를 모델링하고, A = G⊕Q를 유도합니다. 다른 고블린의 거짓말 여부를 질문에 교묘하게 포함시킴으로써 방정식이 단순화되고, 해결책이 드러납니다. 저자는 형식화된 접근 방식이 단계를 명확하게 해주고, 형식 시스템을 추론 도구로 사용하는 유용성을 강조합니다.

더 보기