SCW图标
英雄背景无分隔线
博客

일반적인 Java 실수를 방지하는 방법

旺德-内托
发表于 2022 年 2 月 02 日
最后更新于 2026年3月9日

더 생산적인 Java 개발자가 되세요

전 세계적으로 9백만 명의 개발자*를 보유한 Java (Oracle Corporation) 는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다.많은 응용 프로그램 프레임워크가 Java를 기반으로 구축되었습니다. Java Runtime Environment (JRE) 는 모든 Java 프로그램이 실행되는 환경인 Java Runtime Environment (JRE) 를 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문입니다.개발자 주도 커뮤니티는 매우 활발하며 초보 프로그래머가 이용할 수 있는 심층적인 지원으로 인기가 계속 높아지고 있습니다.

Java는 오랫동안 사용되어 왔기 때문에 커뮤니티에서는 표준, 도구, 코딩 패턴을 개발하고 개발자들이 반복해서 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다.커뮤니티가 주도하는 이러한 모든 이니셔티브에는 한 가지 공통된 목표가 있습니다. 바로 개발자가 Java로 애플리케이션을 개발할 때 생산성을 최대한 높일 수 있도록 돕는 것입니다.그러나 응용 프로그램 코드에 모범 사례나 패턴을 적용할 때 책임은 개발자에게 있습니다.모범 사례를 적용하는 방식이 매우 다양하기 때문에 커뮤니티 내에서 의견이 많이 다를 경우 코딩 관행에 대한 표준적인 접근 방식을 취하기가 어렵습니다.개발자들은 온라인 커뮤니티에서 도움을 구하는데, 때로는 의도치 않게 코딩 문제에 대한 안전하지 못한 해결책을 제시하기도 합니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 돕기 위해 Sensei를 만들었습니다. Sensei는 전문적인 환경에서 사용자 또는 조직이 정의한 레시피 (또는 규칙) 에 따라 잘못된 코딩 패턴을 수정하는 IntelliJ 플러그인입니다.Sensei를 사용하면 개발자가 클릭 한 번으로 일반적인 Java 실수 (문제) 를 식별하고 수정할 수 있습니다.

Sensei가 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 높이는 방법을 알아보려면 계속 읽어보세요.

개발자를 좌절시키는 반복되는 실수

이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 동등성 검사입니다.예상치 못한 결과를 방지하려면 참조 비교 연산자 (= =) 대신 equals 메서드를 사용하여 박스형 프리미티브의 값을 비교해야 합니다.

예를 들어, -128~127 범위의 정수 값에 대해 참조 비교 연산자를 사용하면 (일반적으로) equals 메서드와 동일하게 동작합니다.하지만 이 범위를 벗어나는 값과 동일한 비교를 수행하면 결과가 달라집니다.이는 Java가 앞서 언급한 정수 값 범위에 대해 일정한 풀을 유지하기 때문입니다.equals 메서드를 사용하면 항상 예상 결과를 얻을 수 있으므로 비교하기에 적합한 방법입니다.

이 예제에서는 연산자 (==) 를 잘못 사용하여 동등성을 검사하고 있습니다.

그 결과 다음과 같은 결과가 출력됩니다.

참된

거짓

거짓

참된

비교하는 올바른 방법은 equals 방법을 사용하는 것입니다.

그러면 출력은 다음과 같습니다.

참된

거짓

참된

거짓

잘 알려진 이 베스트 프랙티스는 꽤 오랫동안 사용되어 왔지만, 가장 적절하지 않은 시기에 제대로 작동하지 않는 레거시 코드에서 제대로 구현되지 않는 경우가 많습니다.그래서 로컬에서 이러한 바람직하지 않은 코딩 패턴을 식별하고 Sensei를 사용하여 클릭 한 번으로 수정 사항을 적용할 수 있는 레시피 (또는 규칙) 를 만들었습니다.

