ChatGPT: 기술 발전과 개발직군의 비숙련화

,

소프트웨어 공학의 고전인 《맨먼스 미신》에는 “은 탄환은 없다(No Silver Bullet)”는 제목의 장이 있습니다. 은 탄환은 소프트웨어 개발의 본질적 어려움을 제거해 생산성을 대폭 늘려 줄 방법이나 도구를 뜻합니다. ChatGPT의 등장으로 개발자들도 위협받을 수 있다고 하는 상황에서 이제 은 탄환이 등장한 것일까요?

그렇지는 않다고 생각합니다. 이 논문이 나온지 40년 가까이 지났지만, 여전히 “은 탄환”의 가능성은 없다고 봅니다.

1986년에 발표된 프레데릭 브룩스의 논문. 이 논문은 1995년에 《맨먼스 미신》에 수록됐습니다.

그럼에도 ChatGPT는 개발 도구라는 측면에서 꽤 큰 발전이라고 생각합니다(물론 프레데릭 브룩스는 개발툴의 발전만으로는 생산성이 향상되는 데 한계가 있다고 지적합니다). 비견할 만한 예는 이클립스나 인텔리J 같은 통합 개발 환경(IDE)의 등장일 겁니다. 아마 ChatGPT가 가져올 변화가 그보다는 좀더 클 것 같습니다.

인터넷과 구글의 등장도 비교할 만한 사례인데, ChatGPT가 그 정도는 아닐 것 같습니다.

당분간은 고참에게 유리할 듯

복잡한 자연어 요구사항을 코드로 바꿔 주는 ChatGPT의 능력이 당분간은 고참 개발자를 더욱 효율적으로 만들어줄 것 같습니다.

(제대로 사용할 수만 있다면) 지식 범위가 넓은 개발자일수록 ChatGPT를 효과적으로 사용할 수 있기 때문입니다.

많은 요소를 세심하게 고려하는 개발자는 ChatGPT에게 구체적인 요구를 상세히 작성해 코드를 얻을 것입니다. 생성된 코드를 수정해 사용하면 디테일 작업의 효율성이 매우 높아질 수 있을 것 같습니다.

코드의 어떤 부분에 문제점이 있는지 추정할 능력이 있는 경험 많은 개발자는 이제 ChatGPT에게 의견을 물어 빠르게 리팩토링을 수행할 수 있을 겁니다.

상상할 수 있는 사례는 더 많을 것입니다.

사실 Github의 코파일럿도 놀랍긴 했지만 이 정도는 아니었습니다. 코파일럿은 그저 코드를 빨리 작성해 주는, 보일러플레이트 생성 도구로 느껴졌거든요. 그런데 ChatGPT는 코드의 이해까지 도와 주는 툴입니다.

요는, ChatGPT는 개발의 효율성을 높여 개발의 양상을 변화시킬 만한 툴이라는 것입니다. 지금 현업에 있는 개발자들은 ChatGPT를 개발에 통합하는 방법을 익혀야 한다고 생각합니다.

장기적으로는 비숙련화

그러나 좀 더 길게 보면 몇 년 안에 ChatGPT는 고참 개발자들의 영역을 일부 비숙련화하는 데 기여할 것이라고 생각합니다.

사실 개발자만의 영역이었던 것이 점차 비숙련화돼 온 것이 컴퓨터의 역사입니다. (크게 보면 기계와 노동의 역사도 그렇습니다.)

가장 유명한 사례는 1983년에 출시된 로터스 1-2-3과 그 뒤를 이은 엑셀입니다. 모든 사무직 노동자에게 개발자의 능력을 일부 부여했죠.

인터넷 초창기 웹사이트는 적어도 HTML을 익히고 파일을 서버에 업로드할 줄 알아야 구축할 수 있는 것이었습니다. 그러나 곧 블로그가 등장했습니다. 이제 웹사이트란 단어는 더 고급스런 무언가가 있는 사이트를 의미하게 됐죠.

통합 개발 환경(IDE)은 고참 노동자의 몇 년치 내공을 신참 개발자에게 손쉽게 제공했습니다. Ctrl+Space만 누르면 마법이 펼쳐지고, Alt+Enter로 수많은 문제를 해결해 줬습니다. 앞으로는 ChatGPT도 코드 작성을 어시스트하겠죠.

그러나 단지 코드 생성, 분석, 수정, 리팩토링 기능만으로 이렇게 생각하는 것은 아닙니다.

영리하고 여유 있는 기업은 ChatGPT와 같은 도구에 자신들의 코드를 학습시킬 것입니다. 그러면 ChatGPT는 방대한 코드베이스를 파악한 상태에서 현재 개발자가 작성하는 코드를 어시스트할 것입니다. 전체 코드를 고려하면서 현재 코드를 작성하고 코치하는 일은 고참의 역할이었습니다. ChatGPT가 그 역할을 일부 하게 된다면 과거에는 고참만이 가능했던 일이 부분적으로 신참에게도 가능해지는 것입니다.

사실 이런 측면에서 보면 인터넷과 구글만큼 개발자의 비숙련화에 기여한 도구가 없을 겁니다. 고참의 몇 년치 내공은 신참의 구글링 앞에 어렵지 않게 정복당했을 테니까요. (물론 모든 내공을 구글링이 대신하지는 못합니다.)

개발자의 미래

ChatGPT가 코드 어시스트 도구의 새 장을 연다 해도 고참 개발자 전부를 대신하지는 못할 것이라고 생각합니다.

소프트웨어는 논리적 일관성이 생명인 개념 덩어리입니다. 이 개념은 소프트웨어 밖의 세계를 반영합니다. 게다가 이 반영은 일회적이지 않고, 여러 차례에 걸쳐 누적된 역사가 있습니다. 문서화되지 않은 것도 많을 겁니다.

소프트웨어 안과 밖, 과거와 현재를 연결하는 이 일은 인간만이 할 수 있습니다. 프레데릭 브룩스가 말한 소프트웨어의 본질적인 영역입니다.

따라서 소프트웨어 개발 전체가 비숙련화되는 일은 없을 겁니다. 다만 인간의 숙련 영역을 지금보다 줄여 놓을 것은 분명해 보입니다. 신참에게뿐 아니라 고참에게도 영향을 미칠 것이라는 이야기입니다.

카테고리 글 목록 👉

,

대표글

댓글 남기기