[2022 AWS re:Invent] Delighting developers: Builder experience at AWS

세션 유형

Leadership

세션명

Delighting developers: Builder experience at AWS

강연자
  • Adam Seligman, VP Developer Experience, Amazon
  • Emily Freeman, Head of Community Engagement, AWS
  • Kyle Seaman, Senior Product Manager, AWS
  • Rene Brandel, Principal Product Manager – Technical, Amazon Web Services, Inc.
세션요약자

구연수(Yeonsoo Koo)

핵심내용 요약

팀으로써 개발 생산성과 효율을 높일 수 있는 AWS 신제품 소개

키워드
  1. AWS CodeCatalyst
  2. AWS CodeWhisperer
  3. AWS Application Composer
  4. AWS AppSync
  5. AWS Amplify
상세내용

오직 개발 생산성과 효율을 위해서 삶을 살아오지는 않았으며, 즐기기를 원하고 즐거움을 위해 최적화하였다. 즐거움은 모든 방면에서 중요하고 특히 기술 산업에선 더욱이 중요하다. 즐거움을 통해 다음과 같은 사건들이 발생했다.

  • 컴퓨터 과학 역사의 먼 옛날로 돌아가서 최초의 프로그래머이자 달 탐사를 위한 알고리즘을 개발한 Ada Lovelace
  • 계산과 코드로 인해 인류 최초 달 착륙에 성공한 NASA의 Catherine Johnson과 Margaret

즐거움은 절대 우리 산업의 성장을 지켜볼 뿐만으로써 오지 않으며 매일 겪는 작은 업무로부터의 문제 해결, 버그 해결, 동료들과의 솔루션 공유로부터 온다.

업무를 수행할 떄 느낄 수 있는 감정 분류를 보여주는 그래프이다

  • 수평축은 담당자의 기술 레벨을 표현
  • 수직축은 담당자가 겪는 어려움을 표현

파란색으로 칠해져 있는 “FLOW” 부분은 높은 기술 레벨과 높은 어려움을 지닌 상태를 뜻하며 이 부분은 굉장히 흥미롭고 공감이 되며 이 부분을 마찰이라 표현하고 싶다.

이런 마찰은 끝도 없이 생겨나며 우리의 업무 성과를 더디게 만들고 종종 이런 마찰은 우리가 전혀 알아차리지도 못하게 발생하곤 한다.

  • UI가 직관적이지 못함
  • 문서가 이해하기 힘들게 작성됨

이러한 마찰들이 프로젝트 시작부터 첫 성공을 이룰 때까지 많은 변화를 만들어 내고, 이 변화가 소스에 반영된다. 이러한 과정은 당신이 얼마나 독립적인 엔지니어로서 생산성 있는지를 확인하지 않고, 팀과 동료들을 함께 평가하곤 한다.

개발자는 개인이 아닌 팀으로서 업무를 수행해야 한다. 팀 업무에 도움이 되는, 세 가지 전략들을 소개하고자 한다.

  • 즐거운 절차 : 마찰을 줄이고 완벽한 데이터 전환을 노린다
  • 모든 개발자를 위한 : 모두가 다 다른 스킬, 도메인, 프로젝트, 클라우드 등을 가지고 있다
  • 모든 개발 팀들을 위한 : 개개인의 개발자를 지원하고 싶으며, 개발자들은 팀을 구성하여 개발한다

세 가지 전략 모두 중요하며 “팀이 함께 일하기 위한 서비스를 개발”은 곧 AWS의 비전이다. 

AWS CodeCatalyst 출시

  • 팀으로써 함께 일하고 애플리케이션을 빌드하기 위한 서비스
  • 여러 다른 환경에서 필요한 툴에 대해서는 시간을 줄이고 본질적인 작업에 더 많은 에너지를 쓸 수 있도록 돕는다
  • 소스 저장소, 이슈 트래커, 이슈를 위한 칸반 보드, 지속적인 통합, 구조 빌드
  • 기존에 사용하는 다른 툴과 연동 가능. Ex) Jira, Github, IDE 등

AWS CodeCatalyst의 주요 기능

  • 프로젝트 블루 프린트
  • CI CD 파이프라인 관리
  • 프로젝트를 위해 자동으로 설정되는 클라우드 개발 환경

AWS CodeCatalyst 데모

CodeCatalyst에는 프로젝트의 생성부터 가능

프로젝트 생성을 위해서는 블루 프린트 활용, 직접 생성 두 가지 방법으로 가능

관심있는 블루 프린트를 선택하면 상세 설명을 확인할 수 있다.