Sensei는 입력 시 원하지 않는 코드를 스캔하고 수정할 수 있는 고도로 사용자 정의 가능한 IDE 플러그인입니다. 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피 (규칙) 뿐만 아니라 직접 작성할 수 있는 기능이 내장되어 있습니다.개발자는 Sensei를 사용하여 코드를 입력할 때 잘못된 코드 패턴을 수정하여 양질의 코드를 더 빠르게 제공하고 궁극적으로 팀과 프로젝트 전반에서 일관되고 표준적인 방식으로 코드를 작성할 수 있습니다.

Sensei가 이러한 일반적인 Java 문제를 해결하는 방법

Sensei에서는 자신만의 레시피를 만들 수 있으므로 위에서 언급한 실수를 수정하기 위해 레시피를 만들었습니다.

이 예제에서는 박스형 프리미티브 타입에서 비교 연산자 (==) 를 사용하는 위치를 찾으려고 합니다.

센세이 레시피는 다음과 같습니다 (YAML).

위의 내용은 입력할 때 반복되는 잘못된 패턴 또는 전체 파일, 구성된 범위, 전체 코드베이스를 검색할 수 있습니다.패턴이 발견되면 자연스러운 다음 단계는 온라인에서 검색하지 않고도 즉시 수정할 수 있는 것입니다.Sensei를 사용하면 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다.적합하다고 판단되는 수정 사항을 여러 개 제공하여 개발자가 적합하다고 판단되는 가장 적절한 수정 사항을 선택할 수도 있습니다.

이 예제에서는 연산자 (==) 대신 equals 메서드를 사용하여 비교를 다시 작성하려고 합니다.

사용 가능한 수정 사항은 다음과 같이 설명됩니다.

작동 방식:

간편한 방법으로 표준 코딩 지침 구현

Java Gotchas Cookbook에는 일반적인 실수를 피하고 코드를 깔끔하고 안전하게 유지하는 데 도움이 되는 22가지 레시피가 있습니다.객체 동등성, 예외 처리, 정규 표현식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다.Sensei와 이 쿡북을 사용하면 처음부터 더 나은 코드를 작성할 수 있을 뿐만 아니라 고유한 팀, 프로젝트 또는 조직에 맞게 자신만의 레시피를 만들 수도 있습니다.

이는 Sensei를 사용하여 프로젝트를 표준화할 수 있는 다양한 방법 중 하나에 불과합니다.풀 리퀘스트나 직접 코딩할 때 자주 접하는 안티패턴 또는 특정 수동 코드 변환이 있으면 언제든지 찾아볼 수 있습니다.개발자들이 자주 놓치는 코딩 가이드라인이 있다면 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신 있게 적용할 수 있습니다.

지금 Sensei를 설치하고 생산적인 개발 경험을 위해 Java Gotchas Cookbook을 활성화하세요. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, 개발자 국가 현황, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

您对更多内容感兴趣吗?

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示
共享对象:
领英品牌社交x 标志
作者
旺德-内托
发表于2022年2月2日

共享对象:
领英品牌社交x 标志

더 생산적인 Java 개발자가 되세요

전 세계적으로 9백만 명의 개발자*를 보유한 Java (Oracle Corporation) 는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다.많은 응용 프로그램 프레임워크가 Java를 기반으로 구축되었습니다. Java Runtime Environment (JRE) 는 모든 Java 프로그램이 실행되는 환경인 Java Runtime Environment (JRE) 를 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문입니다.개발자 주도 커뮤니티는 매우 활발하며 초보 프로그래머가 이용할 수 있는 심층적인 지원으로 인기가 계속 높아지고 있습니다.

