언어가 도구라는 말
한가지 어플리케이션을 전혀 다른 언어와 플랫폼, 프레임워크로 다시 작성해야하는 상황이고, 그 어플리케이션의 구조와 알고리즘은 모두 이해하고있다는 가정을 해볼게요.
과거에는 굉장히 어려웠어요. 자료들이 대부분 종이거나, 전자문서라고 해도 보통 물리적인 매체로 전달받았기에 접근하기가 매우 힘들었거든요. 그러니까 알고리즘을 알더라도 도구의 숙련도가 중요했고, 도구만 쓸줄알아도 고급인력이었습니다
그러다 하이퍼링크가 되는 웹문서와 구글이 나오면서 들어가는 시간이 수십배는 절약이 되었습니다. 일단 거의 모든정보에 접근이 가능하고 검색과 색인이 있는건 혁명이죠.
또 챗지피티같은 llm이 나오면서 다시 수십배 빨라졌어요. 여전히 1대1로 매핑되지않는 공식문서를 하나하나 뒤적거리면서 시간을 낭비하지 않아도, 내가 무엇을 구현하고있는지, 다른언어에선 어떻게 구현했는지만 명확히 알면 진짜 귀신같이 답을 주거든요.
그런데 이건 아까 전제했듯이 어플리케이션의 구조를 알고 내부 알고리즘을 이해하고 있어야 가능합니다. 그게 아니면 내가 뭘 질문해야하는지도 모르고, 그 답을 검증도 못해요. 챗지피티는 완성된 엔터프라이즈 어플리케이션을 답으로 뱉어낼수없어요. 이제 도구 사용법으로 밥벌이하는 시대는 끝났고 이러한 기본기가 훨씬 중요한 시대가 오고있다고 생각합니다.
개인적으로 공부할때 다른언어와 플랫폼으로 마이그레이션을 해보거나, 아니면 논문이나 책에 나온 수식과 슈도코드들만 보고 구현해보는 연습이 이러한 능력을 기르는데 도움이 많이 되었어요.