[](https://www.nhncloud.com/kr)
> 본 콘텐츠는 작성자가 사내 게시판에 공유한 글을 가공한 것으로, 작성자의 의도와 맥락을 충실히 전달하기 위해 원문의 문장 스타일을 그대로 유지하였습니다.
---
나는 오랫동안 아름다운 코드를 꿈꿔 왔다.
순수 함수들이 물 흐르듯 합성되고, 타입 시스템이 버그를 원천적으로 불가능하게 만들며, 수학적 증명처럼 견고한 로직이 펼쳐지는 그런 코드. 우리는 그것을 '장인 정신'이라 불렀고, 그 경지에 도달하기 위해 범주론을 공부하고, 타입 레벨 프로그래밍을 이해하려 씨름했다.
그러나 어느 날 문득 깨달았다. 더 이상 아무도 코드를 읽지 않는다는 것을.
## 가독성의 정의가 바뀌다
'가독성'이라는 단어의 의미가 조용히, 그러나 근본적으로 변하고 있다.
과거의 가독성은 **인간의 인지**를 위한 것이었다.
* 개발자가 로직을 머릿속에서 추적할 수 있는가
* 동료가 코드 리뷰에서 오류를 발견할 수 있는가
* 6개월 후의 내가 이 코드를 이해할 수 있는가
우리는 이 질문들에 답하기 위해 클린 코드(Clean Code)를 논했고, SOLID 원칙을 세웠으며, 디자인 패턴이라는 공통 언어를 만들었다. 모두 인간의 제한된 작업 기억 용량 안에서 복잡성을 다루기 위한 몸부림이었다.
그러나 이제 가독성은 기계의 패턴 인식을 위한 것이 되어 가고 있다.
* AI가 이 코드의 패턴을 학습 데이터에서 본 적 있는가
* AI가 수정 요청을 받았을 때 정확한 위치를 찾을 수 있는가
* AI가 로컬 변경을 가했을 때 전체 시스템이 깨지지 않는가
이 두 가지 가독성은 때로 겹치지만, 본질적으로 다른 것을 최적화한다. 인간을 위한 가독성은 **추상화와 압축**을 추구한다. 반복을 제거하고, 패턴을 이름 붙이며, 복잡성을 캡슐화한다. 기계를 위한 가독성은 **명시성과 예측 가능성**을 추구한다. 관습을 따르고, 구조를 일정하게 유지하며, 장황하고 지저분해지더라도 암묵적인 것을 명시적으로 드러낸다.
## 장인 정신의 비극적 위치
함수형 프로그래밍이 약속했던 것은 명확했다. 인간의 인지적 한계를 코드로 극복하는 것.
참조 투명성은 코드의 어떤 부분이든 독립적으로 추론할 수 있게 해주었다. 불변성은 시간에 따른 상태 변화를 머릿속에서 추적하는 부담을 덜어주었다. 강력한 타입 시스템은 컴파일러가 우리 대신 오류를 잡아주었다. 이 모든 것이 **인간의 한계를 보완**하기 위한 도구였다.
그러나 AI에게는 보완할 한계가 없다.
AI는 수백만 개의 코드베이스를 학습했다. 패턴 매칭의 원시적 힘으로 무장한 AI에게, 인간의 인지 부하를 줄여주는 우아한 추상화는 그저 노이즈에 가깝다. AI는 똑같은 CRUD 작업의 만 가지 변형을 보았다. 심혈을 기울여 작성한 우아한 모나드 트랜스포머 스택보다 평범하고 반복적인 명령형 코드가 AI에게는 더 익숙하다.
여기서 장인 정신의 딜레마가 시작된다.
함수형 프로그래밍의 지지자들은 수십 년간 같은 말을 해왔다.
"배우기는 어렵지만, 장기적 이점이 있습니다."
그런데 AI가 명령형 프로그래밍의 진입 장벽을 무너뜨려버렸다. 이제 누구나 AI의 도움으로 명령형 코드를 빠르게 작성할 수 있다. 반면 함수형 프로그래밍의 학습 곡선은 여전히 가파르다.
더욱 쓸쓸한 것은 함수형 프로그래밍의 아름다움을 감상할 줄 아는 사람들마저 더 이상 코드를 직접 읽지 않는다는 사실이다. 그들의 Claude Code가 대신 읽는다. 감상할 눈이 사라진 예술이 무슨 의미가 있을까.
```
Claude >> @PureFunctional OrderService::doStuff의 로직을 분석해서 설명해 줘
```