니플
33k
2019-07-04 13:22:51
12
1650

[펌] 소프트웨어 환멸감


https://muchtrans.com/translations/software-disenchantment.ko.html?hide-original=true


저는 15년간 프로그래밍을 해왔습니다. 근데 요즘 우리 분야에서 효율과 간결함에 대한 추구, 그리고 제대로 만들려는 노력을 찾아보기가 어렵습니다. 이제까지 쌓아온 제 경력이나 IT 산업 전반에 대해 우울해질 지경이에요.

요즘 차들은 – 논쟁의 여지는 있지만 – 현재의 엔진 디자인에서 물리적으로 가능한 98% 수준으로 동작하고 있다고 합니다. 현대식 건축은 기능을 만족하는 재료를 충분히 사용하기만 한다면 주어진 조건에서 안전하게 서 있습니다. 모든 비행기는 크기/형태/중량 면에서 최적으로 수렴한 까닭에 기본적으로 다 비슷하게 생겼습니다.

오직 소프트웨어만 달성 가능한 성능의 1%, 심지어 0.01%로 실행되는 경우에도 괜찮다고 여깁니다. 대부분 그 정도로도 괜찮다고 생각하는 것 같습니다. 심지어 얼마나 비효율적인가에 대해 “컴퓨터가 충분히 빠른데 우리가 뭔 걱정을 하지” 처럼 자랑스럽게 얘기하기도 합니다.

@tveastman: 실행하는데 1.5초가 걸리는 매일 실행하는 파이썬 프로그램이 있다. 6시간을 들여 러스트로 재작성했더니, 이제 0.06초 만에 실행된다. 41년 하고 24일이 지난 후에야 효율을 개선하느라 쓴 시간을 보상받을 수 있겠군. :-)

이런 격언을 들어보신 적이 있나요? “프로그래머의 시간은 컴퓨터의 시간보다 비싸다.” 우리가 전례 없는 수준으로 컴퓨터를 낭비하고 있다는 얘기 아닙니까? 100 킬로미터를 가는데 100 리터의 기름을 퍼먹는 차를 사시겠어요? 1,000 리터라면 어때요? 컴퓨터에 대해서라면 우린 항상 그러고 있습니다.


참고바랍니다.

