서울대에서 올해 프로그래밍 강의 방식을 완전히 바꿨다고 합니다.
이전에는 기초 문법 강의, 예제 프로그램 따라 하기, 예제 프로그램 수정 등으로 익혔다면,
올해는
1. 기본 개념 익히기
2. AI와 코딩하는 법 알려주기
3. 작성할 프로그램 범위 알려주고 AI와 함께 만들고 실행해 보기
4. AI가 생성한 코드에서 궁금한 부분 물어보기
5. AI와 함께 추가 기능 더하기
여러분이 보기에 어떤지요? 제가 보기에 이렇게 하면 훨씬 빠르게 프로그래밍을 배울 것 같습니다. 교육도 아마 이런 식으로 바뀔 것 같고요.
제가 작년에 어느 프로젝트 들어갔을 때, chatGPT 유료 구독하고 chatGPT에게 프로그램 목적, 조건, 입력, 출력을 상세하게 설명한 프롬프트를 통해서 나오는 코드로 빠르게 개발했습니다. 물론 AI가 생성한 코드는 완벽하지 않기 때문에 제가 그 코드를 수정하거나 프롬프트를 수정해서 조금 더 나은 코드를 받아서 쓰기도 했습니다.
AI는 추론 능력이 있는 것처럼 보일 뿐 사실은 확률적으로 가장 그럴싸하게 보이게끔(temperature를 1에 가깝게 주면 창의적인(?) 결과를 볼 수 있습니다.) 결과를 생성할 뿐입니다. 물론 앞으로 발전할 가능성이 있겠지만, vector 공간에서 유사한 토큰을 찾아서 결과를 짜맞춰 생성하는 현재 방식으로는 근본적인 한계가 있습니다. 그러니까 현재 논리적인 사고를 못 한다고요.
따라서 AI가 그냥 확률적으로 계산해서 생성한 코드를 감리(?)하는 것은 필수입니다. 아니면 AI와 pair programming하는 것이 일반적인 개발 형태로 자리 잡을 수도 있습니다. 개발자가 직접 코딩하는 양이 줄어들지 몰라도 코딩 자동화로 감리해야 할 코드가 너무 늘어서 이를 실제로 적용하도록 수정하느라 개발자가 오히려 더 필요하게 될 가능성도 있습니다.
미래는 알 수 없지만 밑에 글처럼 개발자는 다 끝났다는 식으로 말하는 건 아무 도움이 되지 않겠지요.
추가글:
디버그할 때도 에러 로그 메시지를 복사해서 물어보면 상당히 시간이 많이 단축되었는데...이건 좀 그렇습니다. 디버깅 능력이 퇴화할 지도 모르겠다는 느낌을 받았어요.