Java는 오랫동안 사용되어 왔기 때문에 커뮤니티에서는 표준, 도구, 코딩 패턴을 개발하고 개발자들이 반복해서 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다.커뮤니티가 주도하는 이러한 모든 이니셔티브에는 한 가지 공통된 목표가 있습니다. 바로 개발자가 Java로 애플리케이션을 개발할 때 생산성을 최대한 높일 수 있도록 돕는 것입니다.그러나 응용 프로그램 코드에 모범 사례나 패턴을 적용할 때 책임은 개발자에게 있습니다.모범 사례를 적용하는 방식이 매우 다양하기 때문에 커뮤니티 내에서 의견이 많이 다를 경우 코딩 관행에 대한 표준적인 접근 방식을 취하기가 어렵습니다.개발자들은 온라인 커뮤니티에서 도움을 구하는데, 때로는 의도치 않게 코딩 문제에 대한 안전하지 못한 해결책을 제시하기도 합니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 돕기 위해 Sensei를 만들었습니다. Sensei는 전문적인 환경에서 사용자 또는 조직이 정의한 레시피 (또는 규칙) 에 따라 잘못된 코딩 패턴을 수정하는 IntelliJ 플러그인입니다.Sensei를 사용하면 개발자가 클릭 한 번으로 일반적인 Java 실수 (문제) 를 식별하고 수정할 수 있습니다.

Sensei가 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 높이는 방법을 알아보려면 계속 읽어보세요.

개발자를 좌절시키는 반복되는 실수

이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 동등성 검사입니다.예상치 못한 결과를 방지하려면 참조 비교 연산자 (= =) 대신 equals 메서드를 사용하여 박스형 프리미티브의 값을 비교해야 합니다.

예를 들어, -128~127 범위의 정수 값에 대해 참조 비교 연산자를 사용하면 (일반적으로) equals 메서드와 동일하게 동작합니다.하지만 이 범위를 벗어나는 값과 동일한 비교를 수행하면 결과가 달라집니다.이는 Java가 앞서 언급한 정수 값 범위에 대해 일정한 풀을 유지하기 때문입니다.equals 메서드를 사용하면 항상 예상 결과를 얻을 수 있으므로 비교하기에 적합한 방법입니다.

이 예제에서는 연산자 (==) 를 잘못 사용하여 동등성을 검사하고 있습니다.

그 결과 다음과 같은 결과가 출력됩니다.

참된

거짓

거짓

참된

비교하는 올바른 방법은 equals 방법을 사용하는 것입니다.

그러면 출력은 다음과 같습니다.

참된

거짓

참된

거짓

잘 알려진 이 베스트 프랙티스는 꽤 오랫동안 사용되어 왔지만, 가장 적절하지 않은 시기에 제대로 작동하지 않는 레거시 코드에서 제대로 구현되지 않는 경우가 많습니다.그래서 로컬에서 이러한 바람직하지 않은 코딩 패턴을 식별하고 Sensei를 사용하여 클릭 한 번으로 수정 사항을 적용할 수 있는 레시피 (또는 규칙) 를 만들었습니다.

Sensei는 입력 시 원하지 않는 코드를 스캔하고 수정할 수 있는 고도로 사용자 정의 가능한 IDE 플러그인입니다. 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피 (규칙) 뿐만 아니라 직접 작성할 수 있는 기능이 내장되어 있습니다.개발자는 Sensei를 사용하여 코드를 입력할 때 잘못된 코드 패턴을 수정하여 양질의 코드를 더 빠르게 제공하고 궁극적으로 팀과 프로젝트 전반에서 일관되고 표준적인 방식으로 코드를 작성할 수 있습니다.

Sensei가 이러한 일반적인 Java 문제를 해결하는 방법

Sensei에서는 자신만의 레시피를 만들 수 있으므로 위에서 언급한 실수를 수정하기 위해 레시피를 만들었습니다.

이 예제에서는 박스형 프리미티브 타입에서 비교 연산자 (==) 를 사용하는 위치를 찾으려고 합니다.

센세이 레시피는 다음과 같습니다 (YAML).