0
0
  • 댓글 12

  • fender
    14k
    2019-07-04 14:15:07

    생각해볼 거리는 있지만 크게 공감을 하긴 어려운 내용 같습니다. 정말 실행 성능이 소프트웨어에 대한 가치의 유일한 척도이고, 지난 20년 간 관련 분야에서 쌓아올린 것들은 그렇게 하찮은 것들인가요?

    윈도 95는 30Mb였습니다. 오늘날의 웹페이지도 그것보단 크죠! 윈도 10은 133배나 큰 4Gb입니다. 133배나 뛰어난가요? 그러니까, 기본적으로 기능은 똑같단 말이죠. 아, 그렇죠, 코타나(Cortana)가 있긴 하지만 그게 3970 Mb나 되진 않을 것 같은데요. 윈도 10이 그러거나 말거나 안드로이드는 그것보다 1.5배나 큰데요 뭐.

    지금 하드웨어로 윈95를 쓰면 디스크 용량도 133분의 1로 줄고 속도도 미친듯이 빠를텐데 과연 글쓴 사람에게 집이나 회사에서 윈95만 쓰라고 하면 그렇게 할까 의문입니다. 정말 '기본적으로 똑같은 기능'이라면 못할 이유도 없을텐데 말입니다.

    4
  • rvo
    102
    2019-07-05 02:43:08

    속도, 효율 등 소위 빠르다 개념에 속한 메트릭도 생각해봐야하지만 이런 것에 함몰되면 안됩니다. 생각해볼 거리는 주지만 말도 안되는 내용같네요.


    0
  • 겸손합시다
    363
    2019-07-05 10:35:03

    그냥 극단적 허무주의자 같은데요


    개 쓰레기 글인데 이런건 왜 가져오죠

    0
  • 돈까스
    2k
    2019-07-05 10:53:27 작성 2019-07-05 10:59:23 수정됨

    음. 그렇게까지 비난할 필요가 있나 싶네요.

    저는 많은 부분에서 공감하고 있습니다.

    최근에 하드웨어 발전 속도가 빠르다 보니 거품이 생긴 것은 사실인 것 같아요.


    학교 다닐때 교수님이 그러시더라고요.

    갈수록 소프트웨어 최적화에 대한 이슈가 적어지고 있다고,

    임베디드쪽이 아닌이상은 크게 고민할 필요가 없을 수도 있다고.

    알고리즘 개선하면서 시간과 공간의 타협을 고민하기 보다는,

    그냥 CPU 코어 늘리고, RAM 두 배로 때려박으면 된다고...

    실제로 지난 시간 동안은 그게 가능했죠.


    CPU 코어 개수 올라가고, RAM 가격 떨어지고, SSD 가격 떨어지는 것 보세요.

    GPU 성능이 얼마나 빨라졌는지 한번 보세요.

    특히 최근 몇년간의 모바일 환경의 변화는 너무 빠릅니다.

    그 빠른 속도를 가지고 새로운 기능들을 마구 붙혀내놓는 상황이다보니 그래보이는 면이 있는 것 같은데요.


    언제가는 하드웨어 성장의 정체기가 다시 올 것 같고,

    그 때 되면 소프트웨어 기술을 통한 성장의 시기가 또 오게 되겠죠.

    1
  • John Suhr
    766
    2019-07-05 11:03:43

    전 재밌게 봤네요 ㅎㅎ

    0
  • fender
    14k
    2019-07-05 11:12:06 작성 2019-07-05 11:23:20 수정됨

    대충 이런 이유입니다:

    • 하드웨어가 발전해도 최적화는 중요하다 (O)
    • 요즘 기술들이 지나치게 복잡해졌다 (?)
    • 그래서 다 집어치우고 단순했던 시절로 돌아가자 (x)


    하드웨어가 100배 빨라졌는데 소프트웨어 속도는 그대로라면 그건 그 동안 개발자들이 일을 안해서가 아니라 과거 성능으로 불가능했던 일들을 처리할 수 있었기 때문이겠고 그 만큼 시스템의 복잡도가 증가한 이유일 것입니다.

    그럼에도 불구하고 최적화 노력은 중요하고 불필요한 복잡성에 대한 지적은 의미있는 것은 맞지만, 그게 도커부터 AWS, NPM 등 가리지 않고 아무튼 다 복잡하고 무거우니 나쁘다는 식이라면 솔직히 공감이 가진 않습니다.

    가상화나 클라우드가 대세가 된 것이 단지 개발자들이 최적화에 무지하거나 복잡도에 대한 경각심이 부족해서인가요?

    아니면 가상화된 클러스터 환경에서 배포부터 모니터링까지 자동으로 간편하게 되는 시대에서, 일일이 개발환경 운영환경 세팅하고 서버 하나에 어떻게든 더 많이 쌓아올려 보겠다고 아둥바둥하던 시절로 돌아가면 개발 환경이 더 나아지는 걸까요?

    특히나 무언가 구체적인 대안을 제시하는 것도 아니고, 무작정 왜 더 빨리 못만드냐, 윈10이 윈95보다 나아진게 뭐냐는 식의 불평이라면 딱히 영양가 있는 글이라고 보긴 힘들다는 생각입니다.

    1
  • 돈까스
    2k
    2019-07-05 11:52:06

    엔지니어로서의 우리는 할 수 있고, 해야 하며, 더 잘할 겁니다. 더 나은 도구로 더 나은 앱을 더 적은 리소스(몇 배는 적게!)로 빠르고, 예측 가능하며, 신뢰성 있게 만들 수 있습니다. 우리가 뭘 하고 있는지, 그리고 왜 그렇게 하는지 완전히 알 필요가 있습니다. 우리는 최고의 품질로 신뢰성 있고 예측 가능한 제품을 전달해야 합니다.


    이 사람이 말하고자 하는 결론은 저것입니다.

    중간에 그런 말을 끌어내기 위해서 과격한 표현을 쓰고 있긴 하지만,

    과거로 돌아가자는 말은 없어요.

    없는 내용으로 비난하시는 것 같아요.


    0
  • 돈까스
    2k
    2019-07-05 11:57:07

    비슷한 내용인 것 같아서 최근에 본 트윗을 공유합니다.

    https://twitter.com/if1live/status/1146762195885105152


    이것도 유사한 내용입니다.

    일단 돌아가게만 하도록 하는 식으로 개발하는 분위기가 있는 건 사실이죠.


    0
  • fender
    14k
    2019-07-05 12:06:04 작성 2019-07-05 12:14:10 수정됨

    돈까스 // 꼭 "과거로 돌아가자"라는 문장이 있어야지 그런 의미가 되는 것은 아닙니다. 과거엔 이랬는데 요즘엔 이렇다, 그런데 느리고 복잡해지기만 하고 뭐가 나아졌는지 모르겠다라는 주장을 나열하는걸 그럼 어떻게 다른 의미로 해석할 수 있나요?

    그리고 인용하신 부분도 전 솔직히 무슨 대단한 의미가 있는지 모르겠습니다. 본문 내내 왜 요즘 텍스트 편집기는 이맥스보다 느리느니, 왜 스마트 폰은 부팅이 30초 넘게 걸리느니, 왜 윈10은 윈95보다 133배나 용량을 많이 차지하느니 불평을 늘어놓았는데, 그럼 그런 제품을 만든 개발자들은 무슨 더 잘하고 싶은 의지나 정신무장이 부족해서 그런 결과를 냈을까요?

    설사 개발자가 아닌 경영자라도 무턱대고 "왜 신제품 스마트폰 부팅이 30초나 걸리냐, 무조건 절반으로 줄여라"는 식으로 닥달만 하면 무능하다는 평을 피하기 어려울 겁니다.

    그런데 경영자도 아닌 개발자가 기술 추세를 저렇게 광범위하게 싸잡아 비판하면서도, 클라우드나 도커 같은 기술이 왜 등장해서 널리 쓰이게 되었는지 등에 대한 고찰도 없이 아무튼 복잡하니 싫다, 대안은 모르겠지만 무조건 더 빠르고 간단하게 만들 수 있다는 식이면 공허한 이야기로 들릴 수 밖에 없다고 봅니다.

    0
  • 돈까스
    2k
    2019-07-05 12:23:40 작성 2019-07-05 12:25:04 수정됨

    글쓰는게 참 어려운 것 같습니다.

    저는 저정도면 잘 썼다고 생각하는데,

    개쓰레기 글이라고 비난받고, 공허한 이야기라고 평가를 받는군요.

    그래도 글쓴이는 목적달성은 한 것 같습니다.

    저는 그런 과격한 표현도 의도를 하고 쓴 것으로 봤거든요.



    0
  • fender
    14k
    2019-07-05 12:30:40 작성 2019-07-05 12:31:07 수정됨

    전 '개쓰레기 글'이라고 까진 생각하진 않습니다만, 비판의 범위나 수위에 비해 알맹이가 없다는 정도로 느꼈습니다.

    그럼에도 저런 주장을 할 자유가 있는 만큼, 그런 글을 비판한 자유도 있는 것이 아닐까요? 윈도우즈, 스마트폰, 브라우저, 도커, AWS 등등 저렇게 다양한 분야를 싸잡아서 "도대체 나아진게 뭐냐"는 식으로 비판한다면 본인 주장에 대한 그 정도의 비판도 감수하는 것이 합당하다고 생각합니다.

    0
  • 돈까스
    2k
    2019-07-05 13:42:34 작성 2019-07-05 13:44:30 수정됨

    fender님의 의견에는 동의합니다.


    글쓴이의 문제는 너무 흥분해서 과격한 표현들을 한 게 잘못됐다고 봅니다.

    근데 여기 댓글들도 너무 과격해요. :)

    결국 사람들의 기억에 남는 건 과격한 표현뿐인가 하는 생각이 드네요.


    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.