brunch

AI로 소프트웨어 개발을 돕는 도구의 쓰임새

인공지능 시대의 소프트웨어 공학

by 안영회 습작

이 글은 같은 날 하루에 본 글과 그림이 만든 세 가지 자극이 만들어 낸 하나의 상상을 글로 쓰는 내용입니다.


빙산의 일각과 표면에 드러나는 것만 보는 행태

첫 번째 자극은 아래 인용한 그림 중에서 왼쪽 그림입니다. 보이는 것만으로 판단하는 어리석음에 대한 상징으로 '빙산의 일각'이라는 비유를 써 왔는데, 이를 더 잘 드러내는 그림이란 생각이 들게 했습니다.

두 번째 자극은 오른쪽 페북 글입니다. <AI 미래> 저자이신 김성완 님 글이죠. 코드에는 드러나지 않지만 코드가 만들어지게 만드는 요인들은 분명히 존재합니다. 이 상황도 제가 '빙산의 일각'으로 설명했던 현상과 매우 흡사합니다. 그리고, 자극을 준 두 개의 콘텐츠를 함께 배열해 보니 공통의 메시지가 부각되는 듯합니다.


프로토타이핑 툴이 보여줄 것 같은 자극

자극이 여기에 그쳤으면 글까지 쓰지는 않았을 것입니다. 그런데, 제가 최근 테스트 해 본 툴인 v0의 리브랜딩을 소개하는 배휘동 님의 글로 인해 또 다른 자극을 받습니다. v0 블로그 글을 보다가 눈에 띈 내용은 자신들이 자동으로 제공한다는 서비스 목록이었습니다. 리브랜딩 소개글이니 서비스 어필을 하는 것은 당연한 일인데, v0 측의 아래 설명 때문에 눈길이 간 것이죠.

v0 is now agentic, helping you research, reason, debug, and plan. It can collaborate with you or take on the work end-to-end.

v0 사용 경험이 있고 마음에 드는 툴이었는데, 에이전트 형태로 발전을 꾀한다고 하니 관심이 생겼습니다. 하지만, 아직 소개 글이고, 제가 써 보기 이전입니다. 그런데, 이들이 시장에 공개할 정도로 최선을 다해 만든 목록 자체는 완성도나 효용성을 떠나 눈길이 가고 의미가 있다고 여겨졌습니다.


AI로 소프트웨어 개발을 돕는 도구의 쓰임새

바이브 코딩(Vibe coding) 광풍이 지나고 곳곳에서 AI를 소프트웨어 개발을 돕는 도구로 '제대로'(?) 쓰기 위한 시도들을 엿볼 수 있습니다. 하지만, 그러한 노력은 미래에 입증될 일이기 때문에 시행착오가 필요하고, 아직은 알 수 없는 일입니다. 다시 말해서 빙산의 일각 아래 있을 법한 내용입니다.


그렇게 생각하니 v0가 꼽은 기능들이 AI로 앱 개발을 돕는 도구를 만든다고 할 때, 일부에서나마 입증된 쓰임새(usecase)를 보여 주는 듯했습니다.

그 도구가 나에게 혹은 우리 조직에게 맞을지는 아직 알 수 없지만, 막막할 때 참고할 만한 지표 역할은 충분히 가능할 듯 보였습니다. 적어도 쓰임새에 대해서는요.


인공지능 시대의 소프트웨어 공학은 어때야 할까?

마지막으로 여기에 <컨텍스트 엔지니어링 프레임워크>를 소환하면 상호보완적 효과도 있을 법합니다. 컨텍스트 엔지니어링은 LLM만으로 해결할 수 없는 한계를 극복하기 위해 발전한 기술이니까요. 둘은 조금은 다른 관점에서 같은 문제를 해결해 나가는 기술들로 보입니다.

이렇게 생각을 정리해 보니 <인공지능 시대의 소프트웨어 공학> 연재에 어울리는 글이 되었습니다.


한편, 이 글을 쓴 직후에 메일링 리스트로 받아 본 글에서 또 관련한 지적 자극을 받을 수 있었습니다.

v0의 경우는 배포 이후 운영보다는 리서치부터 개발 과정, 그것도 프로토타이핑에 초점이 맞춰져 있습니다. 하지만, Check work라는 쓰임새는 배포 이후까지 고려한 것으로 보입니다. 그렇게 발전해 간다고 하면 인공지능의 모니터링 작업을 쉽게 하기 위한 아키텍처 규칙인 "Observable" 즉, 모니터링을 고려한 서비스 개발의 필요성이 부각될 수 있어 출처가 다른 콘텐츠를 인용하여 생각을 풀어 보았습니다.


인공지능 시대의 소프트웨어 공학 연재

(4회 이후 링크만 표시합니다.)

4. 반복은 모든 탐구의 핵심이자 실제 지식 습득의 기본

5. 추측보다는 실험: 현실에 입각한 경험주의

6. 바이브 코딩과 증강 코딩은 다르다

7. 소프트웨어 설계는 어떻게 새롭게 정의할 수 있나?

8. 컨텍스트 엔지니어링 프레임워크

9. 컨텍스트 엔지니어링 분류 체계와 구현 기술의 진화 양상

10. 목적에 따라 소프트웨어 설계 활동의 양상이 달라진다

11. 밀가루 반죽과도 같은 소프트웨어 모델

12. 생각을 나눠 요소를 만드는 일의 어려움

13. 컨텍스트 엔지니어링과 다중 에이전트 시스템

14. 객체 식별의 어려움에서 기인한 패턴들

15. 비즈니스 개념을 담은 식별 기준이 된 DDD

16. 의사결정 부담을 줄여주는 패턴과 if로 시작하는 조건문

17. 프로그래밍 개체의 식별과 레코드의 식별

18. RDBMS 종속 객체 지향 프로그래밍 아닌가?

19. 암묵적 세계 모델과 명시적 언어 모델


keyword
이전 10화컨텍스트 엔지니어링과 다중 에이전트 시스템