프롬프트 엔지니어링은 더 많은 사람이 프로그래머가 될 수 있는 세상이 온 것을 의미합니다.

"이제는 AI가 가치있다는 것을 인정하지 않을 수 없다. 실제로 ChatGPT와 Copilot을 사용하면서 AI가 얼마나 빠르게 발전하고 있는지를 느낄 수 있었다. 이러한 AI의 발전으로 인해 개발자가 생각할 시간을 줄여주며 반복적인 일을 대신해주기에 정말로 많은 개발자가 진짜 Develop을 할 수 있는 기회를 제공해준다."

그런 생각을 떨칠 수 없었기에 최근에 서점으로 달려가서 보이는대로 AI를 다루는 책을 읽기 시작했다. 읽었던 책 중에서 가장 친절하고 이해하기 쉬운 책이 바로 최고의 프롬프트 엔지니어링 강의였다. 정확히는 LLM과 프롬프트 엔지니어링에 대해 다루는 책이지만 LLM이 등장하기까지의 역사도 설명해 주기에 흥미롭게 읽을 수 있었다. 너무 어려운 부분은 배제하고 여러 도식과 이미지를 이용하여 LLM에 대해 잘 모르는 나도 금방 이해할 수 있었다. 얼마나 편하게 읽었냐면, 서점에서 절반 읽고 이후에 구매한 후 집에 돌아와 완독했으니 하루가 지나기도 전에 다 읽은 샘이다.

소프트웨어 3.0

인상적이었던 내용은 소프트웨어의 진화 과정을 3단계로 나눴다는 점이다. 아직 이런 표현을 접해보지 않았기에 실제로 널리 쓰이는 표현인지는 모르겠지만 소프트웨어의 유형을 AI 기준에 맞춰 표현하기엔 적절하다 생각했다.

소프트웨어 1.0은 개발자가 대부분 하는 작업이다. 적절한 데이터와 알고리즘을 이용하여 데이터를 조작하고 결과를 도출하는 결정론적인 방법이다. 대부분 문제는 없지만 비결정론적인 문제에 대해서는 대응하기 어렵다. 예를 들어, 감정을 인식한다거나 대화를 하는 등에 대해서는 소프트웨어 1.0으로는 대응하기 어렵다. 이는 지금까지 무수히 많은 경우의 수로 대응하려한 많은 프로젝트의 실패가 증명한다.

머신러닝이 급부상하면서 상황은 조금씩 변했다. 머신러닝 알고리즘을 통해 데이터를 학습시킨 모델을 통해 비결정론적인 문제에 대응할 수 있게 되었다. 이를 소프트웨어 2.0이라고 부른다. 이러한 기술을 통해 사용자에게 적합한 제품을 추천하고 이미지에서 물체를 인식하는 등의 작업을 수행할 수 있게 되었다. 하지만 이 또한 최적화되지 않은 데이터에 대해서는 대응하기 어렵다는 문제가 있었다.

딥러닝이 발전하고 대규모 언어 데이터를 학습시킨 LLM이 등장하면서 소프트웨어 3.0이라는 새로운 시대가 열렸다. LLM은 프롬프트라는 것을 통해 사용자가 원하는 것을 수행한다. 즉, 어느정도는 자연어를 통해 코딩을 하는 것과 같은 것이다. 개발자는 LLM의 등장으로 더 많은 문제를 해결할 수 있게 되었다. 앞으로 어떻게 될지 모르겠지만 다양한 문제를 해결할 수 있게 프롬프트 엔지니어링을 배워야한다는 점은 확실하다.

프롬프트 엔지니어링은 어려운가?

사실 개인적인 생각으로 프롬프트 엔지니어링이 그렇게 어렵게 느껴지지는 않았다. 물론 LLM이 어떻게 동작하는지에 대한 이해가 필요하긴 하지만, 실제로 업무 생산성을 위해 프롬프트를 작성하는 것이 그리 어렵지 않았다. 물론 혼자 사용하는 것이 아닌 제품 기능에 반영하려면 검증과 평가 작업도 필요하기에 많은 시행착오와 경험이 필요할 것 같다.

필자는 아직 학습량이 많지 않고 실제 제품에 운용한 경험도 부족하다. 그러나 어느 정도 IT와 개발에 대한 지식이 있다면 지래 겁먹고 시작 못 할 정도로 어렵지는 않다고 생각한다.

마치며

이 책은 프롬프트 엔지니어링에 대한 전반적인 이해를 얻을 수 있는 좋은 책이었다. 아무래도 직접 많은 실습을 해보는게 중요하겠지만 이 책에서 소개해주는 여러 방법을 여러 예제와 함께 쉽게 설명해주기에 실습해보는 것은 어렵지 않을 것이다.

여담으로 앞으로 만들 제품에 AI에 대한 기능을 넣을 날이 얼마 남지 않았다. 그렇지만 아직 제대로된 AI 제품을 만들기엔 경험과 학습이 부족하고 느낀다. 프롬프트 엔지니어링을 넘어서 더 많은 기술에 대한 학습을 해봐야겠다.

P.S. 만약 좋은 책이 있다면 추천 부탁드립니다. 🙇‍♂️