[reinvent 2024] 생성형 AI를 활용해 아키텍처 다이어그램을 생성하고 이해하기
Summary
이 세션에서는 이미지, draw.io, 텍스트 등으로 존재하는 아키텍처 다이어그램을 생성형 AI를 사용하여 일관된 형식의 아키텍처 다이어그램을 생성하는 방법을 공유합니다. Visual Studio Code에서 Amazon Q developer를 사용하여 다양한 형식의 아키텍처 다이어그램을 생성할 수 있습니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
이번 칼럼에서는 Amazon Q developer를 사용하여 다양한 형태의 아키텍처 다이어그램을 생성하고, multi-shot 프롬프팅 등을 사용하여 더욱 구체적인 다이어그램을 생성하는 방법을 공유해드리려 합니다. 아키텍처 다이어그램을 Visual Studio Code의 Amazon Q developer를 사용해 생성하는 실습 세션을 진행하였습니다.
1. Amazon Q Developer를 사용한 아키텍처 다이어그램 생성
개발시 많이 사용되는 Visual Studio Code에서 Amazon Q Developer를 사용해 코드, 텍스트, 그림 등의 자료가 존재할 때 아키텍처 다이어그램을 생성하는 방법에 대한 실습을 진행했습니다.
Amazon Q developer를 코드 개발시에 뿐만 아니라 아키텍처 다이어그램을 쉽게 그리는 데에 사용하는 방법을 제시했습니다. AI를 사용하여 아키텍처 다이어그램을 생성하면 아키텍처를 그리는 시간을 단축하여 빠르게 초기 다이어그램을 생성할 수 있고, 또 쉽게 개선할 수 있습니다.
2. Draw.io 형식의 XML 다이어그램 생성
먼저 일반적으로 AWS 인프라 등 다양한 아키텍처 다이어그램을 그릴 때 자주 사용하는 draw.io 형식의 다이어그램을 생성하는 방법에 대해 진행했습니다.
사용자 프롬프트만 제공했을 경우, 그리고 사용자 프롬프트와 함께 추가 규칙과 예시를 함께 제공했을 경우 두 가지를 진행하여 결과를 비교해 보았습니다.
단순히 아키텍처를 설명하는 텍스트로 구성된 사용자 프롬프트만 제공했을 경우에는 다음과 같은 아키텍처를 생성합니다. 이 아키텍처는 내용은 정확해 보이나 인프라 사이를 연결하는 선이 표준 아키텍처와 다르게 일정하지 않으며, 모든 아이콘이 현재 사용중인 아이콘이 아닌 예전 버전의 아이콘으로 생성되어있습니다.
반면 사용자 프롬프트와 함께 아키텍처를 그릴 때 고려해야하는 추가 규칙 (2024년 버전의 AWS 아키텍처 아이콘을 사용하라, 가용 영역은 VPC와 리전 안에 존재해야 한다 등) 과 다른 인프라 아키텍처의 예시(multi-shot)를 xml 코드 형식으로 함께 제공했을 경우에는 아래와 같은 결과가 나오는 걸 볼 수 있었습니다.
사용자 프롬프트만 사용한 결과와 생성을 요청한 프롬프트 자체는 같은 인프라지만, 다음과 같이 현재의 인프라 아키텍처의 표준과 같이 출력되는 것을 알 수 있었습니다.
3. 사진 분석을 통한 아키텍처 다이어그램 생성
아키텍처 다이어그램의 가장 초안을 그릴 때는 주로 손으로, 혹은 다른 동료들과 함께 이야기하며 화이트보드에 그리는 경우가 많습니다. 이렇게 생성된 초안을 사람의 손을 거치지 않고 바로 완성된 아키텍처 다이어그램으로 생성하는 방법을 진행했습니다.
위의 그림처럼 화이트보드에 그린 데이터 플로우 사진을 먼저 LLM을 통해 분석하고, 해당 분석한 다이어그램의 수정해야할 사항이나 취약점 또한 LLM을 통해 수정하여 최종적으로는 아래와 같은 다이어그램을 생성할 수 있습니다.
결론
AWS상에서, 혹은 어떤 서비스를 사용하더라도 아키텍처는 반드시 작성하게 됩니다. 그러한 과정에서 아키텍처를 표준에 맞추어 작업하는 것이 생각보다 시간이 걸리는 작업인데, 이렇게 Amazon Q를 사용하여 draw.io에서 사용할 수 있는 초안을 작성하면 그런 시간을 단축하는데에 큰 역할을 하게 됩니다. 또, 평소 아키텍처 작성시 자주 사용하는, 필수적인 규칙이 명확하게 정해져 있다면 프롬프팅도 쉽게 작성하여 사용할 수 있을 것으로 예상됩니다.