내 소프트웨어의 북극성: 기술적 탁월함보다 사용자 효용이 먼저다 (Loris Cro)

원문 정보

  • 제목: My Software North Star
  • 출처: Loris Cro — 개인 블로그 (kristoff.it). 저자는 Zig Software Foundation의 VP of Community로 알려진 인물이다.
  • 발행: 2026-06-03 · 약 2분 분량(매우 짧은 매니페스토)
  • 원문 링크: https://kristoff.it/blog/north-star/

이 글을 Articles에 담는 맥락: 이 위키에는 “AI가 코드를 찍어내는 시대에 엔지니어의 가치는 무엇인가”를 다룬 글이 여럿 쌓였는데, 이 글은 그 질문 이전에 더 근본적인 질문 — “애초에 우리는 무엇을 위해 좋은 코드를 쓰는가” — 에 한 문장으로 답하는 짧은 선언문이다.

한 줄 요약 (TL;DR)

소프트웨어 개발의 모든 결정은 사용자 효용(end-user utility) 을 향해야 한다. 정확성, 유지보수성, 효율성, 메모리 안전, 아름다운 추상화, 좋은 개발자 경험(DX)은 모두 그 자체가 목적이 아니라 “사랑받을 수 있는 소프트웨어(software you can love)”를 더 잘 만들기 위한 수단일 뿐이다. 우선순위는 사용자 효용 → 정확성 → 유지보수성·효율성 순이다.

왜 이 글을 골랐나

엔지니어로 일하다 보면 수단이 목적을 가리는 순간이 자주 온다. 메모리 안전한 언어를 골랐다는 사실에, 깔끔하게 떨어지는 추상화에, 멋진 타입 시스템과 빌드 파이프라인에 만족하다 보면 — “그래서 이게 누구에게 무슨 쓸모가 있는가” 라는 질문이 뒤로 밀린다.

이 글이 좋은 이유는 정확히 그 지점을 2분 만에 찌르기 때문이다. Zig라는, 성능과 명시성·DX를 극도로 중시하는 언어 생태계의 핵심 인물이 쓴 글이라는 점에서 더 무게가 있다. 기술적 미덕을 가장 사랑할 법한 사람이 “그 미덕들은 전부 수단일 뿐”이라고 못 박는다. 추상적인 도덕론이 아니라, 매일 기술 선택 앞에서 흔들리는 사람을 위한 나침반에 가깝다.

이 위키의 SQLite 창시자 Richard Hipp 인터뷰(의존성을 줄이는 자유, 테스트 강박, 26년의 장인정신)나 코드가 공짜가 된 시대의 ‘취향(taste)’(무엇이 좋은지 판단하는 내부 평가 함수)와 같은 줄기 — “기술 그 자체가 아니라 그것이 무엇에 봉사하는가” — 를 더 압축된 형태로 다룬다.

핵심 내용

원문은 짧은 우선순위 목록과 몇 개의 단서(caveat)로 이루어져 있다. 구조를 따라 정리한다.

우선순위 1 — 사용자 효용: “사랑받을 수 있는 소프트웨어”

가장 위에 오는 것은 소프트웨어가 사용자에게 진짜 가치를 주는가, 그리고 더 나아가 사용자가 사랑할 만한 소프트웨어(“software you can love”)가 되는가 이다. 저자에게 이것이 궁극의 목표이고, 나머지는 전부 이것에 봉사하기 위해 존재한다.

“The ultimate goal is to maximize utility for the end user; everything else exists in service of it.”

우선순위 2 — 정확성

소프트웨어는 제대로 동작해야 한다. 버그는 사용자 가치를 갉아먹기 때문에 정확성이 두 번째 자리에 온다. 즉 정확성은 효용에 종속된 가치다 — 동작하지 않는 소프트웨어는 사용자에게 가치를 줄 수 없으므로 중요하지만, 정확성 자체가 최종 목적은 아니다.

우선순위 3 — 유지보수성과 효율성

세 번째는 유지보수성과 효율성 으로, 사람의 시간(maintenance)과 컴퓨팅 자원(efficiency)을 함께 아끼는 가치다. 중요하지만 앞의 두 가지보다는 아래에 놓인다.

세 개의 단서(caveat)

저자는 우선순위 목록 뒤에 세 가지 경고를 붙여, “그럴듯한 기술적 미덕이 효용을 대체할 수 없다”는 점을 못 박는다.

  • 사용자에게 적대적인 소프트웨어는 아무리 잘 닦여 있어도 가치가 없다. 버그가 하나도 없는 럭풀(rugpull)이라 해도, 그것은 여전히 쓸모없는 소프트웨어다.
  • 메모리 안전한 언어가 정확성을 대신하지 못한다. 언어 차원의 안전성은 정확성 중심의 설계를 면제해 주지 않는다.
  • 아름다운 코드 구조가 성능·유지보수 문제를 보상하지 못한다. 우아한 추상화도 느리거나 유지하기 어렵다면 자원을 낭비한다.

개발자 경험(DX)에 대한 입장

저자는 자신이 DX를 분명히 아낀다고 밝힌다. 다만 그 가치는 조건부다 — “사랑받을 수 있는 소프트웨어를 더 많이 만들어 내는 데 도움이 되는 딱 그만큼만(only in the exact measure that it helps me deliver more software you can love)” 중요하다. DX마저 목적이 아니라 수단의 자리에 둔다는 점이 이 글의 일관된 태도다.

