File tree Expand file tree Collapse file tree
content/posts/java-mid1-immutable-object Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22title : ' 불변 객체'
33date : ' 2026-03-16T19:47:59+09:00'
44categories : ["Java"]
5- tags : ["immutable"]
5+ tags : ["immutable", "side effect" ]
66draft : true
77---
88
@@ -13,6 +13,35 @@ draft: true
1313 - 예제
1414 - 값 변경
1515
16+ ## 기본형과 참조형의 공유
17+
18+ - Java의 데이터 타입은 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눠진다.
19+ - Java는 데이터 타입과 상관없이 항상 값을 복사하여 대입한다.
20+ - 기본형은 하나의 값을 여러 변수에서 값을 절대로 공유하지 않는다.
21+ - 참조형은 하나의 객체 참조값을 여러 변수에서 공유할 수 있다.
22+
23+ ## 공유 참조와 사이드 이펙트
24+
25+ - Side Effect는 의도한 주작업 외에 발생하는 추가 작업을 의미한다. 보통 부정적인 의미로 사용한다.
26+
27+ ``` java
28+ Book book1 = new Book (" 만화로 배우는 리눅스 시스템 관리" );
29+ Book book2 = new Book (" 만화로 배우는 리눅스 시스템 관리" );
30+ ```
31+
32+ - Side Effect를 발생하지 않기 위해서는 두 객체가 새로운 인스턴스를 참조하면 된다.
33+
34+ ## 불변 객체(Immutable Object)
35+
36+ > [ !NOTE]
37+ > - 가변(Mutable): 생성 후 상태를 변경할 수 있다.
38+ > - 불변(Immutable): 생성 후 상태를 변경할 수 없다.
39+
40+ - 객체의 공유(참조값 공유)는 막을 수 없다. 문법적으로 전혀 문제가 없다. 문제는 공유된 객체의 값을 변경할 때 발생한다.
41+ - 불변 객체는 객체의 상태를 변경하지 않는 객체를 의미한다.
42+ - 불변이라는 제약을 추가하여 Side Effect를 방지한다.
43+ - 불변 객체는 값을 변경할 수 없다. 따라서 값 변경이 필요하면 변경하고 싶은 값으로 만든 새로운 불변 객체를 반환한다.
44+
1645## 질문
1746
1847- 불변 객체의 값을 변경할 때 메서드 네이밍
You can’t perform that action at this time.
0 commit comments