빌더 패턴이 무엇이고 장점이 무엇인가요?
빌더 패턴이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴입니다.빌더 패턴은 생성 패턴 중 하나로 객체의 생성과 표현을 분리하여 다양한 구성의 인스턴스를 만드는 패턴입니다. 객체 생성 시 매개변수의 순서와 타입을 명확히 지정할 수 있어 코드의 가독성을 높이고 유지보수를 용이하게 합니다. 때문에 복잡하거나 선택적 매개변수가 많은 객체를 생성할 때 유용합니다.
프록시 패턴에 대해 설명해주시고 스프링에 사용되는 예시를 설명해주세요.
프록시 패턴은 다른 객체에 대한 접근을 제어하기 위해 대리 객체를 제공하는 패턴입니다.접근 제어, 로깅, 성능 모니터링 등 부가기능을 추가하는데 유용하게 사용되는데, 대표적으로 JPA에서 사용되는 지연로딩에서도 비용이 높은 객체를 필요할 때까지 생성을 지연시키는데 Virtual Proxy를 사용합니다.
싱글톤 패턴 방식에서 @Configuration 을 사용하는 이유는 무엇일까요?
Config 파일에 @Configuration 을 선언할 경우 스프링은 CGLIB를 통해 바이트코드 조작 라이브러리를 사용해서 config 클래스를 상속받은 다른 클래스를 만들게 됩니다. 그리고 해당 클래스를 스프링 빈으로 등록하게 되며 실제 실행할 때 상속 받은 다른 클래스가 호출되고 해당 클래스 안에 선언된 인스턴스를 여러번 호출해도 실제로는 단 한번만 객체가 생성되는 싱글톤 스코프를 보장해주기 때문에 사용됩니다.반대로 @Configuration 을 사용하지 않는다면 @Bean 메서드가 호출될 때마다 새로운 인스턴스가 생성되기때문에 싱글톤 보장이 깨지게 됩니다.
디자인 패턴 중 싱글톤 패턴이란 무엇이며 어떤 이점을 가질까요?
싱글톤 패턴은 클래스의 인스턴스가 오직 하나임을 보장하는 디자인 패턴입니다. 즉 객체의 인스턴스가 오직 1개만 생성되는 패턴입니다. 이점은 메모리 절약인데 인스턴스가 필요할 때 새로 만들지 않고 기존의 인스턴스를 가져와 사용할 수 있기 때문입니다.배치 작업이 중간에 실패할 경우 어떻게 처리하나요?
스프링 배치는 기본적으로 chunk 단위로 트랜잭션을 관리하기 때문에 오류가 발생할 경우 이를 스킵하고 다음 작업으로 넘어가거나 재시도 할 수 있습니다.팩토리 메서드 패턴이란 무엇이며 어떤 이점을 가질까요?
팩토리 메서드 패턴이란 객체를 생성할 때 사용되는 디자인 패턴으로 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화하는 디자인 패턴입니다. 클라이언트에서 직접 new 연산을 통해 객체를 생성하는 것이 아닌 공장 클래스에서 생성하도록 해 객체간의 결합도가 낮아지고 유지보수가 용이해지는 이점을 가집니다.참고
- https://blog.leaphop.co.kr/blogs/68/Spring%EC%9D%98_%EC%A3%BC%EC%9A%94_%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4
- https://jhhan009.tistory.com/79
- 💠 싱글톤(Singleton) 패턴 - 꼼꼼하게 알아보자
- 싱글톤(Singleton) 패턴이란?
- 💠 빌더(Builder) 패턴 - 완벽 마스터하기
- 빌더 패턴과 기본 생성자의 역할 이해하기
- 💠 팩토리 메서드(Factory Method) 패턴 - 완벽 마스터하기
- Factory Pattern(팩토리 패턴)