위의 내용은 입력할 때 반복되는 잘못된 패턴 또는 전체 파일, 구성된 범위, 전체 코드베이스를 검색할 수 있습니다.패턴이 발견되면 자연스러운 다음 단계는 온라인에서 검색하지 않고도 즉시 수정할 수 있는 것입니다.Sensei를 사용하면 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다.적합하다고 판단되는 수정 사항을 여러 개 제공하여 개발자가 적합하다고 판단되는 가장 적절한 수정 사항을 선택할 수도 있습니다.

이 예제에서는 연산자 (==) 대신 equals 메서드를 사용하여 비교를 다시 작성하려고 합니다.

사용 가능한 수정 사항은 다음과 같이 설명됩니다.

작동 방식:

간편한 방법으로 표준 코딩 지침 구현

Java Gotchas Cookbook에는 일반적인 실수를 피하고 코드를 깔끔하고 안전하게 유지하는 데 도움이 되는 22가지 레시피가 있습니다.객체 동등성, 예외 처리, 정규 표현식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다.Sensei와 이 쿡북을 사용하면 처음부터 더 나은 코드를 작성할 수 있을 뿐만 아니라 고유한 팀, 프로젝트 또는 조직에 맞게 자신만의 레시피를 만들 수도 있습니다.

이는 Sensei를 사용하여 프로젝트를 표준화할 수 있는 다양한 방법 중 하나에 불과합니다.풀 리퀘스트나 직접 코딩할 때 자주 접하는 안티패턴 또는 특정 수동 코드 변환이 있으면 언제든지 찾아볼 수 있습니다.개발자들이 자주 놓치는 코딩 가이드라인이 있다면 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신 있게 적용할 수 있습니다.

지금 Sensei를 설치하고 생산적인 개발 경험을 위해 Java Gotchas Cookbook을 활성화하세요. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, 개발자 국가 현황, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

要下载报告,请填写以下表格。

我们请求您的同意,以便向您发送有关本公司产品及/或相关安全编码主题的信息。我们始终以最高标准谨慎处理您的个人信息,且绝不会出于营销目的向其他公司出售您的信息。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用'Analytics' Cookie。完成后,您可随时将其重新禁用。

더 생산적인 Java 개발자가 되세요

전 세계적으로 9백만 명의 개발자*를 보유한 Java (Oracle Corporation) 는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다.많은 응용 프로그램 프레임워크가 Java를 기반으로 구축되었습니다. Java Runtime Environment (JRE) 는 모든 Java 프로그램이 실행되는 환경인 Java Runtime Environment (JRE) 를 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문입니다.개발자 주도 커뮤니티는 매우 활발하며 초보 프로그래머가 이용할 수 있는 심층적인 지원으로 인기가 계속 높아지고 있습니다.

Java는 오랫동안 사용되어 왔기 때문에 커뮤니티에서는 표준, 도구, 코딩 패턴을 개발하고 개발자들이 반복해서 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다.커뮤니티가 주도하는 이러한 모든 이니셔티브에는 한 가지 공통된 목표가 있습니다. 바로 개발자가 Java로 애플리케이션을 개발할 때 생산성을 최대한 높일 수 있도록 돕는 것입니다.그러나 응용 프로그램 코드에 모범 사례나 패턴을 적용할 때 책임은 개발자에게 있습니다.모범 사례를 적용하는 방식이 매우 다양하기 때문에 커뮤니티 내에서 의견이 많이 다를 경우 코딩 관행에 대한 표준적인 접근 방식을 취하기가 어렵습니다.개발자들은 온라인 커뮤니티에서 도움을 구하는데, 때로는 의도치 않게 코딩 문제에 대한 안전하지 못한 해결책을 제시하기도 합니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 돕기 위해 Sensei를 만들었습니다. Sensei는 전문적인 환경에서 사용자 또는 조직이 정의한 레시피 (또는 규칙) 에 따라 잘못된 코딩 패턴을 수정하는 IntelliJ 플러그인입니다.Sensei를 사용하면 개발자가 클릭 한 번으로 일반적인 Java 실수 (문제) 를 식별하고 수정할 수 있습니다.

