25.04.18 GenAI와 software 개발
ChatGPT 이전
1990년대 중반.
난 컴공과가 아니었지만 대학교 1학년때 필수과목으로 C언어를 들어야만 했다.
당시 F학점를 맞았고 나중에 재수강을 해서 겨우 C학점을 받았다.
call-by-value, call-by-reference를 강의하다가 혼자 감동받던 교수님도 전혀 공감이 안 되었고,
무엇보다도 과제 중에 compile할 때 에러나 버그가 나면 어떻게 디버깅을 해야하는지 막막하기만 하였다.
서점에서 유명한 큰 벽돌만한 크기의 C 바이블 책을 구매해서 책 맨 뒤의 색인을 뒤져가며
디버깅을 했지만 쉽지 않았다.
난 프로그래밍에 재능이 없는 것으로 스스로 결론지었다.
그리고 10년후.
시대가 변하였다. 구글링이라는 용어가 생겼다.
책 뒤의 색인을 뒤질 필요없이, 검색을 잘하면 원하는 정보를 찾을 수가 있었다.
그리고 또 10년후 stackoverflow라는 사이트도 획기적이었다.
이제는 컴파일하다가 에러가 나면 그 에러메세지를 그대로 복사해서
구글에 붙이기만 하면 스택오버플로우에 비슷한 문제를 경험한 사람들이 정보를 공유하였다.
이제는 정말 누가 C 바이블 책의 정보를 더 많이 알고 활용할 줄 아느냐의 시대에서
구글에서 검색을 잘하고 적용해도 프로그래밍을 할 수 있는 시대가 되었다.
생성형 AI 시대
ChatGPT가 22년말쯤 나오고나서부터, 매달 딱 1개월전의 뉴스를 되짚어보면 정말 out-dated 한 뉴스가 되는, 유즘 생성형AI 발전의 시대다.
나의 공부 속도보다 더 빨리 진화하는 이 생성형 AI시대에 뒤쳐지는 느낌을 안고 살아가지만, 그럴수록 더욱 더 한 걸음 물러나 흐름을 생각해볼 때이다.
확실히 기존과 다른 패러다임의 시대가 오고 있지만, 시대를 관통하면서 변하지 않는 가치들이 있기 때문이다.
어떤 언어할 줄 아세요? 면접 초반에 항상 묻는 질문이다.
그 이유는 사람은 기계어를 모르기에 인간 친화적인 여러 가지 언어 중 어떤 것을 잘하냐는 질문이다.
그렇다면 기계에게 기계어를 가르치면 더 빠르겠지만, 생성형AI는 기계에게 인간의 언어를 가르치고 있다.
그 이유는 인간의 비서로, 인간의 도구로 이용해야 생산성이 높아지기 때문이다.
모든 언어를 다 잘하는 초중급 풀스택 비서.
현재까지 생성형AI 도구를 한 마디로 요약하면 무엇으로 묘사할 수 있을까.
굉장히 빨리 코딩하는 초중급개발자 한 명을 고용했다라는 느낌이지만, 역시나 개념이 다르기에 이 비유는 항상 실패한다.
철학은 없지만, 잡지식도 엄청나게 많고, 거짓말도 자주하는, 코드도 순식간에 많이 뱉어내는 assistant 느낌.
과거 산업혁명
증기기관식 굴착 드릴과 내기를 한 과거 미국의 존 헨리의 구전 전설은 많은 생각을 하게 한다.
조금 더 최근 사례를 들자면, 어느 책에서 본 기억이 나는데, 은행에서 처음에 ATM기를 도입하고자 할 때 엄청난 반대가 있었다고 한다. ATM기가 프론트 데스크 직원들이 엄청나게 해고당하는 것 아니냐는 걱정에.
그러나 오히려 그 다음 해, 또 그 다음 해 ATM기의 도입은 늘었지만 은행의 직원 수 역시나 더 늘었다고 한다. (물론 과도기에는 대량 해고와 대량 고용의 과정은 있었겠지만)
그리고 이런 현상에 대한 분석으로 기계가 더 잘하는 단순 노동 업무가 아닌, 인간이 할 수 있는 인간 본연의 업무에 집중할 수 있었기 때문이었다고 한다. 4년제 대학교 졸업해서 프론트 데스크에 앉히고 단순히 현금을 세는 업무가 아닌 기업분석을 맡기다보니 그 쪽 분야의 일이 늘었다는 것이다.
이런 긍정적 요소도 있겠지만, 요즘 인터넷을 보면 대가들도 직업이 모두 다 대체될 것이라느니, 빈부격차는 더 커지고 중산층을 없어진다는 얘기만 하고 있다.
Cursor AI와 Windsurf가 지금 이 정도로 해주는데 1년뒤에는 프로그래머가 얼마나 줄겠냐 걱정하고 있다. 물론 한 달 뒤도 못 보는 세상에 어느 정도 가능한 이야기일 수 있다.
프로그래밍
원래 프로그래밍은 과거에도 3D업종이네, 야근 많네, 이런 말들이 많았다.
그것은 인간이 모래사장에서 바늘 찾는 업무를 했기 때문이 아닐까? (남이 짜놓은 코드에서 버그 찾기)
모래사장에서 바늘은 기계에게 시켜도 되는게 아닐까?
Software engineer는 이제 어느 모래사장에서 바늘을 찾아보라고 결정하고 AI에게 지시하고, 팀원들과 너는 해운대에서 찾아봐, 나는 서귀포에서 찾아볼께라고 커뮤니케이션하는 업무에 더 집중할 수 있지 않을까?
코딩은 어차피 Software developer 업무의 가장 큰 부분이었지만 전부는 아니었다.
자기 자리에 위협을 느끼고 있다면, 과거 자신이 은행에서 단순히 현금을 세는 업무, 즉 단순 코더가 아닌지부터 되물어야 하지 않을까.
to be continued …