지루한 기술
- 2025-03-11
Dan McKinley의 2015년 글 “Choose Boring Technology”에서 나온 말.
”Choosing Boring Technology” 요약
Boring tech란? 오래되고 지루하다고 다 유용한 것은 아님. 저자가 말하는 “지루한 기술”이란 “오래되고 쓸만한 기술”을 말함.
What counts as boring? That’s a little tricky. “Boring” should not be conflated with “bad.” There is technology out there that is both boring and bad [2]. You should not use any of that. But there are many choices of technology that are boring and good, or at least good enough. MySQL is boring. Postgres is boring. PHP is boring. Python is boring. Memcached is boring. Squid is boring. Cron is boring.
왜 지루한 기술을 선택하는 게 좋은가?
The nice thing about boringness (so constrained) is that the capabilities of these things are well understood. But more importantly, their failure modes are well understood.
한편, 이미 회사가 채택한 기술이 무엇인지도 중요한 고려 사항. 이미 채택하여 쓰고 있는 기술 내에서 최대한 문제를 해결하려는 노력이 중요.
Adding technology to your company comes with a cost…. If we’re already using Ruby, adding Python to the mix doesn’t feel sensible because the resulting complexity would outweigh Python’s marginal utility.
때로는 새 기술을 도입해야 한다. 하지만 새 기술의 도입 여부는 언제나 보수적인 기준에 의해서 결정해야.
Taking this reasoning to its reductio ad absurdum would mean picking Java, and then trying to implement a website without using anything else at all. And that would be crazy. You need some means to add things to your toolbox.
”지루함”은 기술과 사람 사이의 관계에 있는 속성
여기서부터는 내 생각.
“지루함” 여부는 기술 자체의 속성이 아니다. 기술이 익숙하고 안정적인지 여부는 기술 자체에 있기보다는 기술과 사람(또는 조직)의 관계에 있는 속성으로 보면 좀 더 유익하다(어포던스와 유사). 이런 관점에서 보면, 단지 어떤 기술이 “지루하지 않다”는 이유로 그 기술을 안쓰면 그로 인해 더 안쓰게 되는 자기실현적 예언의 성격도 띈다는 점도 중요하다.
생산성 향상과 역량 향상
생산성 향상과 역량 향상 사이의 딜레마(Exploration-exploitation dilemma)라는 관점에서 볼 때, Dan McKinley의 글은 주로 생산성(그리고 안정성)에 초점을 두고 있다. “혁신 포인트” 3점을 주는 점, 글의 후반부에서 때로는 새 기술을 도입해야 한다고 말하는 점 등을 보면 탐험(또는 역량 향상)의 중요성을 살짝 언급하기는 하지만 글의 초점은 아니다.
난 두 관점을 상황에 따라 적절히 고려하는 게 중요하다고 본다. 당장의 생산성 또는 안정성이 중요하면 익숙하고 안정적인 기술(지루한 기술), 위험 감수가 가능한 상황이라면 공부를 위해 신기술을 일부러 더 써보는 편이다. 원글에서도 “혁신 포인트”를 3점 주고 시작한다는 점을 염두에 두자.
중요한 건 상황에 따라 탐험과 뽑아먹기의 비중을 적절히 조절하는 것(MAB 알고리즘)이다.
- “지루한 기술”을 지나치게 강조하는 관점은 조직과 개인의 역량 향상을 방해할 수 있고, “신기술”을 지나치게 강조하는 관점은 생산성과 안정성에 해로울 수 있다.
- 실제 비즈니스 가치를 만들어내는 제품/서비스가 없어도 역량 향상이 제한되고, 제품 만들기(생산성과 안정성)에만 지나치게 몰입해도 역량 향상이 제한된다.
의도적으로 “탐색”을 위해 힘쓰기
그럼에도 불구하고 나는 탐색에 좀 더 편향되기 위해 노력한다. 그 이유는 이렇다.
사람은 나이를 먹을수록 경험이 많아진다. 특히 젊은 시절에 공부를 열심히 했다면 더욱 머리에 든 게 많을 것. 머리에 든 게 많아질수록 “세상에 새로울 게 없다”는 생각에 빠져들기 쉽다. 게다가 성격심리학에 따르면 인간은 원래 나이가 들수록 안정을 추구하는 경향이 증가한다고도 한다(이는 좋은 MAB 알고리즘이다. “horizon”이 다가올수록 exploration 비중을 낮추는 게 좋다). 이런 경향이 합쳐져서 사람이 점점 “보수화”된다.
하지만 인간의 기대 수명은 계속 증가하고 있고 식습관 개선 등으로 건강 수명도 크게 증가할 가능성이 있다는 점(일부 연구자는 인간의 수명이 140세까지 늘어날 수 있다고 주장. 예: Lifespan: Why We Age - and Why We Don’t Have To)을 생각하면 의도적으로 탐색 비중을 늘릴 필요가 있다.
게다가 세상이 빠르게 변할수록 탐색의 비중을 높이는 게 효율적인 학습 알고리즘이라는 점도 고려해야 한다. 분야에 따라 다르겠지만, 지금은 세상이 빠르게 변하는 시기다. 의도적으로 탐색 비중을 늘릴 필요가 있다.
아직 젊거나 이 분야(?)에 들어온지 얼마 안됐다면? 더더욱 탐색의 비중을 높이는 게 중요하다 :) 다양한 사이드 프로젝트를 경험하고, 일부러 안써봤던 기술을 써보고(하지만 효율적인 학습이 일어나려면 한 번에 너무 많은 걸 바꾸지는 않아야), 다양한 사람을 만나보고, 여러 비즈니스 도메인을 접해보길 권한다. 물론 기술이 유일한 “탐색”의 축은 아니다. 유의미한 비즈니스 성과를 내고 있는 서비스/제품을 만들고 운영하는 경험도 “탐색”의 한 축이므로 “생산성과 안정성”도 “기술적 탐험과 실험”만큼이나 중요하다.