Study

    [JAVA] 생성자 대신 정적 팩터리 메서드를 고려하라

    무의식적으로 사용하는 패턴의 장·단점을 이해하고 동료 개발자에게 설득력 있는 설명을 하기 위해 Effective Java 첫 장을 다시 들여다보았다. 나는 주로 Builder 패턴과 함께 Dto를 매개변수로 받아 Entity로 반환할 때 사용하였던 것 같다. 정적 팩터리 메서드 객체를 생성하는 메서드를 정적(static)으로 만들어서 객체 생성을 캡슐화 하는 메서드 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못한다. 반면, 정적 팩터리 메서드는 이름을 통해 반환될 객체의 특성을 묘사할 수 있다. 생성자는 하나의 시그니처로는 생성자를 하나만 만들 수 있다. 하지만 정적 팩터리 메서드는 시그니처가 같은 생성자가 여러개 필요할 경우 각..

    [JAVA] String Pool과 불변성

    [JAVA] String Pool과 불변성

    String과 불변성 Java에서 String은 immutable, 즉 불변 객체이다. 불변(immutable)하다는 것은 문자열이 일단 생성되면 그 값이 고정되어 있으며, 변경되더라도 원래의 문자열 내용이 변경되는 것이 아닌 새로운 문자열 객체가 생성됨을 의미한다. 예를 들어, String str1 = "Hello"; String str2 = str1; str1 = str1 + " World"; 위 코드에서는 "Hello"라는 문자열이 먼저 생성되고, 변수 str1과 str2가 이 문자열을 참조한다. 그리고 str1에 " World"를 추가한 새로운 문자열을 할당한다. 하지만 문자열은 변경할 수 없으므로, 실제로는 새로운 문자열이 생성되고 str1은 이 새로운 문자열을 참조하게 된다. str2는 여전히..

    [Design Pattern] 디자인 패턴과 종류

    디자인 패턴이란 디자인 패턴은 소프트웨어 설계 과정에서 빈번하게 발생하는 문제를 정리해서 상황에 따라 간편하게 적용할 수 있게 정리한 해법이다. 디자인 패턴을 잘 활용하면 시간과 노력, 시행착오를 줄일 수 있다. 디자인 패턴 종류 디자인 패턴은 용도에 따라 생성, 행동, 구조의 3가지 범주로 나뉘어진다. 1. 생성 패턴(Creational Pattern) 객체 인스턴스를 생성하는 패턴으로, 클라이언트와 그 클라이언트가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어주는 패턴 싱글턴 패턴(Singleton Pattern) - 특정 클래스에 객체 인스턴스가 하나만 만들어지도록 해주는 패턴. 싱글턴 패턴을 사용하면 전역 변수를 사용할 때와 마찬가지로 객체 인스턴스를 어디서든지 액세스 할 수 있게 만들 수 있다..