Sensei가 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 높이는 방법을 알아보려면 계속 읽어보세요.

개발자를 좌절시키는 반복되는 실수

이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 동등성 검사입니다.예상치 못한 결과를 방지하려면 참조 비교 연산자 (= =) 대신 equals 메서드를 사용하여 박스형 프리미티브의 값을 비교해야 합니다.

예를 들어, -128~127 범위의 정수 값에 대해 참조 비교 연산자를 사용하면 (일반적으로) equals 메서드와 동일하게 동작합니다.하지만 이 범위를 벗어나는 값과 동일한 비교를 수행하면 결과가 달라집니다.이는 Java가 앞서 언급한 정수 값 범위에 대해 일정한 풀을 유지하기 때문입니다.equals 메서드를 사용하면 항상 예상 결과를 얻을 수 있으므로 비교하기에 적합한 방법입니다.

이 예제에서는 연산자 (==) 를 잘못 사용하여 동등성을 검사하고 있습니다.

그 결과 다음과 같은 결과가 출력됩니다.

참된

거짓

거짓

참된

비교하는 올바른 방법은 equals 방법을 사용하는 것입니다.

그러면 출력은 다음과 같습니다.

참된

거짓

참된

거짓

잘 알려진 이 베스트 프랙티스는 꽤 오랫동안 사용되어 왔지만, 가장 적절하지 않은 시기에 제대로 작동하지 않는 레거시 코드에서 제대로 구현되지 않는 경우가 많습니다.그래서 로컬에서 이러한 바람직하지 않은 코딩 패턴을 식별하고 Sensei를 사용하여 클릭 한 번으로 수정 사항을 적용할 수 있는 레시피 (또는 규칙) 를 만들었습니다.

Sensei는 입력 시 원하지 않는 코드를 스캔하고 수정할 수 있는 고도로 사용자 정의 가능한 IDE 플러그인입니다. 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피 (규칙) 뿐만 아니라 직접 작성할 수 있는 기능이 내장되어 있습니다.개발자는 Sensei를 사용하여 코드를 입력할 때 잘못된 코드 패턴을 수정하여 양질의 코드를 더 빠르게 제공하고 궁극적으로 팀과 프로젝트 전반에서 일관되고 표준적인 방식으로 코드를 작성할 수 있습니다.

Sensei가 이러한 일반적인 Java 문제를 해결하는 방법

Sensei에서는 자신만의 레시피를 만들 수 있으므로 위에서 언급한 실수를 수정하기 위해 레시피를 만들었습니다.

이 예제에서는 박스형 프리미티브 타입에서 비교 연산자 (==) 를 사용하는 위치를 찾으려고 합니다.

센세이 레시피는 다음과 같습니다 (YAML).

위의 내용은 입력할 때 반복되는 잘못된 패턴 또는 전체 파일, 구성된 범위, 전체 코드베이스를 검색할 수 있습니다.패턴이 발견되면 자연스러운 다음 단계는 온라인에서 검색하지 않고도 즉시 수정할 수 있는 것입니다.Sensei를 사용하면 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다.적합하다고 판단되는 수정 사항을 여러 개 제공하여 개발자가 적합하다고 판단되는 가장 적절한 수정 사항을 선택할 수도 있습니다.

이 예제에서는 연산자 (==) 대신 equals 메서드를 사용하여 비교를 다시 작성하려고 합니다.

사용 가능한 수정 사항은 다음과 같이 설명됩니다.

작동 방식:

간편한 방법으로 표준 코딩 지침 구현

Java Gotchas Cookbook에는 일반적인 실수를 피하고 코드를 깔끔하고 안전하게 유지하는 데 도움이 되는 22가지 레시피가 있습니다.객체 동등성, 예외 처리, 정규 표현식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다.Sensei와 이 쿡북을 사용하면 처음부터 더 나은 코드를 작성할 수 있을 뿐만 아니라 고유한 팀, 프로젝트 또는 조직에 맞게 자신만의 레시피를 만들 수도 있습니다.

