프로그래밍/Java 4

빌더 (Builder) 클래스란?

빌더 클래스는 객체를 생성할 때 사용되는 디자인 패턴 중 하나인 빌더 패턴(Builder Pattern) 을 구현하는 클래스입니다. 객체 생성 시 복잡한 생성자 호출을 줄이고, 가독성을 높이며, 객체의 불변성을 유지하는 데 유용합니다.1. 빌더 패턴을 사용하는 이유(1) 생성자의 문제점일반적으로 객체를 생성할 때 생성자를 사용하지만, 생성자의 매개변수가 많아지면 아래와 같은 문제점이 발생합니다.public class User { private String name; private int age; private String email; private String address; public User(String name, int age, String email, String ad..

IntStream.rangeClosed

1. IntStream.rangeClosed()란?Java의 IntStream.rangeClosed(int startInclusive, int endInclusive) 메서드는 start부터 end까지(포함) 연속된 정수를 생성하는 스트림을 반환합니다.이는 IntStream.range(int startInclusive, int endExclusive) 와 다르게 end 값이 포함(inclusive) 된다는 점이 특징입니다.2. IntStream.rangeClosed()와 forEach 활용 예제import java.util.stream.IntStream;public class RangeClosedExample { public static void main(String[] args) { ..

@Autowired 없어도 주입하는 방법

1. 생성자 주입 (Constructor Injection)Spring 4.3 이후부터 클래스에 생성자가 하나만 존재하면 @Autowired 없이도 자동으로 의존성 주입이 가능합니다.예제:@Componentpublic class MyService { private final DependencyService dependencyService; // 생성자가 하나뿐이므로 @Autowired 없이도 자동 주입 public MyService(DependencyService dependencyService) { this.dependencyService = dependencyService; }}이 경우, Spring이 자동으로 DependencyService 빈을 찾아 주입해 줍니다..

자바 인터페이스의 세가지 유형 메소드

Java 8부터 도입된 새로운 기능이 있어서 적어봅니다. 바로 default와 static 메서드인데요. 그동안 인터페이스에 함수를 정의하려면 abstract class를 만들었어야 했는데 인터페이스에 함수 구현이라니.. 뭔가 너무 틀을 깬거 같긴하지만 정리해봅니다.  1. 추상 메서드 (Abstract Method)default, static 키워드가 없는 일반적인 인터페이스 메서드.반드시 구현 클래스에서 오버라이딩해야 함.예제:interface MyInterface { void abstractMethod();}2. 디폴트 메서드 (Default Method)default 키워드를 사용하여 인터페이스에서 직접 구현할 수 있는 메서드.구현 클래스에서 오버라이딩할 수 있음.주로 기존 인터페이스에 기능..