기술 블로그

게임 개발, AI, 교육 — 현장에서 배운 것들을 기록합니다.

함수형 프로그래밍에서 재귀가 중요한 이유는 루프를 금지해서가 아니라 상태를 드러내기 위해서다
프로그래밍 2026.04.30
함수형 프로그래밍에서 재귀가 중요한 이유는 루프를 금지해서가 아니라 상태를 드러내기 위해서다

함수형 프로그래밍에서 재귀는 루프의 대체재라기보다 상태 변화를 인자로 드러내는 방식에 가깝다. 특히 꼬리 재귀와 누산기 패턴을 이해하면 이 차이가 분명해진다.

더 읽기 →
함수형 프로그래밍이 게임 개발에서 유용한 곳은 상태를 없애는 곳이 아니라 상태 변화를 분리하는 곳이다
프로그래밍 2026.04.30
함수형 프로그래밍이 게임 개발에서 유용한 곳은 상태를 없애는 곳이 아니라 상태 변화를 분리하는 곳이다

함수형 프로그래밍은 게임 코드를 전부 다시 쓰라는 명령이 아니다. 불변 데이터와 순수 함수의 관점을 이용해 규칙 계산, 상태 전이, 서버 메시지 처리처럼 변화를 분리해야 하는 영역을 더 다루기 쉽게 만든다.

더 읽기 →
잘 설계된 소프트웨어는 현재 요구사항을 넘어서 나중에 읽고 고치기 쉬운 구조를 남긴다
프로그래밍 2026.04.29
잘 설계된 소프트웨어는 현재 요구사항을 넘어서 나중에 읽고 고치기 쉬운 구조를 남긴다

잘 설계된 소프트웨어는 지금 동작하는 것만으로는 충분하지 않다. 요구사항 충족, 정보 은닉, 가독성, 변경 용이성, 과잉 설계 회피라는 다섯 기준으로 다시 정리한다.

더 읽기 →
소프트웨어 설계가 처음이라면 이 5가지 질문부터 던지는 편이 낫다
프로그래밍 2026.04.29
소프트웨어 설계가 처음이라면 이 5가지 질문부터 던지는 편이 낫다

처음 설계를 시작할 때는 클래스 수를 늘리는 것보다, 무엇이 책임이고 무엇이 자주 바뀌는지 먼저 묻는 편이 훨씬 안전하다. 입문자가 바로 적용할 수 있는 5가지 질문으로 정리한다.

더 읽기 →
소프트웨어는 분석-설계-구현-테스트를 한 번만 도는 것이 아니라 계속 되감기며 만들어진다
프로그래밍 2026.04.28
소프트웨어는 분석-설계-구현-테스트를 한 번만 도는 것이 아니라 계속 되감기며 만들어진다

소프트웨어 개발은 분석-설계-구현-테스트가 한 번 직선으로 끝나는 공정이 아니다. 작은 단위를 반복하며 스코프를 줄이고 피드백을 되감는 순환 구조로 보는 편이 실제에 가깝다.

더 읽기 →
소프트웨어 설계를 배우려면 UML보다 먼저 구조를 설명하는 습관부터 익히는 편이 낫다
프로그래밍 2026.04.27
소프트웨어 설계를 배우려면 UML보다 먼저 구조를 설명하는 습관부터 익히는 편이 낫다

소프트웨어 설계 입문에서 중요한 것은 다이어그램 도구를 많이 아는 것이 아니라, 시스템의 경계와 책임을 설명하는 습관을 익히는 것이다. UML과 C4 모델은 그 다음에 붙이는 도구에 가깝다.

더 읽기 →
『Design Patterns』를 다시 읽을 때 중요한 것은 23개 암기가 아니라 공통 언어다
프로그래밍 2026.04.20
『Design Patterns』를 다시 읽을 때 중요한 것은 23개 암기가 아니라 공통 언어다

Erich Gamma 외 3인의 『Design Patterns』는 23개 패턴 목록보다도, 반복되는 설계 문제를 이름 붙이고 토론하게 만든 공통 언어로서 영향력이 컸다.

더 읽기 →
좋은 주석은 코드를 대신 설명하지 않고 의도와 계약을 남긴다
프로그래밍 2026.04.18
좋은 주석은 코드를 대신 설명하지 않고 의도와 계약을 남긴다

Google C++ Style Guide, PEP 8·257, Javadoc, Go 문서 주석 가이드를 바탕으로, 어떤 주석은 지우고 어떤 주석은 남겨야 하는지 정리한다.

더 읽기 →
BDD를 테스트 문법으로만 이해하면 놓치게 되는 것
프로그래밍 2026.04.14
BDD를 테스트 문법으로만 이해하면 놓치게 되는 것

Dan North, Martin Fowler, Cucumber 문서를 기준으로, 행동 주도 개발이 단순한 '주어진 상황-행동-결과' 문법이 아니라 요구사항과 테스트를 같은 언어로 연결하려는 시도였다는 점을 다시 정리한다.

더 읽기 →
좋은 프로그램은 빨리 끝나는 코드보다 읽히고 수정되는 코드에 가깝다
프로그래밍 2026.03.31
좋은 프로그램은 빨리 끝나는 코드보다 읽히고 수정되는 코드에 가깝다

좋은 프로그램의 기준은 성능 하나로 정해지지 않는다. 이름, 함수 크기, 주석, 일관성, 리팩토링 가능성처럼 다른 사람이 읽고 고칠 수 있는 코드의 조건을 다시 정리한다.

더 읽기 →