이는 Sensei를 사용하여 프로젝트를 표준화할 수 있는 다양한 방법 중 하나에 불과합니다.풀 리퀘스트나 직접 코딩할 때 자주 접하는 안티패턴 또는 특정 수동 코드 변환이 있으면 언제든지 찾아볼 수 있습니다.개발자들이 자주 놓치는 코딩 가이드라인이 있다면 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신 있게 적용할 수 있습니다.

지금 Sensei를 설치하고 생산적인 개발 경험을 위해 Java Gotchas Cookbook을 활성화하세요. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, 개발자 국가 현황, https://www.developernation.net/developer-reports/de20

观看网络研讨会
开始
了解更多

点击下方链接下载此资源的PDF文件。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
共享对象:
领英品牌社交x 标志
您对更多内容感兴趣吗?

共享对象:
领英品牌社交x 标志
作者
旺德-内托
发表于2022年2月2日

共享对象:
领英品牌社交x 标志

더 생산적인 Java 개발자가 되세요

전 세계적으로 9백만 명의 개발자*를 보유한 Java (Oracle Corporation) 는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다.많은 응용 프로그램 프레임워크가 Java를 기반으로 구축되었습니다. Java Runtime Environment (JRE) 는 모든 Java 프로그램이 실행되는 환경인 Java Runtime Environment (JRE) 를 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문입니다.개발자 주도 커뮤니티는 매우 활발하며 초보 프로그래머가 이용할 수 있는 심층적인 지원으로 인기가 계속 높아지고 있습니다.

Java는 오랫동안 사용되어 왔기 때문에 커뮤니티에서는 표준, 도구, 코딩 패턴을 개발하고 개발자들이 반복해서 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다.커뮤니티가 주도하는 이러한 모든 이니셔티브에는 한 가지 공통된 목표가 있습니다. 바로 개발자가 Java로 애플리케이션을 개발할 때 생산성을 최대한 높일 수 있도록 돕는 것입니다.그러나 응용 프로그램 코드에 모범 사례나 패턴을 적용할 때 책임은 개발자에게 있습니다.모범 사례를 적용하는 방식이 매우 다양하기 때문에 커뮤니티 내에서 의견이 많이 다를 경우 코딩 관행에 대한 표준적인 접근 방식을 취하기가 어렵습니다.개발자들은 온라인 커뮤니티에서 도움을 구하는데, 때로는 의도치 않게 코딩 문제에 대한 안전하지 못한 해결책을 제시하기도 합니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 돕기 위해 Sensei를 만들었습니다. Sensei는 전문적인 환경에서 사용자 또는 조직이 정의한 레시피 (또는 규칙) 에 따라 잘못된 코딩 패턴을 수정하는 IntelliJ 플러그인입니다.Sensei를 사용하면 개발자가 클릭 한 번으로 일반적인 Java 실수 (문제) 를 식별하고 수정할 수 있습니다.

Sensei가 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 높이는 방법을 알아보려면 계속 읽어보세요.

개발자를 좌절시키는 반복되는 실수

이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 동등성 검사입니다.예상치 못한 결과를 방지하려면 참조 비교 연산자 (= =) 대신 equals 메서드를 사용하여 박스형 프리미티브의 값을 비교해야 합니다.

예를 들어, -128~127 범위의 정수 값에 대해 참조 비교 연산자를 사용하면 (일반적으로) equals 메서드와 동일하게 동작합니다.하지만 이 범위를 벗어나는 값과 동일한 비교를 수행하면 결과가 달라집니다.이는 Java가 앞서 언급한 정수 값 범위에 대해 일정한 풀을 유지하기 때문입니다.equals 메서드를 사용하면 항상 예상 결과를 얻을 수 있으므로 비교하기에 적합한 방법입니다.

이 예제에서는 연산자 (==) 를 잘못 사용하여 동등성을 검사하고 있습니다.

