본문 바로가기

전체 글14

[Java] VO(Value Object)란? VO(Value Object)란 영어 그대로 값 그 자체를 나타내는 객체를 의미합니다. 값 그 자체를 나타낸다는 것은 무슨 의미일까요? 이를 설명하기 위해 아래의 예시를 통해 먼저 알아보도록 하겠습니다. Value Objects Like a Pro를 작성한 Nicolo는 자신의 블로그에서 어떤 웹사이트에서 아래와 같은 질문을 보고 웃으며 창을 껐다고 합니다. 사람의 나이를 표현하기 위해 어떤 변수 타입을 사용해야 할까요? [ ] Integer [ ] Boolean [ ] String 여러분들은 어떤 선택을 하셨나요? 해당 블로그의 저자는 셋 다 정답이 아니다 라고 합니다. 사람의 나이를 표현하는데 Integer를 사용하는 것은 적합하지 않으며 Age 타입을 사용해야 합니다. 그 이유는 다음과 같습니다. .. 2022. 3. 15.
[Java] 불변 객체(Immutable Object)와 final 불변 객체(Immutable Object)란? 불변 객체는 생성 후 그 상태를 바꿀 수 없는 객체를 의미합니다. 즉, 참조하고 있는 데이터를 변경할 수 없어야 하며 read-only 메서드만을 제공해야 하고, 객체의 내부 상태를 제공하는 getter 등의 메서드를 제공하지 않거나 제공을 할 경우, 방어적 복사(defensive-copy)를 통해 제공되어야 합니다. Java에서 대표적인 불변 객체로 String이 있습니다. Java는 String Pool이라는 공간을 가지고 있으며, 해당 공간을 이용해 매번 String 객체를 새로 생성하지 않고 같은 값의 String이라면 String Pool 내에 존재하는 객체를 재사용할 수 있도록 구현되어 있습니다. String str1 = "Hello World";.. 2022. 3. 3.