diff --git a/developLog/.gitbook/assets/image (86).png b/developLog/.gitbook/assets/image (86).png
new file mode 100644
index 0000000..766a4eb
Binary files /dev/null and b/developLog/.gitbook/assets/image (86).png differ
diff --git a/developLog/.gitbook/assets/image (87).png b/developLog/.gitbook/assets/image (87).png
new file mode 100644
index 0000000..3cb5c37
Binary files /dev/null and b/developLog/.gitbook/assets/image (87).png differ
diff --git a/developLog/.gitbook/assets/image (88).png b/developLog/.gitbook/assets/image (88).png
new file mode 100644
index 0000000..91eae88
Binary files /dev/null and b/developLog/.gitbook/assets/image (88).png differ
diff --git a/developLog/.gitbook/assets/image (89).png b/developLog/.gitbook/assets/image (89).png
new file mode 100644
index 0000000..24de061
Binary files /dev/null and b/developLog/.gitbook/assets/image (89).png differ
diff --git a/developLog/.gitbook/assets/image (90).png b/developLog/.gitbook/assets/image (90).png
new file mode 100644
index 0000000..6b003f8
Binary files /dev/null and b/developLog/.gitbook/assets/image (90).png differ
diff --git a/developLog/.gitbook/assets/image (91).png b/developLog/.gitbook/assets/image (91).png
new file mode 100644
index 0000000..5efb307
Binary files /dev/null and b/developLog/.gitbook/assets/image (91).png differ
diff --git a/developLog/.gitbook/assets/image (92).png b/developLog/.gitbook/assets/image (92).png
new file mode 100644
index 0000000..03ce282
Binary files /dev/null and b/developLog/.gitbook/assets/image (92).png differ
diff --git a/developLog/programming-lanuage/java/effective-java/11/item-79.md b/developLog/programming-lanuage/java/effective-java/11/item-79.md
index d37fb97..2e3de72 100644
--- a/developLog/programming-lanuage/java/effective-java/11/item-79.md
+++ b/developLog/programming-lanuage/java/effective-java/11/item-79.md
@@ -8,6 +8,8 @@
### 1) 동기화된 영역 내부에서 피해야 할 행동 (외계인 메서드)
+
+
1. **재정의 가능한 메서드 호출 금지**
2. **클라이언트가 제공한 함수 객체 호출 금지** (예: `아이템 24`)
@@ -15,6 +17,8 @@
### 2) 동기화 된 영역에서 외계인 메서드 호출 시 발생하는 문제
+
+
1. 예외 발생
* 동기화된 영역에서 외계인 메서드를 호출하면 예기치 않은 상태가 발생하거나 예상치 못한 예외가 발생할 수 있다. 이는 프로그램의 안정성을 심각하게 위협할 수 있다.
@@ -37,6 +41,8 @@
### 3) 잘못된 코드 예제: 외계인 메서드를 호출하는 경우
+
+
다음은 `집합(Set)`을 감싸는 래퍼 클래스이다. 이 클래스는 관찰자 패턴을 사용하여 집합에 원소가 추가될 때 알림을 보낸다. 이 예제는 잘못된 방식으로 동기화된 영역 내부에서 외계인 메서드를 호출하는 상황을 보여준다.
```java
@@ -128,6 +134,8 @@ for (int i = 0; i < 100; i++) {
### 개선 방법 1: 동기화 블록 밖으로 외계인 메서드 이동
+
+
외계인 메서드를 호출하기 전에 관찰자 리스트를 복사하여 동기화 블록 밖에서 순회하도록 수정하면 문제가 해결된다.
```java
@@ -196,6 +204,8 @@ public class ObservableSet extends ForwardingSet {
#### CopyOnWriteArrayList의 장점
+
+
* **동기화 필요 없음**: 읽기 작업은 동기화 없이 안전하게 수행된다.
* **코드 단순화**: 리스트 복사를 제거하여 코드가 더 간결해진다.
* **안전한 수정**: 수정 작업이 복사본에서 이루어지기 때문에 동기화 문제가 발생하지 않는다.
@@ -214,6 +224,8 @@ public class ObservableSet extends ForwardingSet {
### 📚 핵심 정리
+
+
교착상태와 데이터 손상을 방지하려면 동기화 블록 내부에서 외계인 메서드를 호출하지 말아야 한다. 이를 위해 다음 지침을 따른다:
1. **동기화 블록 내부 작업 최소화**:
@@ -227,6 +239,8 @@ public class ObservableSet extends ForwardingSet {
**부록: CopyOnWriteArrayList와 ArrayList 비교**
+
+
| 특징 | CopyOnWriteArrayList | ArrayList |
| ---------- | -------------------- | ------------- |
| 쓰기 작업 중 동작 | 새로운 복사본 생성 | 기존 리스트 수정 |