AI VIDEO BRIEFING
사람이 읽는 코드(Human Readable Code)란? 유창한 API와 도메인 언어로 협업하기
코드를 컴퓨터가 아니라 사람이 읽도록 설계하면 비개발자도 옳고 그름을 검증할 수 있다. 자바 카드 덱 예시로 유창한 API와 합의된 도메인 언어를 만드는 과정을 보여주고, 특히 테스트에서 빛나는 이 방식의 가치와 한계를 함께 짚는다.

핵심 메시지
쉽게 이해하기
발표자는 소프트웨어 엔지니어와 의뢰인이 서로의 전문 영역을 완전히 알지 못한다는 점에서 출발한다. 전통적으로는 큰 명세 문서를 넘기고 개발자가 해석해 코드로 옮기지만, 제대로 이해했는지는 애플리케이션을 돌려봐야 알 수 있고 그때는 이미 몇 달이 지나 있다. 그래서 함께 코드를 보며 '이게 맞다/틀리다'를 바로 이야기할 수 있으면 좋겠다는 문제의식을 제시한다.
주석을 많이 다는 해법은 한계가 분명하다. 주석은 코드와 빠르게 어긋나고, 결국 사람용 설명과 컴퓨터용 코드라는 두 가지가 따로 존재하게 된다. '틀린 줄 알면서도 모두가 무시하는 포스트잇'에 비유한다. 또 특정 문제에 꼭 맞는 도메인 특화 언어(DSL)를 새로 만드는 방법도 있지만, 언어를 만드는 일 자체가 만만치 않다.
그래서 발표자는 자바 같은 주류 언어를 쓰되 가독성을 최우선으로 두는 방법을 택한다. 카드 덱 예시에서 '스페이드이면서 5 미만인 카드를 모두 찾아 출력하라' 같은 영어 문장에 최대한 가깝게 코드를 먼저 적는다. 동작 여부는 잠시 미루고, 먼저 '읽히는 모양'을 잡은 뒤 언어를 그 모양에 맞춰 가는 식이다.
이 과정에서 spades는 choice(선택지), print them은 action(동작), 결과는 selection(선택 묶음)처럼 합의된 용어로 개념을 하나씩 정의해 나간다. 점(.)으로 이어지는 한 줄짜리 '유창한(fluent) API'를 만들기 위해 메서드들이 적절한 타입을 반환하도록 다듬는다. and를 then으로 바꾸자는 제안처럼, 표현을 함께 고치며 공통 어휘를 발견하는 것 자체가 값진 통찰이 된다.
발표자는 비용과 한계도 솔직히 인정한다. 이런 작은 언어를 만드는 데는 한두 시간의 선행 투자가 들고, 일회성 작업이라면 굳이 그렇게까지 할 필요가 없다. 다만 자주 다루는 핵심 영역이라면, 새 기능을 빠르게 표현할 수 있어 투자 가치가 있다고 본다. 만든 작은 언어는 자바에 묶여 포터블하지 않지만, 같은 철학은 파이썬·자바스크립트·C#에서도 적용할 수 있다고 덧붙인다.
주요 인사이트
- 코드를 밑에서부터 쌓아 올리기보다, '이렇게 읽혔으면 좋겠다'는 최종 모습에서 출발해 언어를 그 모양에 맞춰 가는 접근이 핵심이다.
- 용어를 함께 합의하는 과정에서 개념의 진짜 의미가 드러난다. 발표자는 이 '공유 어휘의 발견'을 코드보다 더 값진 산출물로 본다.
- 이 방식이 가장 빛나는 곳은 테스트다. 의뢰인이 직접 읽고 '이 테스트가 맞다'고 검증한 뒤 통과한다면, 시스템이 올바르다는 확신이 훨씬 커진다.
- '사람을 위한 코드'는 비개발자가 코드를 작성하지는 못해도 최소한 검증은 할 수 있게 하여, 오해로 인한 값비싼 재작업을 줄여 준다.
자주 묻는 질문
왜 주석을 많이 다는 것만으로는 부족한가요?
주석은 코드의 실제 동작과 금세 어긋나기 때문입니다. 그러면 사람용 설명과 컴퓨터용 코드라는 두 가지가 따로 존재하게 되고, '틀린 줄 알면서도 모두가 무시하는 포스트잇'처럼 됩니다.
유창한(fluent) API란 무엇인가요?
여러 문장으로 나누지 않고 점(.)으로 메서드를 이어 한 문장처럼 읽히게 만든 설계입니다. 영상에서는 카드 찾기·조건 지정·출력을 한 줄로 이어, 영어 문장에 가깝게 코드를 읽도록 만들었습니다.
이 방식의 가치가 가장 큰 영역은 어디인가요?
발표자는 테스트를 꼽습니다. 의뢰인이 직접 테스트를 읽고 옳다고 검증한 뒤 그 테스트가 통과하면, 올바른 것을 만들고 있다는 확신을 크게 높일 수 있기 때문입니다.
이렇게 만든 작은 언어는 다른 언어로 옮길 수 있나요?
자바로 만든 작은 언어 자체는 포터블하지 않습니다. 다만 파이썬·자바스크립트·C# 등에서도 각 언어의 기법을 활용해 같은 철학을 적용할 수 있다고 발표자는 설명합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