Programmers are not different, they need simple UIs.

Salvatore Sanfilippo

프로그래머도 다르지 않다, 단순한 UI가 필요하다

원문은 Salvatore Sanfilippo님이 에 게재했습니다. 이 블로그 구독하기

며칠째 API 두어 개를 제대로 만드는 데 매달리고 있다. 모듈에 관한 새로운 API와 새로운 Redis 데이터 타입이다. *며칠*이라는 말을 할 때는 정말 그대로의 의미다, 오직 API만을 위해서다. 초안을 쓰고, 데이터 구조와 호출을 다듬으며 구현을 시작했다가, 설계를 개선하고 사용자가 마주할 부분을 더 낫게 만들기 위해 다시 처음부터 엎고 반복한다.

왜 이렇게 하면서 몇 주씩 기능 출시를 미루는 걸까? 정말 그렇게 중요한 일일까? 프로그래머는 엔지니어니까, 그냥 시스템을 제공하는 쪽에서 내보내기 편한 API에 맞춰 적응하면 되는 것 아닐까?

이런 수사적 질문에 굳이 답해야 할까? 아니다, 오늘날에는 더 이상 그럴 필요가 없다. 그리고 그 자체가 큰 진전이다.

이제 이쯤 되면 당연한 사실로 전제해도 좋을 것 같다. 프로그래머에게도 사용자 인터페이스가 있고, 그런 인터페이스가 시스템을 바라보는 인식을 완전히 바꿔버릴 만큼 중요하다는 사실 말이다. 데이터베이스 질의 언어, 라이브러리 호출, 프로그래밍 언어, 유닉스 커맨드라인 도구, 이 모든 것에는 사용자 인터페이스라는 측면이 있다. 매일 쓰는 당신에게 그것들은 그 무엇보다도 UI 그 자체다.

그렇다면 이미 다 잘 알려진 사실인데 왜 굳이 이 글을 쓰고 있는 걸까? 그래픽 UI뿐만 아니라 프로그래머를 위해 설계된 UI에서도 단순성이라는 개념이 얼마나 중요한지를 강조하고 싶기 때문이다. 단순한 UI 해법을 찾기 위해 끊임없이 되풀이하는 작업은 일종의 완벽주의도 아니고, 헛된 자기 도취도 아니다. 그것은 디자인 공간 속의 탐색에 가깝다. 때로는 그 공간이 어마어마하게 넓어서, 아주 작은 변주가 큰 차이를 만들기도 하고, 커다란 변주가 관점 자체를 완전히 뒤바꿔 놓기도 한다. 따라야 할 규칙 같은 건 없고, 오직 당신의 감각만이 있을 뿐이다. 물론 모범 사례는 있다. 하지만 항해해야 할 바다가 디자인이라는 *공간*일 때, 그것들은 좋은 나침반이 되어주지 못한다.

그렇다면 왜 프로그래머에게 이렇게 좋고 단순한 UI를 누릴 특권이 주어져야 할까? 물론 잘 만들어져 다루기 편하고 *제대로* 만들어졌다는 느낌을 주는 무언가를 쓴다는 즐거움도 있다. 하지만 더 본질적인 문제가 있다. M4 매크로로 Sendmail을 설정하는 법을 익히거나 Apache 가상 호스트 설정과 씨름하는 것은 진짜 지식이 아니다. 그런 시스템이 언젠가 더 이상 쓰이지 않게 되면, 당신의 손에, 아니 당신의 뉴런에 무엇이 남는가? 아무것도 남지 않는다. 그것은 임시방편적인(ad-hoc) 지식이다. 미량 영양소 없는 빈 칼로리만 가득한 정크 푸드와 같다.

프로그래머에게 미량 영양소는 수십 년을 가는 아이디어이지, 임시방편적인 정크가 아니다. 나는 정크를 내놓고 싶지 않으니 출시하기 전에 계속 설계를 다듬을 것이다. 여러분도 정크를 받아들여서는 안 된다. 여러분의 뉴런은 일반적인 개념을 배우는 데 쓰는 편이 더 낫다. 물론 어느 정도는 피할 수 없는 일이기도 하다. 모든 시스템에는 그것을 사용하기 위해 배워야 하는, 일반적이지 않은 무언가가 있기 마련이다. 그렇다면 어쩔 수 없는 일이라면, 적어도 그 임시방편적인 부분은 단순하게 만들자. 그리고 가능하다면, 쓰기조차 즐거운 무언가로 만들자.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글