분석과 인사이트

여기서부터는 원문 요약이 아니라 내 관점이다.

이 글의 진짜 메시지는 “우선순위를 정하라”가 아니라 “수단과 목적을 혼동하지 말라”다. “사용자가 먼저”라는 말 자체는 새롭지 않다. 이 글이 날카로운 이유는 그 원칙을 엔지니어가 가장 자랑스러워하는 것들(메모리 안전, 우아한 추상화, 빠른 빌드, 좋은 타입 시스템)을 정면으로 겨냥해 적용하기 때문이다. 우리가 기술적 미덕을 추구하다 빠지는 함정은 대체로 “수단이 점수판이 되는” 것이다. 안전한 언어를 골랐다는 사실 자체로 안심하고, 아름다운 구조를 짰다는 만족으로 멈춘다. 저자는 그 만족의 정당성을 “그래서 사용자에게 닿았는가”로만 측정하자고 말한다.

“버그 없는 럭풀”이라는 표현이 이 글의 핵심을 가장 잘 압축한다. 정확성을 최상위 가치로 떠받드는 엔지니어 문화에 대한 반례다. 기술적으로 흠 없는 소프트웨어도 사용자를 해치면 가치가 음수다. 이는 정확성·안전성을 그 자체로 추구하면 도달할 수 있는 천장이 있음 을 보여준다 — 방향(누구에게 무슨 효용인가)이 틀리면, 정밀하게 틀린 것을 만들 뿐이다.

다만 한 가지는 짚어 둘 만하다. 이 우선순위는 “정렬”이지 “트레이드오프 비율”이 아니다. 글은 짧기 때문에 “사용자 효용을 위해 정확성을 어디까지 희생해도 되는가” 같은 실무의 회색지대는 다루지 않는다. 현실에서는 세 가지가 시간 축에서 충돌한다 — 오늘의 효용을 위해 유지보수성을 희생하면 내일의 효용이 줄어든다. SQLite의 Richard Hipp이 인터뷰에서 “테스트하고, 테스트하고, 또 테스트하라”고 강조한 것은, 정확성·유지보수성이 결국 장기적 사용자 효용의 다른 이름 이기 때문이다. 그래서 나는 이 목록을 “무엇을 희생할지의 서열”보다는 “무엇이 무엇을 정당화하는지의 방향” 으로 읽는다. 정확성과 유지보수성은 효용의 경쟁자가 아니라, 시간 지평을 길게 잡았을 때의 효용 그 자체다.

AI 시대에 이 글이 갖는 함의도 분명하다. 코드 생성이 점점 commodity가 되는 흐름(software is evolving, not dead, taste에서 다뤘다)에서, 차별점은 “코드를 얼마나 잘 쓰는가”가 아니라 “무엇을, 누구를 위해, 어떤 효용을 향해 만드는가” 로 옮겨간다. 저자의 북극성은 바로 그 방향 감각이다. AI가 정확하고 안전하고 우아한 코드를 싸게 찍어낼수록, 인간 엔지니어의 가치는 “이게 사용자에게 사랑받을 일인가”를 판단하는 자리로 압축된다.

적용 포인트

  • 기술 결정 앞에서 “이건 어느 우선순위에 봉사하는가”를 한 번 묻는다. 언어·프레임워크·추상화·리팩터링을 선택할 때, 그 선택이 사용자 효용에 닿는 경로를 한 문장으로 설명해 본다. 설명이 막히면 그건 수단을 위한 수단일 수 있다.
  • “버그 없는 럭풀” 테스트를 적용한다. 기능이 완벽히 동작한다고 가정했을 때, 그 기능이 사용자에게 정말 가치 있는지부터 따진다. 정확성 검증 이전에 효용 검증을 둔다.
  • DX 투자에 조건을 단다. 개발 경험·도구 개선은 “이게 결국 더 좋은 제품을 더 빨리/더 많이 내놓게 하는가”라는 질문을 통과할 때만 우선순위를 올린다. DX 자체를 목적으로 삼지 않는다.
  • “메모리 안전 = 정확성”, “아름다운 코드 = 좋은 코드”라는 자동 등치를 경계한다. 안전한 언어를 골랐다는 사실, 깔끔한 구조를 짰다는 만족을 점수판으로 착각하지 않는다.
  • 유지보수성·정확성을 “장기 효용”으로 번역해 정당화한다. 단기 효용과 충돌할 때, 둘을 대립시키지 말고 시간 지평을 늘려 같은 축에 놓고 판단한다.

마무리

좋은 엔지니어일수록 수단을 사랑하기 쉽다 — 안전한 언어, 우아한 추상화, 빠른 빌드, 매끄러운 DX. 이 짧은 매니페스토는 그 사랑을 부정하지 않으면서도, 그것들이 전부 “사랑받을 수 있는 소프트웨어”라는 하나의 북극성에 봉사하는 별들임을 다시 일러 준다. 우선순위표보다 중요한 건 그 방향 감각이다. 정확성도, 유지보수성도, DX도 묻는 질문은 결국 하나다 — 그래서 이게 사용자에게 닿는가.

더 읽어보기