본문 바로가기

언어17

[Lombok] 자주 사용하는 어노테이션과 주의점 반복적인 getter, setter 혹은 여러 개의 생성자를 어노테이션만으로 생성해주는 소중한 라이브러리가 바로 Lombok입니다. 평소 제공되는 기능을 단순히 기억하고 사용하다가 최근에 큰 혼란을 경험하여 제공되는 기능과 유의점에 대해 학습하고 정리한 내용입니다. @Getter, @Setter private로 선언된 필드에 접근하기 위해 사용하는 getter, setter는 특정 조건을 넣는 상황이 아니라면 단순 반복적인 코드가 작성돼야 하지만 @Getter, @Setter 어노테이션으로 대신할 수 있습니다. @Getter @Setter public class Movie { private Long id; private int attendance; private String movieName; //@Ge.. 2022. 9. 18.
[JAVA] Optional 사용법 - 어떻게 사용해야할까 (2/2) Optional의 존재를 알고 이리저리 사용하면서 여러 의문이 들었다. null의 가능성이 있는 곳엔 모두 써줘야 하는 건가? 결국 꺼낼때는 존재 여부를 확인하고 꺼내야 하는데 이럴 거면 Optional을 왜 쓰는가.. 등의 의문이 들어 Optional의 올바른 사용방법에 대해 알아보았습니다. 잘못된 Optional 사용 Optional은 null을 반환하면 에러를 유발할 가능성이 높은 상황에서 '결과 없음'을 명확하게 드러내기 위해 메서드 반환타입으로 사용되도록 매우 제한적으로 설계되었다고 한다. 즉 의도와 맞지않게 사용한다면 부작용이 발생할 수 있다. NullPointerException을 피하려다 NoSuchElementException이 발생 코드의 가독성이 떨어지는 문제 비용 증가로 인한 성능 .. 2022. 7. 28.
[JAVA] Optional의 사용법 (1/2) 코드 작성할 때 흔히 만날 수 있는 예외 중 NullPointerException가 있다. 예외 방지를 위해 조건문을 사용하고 예외를 발생시키는 등의 처리를 하지만 처리를 잊을수 있고 null을 리턴한다는 사실이 문제가 된다. 자바 8에서 null일 가능성이 있는 데이터를 감싸는 Wrapper 클래스인 Optional을 제공한다. 이를 사용해 클라이언트에게 반환 값이 '없음'을 명백하게 표현이 가능하다. Optional 생성 Opional 클래스는 간편하게 객체 생성을 하도록 3가지의 정적 팩토리 메소드를 제공합니다. Optional.of() 데이터가 null이 아닐때 사용 가능하다 만약 null일 경우 NullPointerException이 발생한다. public Optional getNickName(.. 2022. 7. 25.
[JAVA] Builder 패턴 주로 자연스럽게 자바 빈의 형태로 만들어 객체를 만들어 사용했었는데 무분별한 setter사용과 객체 일관성이 깨지는 여러 문제들로 인하여 유지보수성의 저하와 로직의 파악이 힘들어지는 문제 등을 많이 경험하였다. 사용할 때는 편하게 사용하겠지만 무분별한 사용은 문제를 야기할 수 있기 때문에 다른 패턴들에 대해 학습한 결과를 Builder 패턴을 중심으로 정리합니다. 객체 생성의 주요 방법 점층적 생성자 패턴 자바 빈즈 패턴 빌더 패턴 점층적 생성자 패턴 생성자에서 필수 필드값과 선택적 필드 값을 활용하여 모든 맴버 변수를 포함하도록 점층적인 여러 개의 생성자를 생성하는 패턴 public class Body { // 필수 맴버변수 private final int brain; private final int .. 2022. 6. 18.