Amazon Web Services 한국 블로그
Amazon CodeGuru Reviewer 업데이트 – Python 지원 및 최대 90% 요금 인하 제공
Amazon CodeGuru를 사용하면 기계 학습과 자동화된 추론을 통한 권장 사항으로 코드 검토를 자동화하고 코드 품질을 개선할 수 있습니다. CodeGuru Reviewer를 사용하여 찾기 어려운 잠재적 결함과 버그를 감지하고 CodeGuru Profiler를 사용하여 라이브 데이터를 기반으로 애플리케이션의 성능을 미세 조정할 수 있습니다. 2020년 6월부터 정식 버전으로 서비스를 사용할 수 있었습니다.
우리는 지난 몇 달간 많은 고객과 작업하면서 보안 탐지기, 평가판의 Python 지원, 메모리 프로파일링을 도입하여 고객이 코드 품질을 개선하고 개발자 시간을 절약할 수 있도록 지원했습니다. 또한 요금 구조와 언어 적용 범위 등 다양한 부분에 대한 피드백이 접수되었습니다. 우리는 이러한 피드백을 처리하고 조직 내에서 Amazon CodeGuru를 대규모로 더 쉽게 채택할 수 있도록 했습니다.
오늘은 CodeGuru Reviewer에 대한 다음 두 가지 주요 업데이트를 발표하고자 합니다.
- 리포지토리 크기를 기반으로 쉽게 예상할 수 있는 더 저렴한 월간 정액 요금의 새로운 요금 모델로 최대 90%까지 가격 인하 가능
- 더 넓은 권장 적용 범위 및 Python 언어와 관련된 4가지 업데이트와 함께 이제 정식 버전으로 Python 지원 사용 가능
CodeGuru Reviewer를 위한 새로운 예측 가능한 요금
CodeGuru Reviewer를 사용하면 GitHub, GitHub Enterprise, AWS CodeCommit 또는 Bitbucket에 저장된 리포지토리의 전체 스캔을 실행할 수 있습니다. 또한 풀 요청을 제출할 때마다 CodeGuru Reviewer는 새 코드 검토를 시작하고 권장 사항과 개선 사항을 주석 형태로 제안합니다.
이전 요금 구조는 매월 분석된 코드 줄(LoC) 수를 기준으로 했습니다(100 LoC당 0.75 USD). 가능한 한 자주 코드를 분석하고, 비용을 고려하지 않고 필요한 만큼 많은 풀 요청과 브랜치를 생성하고, 프로덕션에 들어가기 전에 오류와 결함을 포착할 가능성을 극대화하고자 한다는 개발자의 피드백이 접수되었습니다.
이러한 이유로 새로운 요금에서는 총 리포지토리 크기를 기준으로 월간 정액 요금(연결된 모든 리포지토리에서 처음 10만 줄의 코드에 대해 월 10 USD)만 지불하게 됩니다. 그리고 추가 코드 10만 줄당 월 30 USD의 요금이 부과됩니다. 리포지토리에서 가장 큰 브랜치만 계산되며 빈 줄과 주석은 전혀 계산되지 않습니다.
이 가격 구조는 비용을 보다 예측 가능하고 투명하게 만들 뿐만 아니라 조직의 여러 팀으로 CodeGuru Reviewer를 확장하는 방식을 단순화하는 데도 도움이 됩니다. 또한 요청 시 전체 리포지토리 스캔과 각 풀 요청에 대한 증분 검토를 수행할 수 있습니다. 월 요금에는 모든 증분 검토가 포함되며 월 요금에 포함된 월별로 리포지토리당 최대 2회의 전체 스캔이 제공됩니다. 추가 전체 스캔은 코드 10만 줄당 10 USD의 요금이 부과됩니다.
기본적으로 Amazon CodeGuru의 모든 이점과 모든 새로운 탐지기 및 통합을 이용할 수 있지만 최대 90% 더 저렴합니다. 또한 처음 90일 동안 10만 LoC까지 프리 티어를 무료로 시작할 수 있습니다. 프리 티어가 만료되거나 10만 LoC를 초과하는 경우 스탠더드 요금만 내면 됩니다. 여기에서 업데이트된 요금 페이지를 확인하세요.
몇 가지 실제 예(프리 티어 제외)를 알려 드리겠습니다.
- 15만 LoC의 중간 규모 리포지토리: 이 경우 월 요금은 20만 LoC로 반올림되어 월 총 40 USD(10 USD + 30 USD)입니다. LoC 수는 항상 반올림됩니다. 그리고 동일한 가격으로 최대 5만 LoC의 리포지토리 한 개 또는 여러 개(총 20만 LoC)를 연결할 수도 있습니다. 리포지토리마다 최대 2개의 전체 스캔이 포함됩니다.
- 각각 30만 LoC의 리포지토리 3개(90만 LoC의 큰 리포지토리와 동일): 이 경우 월 요금은 250 USD(처음 10만 줄의 코드에 대한 10 USD + 나머지 80만 줄의 코드에 대한 240 USD)입니다. 리포지토리마다 최대 2개의 전체 스캔이 포함됩니다.
- 매월 10개의 전체 스캔이 포함된 7만 LoC의 작은 리포지토리: 이 경우 월 요금은 LoC 수에 대한 10 USD와 추가 전체 스캔(56만 LoC)에 대한 60 USD를 합해 월간 총 70 USD입니다.
- 50개의 활성 브랜치가 포함된 작은 리포지토리, 1만 LoC를 포함하는 가장 큰 브랜치 및 매월 300개의 풀 요청: 단순하며 월 10 USD에 불과합니다. 리포지토리마다 최대 2개의 전체 스캔이 포함됩니다.
새로운 요금은 2021년 4월 6일에 연결되는 새 리포지토리와 2021년 4월 5일까지 이미 연결된 리포지토리에 대해 4월부터 적용됩니다. 대부분의 사용 사례에서 상당한 비용 절감이 기대됩니다. 하루에 여러 번 전체 리포지토리 스캔을 수행해야 하는 경우(엣지 케이스)가 아니라면 최대 10만 LoC의 작은 리포지토리의 경우 대부분 브랜치, 기여자 또는 풀 요청의 수에 관계없이 90일의 평가판 이후 월 10 USD의 예측 가능하고 저렴한 요금만 부과됩니다. CodeGuru가 코드를 검토하고 잠재적인 문제를 발견하므로 이제 예측할 수 없는 비용에 대한 걱정 없이 코드 리포지토리를 개발하고 반복할 수 있습니다.
CodeGuru Reviewer를 사용해보고 CodeGuru 콘솔에서 첫 번째 리포지토리를 연결하세요.
CodeGuru Reviewer에 대한 Python 지원 정식 출시
CodeGuru Reviewer에 대한 Python 지원이 2020년 12월부터 평가판으로 제공됩니다. 이를 통해 최적의 데이터 구조 사용과 동시성을 제안하여 Python 애플리케이션을 개선할 수 있습니다. 이는 제어 흐름, 오류 처리 및 표준 라이브러리에 대한 Python 모범 사례를 따르는 데 도움이 됩니다. 무엇보다도 과학/수학 작업과 AWS 모범 사례에 대한 권장 사항을 제공합니다. 이러한 제안은 초보자와 전문 개발자는 물론 코드 품질에 신경 쓰는 소규모 및 대규모 팀에 유용합니다.
오늘 정식 출시 발표와 함께 Python 탐지기와 관련된 다음 네 가지 주요 업데이트를 확인할 수 있습니다.
- 기존 탐지기의 적용 범위 확대 및 정밀도 향상: 많은 Python 모범 사례가 표준 라이브러리, 데이터 구조, 제어 흐름 및 오류 처리와 관련된 기존 탐지기에 통합되었습니다. 예를 들어 CodeGuru Reviewer는 코드가 안전하지 않은 방식으로 임시 파일을 생성하거나, 최고의 정밀도가 필요한 과학적 계산에 십진수 대신 부동 소수점을 사용하거나, 같음과 동일함을 혼동하는 경우 경고합니다. 이러한 경고는 보안 취약성, 성능 문제 및 일반적인 버그를 방지하는 데 도움이 됩니다.
- 리소스 누수 탐지기 개선: 평가판에서 이 탐지기는 열린 파일 설명자에만 초점을 맞췄습니다. 이제는 연결, 세션, 소켓 및 다중 처리 스레드 풀과 같은 광범위한 잠재적 리소스 누수 집합에 대한 권장 사항을 생성합니다. 예를 들어 새 소켓을 여는 Python 함수를 구현한 다음 소켓을 닫는 것을 잊어버릴 수 있습니다. 이것은 매우 일반적이며 즉시 문제가 되지는 않지만 리소스 누수로 인해 시스템 속도가 느려지거나 장기적으로 충돌이 발생할 수 있습니다. CodeGuru Reviewer가 소켓을 닫거나 with 문으로 래핑할 것을 제안합니다. 참고로 이 탐지기는 Java에도 사용할 수 있습니다.
- 새로운 코드 유지 관리 탐지기: 이 새로운 탐지기는 일반적으로 코드 복잡성 및 밀결합과 같이 코드 베이스를 읽고 이해하고 유지 관리하기 어렵게 만드는 측면과 관련된 코드 문제를 식별하는 데 도움이 됩니다. 예를 들어 간단한 프로토타입을 구현하는 데 몇 시간을 보낸 다음 프로덕션 코드와 그대로 통합하기로 한다고 상상해보세요. 서둘러 만들었기 때문에 이 프로토타입에는 입력 확인에서 데이터 준비, 일부 API 호출 및 디스크에 최종 쓰기에 이르기까지 50줄 이상의 코드가 있는 거대한 Python 함수가 포함될 수 있습니다. CodeGuru Reviewer가 이 코드를 테스트 및 유지 관리가 더 용이하며 더 작고 재사용 가능하고 느슨하게 결합된 함수로 리팩터링할 것을 제안합니다.
- 새로운 입력 확인 탐지기: 이 새로운 탐지기는 특히 이러한 파라미터가 사용자 생성한 것이거나 동적일 가능성이 있는 경우 일부 함수 또는 클래스가 입력 파라미터의 추가 확인으로 혜택을 받을 수 있는 상황을 식별하는 데 도움이 됩니다. 예를 들어 환경 이름을 CLI 입력(예: dev, stage, prod)으로 사용하고, API 호출을 수행한 다음, 리소스 ARN을 출력으로 반환하는 Python 함수를 구현했을 수 있습니다. 환경 이름을 확인하지 않았으므로 CodeGuru Reviewer는 몇 가지 추가 확인을 구현할 것을 제안할 수 있습니다. 이 예에서는 코드를 몇 줄 추가하여 환경 이름이 비어 있지 않고 이 프로젝트에 유효한 환경인지 확인할 수 있습니다.
CodeGuru Profiler에 대한 Python 지원은 아직 평가판으로 제공됩니다. CodeGuru Profiler를 사용하면 실행 시간 성능 데이터를 수집할 수 있고 코드가 CPU에서 어떻게 실행되고 어디에 시간이 소비되는지 파악할 수 있으므로 비용 절감과 성능 향상을 목표로 비용이 가장 많이 드는 부분부터 Python 애플리케이션을 조정할 수 있습니다.
CodeGuru 콘솔에서 Python용 CodeGuru Profiler와 CodeGuru Reviewer를 시작할 수 있습니다.
정식 출시
Amazon CodeGuru는 현재 10개의 AWS 리전에서 사용할 수 있으며 Python 및 Java 애플리케이션을 지원합니다. 더 많은 개발자와 고객이 애플리케이션 코드 품질과 성능을 향상시킬 수 있도록 더 많은 탐지기를 게시하고 더 많은 프로그래밍 언어를 지원할 수 있기를 기대합니다.
Amazon CodeGuru에 대해 자세히 알아보려면 CodeGuru Reviewer 설명서와 CodeGuru Profiler 설명서를 참조하세요.
– Alex