콘텐츠로 이동하기
애플리케이션-개발

소프트웨어 개발 수명 주기 전반에 활용되는 생성형 AI

2023년 12월 19일
https://storage.googleapis.com/gweb-cloudblog-publish/images/org_chart.max-2500x2500.jpg
Megan O'Keefe

Staff Developer Advocate

Priyanka Vergadia

Head of North America Cloud Developer Advocacy

Google Cloud에서는 고객을 위해 훌륭한 제품을 빌드하려면 단지 코드를 작성하고 제공하는 것만으로는 충분하지 않다고 생각합니다. 화이트보드에 끄적이며 브레인스토밍한 내용, 복도에서 나눈 대화, 이메일 스레드에서 나온 아이디어로 무엇을 어떻게 빌드할지 결정하는 것이 중요합니다. 그리고 출시 후에는 애플리케이션이 복원력과 안전성을 갖추고 있으며 고객에게 유의미한 영향을 주는지 확인해야 합니다.

올해 생성형 AI 업계에는 참 많은 일이 있었습니다. 수많은 도구가 출시되고 있는 가운데 이러한 새로운 기술이 실생활에서 얼마나 유용하게 쓰일지 궁금하실 겁니다. 결국 훌륭한 소프트웨어의 핵심은 기계가 아니라 사람이니까요.

이 점을 염두에 두고 Google AI를 활용해 아이디어를 프로덕션으로 발전시키는 Google Cloud 개발자의 하루를 살펴보겠습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/2-sdlc.gif

내가 식료품 소매업체인 Cymbal Superstore의 소프트웨어 엔지니어라고 상상해 보세요.

https://storage.googleapis.com/gweb-cloudblog-publish/images/3-superstore-app.max-2200x2200.png

웹사이트는 Google Cloud를 기반으로 운영되며, 나는 신제품 페이지를 추가하여 최근 출시된 스낵을 소개하는 업무를 맡았습니다. 월요일 오전 9시, 커피 한 잔과 함께 이 업무를 시작합니다.

함께 기획하기

기능 요청에 관한 이메일을 받았습니다. 나는 Gmail의 작성 지원 기능을 사용해 신속하게 답장합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/4-gmail.max-2200x2200.png

그런 다음 팀원과 함께 회의실에 들어가 화이트보드에 구현 방법을 브레인스토밍하기 시작합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/5-whiteboard.max-2200x2200.png

책상으로 돌아와 Google Cloud 아키텍처 다이어그램 도구를 사용해 화이트보드에 그렸던 다이어그램을 요약합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/6-arch-diagram-tool.max-2200x2200.png

이제 기획안을 작성할 준비가 됐습니다. 팀원은 회의에 들어가야 하지만 나는 팀원과 함께 아키텍처에 관한 몇 가지 문제를 의논하고 싶습니다. Bard를 열고 Google 렌즈를 사용해 내가 만든 아키텍처 다이어그램을 업로드합니다. Bard가 아키텍처 다이어그램을 읽습니다. 내가 제안한 구현 방법에 잠재적인 위험은 없는지 Bard와 짧은 대화를 나눕니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/7-bard.gif

그리고 Bard와 대화한 내용을 Google Docs로 내보내 기획안 작업을 시작합니다. Google Docs 작성 지원 기능을 사용해 개요를 작성합니다. 시간을 절약해 주는 이런 기능 덕분에 백엔드에서 Firestore 쿼리를 캐시하는 방법과 같은 까다로운 기획 문제에 집중할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/8-docs.gif

점심시간 즈음 기획안을 내 소속팀에 보내 검토를 요청했습니다. 그러는 사이 UX팀은 신제품 페이지의 프런트엔드 모의 작업을 진행 중이었습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/9-figma.max-2000x2000.png

내 기획안이 승인될 때쯤 테스트를 위한 프런트엔드 페이지가 준비되었습니다. 이제 코딩을 시작합니다.

(도움을 받아) 코드 작성하기

코드 작성은 외로운 작업입니다. 나는 경험 많은 TypeScript 엔지니어지만 Google Cloud에는 익숙하지 않습니다. 단 10줄의 코드를 작성하는 데 50개쯤 되는 탭을 열어 두기도 하죠. 문서, StackOverflow, 조용한 음악까지 필요한 게 많으니까요. Duet AI for Google Cloud가 이 작업에 어떤 도움을 줄 수 있는지 살펴보겠습니다.

나는 Google Cloud Workstations에서 개발 환경을 실행하고 코드 편집기를 엽니다. 우선 Apigee의 Duet AI를 사용해 새 REST API 엔드포인트를 위한 OpenAPI 사양을 자동 생성합니다. 그런 다음 swagger 생성기를 사용해 해당 사양에서 TypeScript 스텁 코드를 자동 생성합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/10-apigee.gif

이제 비즈니스 로직을 구현할 준비가 됐습니다. Duet AI의 코드 생성 기능에서 코드 주석을 통해 원하는 Firestore 쿼리를 프롬프트합니다. 을 눌러 Duet AI의 코드 제안을 수락합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/11-duet-code-completion.gif