언어와 프레임워크를 선택하면 자동으로 프로젝트를 생성해준다.

생성된 프로젝트를 대상으로 하나의 뷰에서 모든 기능을 활용할 수 있다.

  • 소스 리포지토리, CICD 워크플로우 확인, 이슈 칸반 보드 등

  • 프로젝트 관리 뿐만 아니라 로컬 IDE를 연동하여 개발도 가능

  • 프로젝트 관리 뿐만 아니라 로컬 IDE를 연동하여 개발도 가능

AWS CodeWhisperer 서비스 소개

개발 도중 검색을 위해 IDE를 떠날 필요가 없는, 코드 복사 붙여넣기를 할 불편을 개선해주는 서비스

인간의 자연어로 원하는 로직을 기술했을 때, 그에 걸맞는 솔루션을 제공하는 서비스

  • 코멘트를 쓰면 사용자의 코드와 스타일에 매칭되는 자동 코드 생성
  • AWS IDE Toolkit을 통해 가능
  • VS Code, JetBrains, AWS Cloud9, Lambda 콘솔에서 사용 가능
  • Python, Java, JavaScript, TypeScript, C# 언어 지원 가능

AWS CodeWhisperer의 주요 기능

  • AWS API 최대 지원
  • AI/ML 기능적 책임 : 라이센스 유의, 치중되지 않은 객관적인 성향의 기능으로 유지, 보안 유의)

AWS CodeWhisperer 데모

주석으로 원하는 기능을 묘사하면 메소드의 몸체 코드 부분을 자동으로 생성해준다.
[Ex 1] 자바 언어 기반으로 MD5 보안 알고리즘 메소드를 설명하는 주석을 작성한 이후의 결과

[Ex 2] 자바 언어 기반으로 정규식을 확인하는 메소드 주석을 작성한 이후의 결과

[Ex 3] 메소드의 유닛 테스트 코드 역시 자동 생성 가능

AWS Application Composer 소개

서버리스 애플리케이션을 단순화하기 위해 디자인된 시각적인 서비스

AWS의 다양한 서비스들을 활용, 설정 정보들을 구성하고 배포 준비된 인프라 코드 지원

AWS Application Composer의 주요 기능

  • 비주얼 캔버스 : 서버리스 리소스들을 drag-and-drop 기능으로 서로 연결시키고 설계
  • 자동 서비스 설정 : 비주얼 캔버스에 설계된 정보를 기반으로 애플리케이션들을 몇 분만에 자동 생성 가능 (AWS CloudFormation과 AWS SAM 산출물)
  • 실시간 아키텍처 동기화 : IaC (코드형 인프라) 파일과 동기화

AWS AppSync 소개

프론트엔드 개발자들은 GraphQL를 활용해 하나의 API 호출만으로 다양한 데이터 소스에 대한 통합 접근이 가능하며, 이에 영감을 받아 만들어진 관리형 GraphQL 서비스 AppSync

AWS AppSync의 주요 기능

  • A Single data API : 다양한 마이크로 서비스와 백엔드 리소스들 데이터에 대해 단일 API만으로 호출이 가능
  • 실시간성과 오프라인 : 실시간으로 동작하며 Pub/Sub API 구성, 오프라인 데이터 동기화 능력
  • Serverless : AWS에 의한 오토 스케일링과 관측
  • JavaScript support

AWS Amplify 소개

Amplify Hosting을 통해 프론트엔드 개발자들은 자신있는 언어로 웹 사이트를 호스팅할 수 있다.
깃 저장소를 연결하는 것만으로 AWS에 파이프라인을 설정하고 웹사이트를 배포할 수 있다.
백엔드와 상호 작용이 필요하거나 데이터 모델을 제공받기 위해서는 Amplify Studio와 Amplify CLI을 사용할 수 있다. 

소개한 서비스 정리

  • AWS CodeCatalyst
  • AWS CodeWhisperer
  • AWS Application Composer
  • AWS AppSync
  • AWS Amplify
Bespin’s Comment
  1. 새로 출시된 AWS 서비스들을 한눈에 확인할 수 있는 세션이었습니다.
  2. AWS CodeCatalyst는 개발자를 위한 통합 개발 환경을 지원하는 서비스입니다.
  3. AWS CodeWhisperer는 머신러닝 기반의 코드 추천, 생성 기능을 제공합니다.
  4. AWS Application Composer는 비주얼 서버리스 리소스 구성 환경을 제공하고 배포 인프라 코드를 제공합니다.
  5. AWS AppSync와 Amplify는 프론트엔드 웹과 모바일을 위한 다양한 기능을 제공합니다.

Leave a Comment