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

게시일: Feb 02, 2022
by 원더 네토
사례 연구

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

게시일: Feb 02, 2022
by 원더 네토
리소스 보기
리소스 보기

보다 생산적인 Java 개발자가 되세요.

전 세계적으로 900만 명의 개발자가 있는 자바(오라클 코퍼레이션)는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 자바 런타임 환경(JRE)을 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문에 Java에 많은 응용 프로그램 프레임워크가 구축되었습니다. 개발자 주도 커뮤니티는 매우 활발하며 새로운 프로그래머가 사용할 수 있는 심층적인 지원은 점점 더 증가하는 인기에 기여합니다.

Java는 오랫동안 주변에 있었던 이후, 커뮤니티는 표준, 도구, 코딩 패턴을 개발하고 개발자가 몇 번이고 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다. 이러한 모든 커뮤니티 주도 이니셔티브는 개발자가 Java와 함께 응용 프로그램을 개발할 때 최대한 생산성을 높일 수 있도록 하는 하나의 공통적인 목표를 가지고 있습니다. 그러나 응용 프로그램 코드에서 모범 사례 나 패턴을 적용하는 경우 개발자에게 책임이 있습니다. 좋은 관행의 시행은 매우 다양하므로 커뮤니티 내에서 의견이 많이 다를 때 코딩 관행에 대한 표준 접근 방식을 갖기가 어렵습니다. 개발자는 온라인 커뮤니티에서 도움을 찾는 데 의존하여 실수로 코딩 문제에 대한 안전하지 않은 솔루션을 제공할 수 있습니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 Sensei - IntelliJ 플러그인은 전문 환경에서 사용자 또는 조직에 의해 정의 된 조리법 (또는 규칙)에 따라 나쁜 코딩 패턴을 수정합니다. Sensei 개발자가 한 번의 클릭으로 일반적인 Java 실수(gotchas)를 식별하고 수정할 수 있습니다.

어떻게 알고 계속 읽기 Sensei 몇 가지 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 향상시킵니다.

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

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

예를 들어, 범위 -128 에서 127 범위에서 정수 값에 대한 참조 비교 연산자 (일반적으로) 동일한 메서드와 동일하게 행동한다. 그러나 이 범위 외부의 값과 동일한 비교를 수행하면 결과가 다릅니다. 이는 Java가 언급된 정수 값 범위에 대해 일정한 풀을 유지했기 때문입니다. 동일한 메서드를 사용하면 항상 예상 된 결과가 생성되므로 비교할 수있는 올바른 방법입니다.

이 예제에서는 연산자(===)를 잘못 사용하여 같음을 확인합니다.

이는 다음과 같은 출력을 초래합니다.

거짓

거짓

비교하는 올바른 방법은 동일한 메서드를 사용하는 것입니다.

그리고 출력은 다음과 같은 것입니다.

거짓

거짓

이 잘 알려진 모범 사례는 꽤 오랫동안 주변에 있었지만 종종 가장 부적절한 시간에 추한 머리를 올리기 위해 기다리는 레거시 코드에서 잘못 구현됩니다. 그래서 우리는 로컬로 이러한 바람직하지 않은 코딩 패턴을 식별하고 한 번의 클릭으로 수정 프로그램을 적용하는 데 도움이 조리법 (또는 규칙)을 만들었습니다 Sensei.

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

어떻게 Sensei 이러한 일반적인 Java 문제를 해결합니다.

만큼 Sensei 당신이 당신의 자신의 조리법을 만들 수 있습니다, 우리는 위에서 언급 한 실수를 해결하기 위해 조리법을 만들었습니다.

이 예제에서는 박스형 원시 유형에서 비교 연산자(==)를 사용하는 위치를 찾으려고 합니다.

A Sensei 레시피는 (YAML에서) 다음과 같습니다.

위의 경우 전체 파일을 입력하거나 구성된 범위, 심지어 전체 코드베이스를 입력할 때 반복되는 잘못된 패턴을 검색할 수 있습니다. 패턴이 발견되면, 자연적인 다음 단계는 온라인으로 검색 할 필요없이 즉시 수정 할 수 있어야합니다. Sensei 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다. 개발자가 적합하다고 판단되는 여러 수정 프로그램을 제공할 수도 있습니다.

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

사용 가능한 수정 프로그램은 다음과 같이 설명됩니다.

작동 방식:

표준 코딩 가이드라인 을 간편하게 구현

자바 고츠쿡북은 일반적인 실수를 피하고 코드를 깨끗하고 안전하게 유지하는 데 도움이 되는 22가지 레시피를 가지고 있습니다. 개체 같음, 예외 처리, 정규 식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다. 채택하 Sensei 그리고이 요리 책은 처음부터 더 나은 코드를 작성하기 시작하고, 심지어, 당신의 고유 한 팀, 프로젝트 또는 조직에 맞게 자신의 조리법을 만들 수 있습니다.

이것은 여러 가지 방법의 한 예일 뿐입니다. Sensei 프로젝트를 표준화하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.

설치하다 Sensei 이제 자바 고타스 쿡북을 통해 생산적인 개발 경험을 할 수 있습니다. https://sensei.securecodewarrior.com/cookbooks/scw:java

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