그런 다음 코드를 로컬에서 테스트합니다. 잠깐, 오류가 있네요.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/12-error.gif

어떤 오류인지 잘 모르기 때문에 IDE 내에서 Duet AI 채팅을 엽니다. Duet AI는 Google Cloud 문서와 샘플 코드에 대해 학습했기 때문에 오류의 의미 뿐만 아니라 코드 내에서 오류를 수정하는 방법까지 파악할 수 있도록 도움을 줍니다. 우왕좌왕하며 Google 검색창에서 해결 방법을 찾을 필요가 없죠.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/13-debug.gif

오류를 수정하고 나면 새 엔드포인트의 테스트 사례를 작성하는 데 도움을 주는 동일한 Duet AI 채팅 스레드를 사용할 수 있습니다. Duet AI는 내 공개 테스트 파일의 콘텐츠를 사용해 응답을 맞춤설정하여 다른 테스트와 동일한 프레임워크 및 형식을 사용하는 테스트를 생성합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/14-test.gif

Duet AI의 도움을 받으면 효과적인 프로토타입을 더 빠르게 얻을 수 있습니다. IDE에서의 컨텍스트 전환 작업이 덜 필요하기 때문입니다.

신뢰할 수 있는 운영

코드를 소스 제어에 커밋한 다음 팀원과 함께 코드를 검토합니다. 새 기능에 병합하자 신제품 페이지가 프로덕션으로 출시됩니다. 성공입니다. 하지만 소프트웨어 개발 수명 주기는 여기서 끝이 아닙니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/15-feature-goes-live.gif

이 프로덕션 서비스를 담당하게 될 앱 개발자로서 가장 먼저 찾아야 하는 것은 서비스 로그입니다. Cloud Run 콘솔을 탐색하는 데 도움을 받기 위해 Duet AI의 콘솔 채팅 기능을 사용합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/16-findlogs.gif

그런 다음 SRE팀과 협력하여 인벤토리 서비스를 위한 몇 가지 서비스 수준 목표를 수립합니다. Cloud Monitoring에서 Duet AI의 수정 지원 기능을 사용해 Service Health에서 복잡한 쿼리를 작성합니다. PromQL 분야의 전문가가 아니기 때문에 이 기능을 사용하면 올바른 문법을 찾는 데 드는 시간을 엄청나게 절약할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/17-metrics.gif

보안은 어떨까요? 지난주 디버깅 세션 중 팀원에게 내 Google Cloud 프로젝트에 대해 임시 권한이 허용되는 IAM 역할을 부여했다고 가정해 보겠습니다. Security Command Center에서 이 사실을 파악할 수 있습니다. Duet AI의 AI 생성 요약 기능을 사용하면 빠르게 문제를 파악하고 보안팀과 협력하여 문제를 해결할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/18-security-summaries.gif

효과 공유

일주일이 지나 제품 리드가 예정된 조직 전체 회의에서 일부 슬라이드를 발표해 달라고 요청했습니다. 나는 비즈니스 분석을 맡고 있는 동료와 함께 발표 준비를 합니다. 우리는 신제품 쇼케이스를 만드는 일의 효과를 알아보고자 합니다. 특히, 신제품이 전용 페이지가 있으면 더 잘 팔리는지 알아보고 싶습니다.

우리는 Google Sheets에서 요약 지원 기능을 사용해 할 일 목록을 만드는 작업부터 시작합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/19-sheets.gif

그런 다음 Duet AI를 사용해 Spanner의 SQL 코드 완성 기능으로 판매 데이터를 자세히 살펴보고 지난 몇 주간의 원시 거래 데이터를 쿼리합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/20-spanner.gif

BigQuery의 판매 롤업 테이블에서 더 많은 데이터를 수집합니다. 비즈니스 분석가가 노련한 솜씨로 SQL 쿼리를 작성하는 동안 나는 Duet의 코드 설명 기능을 사용해 수집 데이터를 더 상세하게 파악합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/21-bigquery.gif

그런 다음 Google 슬라이드로 가서 Duet AI의 '이미지 생성 지원 기능' 도구를 사용해 효과적인 보고서를 만드는 이미지를 생성합니다

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/22-slides.gif

조직 전체 회의는 순조롭게 마무리되었고 나는 기능의 성능을 개선할 수 있는 몇 가지 새로운 아이디어가 떠올랐습니다. 일과가 모두 AI의 도움으로 이루어진 하루였습니다.

요약하자면 Google Workspace의 Duet AIGoogle Cloud부터 Bard까지 Google AI 지원 기능을 사용해 아이디어를 실현시켰습니다. 생성형 AI 도구는 공동작업하고 문제가 생겼을 때 디버깅하도록 도움을 주었으며, 업무 자동화를 통해 까다로운 일에만 온전히 집중할 수 있도록 도와주었습니다. 이 사례는 Duet AI가 도움을 줄 수 있는 일 중 빙산의 일각에 불과합니다. 앞으로 더 많은 기능을 소개해 드리겠습니다.

자세히 알아보기

게시 위치