본문 바로가기

분류 전체보기190

이펙티브 디버깅 nextStep 보호되어 있는 글 입니다. 2024. 7. 8.
자바 lint 정적 분석 활용하기 sonarlint, klint, checkstyle과 같은 것들이 있으나 해당 글에서는 자바 위주의 정적분석 , lint 도구 중에서 checkstyle에 대해 기술해보려고 합니다. 이는 gradle을 통해 설정해줄 수 있으며 파일설정에서 config 디렉토리에 xml파일을 추가하고 주로 많이 활용하는 구글 java 컨벤션을 사용하여 indent는 2나 4로- 팀마다 다른 환경 적용적용하겠습니다.  체크스타일에 대한 xml 파일을 통해예를 들자면 google-check.xml메소드명, 클래스명, import 순서나 지정하고자 하는 많은 내용을 컨벤션으로 지정할 수 있으며 한글 메소드 명이나 라인 길이, import 순서등을 지정하는 부분에서 컨벤션을 적절히 지정하거나, 지정해주지 않는 것을 선택해야 합니.. 2024. 7. 8.
자바 record란 recod는 자바 14에서 처음 소개된 클래스 타입으로 변경 불가 (immutable) 데이터 객체를 쉽게 만들 수 있게 함 더 간결하고 효율적으로 데이터 객체를 생성할 수 있도록 설계됨 필드를 정의하면 해당 필드를 기반으로 자동 메서드가 생성되어 코드의 양을 줄일 수 있고불필요한 보일러플레이트 코드를 줄여 가독성을 높여줌 메서드 자동 생성 record는 필드를 기반으로 equals(), hashCode(), toString() 메서드를 자동으로 생성합니다. 생성자 자동 생성필드를 기반으로 자동으로 생성자를 생성합니다. 그러나 필요에 따라 명시적인 생성자를 정의할 수도 있습니다. 불변성record는 필드가 한 번 설정되면 값을 변경할 수 없습니다. Final 선언 생략필드를 final로 선언할 필요가 없.. 2024. 7. 8.
어노테이션과 커스텀 어노테이션 만들기 어노테이션이나 자바에 대해 잘 모르는 사람들도 개발을 하다보면@Override, @SuppressWarings 등의 어노테이션에 익숙할 것이다. 어노테이션이란 Java 5에서부터 등장한 기능으로 프로그램에 추가적인 정보를 제공해주는 메타 데이터라고 볼 수 있다.여기서 메타 데이터란 어플리케이션이 처리해야 할 데이터가 아니라 컴파일 과정과 런타임에서 코드를 어떻게 컴파일하고 처리할 것인지에 대한 정보를 말한다. 이 메타데이터를 잘 이용하면 비즈니스 로직과 분리하여 대상의 벨리데이션 체크, 값 주입, 역할 부여(기능 주입) 등을 수행할 수 있어 체계가 잡혀있는 깔끔한 코드를 작성할 수 있다. 어노테이션 구성과 동작원리 (스프링은 어떻게 동작하는가) (커스텀) 어노테이션의 구성 커스텀 어노테이션은 메타 어노테.. 2024. 7. 8.