그 결과 다음과 같은 결과가 출력됩니다.

참된

거짓

거짓

참된

비교하는 올바른 방법은 equals 방법을 사용하는 것입니다.

그러면 출력은 다음과 같습니다.

참된

거짓

참된

거짓

잘 알려진 이 베스트 프랙티스는 꽤 오랫동안 사용되어 왔지만, 가장 적절하지 않은 시기에 제대로 작동하지 않는 레거시 코드에서 제대로 구현되지 않는 경우가 많습니다.그래서 로컬에서 이러한 바람직하지 않은 코딩 패턴을 식별하고 Sensei를 사용하여 클릭 한 번으로 수정 사항을 적용할 수 있는 레시피 (또는 규칙) 를 만들었습니다.

Sensei는 입력 시 원하지 않는 코드를 스캔하고 수정할 수 있는 고도로 사용자 정의 가능한 IDE 플러그인입니다. 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피 (규칙) 뿐만 아니라 직접 작성할 수 있는 기능이 내장되어 있습니다.개발자는 Sensei를 사용하여 코드를 입력할 때 잘못된 코드 패턴을 수정하여 양질의 코드를 더 빠르게 제공하고 궁극적으로 팀과 프로젝트 전반에서 일관되고 표준적인 방식으로 코드를 작성할 수 있습니다.

Sensei가 이러한 일반적인 Java 문제를 해결하는 방법

Sensei에서는 자신만의 레시피를 만들 수 있으므로 위에서 언급한 실수를 수정하기 위해 레시피를 만들었습니다.

이 예제에서는 박스형 프리미티브 타입에서 비교 연산자 (==) 를 사용하는 위치를 찾으려고 합니다.

센세이 레시피는 다음과 같습니다 (YAML).

위의 내용은 입력할 때 반복되는 잘못된 패턴 또는 전체 파일, 구성된 범위, 전체 코드베이스를 검색할 수 있습니다.패턴이 발견되면 자연스러운 다음 단계는 온라인에서 검색하지 않고도 즉시 수정할 수 있는 것입니다.Sensei를 사용하면 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다.적합하다고 판단되는 수정 사항을 여러 개 제공하여 개발자가 적합하다고 판단되는 가장 적절한 수정 사항을 선택할 수도 있습니다.

이 예제에서는 연산자 (==) 대신 equals 메서드를 사용하여 비교를 다시 작성하려고 합니다.

사용 가능한 수정 사항은 다음과 같이 설명됩니다.

작동 방식:

간편한 방법으로 표준 코딩 지침 구현

Java Gotchas Cookbook에는 일반적인 실수를 피하고 코드를 깔끔하고 안전하게 유지하는 데 도움이 되는 22가지 레시피가 있습니다.객체 동등성, 예외 처리, 정규 표현식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다.Sensei와 이 쿡북을 사용하면 처음부터 더 나은 코드를 작성할 수 있을 뿐만 아니라 고유한 팀, 프로젝트 또는 조직에 맞게 자신만의 레시피를 만들 수도 있습니다.

이는 Sensei를 사용하여 프로젝트를 표준화할 수 있는 다양한 방법 중 하나에 불과합니다.풀 리퀘스트나 직접 코딩할 때 자주 접하는 안티패턴 또는 특정 수동 코드 변환이 있으면 언제든지 찾아볼 수 있습니다.개발자들이 자주 놓치는 코딩 가이드라인이 있다면 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신 있게 적용할 수 있습니다.

지금 Sensei를 설치하고 생산적인 개발 경험을 위해 Java Gotchas Cookbook을 활성화하세요. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, 개발자 국가 현황, https://www.developernation.net/developer-reports/de20

目录

查看资源
您对更多内容感兴趣吗?

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示下载
共享对象:
领英品牌社交x 标志
资源中心

有助于开始的资源

更多帖子
资源中心

有助于开始的资源

更多帖子