brunch

You can make anything
by writing

C.S.Lewis

by 개앞맵시 이복연 Sep 21. 2023

프롬프트 엔지니어링? 프로그래밍 패러다임의 이해

구조적, 객체지향, 함수형, 프롬프트 엔지니어링까지

몇 년 전에 <3대 프로그래밍 패러다임의 등장과 부흥>이라는 간단한 글을 정리했었습니다. 이번에는 인공지능이 발전하며 최근 떠오른 ‘프롬프트 엔지니어링’까지 추가하여, 프로그래밍 패러다임을 새로운 관점에서 정리했습니다. (아직 설익은 생각이라, 피드백 주시면 고민하여 더 다듬겠습니다.)


먼저 전체를 담은 한 장의 그림에서 시작하겠습니다(오른쪽 ‘공장 자동화’ 그림 출처).



가장 친숙한 객체부터 보죠. 저는 객체지향을 조직도에 비유했습니다. 객체지향에서 중요한 것은 객체를 만드는 게 아닙니다. 전체라는 큰 조직을 효율적으로 운영하려면 어떤 ‘역할’을 하는 객체가 필요한지를 ‘식별’해 내고, ‘책임’을 명시하고, ‘소통’ 방식을 규정하는 게 핵심입니다. 그래서 객체지향은 조직도 그리기와 아주 비슷합니다. 모듈화 설계나 마이크로서비스 아키텍처도 규모와 도메인만 다를 뿐 같은 맥락으로 볼 수 있겠습니다.


다음으로 함수형 프로그래밍은 공장 자동화에 비유했습니다. 프로세스의 각 단계는 입력과 출력이 엄격하게 규정되어 있어 사람의 개입 없이 딱딱 맞물려 돌아갑니다. 이런 특성 덕분에 규모를 병렬로 확장하기가 매우 쉽고(수평 확장), 중간 단계의 출력을 새로운 생산 라인의 입력으로 그대로 가져다 쓸 수 있습니다(재활용).


공장 자동화와 비교하여 조직 운영은 사람의 비중이 큽니다. 부서나 직책 사이의 프로세스를 엄격하게 정해두어도 그것만으로 조직을 매끄럽게 굴리기는 쉽지 않습니다. 부서장이 바뀌면 일하는 방식과 분위기가 크게 달라집니다. 이탈한 팀원과 똑같이 일해줄 사람을 충원하기란 불가능에 가깝습니다. 사람 혹은 사람들로 구성된 부서는 이상, 가치관, 배움과 경험의 정도, 컨디션, 이해관계 등 매우 복잡한 ‘상태’를 지니고 있습니다. 그래서 극단적으로 단순한 업무가 아닌 이상 역할, 책임, 소통 방식 정도만으로 규격화하기는 매우 어렵습니다.


극단적으로 단순한 업무는 구조적 프로그래밍과 맞닿습니다. 조직에서 가장 단순한 업무는 가장 밑단의 실무자들이 하는 ‘일들’입니다. 이렇게 이야기하면 억울해하실 분도 많겠습니다만, 사람들을 대하고 사람들로 이루어진 조직을 ‘잘’ 이끄는 것만큼 어려운 일도 없다는 데는 많은 분이 공감하시리라 생각합니다. 어쨌든 실무 일들 각각은 절차를 규정하고 방법을 익히기가 상대적으로 쉽습니다.


한편 ‘절차를 규정하고 익히기 쉬운 일’들을 실무자만 하는 것은 아닙니다. 어느 직급의 어떤 역할을 맡은 사람이라도 이런 성격의 일이 적지 않을 것입니다. 관점에 따라 대부분이라고 말할 수도 있을 겁니다. 그래서 구조적 프로그래밍은 객체지향이나 함수형 프로그래밍과 배치되는 개념이 아닙니다. 어디든 녹아 있는, 일을 처계적으로 처리하는 기본적인 방법론이라 할 수 있습니다.


마지막으로 프롬프트 엔지니어링 차례입니다. 최근 인공지능이 개발 방식에도 커다란 변화를 일으키는 중입니다. 그중에서도 특히 프롬프트 엔지니어링은, 인공지능이 단순 보조 역할을 넘어 개발 ‘패러다임’ 수준의 변화를 이끄는 대표적인 예라 할 만합니다. 저에게는 마치 고위 임원의 업무 지시를 수행하는 부서장의 모습과 비슷해 보입니다.


회사 대표가 부서장에게 업무를 지시하는 상황을 가정해 보죠. 윗분들의 업무 지시에는 보통 엄격한 형식이 없습니다. 원하는 바를 추상적이고 계략적으로 이야기합니다. 그러면 부서장은 온갖 전통적이고 창의적인 방법을 동원하여 결과물을 만들어 보고합니다. 윗분이 궁금해하시는 핵심만 추려서, 윗분이 좋아하시는 포맷에 맞춰서요.


온갖 방법은 블랙박스 영역입니다만, 일반적으로 부서장이 세세한 일들 모두를 직접 수행하지는 않습니다. 대신 자료 조사나 프로토타이핑은 부서원에게 맡기고, 인맥을 동원해 분야 전문가를 찾아 조언을 구하는 식이죠. ‘무엇’을 원하느냐에 집중하고, ‘누구’에게 ‘어떻게 질문해야’ 원하는 결과를 얻을 수 있느냐를 아는 게 중요합니다.


‘이것도 프로그래밍의 범주로 보아야 하느냐’며 의문을 표할 분도 계시겠죠? 하지만 돌이켜 보면 ‘0’과 ‘1’부터 시작하여 저수준 프로그래밍 언어, 고수준 언어, 라이브러리와 프레임워크, SaaS, 인공지능까지.. 프로그래밍은 탄생한 그 순간부터 끊임없이 사람에 가까워지는 길을 걸어왔습니다. 이제 거의 따라잡았네요. 프롬프트 엔지니어링은 아직 초창기라 단정 짓기는 어렵지만, 인공지능이 몰고 올 새로운 개발 패러다임의 특징적인 한 단면을 잘 보여주는 것 같습니다.

작가의 이전글 성장을 위한 열쇠를 간직하라

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari