Javascript 동일성 비교 시 ==, === 차이점 ==는 두 개의 입력값을 같은 type으로 변환하여 같은 값을 가지고 있는지 비교작업을 수행합니다. 이는 의미론적 비교방법이라고 할 수 있습니다. 반면, ===는 type 변환을 하지 않은 상태로 비교작업을 수행하며 type이 틀릴경우 false를 반환합니다. "1" == 1// true"1" === 1// falsenull == undefined// truenull === undefined// false 동일성을 비교하는 방법중에 또다른 방법이 있습니다. 일부 최신 브라우저에서 지원하고 있는 Object.is 라는 함수 입니다. 기본적으로 === 와 같다고 볼 수 있지만, 일부 특수한 값에 대하여 다르게 동작합니다. NaN(Not a Number..
프로젝트를 진행하다 보면, 클래스 생성에 필요한 초기값들이 점점 추가되고 옵션 값들이 많아지면서 생성자 오버로딩이 점점 많아지는 경우를 볼 수 있습니다. 생성자는 method 명으로 기능을 특정지을 수 없기 때문에, 가지고 있는 파라미터의 타입과 갯수만으로 구분해야 합니다. 주석으로 어느정도 가독성을 확보할 수 있지만, 많은 수의 오버로딩을 가진 생성자는 사용도 불편하고 보기에도 영 안 좋습니다. 클래스 생성 시에 다양한 옵션값을 사용해야 할 경우 적용 가능한 패턴이 바로 Builder 패턴 입니다. 객체 생성 시에 필수값만 입력하여 객체를 생성하고, 옵션값들은 필요시에만 설정 가능합니다. 다음과 같은 방식으로 사용 가능합니다.* Main.java public class Main { public stat..
Static factory method의 장단점 Static factory method란 객체의 인스턴스를 생성하는 방법 중에 하나입니다. public 생성자를 private으로 가려 놓고, 생성자로 사용하고자 하는 static method를 public으로 선언하여 해당 method만 이용해서 인스턴스를 생성하도록 하는 방식 입니다. 이런 방식을 사용함으로 인해 얻을 수 있는 이점이 몇 가지 있습니다. 1. 객체 생성에 대한 별도의 의미를 부여해 줄 수 있습니다. 생성자는 class 이름과 동일하기 때문에 특별한 의미를 부여하기 힘듭니다. 클래스의 생성자 시그너처를 여러개 만들어 각 시그너처 별로 기능을 다르게 하고 주석으로 의미를 설명해 줄 순 있지만, 클래스를 사용하는 입장에서 시그너처로 기능이 구..