JavaScript Python Releases

Qodana 2022.2 출시, CircleCI Orb 및 50개 이상의 새로운 검사

Read this post in other languages:
English, Français, Português do Brasil, Español, 简体中文

Qodana 2022.2 버전이 출시되었습니다! Qodana 통합 도구 모음에 CircleCI Orb 및 Java, Kotlin, Android, PHP, JavaScript 및 Python용의 개선된 새로운 코드 검사가 추가되었습니다.

QODANA 시작하기

더 많은 CI에서 Qodana 실행

Qodana에는 이미 Azure Pipelines, GitHub ActionsTeamCity용 플러그인이 있습니다. 2022.2 버전부터 CircleCI Qodana Orb가 지원되므로 CircleCI 프로젝트에서 코드 검사를 빠르고 쉽게 설정할 수 있습니다.  

또한 GitLab, Jenkins 또는 Docker 이미지 실행을 지원하는 기타 CI에서도 Qodana를 간편하게 설정할 수 있습니다.

디폴트 검사 프로파일을 사용자 지정하거나 완전히 새로운 프로파일을 생성하여 분석 시 특정 검사를 제외하거나 포함할 수 있습니다. 또한 코딩 가이드라인이나 모범 사례에 중요한 검사를 적용할 수도 있습니다. 자세한 정보는 Qodana 문서에서 확인하세요. 

새로운 검사 기능

정규식

정규식은 복잡하고 매우 길 뿐 아니라 장황한 구문을 갖춘 것으로 알려져 있습니다. 정규식을 더 간편하게 사용할 수 있도록 신규 검사를 추가했습니다. 이전에는 Java에서만 지원되던 검사를 이제 모든 언어에 사용할 수 있습니다.

간소화된 정규식

[\wa-z\d]와 같은 정규식의 경우, \w에 이미 a-z와 숫자가 포함되어 있으므로, \w로 간소화할 수 있어, 이를 통해 가독성이 전반적으로 개선됩니다.

의심스러운 역참조 

\1(abc)와 같은 정규식은 일치하는 항목이 없습니다. \1을 평가할 때 \1에서 아직 정의되지 않은 abc를 참조하기 때문입니다. 이 검사는 정규식의 단순 오타를 방지하고 편집 속도를 개선합니다. 

불필요한 \d, [:digit:] 또는 \D 클래스 요소

정규식 [\w+\d]의 경우 \w\d가 이미 포함된 것이므로 [\w+]로 작성할 수 있습니다. 이 검사는 코드의 전반적 가독성을 높이는 데 도움이 됩니다.

Markdown 지원

번호가 잘못 매겨진 목록 항목

1. 2. 4. 와 같은 순서가 있는 목록의 항목은 번호가 일관성 없게 매겨진 항목으로 표시됩니다. Markdown이 렌더링되면 목록은 계속 1. 2. 3. 으로 표시되지만 일관성이 없으므로 소스 코드를 편집하기 더욱 어렵습니다.

Java, Kotlin 및 Android 검사

Javadoc, DevKit, Markdown, Kotlin 언어, 스타일, 아키텍처 패턴, 성능 및 JUnit 지원 등 카테고리의 검사를 추가하고 개편했습니다. JUnit 세트의 몇 가지 예시는 다음과 같습니다.

JUnit: 잘못된 선언

JUnit 테스트 멤버 선언이 잘못되어 JUnit 테스트 프레임워크에서 인식할 수 없는 경우를 보고합니다. 잘못된 선언으로 인해 테스트 또는 수명 주기 메서드가 실행되지 않을 수 있습니다.

JUnit: 생성할 수 없는 TestCase

잘못된 생성자로 인해 생성할 수 없는 JUnit 테스트 케이스를 보고합니다. 이와 같은 테스트 케이스는 JUnit 테스트 러너에서 선택되지 않으므로 실행되지 않습니다.

그 예시는 공개 TeamCity 인스턴스에서 확인할 수 있습니다. 인스턴스를 살펴보려면 게스트 로그인을 사용하세요. 이 문서에서 다른 검사도 살펴볼 수 있습니다.

PHP 검사

잠재적 버그, 문서, 스타일, 테스트 및 Laravel 카테고리에 검사가 추가되었습니다. 예시는 다음과 같습니다.

잠재적 버그: 숫자 범위 불일치

returns int<0,10>으로 선언된 함수에서 해당 범위 밖의 숫자를 반환하는 return 문을 표시합니다. 필드, 필드 생성자 및 함수 호출에 대해서도 마찬가지로 작동합니다. 

문서: 변수 이름이 없는 타입 태그

PHPDoc 스니펫 @param string무엇이 문자열인지 명시하지 않으므로 불필요합니다. 따라서 제거하거나 인수가 문자열임을 나타내는 @param string $argument로 바꿔야 합니다. 

Blade: 문자열 리터럴 내 짝이 없는 소괄호로 인한 분석 오류

템플릿 엔진 Blade에서 추후 분석되는 문자열 리터럴에 짝이 없는 소괄호가 있는 경우 이를 미리 발견합니다.

향후 블로그에 게시할 주제를 제안하거나 비즈니스에 Qodana를 활용할 방법을 알아보려면 이 게시물에 댓글을 남기거나, Twitter 또는 qodana-support@jetbrains.com으로 문의해 주세요.

Qodana 팀 드림

게시물 원문 작성자

Jessie Cho

Viktor Tiulpin

Discover more