728x90 전체 글61 [Effective Java] Item02. 생성자에 매개변수가 많다면 빌더 패턴을 고려하라 들어가며 지난 Item01에서는 public 생성자의 대안으로 정적 팩토리 메서드를 사용하는 것에 대해 정리했다. 많은 경우에 정적 팩토리 메서드는 public 생성자에 비해 장점을 가지고 있지만, 두 방법 모두 똑같은 제약을 가지고 있다. 바로 객체에 전달할 매개변수 중 선택적 매개변수가 많을 경우에 그에 대한 유연성이 떨어진다는 점이다. 이번 포스트에서는 선택적 매개변수가 많을 경우 public 생성자, 정적 팩토리 메서드의 대안들에 대해 알아보고 그 중에서 빌더 패턴에 대해 정리해볼 예정이다. 확장의 어려움 앞에서 언급했듯이 public 생성자와 정적 팩토리 메서드 기법은 확장이 어렵다. 예를 들어 건강 식품(단백질 보충제, 기타 아미노산 보충제 등)의 경우, 1회 제공량, 총 제공량, 중량 등의 .. 2022. 1. 14. [Effective Java] Item01. 생성자 대신 정적 팩토리 메서드를 고려하라 들어가며 최근 회사에서 인턴 멘토링을 하게 되며 길게 늘어지는 빌더의 사용 대신 정적 팩토리 메서드의 사용을 추천한 적이 있다. 평소 빌더 패턴을 이용한 객체 생성보다는 정적 팩토리 메서드 패턴을 이용한 객체 생성을 즐겨 쓰던 터라 관련 코멘트를 남겼지만, 코멘트를 남기다 보니 빌더 패턴에 비해 정적 팩토리 메서드 패턴이 갖는 명확한 장점이 무엇인지 나 스스로도 모호하다고 생각했다. 관련 자료를 다시 찾아보고 정리한 바에 따르면 인스턴스 생성에 필요한 인자가 많고 자주 변한다면 빌더 패턴을 사용하는 것이 좋으나, 매 인스턴스 생성시마다 사용하는 인자가 정해져있는 상황에서는 정적 팩토리 메서드 패턴이 더 장점을 갖는 것 같다. 이와 관련해서 이번 포스트, 다음 포스트에서 각 패턴의 특징을 정리해보려고 한다.. 2022. 1. 10. [JPA] BaseTimeEntity @CreatedDate 오류 최근 JPA를 이용하여 진행하고 있는 토이 프로젝트가 있는데 Entity의 생성시간을 자동으로 캐치해서 DB에 기록해주는 @CreatedDate 어노테이션이 제대로 동작하지 않는 문제가 생겼다. 보통 JPA를 사용하면 아래와 같은 entity를 생성하고 생성 시점이나 수정 시점을 자동으로 기록하고 싶은 entity는 해당 entity를 상속하게 하여 간편하게 구현할 수 있다. 그런데 생성시점을 자동 기록해주는 @CreatedDate를 사용한 createdDt 필드가 계속해서 null로 들어가는 문제가 발생했다. @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseTimeEntity.. 2021. 8. 29. Svelte로 Todo앱 예제 만들기 프론트엔드 프레임워크를 공부할 때 가장 기본이 되는 Todo앱 만들기를 통해 이제까지 정리했던 사항들을 되짚어보자. 전체적인 구조는 다음과 같다. App.svelte에서 input을 통해 todos 리스트에 항목을 추가 받고 해당 todos 리스트를 Props로 Todo.svelte에 제공하여 아래에 순서대로 출력하도록 한다. 이 때 각 항목들은 id를 가지며 수정, 삭제 기능을 가지고 있다. 입력할 input, button 생성 사용자로부터 새로운 todo를 입력받을 input과 button을 생성하며 이 값을 저장할 변수와 그것을 처리할 함수를 추가한다. {e.key === 'Enter' && createTodo()}} type="text" /> Create Todo {#each $todos as t.. 2021. 8. 17. 이전 1 ··· 10 11 12 13 14 15 16 다음