리소스 보기
리소스 보기

저자

방황 네토

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

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

게시일: Feb 02, 2022
By 원더 네토

보다 생산적인 Java 개발자가 되세요.

전 세계적으로 900만 명의 개발자가 있는 자바(오라클 코퍼레이션)는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 자바 런타임 환경(JRE)을 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문에 Java에 많은 응용 프로그램 프레임워크가 구축되었습니다. 개발자 주도 커뮤니티는 매우 활발하며 새로운 프로그래머가 사용할 수 있는 심층적인 지원은 점점 더 증가하는 인기에 기여합니다.

Java는 오랫동안 주변에 있었던 이후, 커뮤니티는 표준, 도구, 코딩 패턴을 개발하고 개발자가 몇 번이고 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다. 이러한 모든 커뮤니티 주도 이니셔티브는 개발자가 Java와 함께 응용 프로그램을 개발할 때 최대한 생산성을 높일 수 있도록 하는 하나의 공통적인 목표를 가지고 있습니다. 그러나 응용 프로그램 코드에서 모범 사례 나 패턴을 적용하는 경우 개발자에게 책임이 있습니다. 좋은 관행의 시행은 매우 다양하므로 커뮤니티 내에서 의견이 많이 다를 때 코딩 관행에 대한 표준 접근 방식을 갖기가 어렵습니다. 개발자는 온라인 커뮤니티에서 도움을 찾는 데 의존하여 실수로 코딩 문제에 대한 안전하지 않은 솔루션을 제공할 수 있습니다.

개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 Sensei - IntelliJ 플러그인은 전문 환경에서 사용자 또는 조직에 의해 정의 된 조리법 (또는 규칙)에 따라 나쁜 코딩 패턴을 수정합니다. Sensei 개발자가 한 번의 클릭으로 일반적인 Java 실수(gotchas)를 식별하고 수정할 수 있습니다.

어떻게 알고 계속 읽기 Sensei 몇 가지 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 향상시킵니다.

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

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

예를 들어, 범위 -128 에서 127 범위에서 정수 값에 대한 참조 비교 연산자 (일반적으로) 동일한 메서드와 동일하게 행동한다. 그러나 이 범위 외부의 값과 동일한 비교를 수행하면 결과가 다릅니다. 이는 Java가 언급된 정수 값 범위에 대해 일정한 풀을 유지했기 때문입니다. 동일한 메서드를 사용하면 항상 예상 된 결과가 생성되므로 비교할 수있는 올바른 방법입니다.

이 예제에서는 연산자(===)를 잘못 사용하여 같음을 확인합니다.

이는 다음과 같은 출력을 초래합니다.

거짓

거짓

비교하는 올바른 방법은 동일한 메서드를 사용하는 것입니다.

그리고 출력은 다음과 같은 것입니다.

거짓

거짓

이 잘 알려진 모범 사례는 꽤 오랫동안 주변에 있었지만 종종 가장 부적절한 시간에 추한 머리를 올리기 위해 기다리는 레거시 코드에서 잘못 구현됩니다. 그래서 우리는 로컬로 이러한 바람직하지 않은 코딩 패턴을 식별하고 한 번의 클릭으로 수정 프로그램을 적용하는 데 도움이 조리법 (또는 규칙)을 만들었습니다 Sensei.

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

어떻게 Sensei 이러한 일반적인 Java 문제를 해결합니다.

만큼 Sensei 당신이 당신의 자신의 조리법을 만들 수 있습니다, 우리는 위에서 언급 한 실수를 해결하기 위해 조리법을 만들었습니다.

이 예제에서는 박스형 원시 유형에서 비교 연산자(==)를 사용하는 위치를 찾으려고 합니다.

A Sensei 레시피는 (YAML에서) 다음과 같습니다.

위의 경우 전체 파일을 입력하거나 구성된 범위, 심지어 전체 코드베이스를 입력할 때 반복되는 잘못된 패턴을 검색할 수 있습니다. 패턴이 발견되면, 자연적인 다음 단계는 온라인으로 검색 할 필요없이 즉시 수정 할 수 있어야합니다. Sensei 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다. 개발자가 적합하다고 판단되는 여러 수정 프로그램을 제공할 수도 있습니다.

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

사용 가능한 수정 프로그램은 다음과 같이 설명됩니다.

작동 방식:

표준 코딩 가이드라인 을 간편하게 구현

자바 고츠쿡북은 일반적인 실수를 피하고 코드를 깨끗하고 안전하게 유지하는 데 도움이 되는 22가지 레시피를 가지고 있습니다. 개체 같음, 예외 처리, 정규 식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다. 채택하 Sensei 그리고이 요리 책은 처음부터 더 나은 코드를 작성하기 시작하고, 심지어, 당신의 고유 한 팀, 프로젝트 또는 조직에 맞게 자신의 조리법을 만들 수 있습니다.

이것은 여러 가지 방법의 한 예일 뿐입니다. Sensei 프로젝트를 표준화하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.

설치하다 Sensei 이제 자바 고타스 쿡북을 통해 생산적인 개발 경험을 할 수 있습니다. https://sensei.securecodewarrior.com/cookbooks/scw:java

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

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.