diff --git a/docs/15_ko.html b/docs/15_ko.html
index 5a20f1d26e44aa08f9be45b496dfc0549d7be781..ab88f128de154afa90f47adfe4a494c9aa5fb958 100644
--- a/docs/15_ko.html
+++ b/docs/15_ko.html
@@ -35,20 +35,33 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Arrays</h1>
-            <p><em>배열</em>은 동일한 유형의 데이터 요소들의 <strong>고정된 길이 집합</strong>입니다.</p>
-<p><em>배열</em>의 데이터 유형은 <code>[T;N]</code> 입니다.<br />
-(T는 요소의 유형이고, N은 컴파일 시간에 알려진 고정 길이)</p>
-<p>개별 요소는 <code>[x]</code> 연산자를 사용하여 가져올 수 있습니다.<br />
-여기서 x는 원하는 요소의 <em>usize</em> 인덱스(0부터 시작)입니다.</p>
-<p>가변 길이의 컬렉션, 즉 가변 배열은 나중에 <strong>Vectors</strong>에 대한 챕터에서 소개됩니다.</p>
+            <h1>Scope</h1>
+            <p><em>범위</em></p>
+<p>범위는 프로그램 내에서 변수가 유효한 영역을 정의합니다.</p>
+<pre><code class="rust">fn main() {
+    let x = 10;
+
+    {
+        let y = 20;
+        println!("Inside the inner scope, x: {}, y: {}", x, y);
+    }
+
+    println!("Outside the inner scope, x: {}", x);
+    // println!("Outside the inner scope, y: {}", y); // This will cause a compile error
+}</code></pre>
+<p>우측 예제에서는 r1, r2, r3라는 세 개의 참조가 선언되어 있으며, 각각 두 개의 다른 범위에서 초기화됩니다.</p>
+<p>첫 번째 범위에서 r1과 r2는 s에 대한 불변 참조로 초기화됩니다.</p>
+<p>이 범위가 종료되면, r1과 r2에 대한 참조는 더 이상 유효하지 않습니다.</p>
+<p>두 번째 범위에서는 r3가 s에 대한 변경 가능한 참조로 초기화됩니다.</p>
+<p>이렇게 하면 첫 번째 범위에서의 불변 참조와 겹치지 않으므로 빌림 규칙에 위배되지 않습니다.</p>
+<p>마지막으로 모든 범위가 종료된 후에는 각 참조가 각각 다른 범위에서 초기화되었기 때문에 r1, r2, r3를 함께 출력할 수 있습니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="14_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="16_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20nums%3A%20%5Bi32%3B%203%5D%20%3D%20%5B1%2C%202%2C%203%5D%3B%0A%20%20%20%20println!(%22%7B%3A%3F%7D%22%2C%20nums)%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20nums%5B1%5D)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A%0D%0A++++let+r1%3B%0D%0A++++let+r2%3B%0D%0A++++let+r3%3B%0D%0A%0D%0A++++%7B%0D%0A++++++++r1+%3D+%26s%3B%0D%0A++++++++r2+%3D+%26s%3B%0D%0A++++++++println%21%28%22%EC%95%88%EC%AA%BD+inner+%EB%B2%94%EC%9C%84%2C+r1%3A+%7B%7D%2C+r2%3A+%7B%7D%22%2C+r1%2C+r2%29%3B%0D%0A++++++++%2F%2F+r1%EA%B3%BC+r2%EC%9D%98+%EB%B2%94%EC%9C%84%EB%A5%BC+%EC%97%AC%EA%B8%B0%EC%97%90%EC%84%9C+%EC%A2%85%EB%A3%8C%EC%8B%9C%ED%82%A4%EA%B8%B0+%EC%9C%84%ED%95%B4+%EC%A4%91%EA%B4%84%ED%98%B8%EB%A5%BC+%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++%7D%0D%0A%0D%0A++++%7B%0D%0A++++++++r3+%3D+%26mut+s%3B%0D%0A++++++++println%21%28%22%EC%95%88%EC%AA%BD+%EB%8B%A4%EB%A5%B8+inner+%EB%B2%94%EC%9C%84%2C+r3%3A+%7B%7D%22%2C+r3%29%3B%0D%0A++++%7D%0D%0A%0D%0A++++%2F%2F+%EC%9D%B4%EC%A0%9C+r1%EA%B3%BC+r2%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80+%EC%95%8A%EC%9C%BC%EB%AF%80%EB%A1%9C+%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C+%EC%A0%9C%EC%99%B8%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EB%B0%94%EA%B9%A5+%EC%AA%BD+inner+%EB%B2%94%EC%9C%84%2C+r3%3A+%7B%7D%22%2C+r3%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/16_ko.html b/docs/16_ko.html
index 2f81d9d35bb48da7a4ae45ea9272e33405aff9bc..263ff2b188076a0c34792b12dd18fdd2ea9bfbe2 100644
--- a/docs/16_ko.html
+++ b/docs/16_ko.html
@@ -35,35 +35,20 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Functions</h1>
-            <p>함수는 매개변수 (parameter)가 없거나 여러 개일 수 있습니다.</p>
-<p>이 예제에서 <em>add</em> 함수는 <code>i32</code>(32비트 길이의 부호 있는 정수)형 두 개의 인수를 취합니다.</p>
-<p><em>subtract</em> 함수에서와 같이 표현식만 반환하려면 <code>return</code> 키워드와 세미콜론을 삭제할 수 있습니다.</p>
-<p>함수 이름은 항상 <code>snake_case</code>로 지정됩니다.</p>
-<p>힌트: 함수를 정의하는 경우, 해당 함수가 수신하는 데이터를 매개변수 (parameter)라고합니다.<br />
-그 함수를 호출하고 데이터를 전달하면 인수(argument)라고합니다.</p>
-<pre><code class="python language-python"># 파이썬으로 보면
-def add(x: int, y: int) -&gt; int:
-    return x + y
-
-def subtract(x: int, y: int) -&gt; int:
-    return x - y
-
-def main():
-    print(f"42 + 13 = {add(42, 13)}")
-    print(f"42 - 13 = {subtract(42, 13)}")
-
-
-if __name__ == "__main__":
-    main()
-</code></pre>
+            <h1>Arrays</h1>
+            <p><em>배열</em>은 동일한 유형의 데이터 요소들의 <strong>고정된 길이 집합</strong>입니다.</p>
+<p><em>배열</em>의 데이터 유형은 <code>[T;N]</code> 입니다.<br />
+(T는 요소의 유형이고, N은 컴파일 시간에 알려진 고정 길이)</p>
+<p>개별 요소는 <code>[x]</code> 연산자를 사용하여 가져올 수 있습니다.<br />
+여기서 x는 원하는 요소의 <em>usize</em> 인덱스(0부터 시작)입니다.</p>
+<p>가변 길이의 컬렉션, 즉 가변 배열은 나중에 <strong>Vectors</strong>에 대한 챕터에서 소개됩니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="15_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="17_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20add(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20return%20x%20%2B%20y%3B%0A%7D%0A%0Afn%20subtract(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20x%20-%20y%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%2242%20%2B%2013%20%3D%20%7B%7D%22%2C%20add(42%2C%2013))%3B%0A%20%20%20%20println!(%2242%20-%2013%20%3D%20%7B%7D%22%2C%20subtract(42%2C%2013))%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20nums%3A%20%5Bi32%3B%203%5D%20%3D%20%5B1%2C%202%2C%203%5D%3B%0A%20%20%20%20println!(%22%7B%3A%3F%7D%22%2C%20nums)%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20nums%5B1%5D)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/17_ko.html b/docs/17_ko.html
index d3b6bf63d92ddc0a5e7905b534133942323e52a0..85e54d51c91ce06d1f48fa135d72eea0c8d3d296 100644
--- a/docs/17_ko.html
+++ b/docs/17_ko.html
@@ -35,18 +35,35 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Multiple Return Values</h1>
-            <p>함수는 값의 <strong>튜플</strong>을 반환하여 여러 값을 반환할 수 있습니다.</p>
-<p>튜플 요소는 인덱스 번호를 사용하여 참조할 수 있습니다.</p>
-<p>Rust는 여러 형식의 destructuring을 지원합니다.<br />
-우리는 더 많은 형태로 볼 것이며, 이를 통해 데이터 구조의 하위 요소를 직관적으로 추출할 수 있습니다.</p>
+            <h1>Functions</h1>
+            <p>함수는 매개변수 (parameter)가 없거나 여러 개일 수 있습니다.</p>
+<p>이 예제에서 <em>add</em> 함수는 <code>i32</code>(32비트 길이의 부호 있는 정수)형 두 개의 인수를 취합니다.</p>
+<p><em>subtract</em> 함수에서와 같이 표현식만 반환하려면 <code>return</code> 키워드와 세미콜론을 삭제할 수 있습니다.</p>
+<p>함수 이름은 항상 <code>snake_case</code>로 지정됩니다.</p>
+<p>힌트: 함수를 정의하는 경우, 해당 함수가 수신하는 데이터를 매개변수 (parameter)라고합니다.<br />
+그 함수를 호출하고 데이터를 전달하면 인수(argument)라고합니다.</p>
+<pre><code class="python language-python"># 파이썬으로 보면
+def add(x: int, y: int) -&gt; int:
+    return x + y
+
+def subtract(x: int, y: int) -&gt; int:
+    return x - y
+
+def main():
+    print(f"42 + 13 = {add(42, 13)}")
+    print(f"42 - 13 = {subtract(42, 13)}")
+
+
+if __name__ == "__main__":
+    main()
+</code></pre>
             <div class="bottomnav">
                 <span class="back"><a href="16_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="18_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20add(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20return%20x%20%2B%20y%3B%0A%7D%0A%0Afn%20subtract(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20x%20-%20y%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%2242%20%2B%2013%20%3D%20%7B%7D%22%2C%20add(42%2C%2013))%3B%0A%20%20%20%20println!(%2242%20-%2013%20%3D%20%7B%7D%22%2C%20subtract(42%2C%2013))%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/18_ko.html b/docs/18_ko.html
index 1a5b55618b1c1228aaba16ab0494e0de0bd86fd2..466d0e6a62d0a5fdaf3d40c7724b3e6129d5ed72 100644
--- a/docs/18_ko.html
+++ b/docs/18_ko.html
@@ -35,45 +35,18 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>match</h1>
-            <p>Rust에서 match 키워드는 패턴 매칭을 위해 사용하고</p>
-<p>값과 일련의 패턴을 비교할 수 있게 해줍니다.</p>
-<p>그리고 첫 번째 일치하는 패턴에 해당하는 코드 블록을 실행합니다.</p>
-<pre><code class="rust">fn main() {
-    let number = 42;
-
-    match number {
-        0 => println!("숫자는 영입니다"),
-        1 => println!("숫자는 일입니다"),
-        42 => println!("인생, 우주, 그리고 모든 것에 대한 답"),
-        _ => println!("다른 숫자입니다"),
-    }
-}</code></pre>
-<p>여기서는 number 변수의 값을 여러 패턴과 비교합니다.</p>
-<p><code>_</code> 패턴은 이전 패턴에서 명시적으로 다루지 않은 모든 값을 매치하는 <code>catch-all</code> 패턴입니다.</p>
-<pre><code class="rust">fn classify_age(age: u8) {
-    match age {
-        0..=12 => println!("어린이"),
-        13..=19 => println!("청소년"),
-        20..=64 => println!("성인"),
-        _ => println!("노인"),
-    }
-}
-fn main() {
-    let age = 65;
-    classify_age(age);
-    let age = 30;
-    classify_age(age);
-}</code></pre>
-<p>이 예제에서는 match 표현식을 사용하여 나이를 그룹으로 분류하고,</p>
-<p>나이 변수와 매치하기 위해 범위를 패턴으로 사용합니다.</p>
+            <h1>Multiple Return Values</h1>
+            <p>함수는 값의 <strong>튜플</strong>을 반환하여 여러 값을 반환할 수 있습니다.</p>
+<p>튜플 요소는 인덱스 번호를 사용하여 참조할 수 있습니다.</p>
+<p>Rust는 여러 형식의 destructuring을 지원합니다.<br />
+우리는 더 많은 형태로 볼 것이며, 이를 통해 데이터 구조의 하위 요소를 직관적으로 추출할 수 있습니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="17_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="19_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95+%EC%A0%95%EC%9D%98%3A+%EC%97%AC%EB%9F%AC+%EB%8F%84%ED%98%95%EC%9D%84+%EB%82%98%ED%83%80%EB%83%85%EB%8B%88%EB%8B%A4.%0Aenum+Shape+%7B%0A++++Circle+%7B+radius%3A+f64+%7D%2C%0A++++Square+%7B+side%3A+f64+%7D%2C%0A++++Rectangle+%7B+width%3A+f64%2C+height%3A+f64+%7D%2C%0A%7D%0A%0A%2F%2F+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+calculate_area%28shape%3A+Shape%29+-%3E+f64+%7B%0A++++%2F%2F+%ED%8C%A8%ED%84%B4+%EB%A7%A4%EC%B9%AD%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8F%84%ED%98%95%EC%9D%98+%EC%A2%85%EB%A5%98%EC%97%90+%EB%94%B0%EB%9D%BC+%EA%B3%84%EC%82%B0+%EB%B0%A9%EC%8B%9D%EC%9D%84+%EC%84%A0%ED%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle+%7B+radius+%7D+%3D%3E+std%3A%3Af64%3A%3Aconsts%3A%3API+*+radius+*+radius%2C+%2F%2F+%EC%9B%90%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++++++Shape%3A%3ASquare+%7B+side+%7D+%3D%3E+side+*+side%2C++++++++++++++++++++++++++++++%2F%2F+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++++++Shape%3A%3ARectangle+%7B+width%2C+height+%7D+%3D%3E+width+*+height%2C+++++++++++++++%2F%2F+%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EC%97%AC%EB%9F%AC+%EB%8F%84%ED%98%95+%EC%83%9D%EC%84%B1%0A++++let+circle+%3D+Shape%3A%3ACircle+%7B+radius%3A+5.0+%7D%3B%0A++++let+square+%3D+Shape%3A%3ASquare+%7B+side%3A+4.0+%7D%3B%0A++++let+rectangle+%3D+Shape%3A%3ARectangle+%7B%0A++++++++width%3A+6.0%2C%0A++++++++height%3A+3.0%2C%0A++++%7D%3B%0A%0A++++%2F%2F+%ED%8C%A8%ED%84%B4+%EB%A7%A4%EC%B9%AD%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EA%B3%A0+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++let+circle_area+%3D+calculate_area%28circle%29%3B%0A++++let+square_area+%3D+calculate_area%28square%29%3B%0A++++let+rectangle_area+%3D+calculate_area%28rectangle%29%3B%0A%0A++++println%21%28%22%EC%9B%90%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+circle_area%29%3B%0A++++println%21%28%22%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+square_area%29%3B%0A++++println%21%28%22%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+rectangle_area%29%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/19_ko.html b/docs/19_ko.html
index 25f5771d445d72403fa771bd43c3533a523a592a..c65e14ba4469f4e353fb7341db68e707429ebff7 100644
--- a/docs/19_ko.html
+++ b/docs/19_ko.html
@@ -35,122 +35,45 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Struct and Enum</h1>
-            <p><strong>구조체 (Struct)</strong></p>
-<p>구조체는 struct 키워드를 사용하여 정의하며, 이름과 중괄호로 묶인 명명된 필드 집합이 뒤따릅니다.</p>
-<p>다음은 Person 구조체의 예입니다:</p>
-<pre><code class="rust">struct Person {
-  name: String,
-  age: u8,
-}</code></pre>
-<p>구조체의 인스턴스를 생성하려면, 구조체 이름 뒤에 중괄호를 사용하고 필드에 값을 할당합니다.<br />
-예를 들면:</p>
-<pre><code class="rust">let person = Person { name: String::from("Alice"), age: 30 };</code></pre>
-<hr />
-<p><strong>열거형 (Enum)</strong></p>
-<p>열거형(enum, "enumeration"의 줄임말)은 고정된 명명된 값 집합인 "변종(variants)"을 가진 타입을 나타냅니다.</p>
-<p>열거형을 정의하려면, enum 키워드를 사용하고 이름과 중괄호로 묶인 명명된 변종 집합이 뒤따릅니다.</p>
-<p>다음은 Status 열거형의 예입니다:</p>
-<pre><code class="rust">enum Status {
-  Active,
-  Inactive,
-  Pending,
-}</code></pre>
-<p>열거형의 인스턴스를 생성하려면, 열거형 이름 뒤에 두 개의 콜론(<code>::</code>)과 변종 이름을 사용합니다.</p>
-<p>예를 들면:</p>
-<pre><code class="rust">let status = Status::Active;</code></pre>
-<p>열거형 변종에 따라 다른 작업을 수행하려면 match 표현식을 사용할 수 있습니다:</p>
-<pre><code class="rust">let user_status = Status::Active;</code></pre>
-<p>열거형을 다루려면, 종종 match 표현식을 사용하며, 이를 통해 열거형 변종에 따라 다른 작업을 수행할 수 있습니다:</p>
-<pre><code class="rust">fn print_status_message(status: Status) {
-    match status {
-        Status::Active => println!("사용자가 활성 상태입니다."),
-        Status::Inactive => println!("사용자가 비활성 상태입니다."),
-        Status::Pending => println!("사용자가 보류 중입니다."),
-    }
-}
-fn main() {
-    let user_status = Status::Active;
-    print_status_message(user_status);
-}</code></pre>
-<hr />
-<p><strong>Tuple Struct, Enum</strong></p>
-<p>주로 간결한 표현, 타입 안전성 및 논리적 구조를 위해 사용됩니다.</p>
-<ul>
-<li>튜플 구조체 (Tuple Struct): 튜플 구조체는 필드에 이름이 없는 구조체로, 간단한 데이터 구조를 표현할 때 유용합니다. 튜플 구조체를 사용하면, 구조체의 의미를 명확하게 나타낼 수 있으며, 일반 튜플보다 더 강력한 타입 안전성을 제공합니다. 예를 들어, 두 개의 float 값을 나타내는 Point2D와 Vector2D를 구별하기 위해 튜플 구조체를 사용할 수 있습니다. 이렇게 하면 코드의 가독성과 정확성이 향상됩니다.</li>
-<li>열거형 (Enum): 열거형은 서로 관련된 값의 집합을 표현하기 위해 사용됩니다. 열거형은 여러 변종(variants)을 가질 수 있으며, 각 변종은 고유한 타입입니다. 열거형은 논리적으로 관련된 여러 값을 그룹화하여 코드의 명확성과 구조를 개선하는 데 도움이 됩니다. 또한 열거형은 패턴 매칭을 사용하여 값에 따라 다양한 작업을 수행할 수 있어, 런타임에 오류가 발생하는 가능성이 줄어듭니다.</li>
-<li>튜플 열거형 변종 (Tuple Enum Variants): 튜플 열거형 변종은 열거형의 각 변종에 데이터를 연관시키는 데 사용됩니다. 튜플 열거형 변종은 각 변종에 서로 다른 타입과 수의 값을 저장할 수 있습니다. 이러한 변종은 열거형의 다양한 경우를 명확하게 구분하고, 관련 데이터를 함께 저장하여 논리적 구조를 제공하는 데 유용합니다. 패턴 매칭을 사용하면 튜플 열거형 변종의 값을 안전하게 추출하고, 해당 값에 따라 다양한 작업을 수행할 수 있습니다.</li>
-</ul>
-<pre><code class="rust">// 튜플 구조체 (Tuple Struct)
-struct Point3D(f32, f32, f32);
-
-// 열거형에 튜플 변종 (Tuple Enum Variant) 포함
-enum Shape {
-    Circle(f32),
-    Rectangle(f32, f32),
-}
+            <h1>match</h1>
+            <p>Rust에서 match 키워드는 패턴 매칭을 위해 사용하고</p>
+<p>값과 일련의 패턴을 비교할 수 있게 해줍니다.</p>
+<p>그리고 첫 번째 일치하는 패턴에 해당하는 코드 블록을 실행합니다.</p>
+<pre><code class="rust">fn main() {
+    let number = 42;
 
-fn main() {
-    let point = Point3D(1.0, 2.0, 3.0);
-    let circle = Shape::Circle(5.0);
-    let rectangle = Shape::Rectangle(4.0, 6.0);
-
-    // 튜플 구조체의 값에 접근
-    println!("x 좌표: {}", point.0);
-    println!("y 좌표: {}", point.1);
-    println!("z 좌표: {}", point.2);
-
-    // 튜플 열거형 변종의 값에 접근
-    match circle {
-        Shape::Circle(radius) => println!("원의 반지름: {}", radius),
-        _ => (),
+    match number {
+        0 => println!("숫자는 영입니다"),
+        1 => println!("숫자는 일입니다"),
+        42 => println!("인생, 우주, 그리고 모든 것에 대한 답"),
+        _ => println!("다른 숫자입니다"),
     }
 }</code></pre>
-<hr />
-<p><strong>Nested</strong><br />
-중첩된 Struct과 Enum을 만들고 싶다면?</p>
-<pre><code class="rust">// 중첩된 구조체 (Nested Struct)
-struct Address {
-    street: String,
-    city: String,
-}
-
-struct Person {
-    name: String,
-    address: Address,
-}
-// 중첩된 열거형 (Nested Enum)
-enum Animal {
-    Mammal {
-        species: String,
-        is_domestic: bool,
-    },
-    Reptile {
-        species: String,
-        is_poisonous: bool,
-    },
+<p>여기서는 number 변수의 값을 여러 패턴과 비교합니다.</p>
+<p><code>_</code> 패턴은 이전 패턴에서 명시적으로 다루지 않은 모든 값을 매치하는 <code>catch-all</code> 패턴입니다.</p>
+<pre><code class="rust">fn classify_age(age: u8) {
+    match age {
+        0..=12 => println!("어린이"),
+        13..=19 => println!("청소년"),
+        20..=64 => println!("성인"),
+        _ => println!("노인"),
+    }
 }
-
 fn main() {
-    let person = Person {
-        name: String::from("지훈"),
-        address: Address {
-            street: String::from("서울로"),
-            city: String::from("서울"),
-        },
-    };
-    let dog = Animal::Mammal {
-        species: String::from("개"),
-        is_domestic: true,
-    };
+    let age = 65;
+    classify_age(age);
+    let age = 30;
+    classify_age(age);
 }</code></pre>
+<p>이 예제에서는 match 표현식을 사용하여 나이를 그룹으로 분류하고,</p>
+<p>나이 변수와 매치하기 위해 범위를 패턴으로 사용합니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="18_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="20_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%ED%8A%B9%EC%84%B1+%28Trait%29+%EC%A0%95%EC%9D%98%0D%0Atrait+Greet+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%28Struct%29+%EC%A0%95%EC%9D%98%0D%0Astruct+Person+%7B%0D%0A++++name%3A+String%2C%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EC%97%90+%EB%8C%80%ED%95%9C+%ED%8A%B9%EC%84%B1+%EA%B5%AC%ED%98%84%0D%0Aimpl+Greet+for+Person+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String+%7B%0D%0A++++++++format%21%28%22%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%2C+%7B%7D%EB%8B%98%21%22%2C+self.name%29%0D%0A++++%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95+%28Enum%29+%EC%A0%95%EC%9D%98%0D%0Aenum+Animal+%7B%0D%0A++++Dog%2C%0D%0A++++Cat%2C%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95%EC%97%90+%EB%8C%80%ED%95%9C+%ED%8A%B9%EC%84%B1+%EA%B5%AC%ED%98%84%0D%0Aimpl+Greet+for+Animal+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String+%7B%0D%0A++++++++match+self+%7B%0D%0A++++++++++++Animal%3A%3ADog+%3D%3E+String%3A%3Afrom%28%22%EB%A9%8D%EB%A9%8D%21%22%29%2C%0D%0A++++++++++++Animal%3A%3ACat+%3D%3E+String%3A%3Afrom%28%22%EC%95%BC%EC%98%B9%7E%22%29%2C%0D%0A++++++++%7D%0D%0A++++%7D%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+person+%3D+Person+%7B%0D%0A++++++++name%3A+String%3A%3Afrom%28%22%EA%B9%80%EC%95%84%EC%A3%BC%22%29%2C%0D%0A++++%7D%3B%0D%0A++++let+dog+%3D+Animal%3A%3ADog%3B%0D%0A%0D%0A++++%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EC%99%80+%EC%97%B4%EA%B1%B0%ED%98%95+%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90+greet+%EB%A9%94%EC%84%9C%EB%93%9C+%EC%82%AC%EC%9A%A9%0D%0A++++println%21%28%22%7B%7D%22%2C+person.greet%28%29%29%3B%0D%0A++++println%21%28%22%7B%7D%22%2C+dog.greet%28%29%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95+%EC%A0%95%EC%9D%98%3A+%EC%97%AC%EB%9F%AC+%EB%8F%84%ED%98%95%EC%9D%84+%EB%82%98%ED%83%80%EB%83%85%EB%8B%88%EB%8B%A4.%0Aenum+Shape+%7B%0A++++Circle+%7B+radius%3A+f64+%7D%2C%0A++++Square+%7B+side%3A+f64+%7D%2C%0A++++Rectangle+%7B+width%3A+f64%2C+height%3A+f64+%7D%2C%0A%7D%0A%0A%2F%2F+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+calculate_area%28shape%3A+Shape%29+-%3E+f64+%7B%0A++++%2F%2F+%ED%8C%A8%ED%84%B4+%EB%A7%A4%EC%B9%AD%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8F%84%ED%98%95%EC%9D%98+%EC%A2%85%EB%A5%98%EC%97%90+%EB%94%B0%EB%9D%BC+%EA%B3%84%EC%82%B0+%EB%B0%A9%EC%8B%9D%EC%9D%84+%EC%84%A0%ED%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle+%7B+radius+%7D+%3D%3E+std%3A%3Af64%3A%3Aconsts%3A%3API+*+radius+*+radius%2C+%2F%2F+%EC%9B%90%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++++++Shape%3A%3ASquare+%7B+side+%7D+%3D%3E+side+*+side%2C++++++++++++++++++++++++++++++%2F%2F+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++++++Shape%3A%3ARectangle+%7B+width%2C+height+%7D+%3D%3E+width+*+height%2C+++++++++++++++%2F%2F+%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4+%EA%B3%84%EC%82%B0%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EC%97%AC%EB%9F%AC+%EB%8F%84%ED%98%95+%EC%83%9D%EC%84%B1%0A++++let+circle+%3D+Shape%3A%3ACircle+%7B+radius%3A+5.0+%7D%3B%0A++++let+square+%3D+Shape%3A%3ASquare+%7B+side%3A+4.0+%7D%3B%0A++++let+rectangle+%3D+Shape%3A%3ARectangle+%7B%0A++++++++width%3A+6.0%2C%0A++++++++height%3A+3.0%2C%0A++++%7D%3B%0A%0A++++%2F%2F+%ED%8C%A8%ED%84%B4+%EB%A7%A4%EC%B9%AD%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EA%B3%A0+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++let+circle_area+%3D+calculate_area%28circle%29%3B%0A++++let+square_area+%3D+calculate_area%28square%29%3B%0A++++let+rectangle_area+%3D+calculate_area%28rectangle%29%3B%0A%0A++++println%21%28%22%EC%9B%90%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+circle_area%29%3B%0A++++println%21%28%22%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+square_area%29%3B%0A++++println%21%28%22%EC%A7%81%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+rectangle_area%29%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/20_ko.html b/docs/20_ko.html
index 10498d1e4f74c1cf5418c958ffbb4010e3e02111..1b619577b8246451668f387697e3eb90338b9cc5 100644
--- a/docs/20_ko.html
+++ b/docs/20_ko.html
@@ -35,17 +35,122 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Returning Nothing</h1>
-            <p>함수에 대해 반환 유형이 지정되어 있지 않으면, <em>unit</em>이라고도 하는 빈 튜플을 반환합니다.</p>
-<p>빈 튜플은 <code>()</code>로 나타낼 수 있습니다.</p>
-<p><code>()</code>을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다.</p>
+            <h1>Struct and Enum</h1>
+            <p><strong>구조체 (Struct)</strong></p>
+<p>구조체는 struct 키워드를 사용하여 정의하며, 이름과 중괄호로 묶인 명명된 필드 집합이 뒤따릅니다.</p>
+<p>다음은 Person 구조체의 예입니다:</p>
+<pre><code class="rust">struct Person {
+  name: String,
+  age: u8,
+}</code></pre>
+<p>구조체의 인스턴스를 생성하려면, 구조체 이름 뒤에 중괄호를 사용하고 필드에 값을 할당합니다.<br />
+예를 들면:</p>
+<pre><code class="rust">let person = Person { name: String::from("Alice"), age: 30 };</code></pre>
+<hr />
+<p><strong>열거형 (Enum)</strong></p>
+<p>열거형(enum, "enumeration"의 줄임말)은 고정된 명명된 값 집합인 "변종(variants)"을 가진 타입을 나타냅니다.</p>
+<p>열거형을 정의하려면, enum 키워드를 사용하고 이름과 중괄호로 묶인 명명된 변종 집합이 뒤따릅니다.</p>
+<p>다음은 Status 열거형의 예입니다:</p>
+<pre><code class="rust">enum Status {
+  Active,
+  Inactive,
+  Pending,
+}</code></pre>
+<p>열거형의 인스턴스를 생성하려면, 열거형 이름 뒤에 두 개의 콜론(<code>::</code>)과 변종 이름을 사용합니다.</p>
+<p>예를 들면:</p>
+<pre><code class="rust">let status = Status::Active;</code></pre>
+<p>열거형 변종에 따라 다른 작업을 수행하려면 match 표현식을 사용할 수 있습니다:</p>
+<pre><code class="rust">let user_status = Status::Active;</code></pre>
+<p>열거형을 다루려면, 종종 match 표현식을 사용하며, 이를 통해 열거형 변종에 따라 다른 작업을 수행할 수 있습니다:</p>
+<pre><code class="rust">fn print_status_message(status: Status) {
+    match status {
+        Status::Active => println!("사용자가 활성 상태입니다."),
+        Status::Inactive => println!("사용자가 비활성 상태입니다."),
+        Status::Pending => println!("사용자가 보류 중입니다."),
+    }
+}
+fn main() {
+    let user_status = Status::Active;
+    print_status_message(user_status);
+}</code></pre>
+<hr />
+<p><strong>Tuple Struct, Enum</strong></p>
+<p>주로 간결한 표현, 타입 안전성 및 논리적 구조를 위해 사용됩니다.</p>
+<ul>
+<li>튜플 구조체 (Tuple Struct): 튜플 구조체는 필드에 이름이 없는 구조체로, 간단한 데이터 구조를 표현할 때 유용합니다. 튜플 구조체를 사용하면, 구조체의 의미를 명확하게 나타낼 수 있으며, 일반 튜플보다 더 강력한 타입 안전성을 제공합니다. 예를 들어, 두 개의 float 값을 나타내는 Point2D와 Vector2D를 구별하기 위해 튜플 구조체를 사용할 수 있습니다. 이렇게 하면 코드의 가독성과 정확성이 향상됩니다.</li>
+<li>열거형 (Enum): 열거형은 서로 관련된 값의 집합을 표현하기 위해 사용됩니다. 열거형은 여러 변종(variants)을 가질 수 있으며, 각 변종은 고유한 타입입니다. 열거형은 논리적으로 관련된 여러 값을 그룹화하여 코드의 명확성과 구조를 개선하는 데 도움이 됩니다. 또한 열거형은 패턴 매칭을 사용하여 값에 따라 다양한 작업을 수행할 수 있어, 런타임에 오류가 발생하는 가능성이 줄어듭니다.</li>
+<li>튜플 열거형 변종 (Tuple Enum Variants): 튜플 열거형 변종은 열거형의 각 변종에 데이터를 연관시키는 데 사용됩니다. 튜플 열거형 변종은 각 변종에 서로 다른 타입과 수의 값을 저장할 수 있습니다. 이러한 변종은 열거형의 다양한 경우를 명확하게 구분하고, 관련 데이터를 함께 저장하여 논리적 구조를 제공하는 데 유용합니다. 패턴 매칭을 사용하면 튜플 열거형 변종의 값을 안전하게 추출하고, 해당 값에 따라 다양한 작업을 수행할 수 있습니다.</li>
+</ul>
+<pre><code class="rust">// 튜플 구조체 (Tuple Struct)
+struct Point3D(f32, f32, f32);
+
+// 열거형에 튜플 변종 (Tuple Enum Variant) 포함
+enum Shape {
+    Circle(f32),
+    Rectangle(f32, f32),
+}
+
+fn main() {
+    let point = Point3D(1.0, 2.0, 3.0);
+    let circle = Shape::Circle(5.0);
+    let rectangle = Shape::Rectangle(4.0, 6.0);
+
+    // 튜플 구조체의 값에 접근
+    println!("x 좌표: {}", point.0);
+    println!("y 좌표: {}", point.1);
+    println!("z 좌표: {}", point.2);
+
+    // 튜플 열거형 변종의 값에 접근
+    match circle {
+        Shape::Circle(radius) => println!("원의 반지름: {}", radius),
+        _ => (),
+    }
+}</code></pre>
+<hr />
+<p><strong>Nested</strong><br />
+중첩된 Struct과 Enum을 만들고 싶다면?</p>
+<pre><code class="rust">// 중첩된 구조체 (Nested Struct)
+struct Address {
+    street: String,
+    city: String,
+}
+
+struct Person {
+    name: String,
+    address: Address,
+}
+// 중첩된 열거형 (Nested Enum)
+enum Animal {
+    Mammal {
+        species: String,
+        is_domestic: bool,
+    },
+    Reptile {
+        species: String,
+        is_poisonous: bool,
+    },
+}
+
+fn main() {
+    let person = Person {
+        name: String::from("지훈"),
+        address: Address {
+            street: String::from("서울로"),
+            city: String::from("서울"),
+        },
+    };
+    let dog = Animal::Mammal {
+        species: String::from("개"),
+        is_domestic: true,
+    };
+}</code></pre>
             <div class="bottomnav">
                 <span class="back"><a href="19_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="21_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%ED%8A%B9%EC%84%B1+%28Trait%29+%EC%A0%95%EC%9D%98%0D%0Atrait+Greet+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String%3B%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%28Struct%29+%EC%A0%95%EC%9D%98%0D%0Astruct+Person+%7B%0D%0A++++name%3A+String%2C%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EC%97%90+%EB%8C%80%ED%95%9C+%ED%8A%B9%EC%84%B1+%EA%B5%AC%ED%98%84%0D%0Aimpl+Greet+for+Person+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String+%7B%0D%0A++++++++format%21%28%22%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%2C+%7B%7D%EB%8B%98%21%22%2C+self.name%29%0D%0A++++%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95+%28Enum%29+%EC%A0%95%EC%9D%98%0D%0Aenum+Animal+%7B%0D%0A++++Dog%2C%0D%0A++++Cat%2C%0D%0A%7D%0D%0A%0D%0A%2F%2F+%EC%97%B4%EA%B1%B0%ED%98%95%EC%97%90+%EB%8C%80%ED%95%9C+%ED%8A%B9%EC%84%B1+%EA%B5%AC%ED%98%84%0D%0Aimpl+Greet+for+Animal+%7B%0D%0A++++fn+greet%28%26self%29+-%3E+String+%7B%0D%0A++++++++match+self+%7B%0D%0A++++++++++++Animal%3A%3ADog+%3D%3E+String%3A%3Afrom%28%22%EB%A9%8D%EB%A9%8D%21%22%29%2C%0D%0A++++++++++++Animal%3A%3ACat+%3D%3E+String%3A%3Afrom%28%22%EC%95%BC%EC%98%B9%7E%22%29%2C%0D%0A++++++++%7D%0D%0A++++%7D%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+person+%3D+Person+%7B%0D%0A++++++++name%3A+String%3A%3Afrom%28%22%EA%B9%80%EC%95%84%EC%A3%BC%22%29%2C%0D%0A++++%7D%3B%0D%0A++++let+dog+%3D+Animal%3A%3ADog%3B%0D%0A%0D%0A++++%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EC%99%80+%EC%97%B4%EA%B1%B0%ED%98%95+%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90+greet+%EB%A9%94%EC%84%9C%EB%93%9C+%EC%82%AC%EC%9A%A9%0D%0A++++println%21%28%22%7B%7D%22%2C+person.greet%28%29%29%3B%0D%0A++++println%21%28%22%7B%7D%22%2C+dog.greet%28%29%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/21_ko.html b/docs/21_ko.html
index 26368659c9206744565a35c703957dffb0758d19..a317249e968de004937527eb6ccef0b1622e2ff0 100644
--- a/docs/21_ko.html
+++ b/docs/21_ko.html
@@ -35,48 +35,17 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Error handling</h1>
-            <p>오류 핸들링은 Rust의 핵심 개념 중 하나로, 다양한 오류 상황을 효과적으로 처리할 수 있는 기능을 제공합니다.</p>
-<p>이 튜토리얼에서는 Rust에서의 오류 핸들링 기본 사항을 다룰 것입니다.</p>
-<p>이를 위해 Result 열거형(enum)과 match 문을 사용하여 오류를 처리하는 방법을 알아봅시다.</p>
-<p><strong>Result 열거형</strong><br />
-Rust에서는 결과를 나타내기 위해 Result 열거형을 사용합니다.<br />
-이는 다음과 같은 두 가지 값 중 하나를 갖습니다.<br />
-    - Ok(T): 연산이 성공적으로 수행되었을 때 반환되는 값 T.<br />
-    - Err(E): 연산이 실패했을 때 반환되는 오류 값 E.</p>
-<p>예를 들어, 정수를 문자열로 변환하는 간단한 함수를 작성해 봅시다.</p>
-<p>이 함수는 문자열을 입력으로 받아 정수로 변환하려고 시도하고, 변환에 성공하면 Ok 값을 반환합니다.</p>
-<p>만약 변환에 실패하면, Err 값을 반환합니다.</p>
-<pre><code class="rust">fn parse_integer(input: &str) -> Result&lt;i32, String> {
-    match input.parse::&lt;i32>() {
-        Ok(value) => Ok(value),
-        Err(_) => Err(format!("'{}' is not a valid integer.", input)),
-    }
-}</code></pre>
-<p><strong>match 문을 사용한 오류 처리</strong></p>
-<p>오류 처리를 위해 match 문을 사용하여 Result 열거형에 따른 처리를 구현할 수 있습니다. </p>
-<p>예를 들어, 다음 코드는 parse_integer 함수의 결과를 처리합니다.</p>
-<pre><code class="rust">fn main() {
-    let input = "42";
-    let parsed = parse_integer(input);
-
-    match parsed {
-        Ok(value) => println!("The integer value is: {}", value),
-        Err(error) => println!("Error: {}", error),
-    }
-}</code></pre>
-<p>이 코드는 parse_integer 함수를 호출하여 결과를 가져옵니다.</p>
-<p>그런 다음 match 문을 사용하여 결과가 Ok인지 Err인지 확인하고, 각 경우에 따라 적절한 동작을 수행합니다.</p>
-<p>이 튜토리얼에서는 Rust의 오류 핸들링의 기본 사항만 다루었습니다.</p>
-<p>실제로는 <code>?</code> 연산자를 사용하여 오류를 전파하거나, 사용자 지정 오류 유형을 정의하는 등 더 많은 기능을 활용할 수 있습니다.</p>
-<p>이러한 고급 기능을 배우는 것도 도움이 될 것입니다.</p>
+            <h1>Returning Nothing</h1>
+            <p>함수에 대해 반환 유형이 지정되어 있지 않으면, <em>unit</em>이라고도 하는 빈 튜플을 반환합니다.</p>
+<p>빈 튜플은 <code>()</code>로 나타낼 수 있습니다.</p>
+<p><code>()</code>을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="20_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="22_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=use+std%3A%3Afmt%3B%0Ause+std%3A%3Astr%3A%3AFromStr%3B%0A%0A%23%5Bderive%28Debug%29%5D%0Aenum+ParseIntegerError+%7B%0A++++InvalidNumber%28String%29%2C%0A++++ParseIntError%28std%3A%3Anum%3A%3AParseIntError%29%2C%0A%7D%0A%0Aimpl+fmt%3A%3ADisplay+for+ParseIntegerError+%7B%0A++++fn+fmt%28%26self%2C+f%3A+%26mut+fmt%3A%3AFormatter%29+-%3E+fmt%3A%3AResult+%7B%0A++++++++match+self+%7B%0A++++++++++++ParseIntegerError%3A%3AInvalidNumber%28ref+s%29+%3D%3E+write%21%28f%2C+%22Invalid+number%3A+%7B%7D%22%2C+s%29%2C%0A++++++++++++ParseIntegerError%3A%3AParseIntError%28ref+e%29+%3D%3E+e.fmt%28f%29%2C%0A++++++++%7D%0A++++%7D%0A%7D%0A%0Aimpl+std%3A%3Aerror%3A%3AError+for+ParseIntegerError+%7B%7D%0A%0Afn+parse_integer%28input%3A+%26str%29+-%3E+Result%3Ci32%2C+ParseIntegerError%3E+%7B%0A++++if+input.is_empty%28%29+%7B%0A++++++++return+Err%28ParseIntegerError%3A%3AInvalidNumber%28input.to_owned%28%29%29%29%3B%0A++++%7D%0A%0A++++let+value+%3D+i32%3A%3Afrom_str%28input%29.map_err%28ParseIntegerError%3A%3AParseIntError%29%3F%3B%0A++++Ok%28value%29%0A%7D%0A%0Afn+main%28%29+%7B%0A++++let+inputs+%3D+%5B%2242%22%2C+%22abc%22%2C+%22%22%5D%3B%0A++++for+input+in+%26inputs+%7B%0A++++++++let+parsed+%3D+parse_integer%28input%29%3B%0A%0A++++++++match+parsed+%7B%0A++++++++++++Ok%28value%29+%3D%3E+println%21%28%22The+integer+value+of+%27%7B%7D%27+is%3A+%7B%7D%22%2C+input%2C+value%29%2C%0A++++++++++++Err%28error%29+%3D%3E+println%21%28%22Error+parsing+%27%7B%7D%27%3A+%7B%7D%22%2C+input%2C+error%29%2C%0A++++++++%7D%0A++++%7D%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/22_ko.html b/docs/22_ko.html
index a2a22f4ee7707d415e14efbe3ab6154a1851c0df..52701e39f79e218347c185490a81570a80203c6a 100644
--- a/docs/22_ko.html
+++ b/docs/22_ko.html
@@ -35,108 +35,48 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>Chapter 1 - 마무리</h1>
-            <p>Rust의 기초는 그렇게 나쁘지 않죠?</p>
-<p>시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며,</p>
-<p>수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다.</p>
-<p>참고:</p>
-<ul>
-<li><a href="https://www.youtube.com/watch?v=n5TRBkbystY" target="_blank" rel="noopener">Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해</a></li>
-<li><a href="https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html" target="_blank" rel="noopener">Website: Rust Book 2018 - 기본 데이터 유형에 대한 자세한 설명</a></li>
-<li><a href="https://cheats.rs/#basic-types" target="_blank" rel="noopener">Website: Rust Cheat Sheet - Data Types</a></li>
-</ul>
-<div> <button type="button" class="collapsible">정답 보기</button> <div class="content"> <pre><code class="rust">enum Shape {
-    Circle(f64),             // 반지름
-    Rectangle(f64, f64),     // 가로, 세로
-    Triangle(f64, f64, f64), // 세 변의 길이
-}
-
-// 넓이를 계산하는 함수
-fn area(shape: &Shape) -> f64 {
-    match shape {
-        Shape::Circle(r) => 3.14 * r * r,
-        Shape::Rectangle(w, h) => w * h,
-        Shape::Triangle(a, b, c) => {
-            // 삼각형의 넓이 공식
-            let s = (a + b + c) / 2.0;
-            let area = s * (s - a) * (s - b) * (s - c);
-            // 넓이가 음수면 에러 발생
-            if area &lt; 0.0 {
-                panic!("Invalid triangle");
-            } else {
-                area.sqrt()
-            }
-        }
-    }
-}
-
-// 둘레를 계산하는 함수
-fn perimeter(shape: &Shape) -> f64 {
-    match shape {
-        Shape::Circle(r) => 2.0 * 3.14 * r,
-        Shape::Rectangle(w, h) => 2.0 * (w + h),
-        Shape::Triangle(a, b, c) => {
-            // 삼각형의 둘레 공식
-            let p = a + b + c;
-            // 둘레가 음수면 에러 발생
-            if p < 0.0 {
-                panic!("Invalid triangle");
-            } else {
-                p
-            }
-        }
+            <h1>Error handling</h1>
+            <p>오류 핸들링은 Rust의 핵심 개념 중 하나로, 다양한 오류 상황을 효과적으로 처리할 수 있는 기능을 제공합니다.</p>
+<p>이 튜토리얼에서는 Rust에서의 오류 핸들링 기본 사항을 다룰 것입니다.</p>
+<p>이를 위해 Result 열거형(enum)과 match 문을 사용하여 오류를 처리하는 방법을 알아봅시다.</p>
+<p><strong>Result 열거형</strong><br />
+Rust에서는 결과를 나타내기 위해 Result 열거형을 사용합니다.<br />
+이는 다음과 같은 두 가지 값 중 하나를 갖습니다.<br />
+    - Ok(T): 연산이 성공적으로 수행되었을 때 반환되는 값 T.<br />
+    - Err(E): 연산이 실패했을 때 반환되는 오류 값 E.</p>
+<p>예를 들어, 정수를 문자열로 변환하는 간단한 함수를 작성해 봅시다.</p>
+<p>이 함수는 문자열을 입력으로 받아 정수로 변환하려고 시도하고, 변환에 성공하면 Ok 값을 반환합니다.</p>
+<p>만약 변환에 실패하면, Err 값을 반환합니다.</p>
+<pre><code class="rust">fn parse_integer(input: &str) -> Result&lt;i32, String> {
+    match input.parse::&lt;i32>() {
+        Ok(value) => Ok(value),
+        Err(_) => Err(format!("'{}' is not a valid integer.", input)),
     }
-}
+}</code></pre>
+<p><strong>match 문을 사용한 오류 처리</strong></p>
+<p>오류 처리를 위해 match 문을 사용하여 Result 열거형에 따른 처리를 구현할 수 있습니다. </p>
+<p>예를 들어, 다음 코드는 parse_integer 함수의 결과를 처리합니다.</p>
+<pre><code class="rust">fn main() {
+    let input = "42";
+    let parsed = parse_integer(input);
 
-// 정사각형인지 판별하는 함수
-fn is_square(shape: &Shape) -> bool {
-    match shape {
-        Shape::Circle(_) => false,
-        Shape::Rectangle(w, h) => w == h,
-        Shape::Triangle(_, _, _) => false,
+    match parsed {
+        Ok(value) => println!("The integer value is: {}", value),
+        Err(error) => println!("Error: {}", error),
     }
-}
-
-// 결과
-/*
-원 넓이: 12.56
-사각형 넓이: 12
-삼각형 넓이: 6
-원 둘레: 12.56
-사각형 둘레: 14
-삼각형 둘레: 12
-원이 정사각형인가? false
-사각형이 정사각형인가? false
-삼각형이 정사각형인가? false
-*/
-fn main() {
-    // Shape 타입의 값들을 생성합니다.
-    let circle = Shape::Circle(2.0);
-    let rectangle = Shape::Rectangle(3.0, 4.0);
-    let triangle = Shape::Triangle(3.0, 4.0, 5.0);
-
-    // 각 도형의 넓이를 출력합니다.
-    println!("원 넓이: {}", area(&circle));
-    println!("사각형 넓이: {}", area(&rectangle));
-    println!("삼각형 넓이: {}", area(&triangle));
-
-    // 각 도형의 둘레를 출력합니다.
-    println!("원 둘레: {}", perimeter(&circle));
-    println!("사각형 둘레: {}", perimeter(&rectangle));
-    println!("삼각형 둘레: {}", perimeter(&triangle));
-
-    // 각 도형이 정사각형인지 출력합니다.
-    println!("원이 정사각형인가? {}", is_square(&circle));
-    println!("사각형이 정사각형인가? {}", is_square(&rectangle));
-    println!("삼각형이 정사각형인가? {}", is_square(&triangle));
-}</code></pre> </div> </div>
+}</code></pre>
+<p>이 코드는 parse_integer 함수를 호출하여 결과를 가져옵니다.</p>
+<p>그런 다음 match 문을 사용하여 결과가 Ok인지 Err인지 확인하고, 각 경우에 따라 적절한 동작을 수행합니다.</p>
+<p>이 튜토리얼에서는 Rust의 오류 핸들링의 기본 사항만 다루었습니다.</p>
+<p>실제로는 <code>?</code> 연산자를 사용하여 오류를 전파하거나, 사용자 지정 오류 유형을 정의하는 등 더 많은 기능을 활용할 수 있습니다.</p>
+<p>이러한 고급 기능을 배우는 것도 도움이 될 것입니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="21_ko.html" rel="prev">❮ 이전</a></span>
-                <span class="next"><a href="chapter_2_ko.html" rel="next">다음 ❯</a></span>
+                <span class="next"><a href="23_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F*%0A%EB%AC%B8%EC%A0%9C+1%0A%0A%3E+area%28shape%3A+Shape%29+-%3E+f64%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%A0+%EB%95%8C%EB%8A%94+%ED%8C%8C%EC%9D%B4%28pi%29%EB%A5%BC+3.14%EB%A1%9C+%EA%B0%80%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4.+%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4%EA%B3%A0%0A%0A%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%EA%B0%80+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%84+%EB%A7%8C%EB%93%A4+%EC%88%98+%EC%97%86%EB%8A%94+%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8A%94+%EC%97%90%EB%9F%AC%EB%A5%BC+%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EC%84%B8%EC%9A%94.%0A%0A%3E+perimeter%28shape%3A+Shape%29+-%3E+f64%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4%EA%B3%A0+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%EA%B0%80+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%84+%EB%A7%8C%EB%93%A4+%EC%88%98+%EC%97%86%EB%8A%94+%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8A%94+%EC%97%90%EB%9F%AC%EB%A5%BC+%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EC%84%B8%EC%9A%94.%0A%0Ais_square%28shape%3A+Shape%29+-%3E+bool%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%ED%8C%90%EB%B3%84%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%95%84%EB%8B%88%EB%A9%B4+false%EB%A5%BC+%EB%B0%98%ED%99%98%ED%95%98%EC%84%B8%EC%9A%94.%0A%0A%EB%8B%B5%EC%9D%80+%EB%A7%88%EC%A7%80%EB%A7%89+%EC%B1%95%ED%84%B0+%EB%B6%80%EB%A1%9D%EC%9D%84+%ED%99%95%EC%9D%B8%ED%95%98%EC%84%B8%EC%9A%94.%0A*%2F%0A%0Aenum+Shape+%7B%0A++++Circle%28f64%29%2C+++++++++++++%2F%2F+%EB%B0%98%EC%A7%80%EB%A6%84%0A++++Rectangle%28f64%2C+f64%29%2C+++++%2F%2F+%EA%B0%80%EB%A1%9C%2C+%EC%84%B8%EB%A1%9C%0A++++Triangle%28f64%2C+f64%2C+f64%29%2C+%2F%2F+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%0A%7D%0A%0A%2F%2F+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+area%28shape%3A+%26Shape%29+-%3E+f64+%7B%0A++++%2F%2F+FIXME%0A++++%2F%2F+perimeter+%ED%95%A8%EC%88%98%EB%A5%BC+%EC%B0%B8%EA%B3%A0%ED%95%98%EC%84%B8%EC%9A%94.%0A++++%2F%2F+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%EC%9D%80+panic%21+%EB%A7%A4%ED%81%AC%EB%A1%9C%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%7D%0A%0A%2F%2F+%EB%91%98%EB%A0%88%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+perimeter%28shape%3A+%26Shape%29+-%3E+f64+%7B%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle%28r%29+%3D%3E+2.0+*+3.14+*+r%2C%0A++++++++Shape%3A%3ARectangle%28w%2C+h%29+%3D%3E+2.0+*+%28w+%2B+h%29%2C%0A++++++++Shape%3A%3ATriangle%28a%2C+b%2C+c%29+%3D%3E+%7B%0A++++++++++++%2F%2F+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88+%EA%B3%B5%EC%8B%9D%0A++++++++++++let+p+%3D+a+%2B+b+%2B+c%3B%0A++++++++++++%2F%2F+%EB%91%98%EB%A0%88%EA%B0%80+%EC%9D%8C%EC%88%98%EB%A9%B4+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%0A++++++++++++if+p+%3C+0.0+%7B%0A++++++++++++++++panic%21%28%22Invalid+triangle%22%29%3B%0A++++++++++++%7D+else+%7B%0A++++++++++++++++p%0A++++++++++++%7D%0A++++++++%7D%0A++++%7D%0A%7D%0A%0A%2F%2F+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%ED%8C%90%EB%B3%84%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+is_square%28shape%3A+%26Shape%29+-%3E+bool+%7B%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle%28_%29+%3D%3E+false%2C%0A++++++++%2F%2F+FIXME+%EB%8B%A4%EB%A5%B8+%EB%8F%84%ED%98%95...%0A++++%7D%0A%7D%0A%0A%2F%2F+%EA%B2%B0%EA%B3%BC%0A%2F*%0A%EC%9B%90+%EB%84%93%EC%9D%B4%3A+12.56%0A%EC%82%AC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+12%0A%EC%82%BC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+6%0A%EC%9B%90+%EB%91%98%EB%A0%88%3A+12.56%0A%EC%82%AC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+14%0A%EC%82%BC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+12%0A%EC%9B%90%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A*%2F%0Afn+main%28%29+%7B%0A++++%2F%2F+Shape+%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EB%93%A4%EC%9D%84+%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++let+circle+%3D+Shape%3A%3ACircle%282.0%29%3B%0A++++let+rectangle+%3D+Shape%3A%3ARectangle%283.0%2C+4.0%29%3B%0A++++let+triangle+%3D+%2F%2F+FIXME%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26triangle%29%29%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26triangle%29%29%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26triangle%29%29%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=use+std%3A%3Afmt%3B%0Ause+std%3A%3Astr%3A%3AFromStr%3B%0A%0A%23%5Bderive%28Debug%29%5D%0Aenum+ParseIntegerError+%7B%0A++++InvalidNumber%28String%29%2C%0A++++ParseIntError%28std%3A%3Anum%3A%3AParseIntError%29%2C%0A%7D%0A%0Aimpl+fmt%3A%3ADisplay+for+ParseIntegerError+%7B%0A++++fn+fmt%28%26self%2C+f%3A+%26mut+fmt%3A%3AFormatter%29+-%3E+fmt%3A%3AResult+%7B%0A++++++++match+self+%7B%0A++++++++++++ParseIntegerError%3A%3AInvalidNumber%28ref+s%29+%3D%3E+write%21%28f%2C+%22Invalid+number%3A+%7B%7D%22%2C+s%29%2C%0A++++++++++++ParseIntegerError%3A%3AParseIntError%28ref+e%29+%3D%3E+e.fmt%28f%29%2C%0A++++++++%7D%0A++++%7D%0A%7D%0A%0Aimpl+std%3A%3Aerror%3A%3AError+for+ParseIntegerError+%7B%7D%0A%0Afn+parse_integer%28input%3A+%26str%29+-%3E+Result%3Ci32%2C+ParseIntegerError%3E+%7B%0A++++if+input.is_empty%28%29+%7B%0A++++++++return+Err%28ParseIntegerError%3A%3AInvalidNumber%28input.to_owned%28%29%29%29%3B%0A++++%7D%0A%0A++++let+value+%3D+i32%3A%3Afrom_str%28input%29.map_err%28ParseIntegerError%3A%3AParseIntError%29%3F%3B%0A++++Ok%28value%29%0A%7D%0A%0Afn+main%28%29+%7B%0A++++let+inputs+%3D+%5B%2242%22%2C+%22abc%22%2C+%22%22%5D%3B%0A++++for+input+in+%26inputs+%7B%0A++++++++let+parsed+%3D+parse_integer%28input%29%3B%0A%0A++++++++match+parsed+%7B%0A++++++++++++Ok%28value%29+%3D%3E+println%21%28%22The+integer+value+of+%27%7B%7D%27+is%3A+%7B%7D%22%2C+input%2C+value%29%2C%0A++++++++++++Err%28error%29+%3D%3E+println%21%28%22Error+parsing+%27%7B%7D%27%3A+%7B%7D%22%2C+input%2C+error%29%2C%0A++++++++%7D%0A++++%7D%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/23_ko.html b/docs/23_ko.html
index 63e86968eb307571c33483c9bcaf42a839cc587c..ab0be54ec600236cb3ecca325b552a7dfcef983f 100644
--- a/docs/23_ko.html
+++ b/docs/23_ko.html
@@ -35,28 +35,108 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>소유권과 빌림 검사기</h1>
-            <p>Rust의 메모리 관리가 소유권, 빌림, 그리고 수명의 개념에 기반한다는 것을 설명합니다.</p>
-<p>Rust의 시스템은 가비지 컬렉터가 필요 없이 컴파일 시간에 메모리 관리 문제를 방지하도록 설계되어 있다는 것을 강조합니다.</p>
-<ol>
-<li>Rust의 메모리 관리 방식 소개:<ol>
-<li>Rust는 소유권, 빌림, 그리고 수명을 기반으로 한 메모리 관리 시스템을 도입하여 메모리 안전성을 보장합니다.</li>
-<li>이 시스템은 컴파일 시간에 메모리 관리 문제를 확인하고 방지하므로, 런타임 시 메모리 누수나 <code>세그멘테이션 폴트</code>와 같은 문제가 발생하지 않습니다.</li></ol></li>
-<li>가비지 컬렉터 없이 메모리 관리 문제 방지:<ol>
-<li>Rust의 메모리 관리 시스템은 가비지 컬렉터가 필요 없이 메모리를 안전하게 관리할 수 있게 해줍니다.</li>
-<li>소유권과 빌림 규칙을 통해 컴파일러가 메모리 사용에 대한 제약 조건을 검사하고, 문제가 있는 경우 컴파일 오류를 발생시킵니다.</li>
-<li>이를 통해 런타임 시 메모리 관리 문제가 발생할 여지가 없도록 합니다.</li></ol></li>
-</ol>
-<p>이렇게 Rust는 소유권, 빌림, 그리고 수명을 기반으로 하는 메모리 관리 시스템을 통해 가비지 컬렉터 없이도 메모리 안전성을 보장하며,</p>
-<p>컴파일 시간에 메모리 관리 문제를 방지하는 방식으로 문제를 해결합니다.</p>
-<p>이 시스템은 런타임에 발생할 수 있는 메모리 관련 문제를 최소화하여 성능과 안정성을 높입니다.</p>
+            <h1>Chapter 1 - 마무리</h1>
+            <p>Rust의 기초는 그렇게 나쁘지 않죠?</p>
+<p>시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며,</p>
+<p>수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다.</p>
+<p>참고:</p>
+<ul>
+<li><a href="https://www.youtube.com/watch?v=n5TRBkbystY" target="_blank" rel="noopener">Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해</a></li>
+<li><a href="https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html" target="_blank" rel="noopener">Website: Rust Book 2018 - 기본 데이터 유형에 대한 자세한 설명</a></li>
+<li><a href="https://cheats.rs/#basic-types" target="_blank" rel="noopener">Website: Rust Cheat Sheet - Data Types</a></li>
+</ul>
+<div> <button type="button" class="collapsible">정답 보기</button> <div class="content"> <pre><code class="rust">enum Shape {
+    Circle(f64),             // 반지름
+    Rectangle(f64, f64),     // 가로, 세로
+    Triangle(f64, f64, f64), // 세 변의 길이
+}
+
+// 넓이를 계산하는 함수
+fn area(shape: &Shape) -> f64 {
+    match shape {
+        Shape::Circle(r) => 3.14 * r * r,
+        Shape::Rectangle(w, h) => w * h,
+        Shape::Triangle(a, b, c) => {
+            // 삼각형의 넓이 공식
+            let s = (a + b + c) / 2.0;
+            let area = s * (s - a) * (s - b) * (s - c);
+            // 넓이가 음수면 에러 발생
+            if area &lt; 0.0 {
+                panic!("Invalid triangle");
+            } else {
+                area.sqrt()
+            }
+        }
+    }
+}
+
+// 둘레를 계산하는 함수
+fn perimeter(shape: &Shape) -> f64 {
+    match shape {
+        Shape::Circle(r) => 2.0 * 3.14 * r,
+        Shape::Rectangle(w, h) => 2.0 * (w + h),
+        Shape::Triangle(a, b, c) => {
+            // 삼각형의 둘레 공식
+            let p = a + b + c;
+            // 둘레가 음수면 에러 발생
+            if p < 0.0 {
+                panic!("Invalid triangle");
+            } else {
+                p
+            }
+        }
+    }
+}
+
+// 정사각형인지 판별하는 함수
+fn is_square(shape: &Shape) -> bool {
+    match shape {
+        Shape::Circle(_) => false,
+        Shape::Rectangle(w, h) => w == h,
+        Shape::Triangle(_, _, _) => false,
+    }
+}
+
+// 결과
+/*
+원 넓이: 12.56
+사각형 넓이: 12
+삼각형 넓이: 6
+원 둘레: 12.56
+사각형 둘레: 14
+삼각형 둘레: 12
+원이 정사각형인가? false
+사각형이 정사각형인가? false
+삼각형이 정사각형인가? false
+*/
+fn main() {
+    // Shape 타입의 값들을 생성합니다.
+    let circle = Shape::Circle(2.0);
+    let rectangle = Shape::Rectangle(3.0, 4.0);
+    let triangle = Shape::Triangle(3.0, 4.0, 5.0);
+
+    // 각 도형의 넓이를 출력합니다.
+    println!("원 넓이: {}", area(&circle));
+    println!("사각형 넓이: {}", area(&rectangle));
+    println!("삼각형 넓이: {}", area(&triangle));
+
+    // 각 도형의 둘레를 출력합니다.
+    println!("원 둘레: {}", perimeter(&circle));
+    println!("사각형 둘레: {}", perimeter(&rectangle));
+    println!("삼각형 둘레: {}", perimeter(&triangle));
+
+    // 각 도형이 정사각형인지 출력합니다.
+    println!("원이 정사각형인가? {}", is_square(&circle));
+    println!("사각형이 정사각형인가? {}", is_square(&rectangle));
+    println!("삼각형이 정사각형인가? {}", is_square(&triangle));
+}</code></pre> </div> </div>
             <div class="bottomnav">
-                <span class="back"><a href="chapter_2_ko.html" rel="prev">❮ 이전</a></span>
-                <span class="next"><a href="24_ko.html" rel="next">다음 ❯</a></span>
+                <span class="back"><a href="22_ko.html" rel="prev">❮ 이전</a></span>
+                <span class="next"><a href="chapter_2_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F*%0A%EC%9D%B4+%EC%BD%94%EB%93%9C%EC%97%90%EC%84%9C%2C+%EB%A8%BC%EC%A0%80+%22hello%22+%EA%B0%92%EC%9D%84+%EA%B0%96%EB%8A%94+%EA%B0%80%EB%B3%80+String+%EB%B3%80%EC%88%98+s%EB%A5%BC+%EC%84%A0%EC%96%B8%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%0A%EA%B7%B8%EB%9F%B0+%EB%8B%A4%EC%9D%8C+%26+%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+s%EC%97%90+%EB%8C%80%ED%95%9C+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0+r1%EC%9D%84+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0A%0Ar1%EC%9D%80+%EB%B9%8C%EB%A6%BC%28borrowing%29%EC%9D%98+%EC%98%88%EC%8B%9C%EB%A1%9C%2C+s%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EA%B0%80%EC%A0%B8%EA%B0%80%EC%A7%80+%EC%95%8A%EA%B3%A0+%EA%B7%B8+%EA%B0%92%EC%9D%84+%EC%9D%BD%EC%9D%84+%EC%88%98+%EC%9E%88%EC%A7%80%EB%A7%8C+%EC%88%98%EC%A0%95%ED%95%A0+%EC%88%98%EB%8A%94+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%0Ar1%EC%9D%98+%EA%B0%92%EC%9D%84+%EC%B6%9C%EB%A0%A5%ED%95%9C+%ED%9B%84%2C+r1%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EA%B2%8C+%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%0A%EA%B7%B8%EB%9F%B0+%EB%8B%A4%EC%9D%8C+%26mut+%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+s%EC%97%90+%EB%8C%80%ED%95%9C+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0+r2%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0A%0Ar2%EC%9D%80+%EB%98%90+%EB%8B%A4%EB%A5%B8+%EB%B9%8C%EB%A6%BC%EC%9D%98+%EC%98%88%EC%8B%9C%EC%9E%85%EB%8B%88%EB%8B%A4.+%EC%9D%B4%EB%B2%88%EC%97%90%EB%8A%94+s%EB%A5%BC+%EA%B0%80%EB%B3%80%EC%9C%BC%EB%A1%9C+%EB%B9%8C%EB%A0%A4%EC%99%80%EC%84%9C+%EA%B0%92%EC%9D%84+%EC%88%98%EC%A0%95%ED%95%A0+%EC%88%98+%EC%9E%88%EA%B2%8C+%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%0A%EC%9A%B0%EB%A6%AC%EB%8A%94+push_str%28%29+%EB%A9%94%EC%86%8C%EB%93%9C%EB%A5%BC+%ED%86%B5%ED%95%B4+r2%EB%A5%BC+%ED%86%B5%ED%95%B4+%EB%AC%B8%EC%9E%90%EC%97%B4+%22%2C+world%21%22%EB%A5%BC+s%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0%2C+r2%EC%9D%98+%EA%B0%92%EC%9D%84+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%88%EC%A7%80%EB%A7%89%EC%9C%BC%EB%A1%9C+r2%EA%B0%80+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EA%B2%8C+%EB%90%98%EB%A9%B4%2C+s%EB%8A%94+%EB%8B%A4%EC%8B%9C+%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%0A%EC%9D%B4+%EC%BD%94%EB%93%9C+%EC%8A%A4%EB%8B%88%ED%8E%AB%EC%9D%80+Rust%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EA%B3%BC+%EB%B9%8C%EB%A6%BC+%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%B4+%EA%B0%80%EB%B9%84%EC%A7%80+%EC%BB%AC%EB%A0%89%ED%84%B0+%EC%97%86%EC%9D%B4+%EC%95%88%EC%A0%84%ED%95%98%EA%B3%A0+%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8+%EB%A9%94%EB%AA%A8%EB%A6%AC+%EA%B4%80%EB%A6%AC%EB%A5%BC+%EA%B0%80%EB%8A%A5%ED%95%98%EA%B2%8C+%ED%95%98%EB%8A%94+%EB%B0%A9%EC%8B%9D%EC%9D%84+%EB%B3%B4%EC%97%AC%EC%A4%8D%EB%8B%88%EB%8B%A4.%0A%0ARust%EB%8A%94+%EC%BB%B4%ED%8C%8C%EC%9D%BC+%EC%8B%9C%EA%B0%84%EC%97%90+%EC%86%8C%EC%9C%A0%EA%B6%8C%EA%B3%BC+%EB%B9%8C%EB%A6%BC+%EA%B7%9C%EC%B9%99%EC%9D%84+%EA%B0%95%EC%A0%9C%ED%95%A8%EC%9C%BC%EB%A1%9C%EC%8D%A8%0A%0A%EB%A9%94%EB%AA%A8%EB%A6%AC+%EB%88%84%EC%88%98%EB%82%98+%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98+%ED%8F%B4%ED%8A%B8%EC%99%80+%EA%B0%99%EC%9D%80+%EB%9F%B0%ED%83%80%EC%9E%84+%EC%98%A4%EB%A5%98%EB%A5%BC+%EB%B0%A9%EC%A7%80%ED%95%98%EB%AF%80%EB%A1%9C+Rust+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%80+%EC%95%88%EC%A0%95%EC%A0%81%EC%9D%B4%EB%A9%B4%EC%84%9C%EB%8F%84+%EB%86%92%EC%9D%80+%EC%84%B1%EB%8A%A5%EC%9D%84+%EB%B3%B4%EC%9E%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A*%2F%0A%0Afn+main%28%29+%7B%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22Hello%22%29%3B%0A%0A++++%7B%0A++++++++let+r1+%3D+%26s%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EB%B9%8C%EB%A6%BC%0A++++++++println%21%28%22%7B%7D%22%2C+r1%29%3B%0A++++%7D+%2F%2F+r1%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A8%0A%0A++++let+r2+%3D+%26mut+s%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EB%B9%8C%EB%A6%BC%0A++++r2.push_str%28%22%2C+world%21%22%29%3B%0A++++println%21%28%22%7B%7D%22%2C+r2%29%3B%0A%7D+%2F%2F+r2%EA%B0%80+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A8%2C+s%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EC%9D%8C%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F*%0A%EB%AC%B8%EC%A0%9C+1%0A%0A%3E+area%28shape%3A+Shape%29+-%3E+f64%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%A0+%EB%95%8C%EB%8A%94+%ED%8C%8C%EC%9D%B4%28pi%29%EB%A5%BC+3.14%EB%A1%9C+%EA%B0%80%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4.+%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4%EA%B3%A0%0A%0A%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%EA%B0%80+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%84+%EB%A7%8C%EB%93%A4+%EC%88%98+%EC%97%86%EB%8A%94+%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8A%94+%EC%97%90%EB%9F%AC%EB%A5%BC+%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EC%84%B8%EC%9A%94.%0A%0A%3E+perimeter%28shape%3A+Shape%29+-%3E+f64%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4%EA%B3%A0+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%EA%B0%80+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%84+%EB%A7%8C%EB%93%A4+%EC%88%98+%EC%97%86%EB%8A%94+%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8A%94+%EC%97%90%EB%9F%AC%EB%A5%BC+%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EC%84%B8%EC%9A%94.%0A%0Ais_square%28shape%3A+Shape%29+-%3E+bool%0A%0A%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EC%9D%B4+%EC%A3%BC%EC%96%B4%EC%A1%8C%EC%9D%84+%EB%95%8C%2C+%EA%B7%B8+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%ED%8C%90%EB%B3%84%ED%95%B4%EC%84%9C+%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%8C%EC%95%BD+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%95%84%EB%8B%88%EB%A9%B4+false%EB%A5%BC+%EB%B0%98%ED%99%98%ED%95%98%EC%84%B8%EC%9A%94.%0A%0A%EB%8B%B5%EC%9D%80+%EB%A7%88%EC%A7%80%EB%A7%89+%EC%B1%95%ED%84%B0+%EB%B6%80%EB%A1%9D%EC%9D%84+%ED%99%95%EC%9D%B8%ED%95%98%EC%84%B8%EC%9A%94.%0A*%2F%0A%0Aenum+Shape+%7B%0A++++Circle%28f64%29%2C+++++++++++++%2F%2F+%EB%B0%98%EC%A7%80%EB%A6%84%0A++++Rectangle%28f64%2C+f64%29%2C+++++%2F%2F+%EA%B0%80%EB%A1%9C%2C+%EC%84%B8%EB%A1%9C%0A++++Triangle%28f64%2C+f64%2C+f64%29%2C+%2F%2F+%EC%84%B8+%EB%B3%80%EC%9D%98+%EA%B8%B8%EC%9D%B4%0A%7D%0A%0A%2F%2F+%EB%84%93%EC%9D%B4%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+area%28shape%3A+%26Shape%29+-%3E+f64+%7B%0A++++%2F%2F+FIXME%0A++++%2F%2F+perimeter+%ED%95%A8%EC%88%98%EB%A5%BC+%EC%B0%B8%EA%B3%A0%ED%95%98%EC%84%B8%EC%9A%94.%0A++++%2F%2F+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%EC%9D%80+panic%21+%EB%A7%A4%ED%81%AC%EB%A1%9C%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%7D%0A%0A%2F%2F+%EB%91%98%EB%A0%88%EB%A5%BC+%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+perimeter%28shape%3A+%26Shape%29+-%3E+f64+%7B%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle%28r%29+%3D%3E+2.0+*+3.14+*+r%2C%0A++++++++Shape%3A%3ARectangle%28w%2C+h%29+%3D%3E+2.0+*+%28w+%2B+h%29%2C%0A++++++++Shape%3A%3ATriangle%28a%2C+b%2C+c%29+%3D%3E+%7B%0A++++++++++++%2F%2F+%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88+%EA%B3%B5%EC%8B%9D%0A++++++++++++let+p+%3D+a+%2B+b+%2B+c%3B%0A++++++++++++%2F%2F+%EB%91%98%EB%A0%88%EA%B0%80+%EC%9D%8C%EC%88%98%EB%A9%B4+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%0A++++++++++++if+p+%3C+0.0+%7B%0A++++++++++++++++panic%21%28%22Invalid+triangle%22%29%3B%0A++++++++++++%7D+else+%7B%0A++++++++++++++++p%0A++++++++++++%7D%0A++++++++%7D%0A++++%7D%0A%7D%0A%0A%2F%2F+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%ED%8C%90%EB%B3%84%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%0Afn+is_square%28shape%3A+%26Shape%29+-%3E+bool+%7B%0A++++match+shape+%7B%0A++++++++Shape%3A%3ACircle%28_%29+%3D%3E+false%2C%0A++++++++%2F%2F+FIXME+%EB%8B%A4%EB%A5%B8+%EB%8F%84%ED%98%95...%0A++++%7D%0A%7D%0A%0A%2F%2F+%EA%B2%B0%EA%B3%BC%0A%2F*%0A%EC%9B%90+%EB%84%93%EC%9D%B4%3A+12.56%0A%EC%82%AC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+12%0A%EC%82%BC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+6%0A%EC%9B%90+%EB%91%98%EB%A0%88%3A+12.56%0A%EC%82%AC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+14%0A%EC%82%BC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+12%0A%EC%9B%90%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+false%0A*%2F%0Afn+main%28%29+%7B%0A++++%2F%2F+Shape+%ED%83%80%EC%9E%85%EC%9D%98+%EA%B0%92%EB%93%A4%EC%9D%84+%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++let+circle+%3D+Shape%3A%3ACircle%282.0%29%3B%0A++++let+rectangle+%3D+Shape%3A%3ARectangle%283.0%2C+4.0%29%3B%0A++++let+triangle+%3D+%2F%2F+FIXME%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%84%93%EC%9D%B4%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95+%EB%84%93%EC%9D%B4%3A+%7B%7D%22%2C+area%28%26triangle%29%29%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%98+%EB%91%98%EB%A0%88%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95+%EB%91%98%EB%A0%88%3A+%7B%7D%22%2C+perimeter%28%26triangle%29%29%3B%0A%0A++++%2F%2F+%EA%B0%81+%EB%8F%84%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EC%A7%80+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A++++println%21%28%22%EC%9B%90%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26circle%29%29%3B%0A++++println%21%28%22%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26rectangle%29%29%3B%0A++++println%21%28%22%EC%82%BC%EA%B0%81%ED%98%95%EC%9D%B4+%EC%A0%95%EC%82%AC%EA%B0%81%ED%98%95%EC%9D%B8%EA%B0%80%3F+%7B%7D%22%2C+is_square%28%26triangle%29%29%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/25_ko.html b/docs/25_ko.html
index 2a4fcf25fedde2a61e052301d37046f0a950ffcc..3405789193c2caa3b70243c7d212980fc07a79db 100644
--- a/docs/25_ko.html
+++ b/docs/25_ko.html
@@ -35,43 +35,28 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>소유권</h1>
-            <p><strong>Ownership</strong></p>
-<p>소유권 정의: Rust에서 각 값은 하나의 소유자를 가지며, 소유자가 범위를 벗어나면 값이 할당 해제됩니다.</p>
-<p>소유권 이전 방법을 예제를 통해 설명합니다 (예: 값을 새 변수에 할당하거나 함수에 전달할 때).</p>
-<p>값이 범위를 벗어날 때 자동으로 호출되는 drop 함수를 소개합니다.</p>
-<p>소유권 정의:</p>
-<p>Rust에서는 각 값에 대해 하나의 소유자가 존재하며, 소유자가 해당 값을 관리합니다.</p>
-<p>소유자가 범위를 벗어나면 Rust는 자동으로 해당 값의 메모리를 해제합니다.</p>
-<p>소유권 이전 예제:</p>
-<p>예제 1: 값을 새 변수에 할당할 때</p>
-<p>s1이 가리키는 값의 소유권이 s2로 이전되어 s1은 사용할 수 없습니다.</p>
-<pre><code class="rust">let s1 = String::from("hello");
-let s2 = s1;</code></pre>
-<p>예제 2: 함수에 값을 전달할 때</p>
-<p>s가 takes_ownership 함수에 전달되면서 소유권이 이전되고 함수 내에서 값의 메모리가 해제됩니다.</p>
-<pre><code class="rust">fn takes_ownership(s: String) {
-    println!("{}", s);
-}
-
-fn main() {
-    let s = String::from("hello");
-    takes_ownership(s);
-    // 여기에서 s는 사용할 수 없습니다.
-}</code></pre>
-<p><code>drop</code> 함수 소개:</p>
-<p>Rust에서는 값이 범위를 벗어날 때 자동으로 drop 함수가 호출됩니다.</p>
-<p>drop 함수는 메모리를 안전하게 해제하는 역할을 합니다.</p>
-<p>이를 통해 개발자가 직접 메모리 해제를 관리할 필요가 없습니다.</p>
-<p>소유권, 소유권 이전 방법, 그리고 drop 함수를 통해 Rust는 메모리 관리를 단순화하고 안전하게 할 수 있습니다.</p>
-<p>이로 인해 메모리 누수나 세그멘테이션 폴트와 같은 문제를 효과적으로 방지할 수 있습니다.</p>
+            <h1>소유권과 빌림 검사기</h1>
+            <p>Rust의 메모리 관리가 소유권, 빌림, 그리고 수명의 개념에 기반한다는 것을 설명합니다.</p>
+<p>Rust의 시스템은 가비지 컬렉터가 필요 없이 컴파일 시간에 메모리 관리 문제를 방지하도록 설계되어 있다는 것을 강조합니다.</p>
+<ol>
+<li>Rust의 메모리 관리 방식 소개:<ol>
+<li>Rust는 소유권, 빌림, 그리고 수명을 기반으로 한 메모리 관리 시스템을 도입하여 메모리 안전성을 보장합니다.</li>
+<li>이 시스템은 컴파일 시간에 메모리 관리 문제를 확인하고 방지하므로, 런타임 시 메모리 누수나 <code>세그멘테이션 폴트</code>와 같은 문제가 발생하지 않습니다.</li></ol></li>
+<li>가비지 컬렉터 없이 메모리 관리 문제 방지:<ol>
+<li>Rust의 메모리 관리 시스템은 가비지 컬렉터가 필요 없이 메모리를 안전하게 관리할 수 있게 해줍니다.</li>
+<li>소유권과 빌림 규칙을 통해 컴파일러가 메모리 사용에 대한 제약 조건을 검사하고, 문제가 있는 경우 컴파일 오류를 발생시킵니다.</li>
+<li>이를 통해 런타임 시 메모리 관리 문제가 발생할 여지가 없도록 합니다.</li></ol></li>
+</ol>
+<p>이렇게 Rust는 소유권, 빌림, 그리고 수명을 기반으로 하는 메모리 관리 시스템을 통해 가비지 컬렉터 없이도 메모리 안전성을 보장하며,</p>
+<p>컴파일 시간에 메모리 관리 문제를 방지하는 방식으로 문제를 해결합니다.</p>
+<p>이 시스템은 런타임에 발생할 수 있는 메모리 관련 문제를 최소화하여 성능과 안정성을 높입니다.</p>
             <div class="bottomnav">
-                <span class="back"><a href="24_ko.html" rel="prev">❮ 이전</a></span>
+                <span class="back"><a href="chapter_2_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="26_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%60drop%60+%ED%95%A8%EC%88%98+%EC%86%8C%EA%B0%9C%3A%0A%2F%2F+Rust%EC%97%90%EC%84%9C%EB%8A%94+%EA%B0%92%EC%9D%B4+%EB%B2%94%EC%9C%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A0+%EB%95%8C+%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+drop+%ED%95%A8%EC%88%98%EB%8A%94+%EB%A9%94%EB%AA%A8%EB%A6%AC%EB%A5%BC+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%ED%95%98%EB%8A%94+%EC%97%AD%ED%95%A0%EC%9D%84+%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9D%B4%EB%A5%BC+%ED%86%B5%ED%95%B4+%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80+%EC%A7%81%EC%A0%91+%EB%A9%94%EB%AA%A8%EB%A6%AC+%ED%95%B4%EC%A0%9C%EB%A5%BC+%EA%B4%80%EB%A6%AC%ED%95%A0+%ED%95%84%EC%9A%94%EA%B0%80+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0Astruct+CustomStruct+%7B%0A++++data%3A+String%2C%0A%7D%0A%0Aimpl+Drop+for+CustomStruct+%7B%0A++++fn+drop%28%26mut+self%29+%7B%0A++++++++println%21%28%22Dropping+CustomStruct+with+data%3A+%7B%7D%22%2C+self.data%29%3B%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++let+custom+%3D+CustomStruct+%7B%0A++++++++data%3A+String%3A%3Afrom%28%22hello%22%29%2C%0A++++%7D%3B%0A++++println%21%28%22Created+CustomStruct+with+data%3A+%7B%7D%22%2C+custom.data%29%3B%0A++++%2F%2F+custom%EC%9D%80+%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98%EB%A9%B4%EC%84%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%98%EC%96%B4+%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B0%80+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F*%0A%EC%9D%B4+%EC%BD%94%EB%93%9C%EC%97%90%EC%84%9C%2C+%EB%A8%BC%EC%A0%80+%22hello%22+%EA%B0%92%EC%9D%84+%EA%B0%96%EB%8A%94+%EA%B0%80%EB%B3%80+String+%EB%B3%80%EC%88%98+s%EB%A5%BC+%EC%84%A0%EC%96%B8%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%0A%EA%B7%B8%EB%9F%B0+%EB%8B%A4%EC%9D%8C+%26+%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+s%EC%97%90+%EB%8C%80%ED%95%9C+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0+r1%EC%9D%84+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0A%0Ar1%EC%9D%80+%EB%B9%8C%EB%A6%BC%28borrowing%29%EC%9D%98+%EC%98%88%EC%8B%9C%EB%A1%9C%2C+s%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EA%B0%80%EC%A0%B8%EA%B0%80%EC%A7%80+%EC%95%8A%EA%B3%A0+%EA%B7%B8+%EA%B0%92%EC%9D%84+%EC%9D%BD%EC%9D%84+%EC%88%98+%EC%9E%88%EC%A7%80%EB%A7%8C+%EC%88%98%EC%A0%95%ED%95%A0+%EC%88%98%EB%8A%94+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%0Ar1%EC%9D%98+%EA%B0%92%EC%9D%84+%EC%B6%9C%EB%A0%A5%ED%95%9C+%ED%9B%84%2C+r1%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EA%B2%8C+%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%0A%EA%B7%B8%EB%9F%B0+%EB%8B%A4%EC%9D%8C+%26mut+%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+s%EC%97%90+%EB%8C%80%ED%95%9C+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0+r2%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0A%0Ar2%EC%9D%80+%EB%98%90+%EB%8B%A4%EB%A5%B8+%EB%B9%8C%EB%A6%BC%EC%9D%98+%EC%98%88%EC%8B%9C%EC%9E%85%EB%8B%88%EB%8B%A4.+%EC%9D%B4%EB%B2%88%EC%97%90%EB%8A%94+s%EB%A5%BC+%EA%B0%80%EB%B3%80%EC%9C%BC%EB%A1%9C+%EB%B9%8C%EB%A0%A4%EC%99%80%EC%84%9C+%EA%B0%92%EC%9D%84+%EC%88%98%EC%A0%95%ED%95%A0+%EC%88%98+%EC%9E%88%EA%B2%8C+%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%0A%EC%9A%B0%EB%A6%AC%EB%8A%94+push_str%28%29+%EB%A9%94%EC%86%8C%EB%93%9C%EB%A5%BC+%ED%86%B5%ED%95%B4+r2%EB%A5%BC+%ED%86%B5%ED%95%B4+%EB%AC%B8%EC%9E%90%EC%97%B4+%22%2C+world%21%22%EB%A5%BC+s%EC%97%90+%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0%2C+r2%EC%9D%98+%EA%B0%92%EC%9D%84+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%0A%EB%A7%88%EC%A7%80%EB%A7%89%EC%9C%BC%EB%A1%9C+r2%EA%B0%80+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EA%B2%8C+%EB%90%98%EB%A9%B4%2C+s%EB%8A%94+%EB%8B%A4%EC%8B%9C+%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%0A%EC%9D%B4+%EC%BD%94%EB%93%9C+%EC%8A%A4%EB%8B%88%ED%8E%AB%EC%9D%80+Rust%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EA%B3%BC+%EB%B9%8C%EB%A6%BC+%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%B4+%EA%B0%80%EB%B9%84%EC%A7%80+%EC%BB%AC%EB%A0%89%ED%84%B0+%EC%97%86%EC%9D%B4+%EC%95%88%EC%A0%84%ED%95%98%EA%B3%A0+%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8+%EB%A9%94%EB%AA%A8%EB%A6%AC+%EA%B4%80%EB%A6%AC%EB%A5%BC+%EA%B0%80%EB%8A%A5%ED%95%98%EA%B2%8C+%ED%95%98%EB%8A%94+%EB%B0%A9%EC%8B%9D%EC%9D%84+%EB%B3%B4%EC%97%AC%EC%A4%8D%EB%8B%88%EB%8B%A4.%0A%0ARust%EB%8A%94+%EC%BB%B4%ED%8C%8C%EC%9D%BC+%EC%8B%9C%EA%B0%84%EC%97%90+%EC%86%8C%EC%9C%A0%EA%B6%8C%EA%B3%BC+%EB%B9%8C%EB%A6%BC+%EA%B7%9C%EC%B9%99%EC%9D%84+%EA%B0%95%EC%A0%9C%ED%95%A8%EC%9C%BC%EB%A1%9C%EC%8D%A8%0A%0A%EB%A9%94%EB%AA%A8%EB%A6%AC+%EB%88%84%EC%88%98%EB%82%98+%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98+%ED%8F%B4%ED%8A%B8%EC%99%80+%EA%B0%99%EC%9D%80+%EB%9F%B0%ED%83%80%EC%9E%84+%EC%98%A4%EB%A5%98%EB%A5%BC+%EB%B0%A9%EC%A7%80%ED%95%98%EB%AF%80%EB%A1%9C+Rust+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%80+%EC%95%88%EC%A0%95%EC%A0%81%EC%9D%B4%EB%A9%B4%EC%84%9C%EB%8F%84+%EB%86%92%EC%9D%80+%EC%84%B1%EB%8A%A5%EC%9D%84+%EB%B3%B4%EC%9E%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A*%2F%0A%0Afn+main%28%29+%7B%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22Hello%22%29%3B%0A%0A++++%7B%0A++++++++let+r1+%3D+%26s%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EB%B9%8C%EB%A6%BC%0A++++++++println%21%28%22%7B%7D%22%2C+r1%29%3B%0A++++%7D+%2F%2F+r1%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A8%0A%0A++++let+r2+%3D+%26mut+s%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EB%B9%8C%EB%A6%BC%0A++++r2.push_str%28%22%2C+world%21%22%29%3B%0A++++println%21%28%22%7B%7D%22%2C+r2%29%3B%0A%7D+%2F%2F+r2%EA%B0%80+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A8%2C+s%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EB%B9%8C%EB%A0%A4%EC%A7%80%EC%A7%80+%EC%95%8A%EC%9D%8C%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/26_ko.html b/docs/26_ko.html
index 89d04ce7935011ab86db360c05dabb4070e36fd0..461d3844a3b7ab5f111356bcd4f1577fc12cb0ea 100644
--- a/docs/26_ko.html
+++ b/docs/26_ko.html
@@ -35,14 +35,58 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>빌림</h1>
-            <p><strong>Borrowing</strong></p>
+            <h1>소유권</h1>
+            <p><strong>🎯 Ownership</strong></p>
+<p>소유권 정의: Rust에서 각 값은 하나의 소유자를 가지며, 소유자가 범위를 벗어나면 값이 할당 해제됩니다.</p>
+<p>소유권 이전 방법을 예제를 통해 설명합니다 (예: 값을 새 변수에 할당하거나 함수에 전달할 때).</p>
+<p>값이 범위를 벗어날 때 자동으로 호출되는 drop 함수를 소개합니다.</p>
+<p>소유권 정의:</p>
+<p>Rust에서는 각 값에 대해 하나의 소유자가 존재하며, 소유자가 해당 값을 관리합니다.</p>
+<p>소유자가 범위를 벗어나면 Rust는 자동으로 해당 값의 메모리를 해제합니다.</p>
+<p>소유권 이전 예제:</p>
+<p>예제 1: 값을 새 변수에 할당할 때</p>
+<p>s1이 가리키는 값의 소유권이 s2로 이전되어 s1은 사용할 수 없습니다.</p>
+<pre><code class="rust">let s1 = String::from("hello");
+let s2 = s1;</code></pre>
+<p>예제 2: 함수에 값을 전달할 때</p>
+<p>s가 takes_ownership 함수에 전달되면서 소유권이 이전되고 함수 내에서 값의 메모리가 해제됩니다.</p>
+<pre><code class="rust">fn takes_ownership(s: String) {
+    println!("{}", s);
+}
+
+fn main() {
+    let s = String::from("hello");
+    takes_ownership(s);
+    // 여기에서 s는 사용할 수 없습니다.
+}</code></pre>
+<p><code>drop</code> 함수 소개:</p>
+<p>Rust에서는 값이 범위를 벗어날 때 자동으로 drop 함수가 호출됩니다.</p>
+<p>drop 함수는 메모리를 안전하게 해제하는 역할을 합니다.</p>
+<p>이를 통해 개발자가 직접 메모리 해제를 관리할 필요가 없습니다.</p>
+<p>소유권, 소유권 이전 방법, 그리고 drop 함수를 통해 Rust는 메모리 관리를 단순화하고 안전하게 할 수 있습니다.</p>
+<p>이로 인해 메모리 누수나 세그멘테이션 폴트와 같은 문제를 효과적으로 방지할 수 있습니다.</p>
+<hr />
+<h1 id="advanced">Advanced</h1>
+<h2 id="clone"><code>clone</code> 메서드를 사용한 소유권 이전 방지</h2>
+<pre><code class="rust">let s1 = String::from("hello"); let s2 = s1.clone();</code></pre>
+<h2 id="">함수로 소유권 이전 후 반환</h2>
+<pre><code class="rust">fn takes_and_gives_back(s: String) -> String {
+    s
+}
+
+fn main() {
+    let s1 = String::from("hello");
+    let s2 = takes_and_gives_back(s1);
+    // 이제 s2를 사용할 수 있지만, s1은 여전히 사용할 수 없습니다.
+}</code></pre>
             <div class="bottomnav">
                 <span class="back"><a href="25_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="27_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
-            <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div>
+            <div class="code">
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%60drop%60+%ED%95%A8%EC%88%98+%EC%86%8C%EA%B0%9C%3A%0A%2F%2F+Rust%EC%97%90%EC%84%9C%EB%8A%94+%EA%B0%92%EC%9D%B4+%EB%B2%94%EC%9C%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A0+%EB%95%8C+%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+drop+%ED%95%A8%EC%88%98%EB%8A%94+%EB%A9%94%EB%AA%A8%EB%A6%AC%EB%A5%BC+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%ED%95%98%EB%8A%94+%EC%97%AD%ED%95%A0%EC%9D%84+%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9D%B4%EB%A5%BC+%ED%86%B5%ED%95%B4+%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80+%EC%A7%81%EC%A0%91+%EB%A9%94%EB%AA%A8%EB%A6%AC+%ED%95%B4%EC%A0%9C%EB%A5%BC+%EA%B4%80%EB%A6%AC%ED%95%A0+%ED%95%84%EC%9A%94%EA%B0%80+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0Astruct+CustomStruct+%7B%0A++++data%3A+String%2C%0A%7D%0A%0Aimpl+Drop+for+CustomStruct+%7B%0A++++fn+drop%28%26mut+self%29+%7B%0A++++++++println%21%28%22Dropping+CustomStruct+with+data%3A+%7B%7D%22%2C+self.data%29%3B%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++let+custom+%3D+CustomStruct+%7B%0A++++++++data%3A+String%3A%3Afrom%28%22hello%22%29%2C%0A++++%7D%3B%0A++++println%21%28%22Created+CustomStruct+with+data%3A+%7B%7D%22%2C+custom.data%29%3B%0A++++%2F%2F+custom%EC%9D%80+%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98%EB%A9%B4%EC%84%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%98%EC%96%B4+%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B0%80+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            </div>
         </div>
         <script>
         var pres = document.querySelectorAll("pre>code");
diff --git a/docs/27_ko.html b/docs/27_ko.html
index 0b0c4b0b3c1e582ed4debe29de9a7dac12ac797b..7660f2cff6b75b45888c9dfa879204a8586cf9f0 100644
--- a/docs/27_ko.html
+++ b/docs/27_ko.html
@@ -35,44 +35,33 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>수명</h1>
-            <p><strong>Lifetime</strong></p>
-<p>참조와 그들이 빌리는 값 사이의 관계를 나타내기 위해 수명이 사용됩니다.</p>
-<p>여기선 함수 시그니처와 구조체에서 수명을 어떻게 표시하는지 보여줍니다.</p>
-<p>수명은 주로 빌림 검사기가 메모리 안전성을 보장하기 위한 도구로 사용되며, 컴파일러에 의해 자주 자동으로 추론된다는 것을 강조합니다.</p>
-<p>수명이란 무엇인가:</p>
-<p>수명은 참조와 빌려진 값 사이의 관계를 표현하는데 사용됩니다.</p>
-<p>수명은 참조가 유효한 기간 동안 해당 값이 메모리에서 해제되지 않도록 보장합니다.</p>
-<p>함수 시그니처와 구조체에서의 수명 표시:</p>
-<p>예제 1: 함수 시그니처에서 수명 표시</p>
-<pre><code class="rust">// 여기에서 사용된 'a는 수명을 나타내는 표시입니다.
-// 이를 통해 입력과 출력의 참조들이 동일한 수명을 가지도록 합니다.
-fn longest&lt;'a>(s1: &'a str, s2: &'a str) -> &'a str {
-    if s1.len() > s2.len() {
-        s1
-    } else {
-        s2
-    }
-}</code></pre>
-<p>예제 2: 구조체에서 수명 표시</p>
-<pre><code class="rust">// Person 구조체는 이름을 문자열 슬라이스로 저장합니다.
-// 여기에서 사용된 'a는 구조체의 이름 필드가 참조하는 문자열 슬라이스의 수명을 나타냅니다.
-struct Person&lt;'a> {
-    name: &'a str,
+            <h1>빌림</h1>
+            <p><strong>🎯 Borrowing</strong></p>
+<p>빌림(borrowing) 개념은 Rust에서 소유권을 이전하지 않고, 값을 참조하거나 사용할 수 있게 해주는 기능입니다.</p>
+<p>빌림은 두 가지 종류: 불변 빌림(immutable borrow), 가변 빌림(mutable borrow)</p>
+<p>빌림(borrowing)에 대한 기본적인 규칙은 다음과 같습니다:</p>
+<p>한 번에 <code>여러 개의 불변 참조</code>를 가져올 수 있지만,</p>
+<p>가변 참조를 가져올 때는 해당 변수의 다른 참조가 없어야 합니다. (<code>오직 한 개의 가변 참조</code>)</p>
+<p>이러한 규칙을 통해 Rust는 컴파일 시점에 데이터 경쟁 문제를 방지합니다.</p>
+<p>가변 빌림의 예제 (mutable borrow):</p>
+<pre><code class="rust">fn main() {
+    let mut s = String::from("hello");
+    change(&mut s);
+    println!("The new string is '{}'.", s);
+}
+
+fn change(s: &mut String) {
+    s.push_str(", world!");
 }</code></pre>
-<p>수명과 빌림 검사기:</p>
-<p>수명은 빌림 검사기가 참조가 유효한 기간 동안 값이 메모리에서 해제되지 않도록 보장하는 데 사용됩니다.</p>
-<p>대부분의 경우, 컴파일러는 수명을 자동으로 추론할 수 있습니다.</p>
-<p>그러나 복잡한 상황에서는 개발자가 수명을 명시해야 할 수도 있습니다.</p>
-<p>수명을 이해하고 올바르게 사용함으로써 Rust의 빌림 검사기가 메모리 관리를 안전하게 수행할 수 있도록 지원할 수 있습니다.</p>
-<p>이는 Rust 프로그램의 성능과 안정성에 크게 기여합니다.</p>
+<p>빌림(borrowing) 개념을 이해하면, Rust에서 소유권을 이전하지 않고도 값을 안전하게 사용할 수 있습니다.</p>
+<p>이를 통해 데이터 경쟁 문제를 방지하고, 메모리 관리에 대한 안전성을 높일 수 있습니다.</p>
             <div class="bottomnav">
                 <span class="back"><a href="26_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="28_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EA%B0%80%EC%A7%80%EB%8A%94+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.+%EA%B0%81+%EC%B0%B8%EC%A1%B0%EB%8A%94+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%91%EB%8B%88%EB%8B%A4.%0Astruct+TwoRefs%3C%27a%2C+%27b%3E+%7B%0A++++ref_a%3A+%26%27a+str%2C%0A++++ref_b%3A+%26%27b+str%2C%0A%7D%0A%0A%2F%2F+%ED%95%A8%EC%88%98+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9E%85%EB%A0%A5+%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98+%EA%B8%B8%EC%9D%B4%EC%97%90+%EB%94%B0%EB%9D%BC+%EB%91%90+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%A4%91+%ED%95%98%EB%82%98%EB%A5%BC+%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%27b%3A+%27a%EB%A1%9C+%EB%91%90+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%EA%B0%84%EC%9D%98+%EA%B4%80%EA%B3%84%EB%A5%BC+%EC%84%A4%EC%A0%95%ED%95%B4%EC%84%9C%0A%2F%2F+%27b+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%80+%27a+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EB%B3%B4%EB%8B%A4+%EA%B8%B8%EA%B1%B0%EB%82%98+%EA%B0%99%EC%95%84%EC%95%BC+%ED%95%A9%EB%8B%88%EB%8B%A4.%0Afn+choose_str%3C%27a%2C+%27b%3A+%27a%3E%28str_a%3A+%26%27a+str%2C+str_b%3A+%26%27b+str%29+-%3E+%26%27a+str+%7B%0A++++if+str_a.len%28%29+%3E+str_b.len%28%29+%7B%0A++++++++str_a%0A++++%7D+else+%7B%0A++++++++str_b%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%83%9D%EC%84%B1%0A++++let+a+%3D+String%3A%3Afrom%28%22%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94.%22%29%3B%0A++++let+b+%3D+String%3A%3Afrom%28%22%EB%B0%98%EA%B0%91%EC%8A%B5%EB%8B%88%EB%8B%A4.%22%29%3B%0A%0A++++%7B%0A++++++++%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%84%9C%EB%A1%9C+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%84+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%83%9D%EC%84%B1%0A++++++++let+c+%3D+%22%EC%97%AC%EA%B8%B0%EC%84%9C+%EB%A7%8C%EB%82%98%EC%84%9C+%EB%B0%98%EA%B0%80%EC%9B%8C%EC%9A%94%21%22%3B%0A++++++++let+two_refs+%3D+TwoRefs+%7B%0A++++++++++++ref_a%3A+%26a%2C%0A++++++++++++ref_b%3A+%26c%2C%0A++++++++%7D%3B%0A%0A++++++++%2F%2F+%ED%95%A8%EC%88%98+%ED%98%B8%EC%B6%9C%0A++++++++let+longest_str+%3D+choose_str%28two_refs.ref_a%2C+two_refs.ref_b%29%3B%0A++++++++println%21%28%22%EA%B0%80%EC%9E%A5+%EA%B8%B4+%EB%AC%B8%EC%9E%90%EC%97%B4%3A+%7B%7D%22%2C+longest_str%29%3B%0A++++%7D%0A%0A++++%2F%2F+%EC%97%AC%EA%B8%B0%EC%84%9C+two_refs%EB%8A%94+%EC%82%AC%EB%9D%BC%EC%A7%80%EA%B3%A0%2C+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%27a%EC%99%80+%27b%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%A1%B4%EC%9E%AC%ED%95%98%EC%A7%80+%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A++++let+s_immutable_borrow+%3D+%26s%3B%0D%0A++++%7B%0D%0A++++++++let+s_mutable_borrow+%3D+%26mut+s%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EA%B0%80+%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94+%EB%8F%99%EC%95%88+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0D%0A++++++++replace_content%28s_mutable_borrow%2C+%22world%22%29%3B%0D%0A++++%7D%0D%0A++++println%21%28%22New+String+%27%7B%7D%27.%22%2C+s_immutable_borrow%29%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EA%B0%80+%EC%97%AC%EC%A0%84%ED%9E%88+%EC%9C%A0%ED%9A%A8%ED%95%9C+%EC%83%81%ED%83%9C%EC%97%90%EC%84%9C+%EC%82%AC%EC%9A%A9%EB%90%A9%EB%8B%88%EB%8B%A4.%0D%0A%7D%0D%0A%0D%0Afn+replace_content%28s%3A+%26mut+String%2C+new_content%3A+%26str%29+%7B%0D%0A++++s.clear%28%29%3B%0D%0A++++s.push_str%28new_content%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/28_ko.html b/docs/28_ko.html
index e8afdd35a76931d58ebc500b4bcf3cd4e5fbd854..bad3052e204b22729926f0ea76a1d5eb02b521a5 100644
--- a/docs/28_ko.html
+++ b/docs/28_ko.html
@@ -35,33 +35,67 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>빌림</h1>
-            <p><strong>Borrow checker</strong></p>
-<p>빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하여 메모리 안전성을 보장하는 방법을 설명합니다.</p>
-<p>빌림 검사기는 코드 내 참조의 수명을 분석함으로써 작동한다는 것을 설명합니다.</p>
-<p>빌림 검사기가 컴파일 시간에 메모리 관리 오류를 포착하는 방법을 예제를 통해 보여줍니다.</p>
-<p>빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하는 방법 설명:</p>
-<p>Rust의 빌림 검사기는 컴파일 시간에 참조 규칙을 적용하여 메모리 안전성을 보장합니다.</p>
-<p>이를 통해 런타임에 발생할 수 있는 메모리 누수, 데이터 경쟁 등의 문제를 사전에 방지할 수 있습니다.</p>
-<p>빌림 검사기가 코드 내 참조의 수명을 분석하는 방법 설명:</p>
-<p>빌림 검사기는 함수, 구조체 및 코드 내에서 참조의 수명을 추적하고 분석합니다.</p>
-<p>이를 통해, 참조의 수명이 끝난 이후에도 사용되거나, 다른 참조가 유효하지 않은 상태에서 접근하는 것을 방지합니다.</p>
-<p>빌림 검사기가 컴파일 시간에 메모리 관리 오류를 포착하는 예제:</p>
-<pre><code class="rust">fn main() {
-    let mut x = 5;
-    let y = &mut x;
-    let z = &x;
-    println!("x: {}, y: {}, z: {}", x, y, z);
+            <h1>라이프타임: 참조의 유효 기간 이해하기</h1>
+            <p><strong>🎯 Lifetime</strong></p>
+<p>라이프타임은 참조가 유효한 기간 동안 해당 값이 메모리에서 해제되지 않도록 보장하는 개념입니다.</p>
+<p>이를 통해 Rust에서 참조를 안전하게 사용할 수 있습니다.</p>
+<p>여기선 함수 시그니처와 구조체에서 수명을 어떻게 표시하는지 보여줍니다.</p>
+<p>수명은 주로 빌림 검사기가 메모리 안전성을 보장하기 위한 도구로 사용되며, 컴파일러에 의해 자주 자동으로 추론된다는 것을 강조합니다.</p>
+<p>('hey: lifetime hey로 읽음)</p>
+<p>수명이란 무엇인가:</p>
+<p>수명은 참조와 빌려진 값 사이의 관계를 표현하는데 사용됩니다.</p>
+<p>수명은 참조가 유효한 기간 동안 해당 값이 메모리에서 해제되지 않도록 보장합니다.</p>
+<p>함수 시그니처와 구조체에서의 수명 표시:</p>
+<p>예제 1: 함수 시그니처에서 수명 표시</p>
+<pre><code class="rust">// 여기에서 사용된 'a는 수명을 나타내는 표시입니다.
+// 이를 통해 입력과 출력의 참조들이 동일한 수명을 가지도록 합니다.
+fn longest&lt;'a>(s1: &'a str, s2: &'a str) -> &'a str {
+    if s1.len() > s2.len() {
+        s1
+    } else {
+        s2
+    }
 }</code></pre>
-<ul>
-<li>위 코드는 컴파일 시간에 오류를 발생시킵니다. - 빌림 검사기는 x가 변경 가능한 참조와 불변 참조가 동시에 존재하는 것을 감지합니다. - 빌림 검사기의 오류 메시지를 통해 개발자는 문제가 발생한 원인을 파악하고 코드를 수정할 수 있습니다.</li>
-</ul>
+<p>예제 2: 구조체에서 수명 표시</p>
+<pre><code class="rust">// Person 구조체는 이름을 문자열 슬라이스로 저장합니다.
+// 여기에서 사용된 'a는 구조체의 이름 필드가 참조하는 문자열 슬라이스의 수명을 나타냅니다.
+struct Person&lt;'a> {
+    name: &'a str,
+}</code></pre>
+<p>수명과 빌림 검사기:</p>
+<p>수명은 빌림 검사기가 참조가 유효한 기간 동안 값이 메모리에서 해제되지 않도록 보장하는 데 사용됩니다.</p>
+<p>대부분의 경우, 컴파일러는 수명을 자동으로 추론할 수 있습니다.</p>
+<p>그러나 복잡한 상황에서는 개발자가 수명을 명시해야 할 수도 있습니다.</p>
+<p>수명을 이해하고 올바르게 사용함으로써 Rust의 빌림 검사기가 메모리 관리를 안전하게 수행할 수 있도록 지원할 수 있습니다.</p>
+<p>이는 Rust 프로그램의 성능과 안정성에 크게 기여합니다.</p>
+<pre><code class="rust">struct Wrapper&lt;'a, T: 'a> {
+    value: &'a T,
+}
+
+impl<'a, T> Wrapper<'a, T> {
+    fn new(value: &'a T) -> Self {
+        Wrapper { value }
+    }
+}
+
+fn main() {
+    let x = 42;
+    let y = Box::new(7);
+    {
+        let wrapper = Wrapper::new(&x);
+        println!("Wrapper contains: {}", wrapper.value);
+        let wrapper2 = Wrapper::new(&y);
+        println!("Wrapper2 contains: {}", wrapper2.value);
+    } // y가 메모리에서 해제됩니다.
+} // x가 메모리에서 해제됩니다.</code></pre>
             <div class="bottomnav">
                 <span class="back"><a href="27_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="29_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
-            <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div>
+            <div class="code">
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EA%B0%80%EC%A7%80%EB%8A%94+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.+%EA%B0%81+%EC%B0%B8%EC%A1%B0%EB%8A%94+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%91%EB%8B%88%EB%8B%A4.%0Astruct+TwoRefs%3C%27a%2C+%27b%3E+%7B%0A++++ref_a%3A+%26%27a+str%2C%0A++++ref_b%3A+%26%27b+str%2C%0A%7D%0A%0A%2F%2F+%ED%95%A8%EC%88%98+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9E%85%EB%A0%A5+%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98+%EA%B8%B8%EC%9D%B4%EC%97%90+%EB%94%B0%EB%9D%BC+%EB%91%90+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%A4%91+%ED%95%98%EB%82%98%EB%A5%BC+%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%27b%3A+%27a%EB%A1%9C+%EB%91%90+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%EA%B0%84%EC%9D%98+%EA%B4%80%EA%B3%84%EB%A5%BC+%EC%84%A4%EC%A0%95%ED%95%B4%EC%84%9C%0A%2F%2F+%27b+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%80+%27a+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EB%B3%B4%EB%8B%A4+%EA%B8%B8%EA%B1%B0%EB%82%98+%EA%B0%99%EC%95%84%EC%95%BC+%ED%95%A9%EB%8B%88%EB%8B%A4.%0Afn+choose_str%3C%27a%2C+%27b%3A+%27a%3E%28str_a%3A+%26%27a+str%2C+str_b%3A+%26%27b+str%29+-%3E+%26%27a+str+%7B%0A++++if+str_a.len%28%29+%3E+str_b.len%28%29+%7B%0A++++++++str_a%0A++++%7D+else+%7B%0A++++++++str_b%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%83%9D%EC%84%B1%0A++++let+a+%3D+String%3A%3Afrom%28%22%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94.%22%29%3B%0A++++let+b+%3D+String%3A%3Afrom%28%22%EB%B0%98%EA%B0%91%EC%8A%B5%EB%8B%88%EB%8B%A4.%22%29%3B%0A%0A++++%7B%0A++++++++%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%84%9C%EB%A1%9C+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%84+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%83%9D%EC%84%B1%0A++++++++let+c+%3D+%22%EC%97%AC%EA%B8%B0%EC%84%9C+%EB%A7%8C%EB%82%98%EC%84%9C+%EB%B0%98%EA%B0%80%EC%9B%8C%EC%9A%94%21%22%3B%0A++++++++let+two_refs+%3D+TwoRefs+%7B%0A++++++++++++ref_a%3A+%26a%2C%0A++++++++++++ref_b%3A+%26c%2C%0A++++++++%7D%3B%0A%0A++++++++%2F%2F+%ED%95%A8%EC%88%98+%ED%98%B8%EC%B6%9C%0A++++++++let+longest_str+%3D+choose_str%28two_refs.ref_a%2C+two_refs.ref_b%29%3B%0A++++++++println%21%28%22%EA%B0%80%EC%9E%A5+%EA%B8%B4+%EB%AC%B8%EC%9E%90%EC%97%B4%3A+%7B%7D%22%2C+longest_str%29%3B%0A++++%7D%0A%0A++++%2F%2F+%EC%97%AC%EA%B8%B0%EC%84%9C+two_refs%EB%8A%94+%EC%82%AC%EB%9D%BC%EC%A7%80%EA%B3%A0%2C+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%27a%EC%99%80+%27b%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%A1%B4%EC%9E%AC%ED%95%98%EC%A7%80+%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            </div>
         </div>
         <script>
         var pres = document.querySelectorAll("pre>code");
diff --git a/docs/29_ko.html b/docs/29_ko.html
index a6c995d914dc1cd5c7318b53ce8452979db0d5f6..bf3577a3622947ba00882948e21a90b3db6e926e 100644
--- a/docs/29_ko.html
+++ b/docs/29_ko.html
@@ -35,8 +35,33 @@
                 <span class="toc"><a href="TOC_ko.html">목차</a></span>
             </div>
             <div class="page">
-            <h1>소유권</h1>
-            <p>gff</p>
+            <h1>빌림 검사기</h1>
+            <p><strong>🎯 Borrow checker</strong></p>
+<p>빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하여 메모리 안전성을 보장하는 방법을 설명합니다.</p>
+<p>빌림 검사기는 초기화와 이동을 추적할 뿐 아니라 수명 추론(lifetime inference)도 처리합니다. </p>
+<p>Rust는 lifetime이라는 단어를 두 가지 다른 방식으로 사용합니다.</p>
+<ol>
+<li>첫 번째는 값을 가리키는 수명입: 값이 해제되기 전까지의 시간을 의미</li>
+<li>값의 수명을 가리키는 또 다른 단어는 변수 범위(scope)</li>
+</ol>
+<p>빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하는 방법 설명:</p>
+<p>Rust의 빌림 검사기는 컴파일 시간에 참조 규칙을 적용하여 메모리 안전성을 보장합니다.</p>
+<p>이를 통해 런타임에 발생할 수 있는 메모리 누수, 데이터 경쟁 등의 문제를 사전에 방지할 수 있습니다.</p>
+<p>빌림 검사기가 코드 내 참조의 수명을 분석하는 방법 설명:</p>
+<p>빌림 검사기는 함수, 구조체 및 코드 내에서 참조의 수명을 추적하고 분석합니다.</p>
+<p>이를 통해, 참조의 수명이 끝난 이후에도 사용되거나, 다른 참조가 유효하지 않은 상태에서 접근하는 것을 방지합니다.</p>
+<p>빌림 검사기가 컴파일 시간에 메모리 관리 오류를 포착하는 예제:</p>
+<pre><code class="rust">fn main() {
+    let mut x = 5;
+    let y = &mut x;
+    let z = &x;
+    println!("x: {}, y: {}, z: {}", x, y, z);
+}</code></pre>
+<ul>
+<li>위 코드는 컴파일 시간에 오류를 발생시킵니다.</li>
+<li>빌림 검사기는 x가 변경 가능한 참조와 불변 참조가 동시에 존재하는 것을 감지합니다.</li>
+<li>빌림 검사기의 오류 메시지를 통해 개발자는 문제가 발생한 원인을 파악하고 코드를 수정할 수 있습니다.</li>
+</ul>
             <div class="bottomnav">
                 <span class="back"><a href="28_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="30_ko.html" rel="next">다음 ❯</a></span>
diff --git a/docs/30_ko.html b/docs/30_ko.html
index 7f4d4e8cf919abfaf98a28f17c06edd45d7cb310..cd5823460b2290434f17b2927b3c1a801acca34a 100644
--- a/docs/30_ko.html
+++ b/docs/30_ko.html
@@ -36,14 +36,35 @@
             </div>
             <div class="page">
             <h1>Chapter 2 - Conclusion</h1>
-            <p>gff</p>
+            <p>Rust의 핵심 개념인 소유권, 빌림, 그리고 빌림 검사기에 대해 배웠습니다.</p>
+<p>이러한 개념들은 Rust의 메모리 관리 체계의 핵심이며, 이를 이해하고 올바르게 사용함으로써 메모리 안전성과 효율성을 높일 수 있습니다/</p>
+<p>Rust의 강력한 컴파일러와 빌림 검사기는 코드가 메모리 안전성을 보장하도록 도와줍니다.</p>
+<div> <button type="button" class="collapsible">정답 보기</button> <div class="content"> <p>오류의 원인은 변수 s에 대한 변경 가능한 참조(r3)와 변경 불가능한 참조(r1과 r2)가 동시에 존재하기 때문입니다.
+
+Rust의 빌림 규칙에 따라, 한 번에 여러 개의 변경 불가능한 참조가 허용되지만, 변경 가능한 참조가 있는 동안에는 다른 참조가 허용되지 않습니다.</p>
+
+<pre><code class="rust">fn main() {
+    let mut s = String::from("hello");
+    {
+        let r1 = &s;
+        let r2 = &s;
+        println!("r1: {}, r2: {}", r1, r2);
+    }
+    let r3 = &mut s;
+    println!("r3: {}", r3);
+}</code></pre>
+<p> 위 수정된 코드에서는 r1과 r2가 사용되는 범위를 별도의 블록으로 감싸서 변경 불가능한 참조들의 수명을 줄였습니다.
+
+이렇게 하면 r3를 선언할 때 변경 불가능한 참조들이 이미 끝났기 때문에 컴파일 오류가 발생하지 않습니다.
+
+이렇게 수명을 조절하면 Rust의 빌림 규칙을 준수하면서 안전한 코드를 작성할 수 있습니다. </p> </div> </div>
             <div class="bottomnav">
                 <span class="back"><a href="29_ko.html" rel="prev">❮ 이전</a></span>
                 <span class="next"><a href="chapter_3_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
             <div class="code">
-            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%2C+%EB%B9%8C%EB%A6%BC%2C+%EC%B0%B8%EC%A1%B0%2C+%EB%B2%94%EC%9C%84+%EB%93%B1%EC%9D%98+%EA%B8%B0%EB%8A%A5%EC%9D%84+%ED%95%9C+%EB%B2%88%EC%97%90+%EC%82%AC%EC%9A%A9%0D%0A%23%5Bderive%28Debug%29%5D%0D%0Astruct+MyStruct+%7B%0D%0A++++data%3A+String%2C%0D%0A%7D%0D%0A%0D%0Afn+print_and_modify%28s%3A+%26mut+MyStruct%29+%7B%0D%0A++++println%21%28%22%5Ct%3E+MyStruct%EB%A5%BC+%EC%B0%B8%EC%A1%B0%3A+%7B%3A%3F%7D%22%2C+s%29%3B%0D%0A++++s.data.push_str%28%22+%EC%88%98%EC%A0%95%EB%90%A8%22%29%3B%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+mut+my_struct1+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct1%22%29%2C%0D%0A++++%7D%3B%0D%0A%0D%0A++++let+mut+my_struct2+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct2%22%29%2C%0D%0A++++%7D%3B%0D%0A%0D%0A++++%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%3A+%7B%3A%3F%7D%22%2C+%26my_struct1%29%3B%0D%0A%0D%0A++++%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%88%98%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++print_and_modify%28%26mut+my_struct1%29%3B%0D%0A++++println%21%28%22%EC%88%98%EC%A0%95%EB%90%9C+MyStruct1%3A+%7B%3A%3F%7D%22%2C+my_struct1%29%3B%0D%0A%0D%0A++++%2F%2F+%EB%B2%94%EC%9C%84%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%B9%8C%EB%A6%BC%EC%9D%98+%EA%B7%9C%EC%B9%99%EC%9D%84+%EB%B3%B4%EC%97%AC%EC%A4%8D%EB%8B%88%EB%8B%A4.%0D%0A++++%7B%0D%0A++++++++let+mut_ref+%3D+%26mut+my_struct2%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++++++print_and_modify%28mut_ref%29%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%ED%95%A8%EC%88%98%EC%97%90+%EC%A0%84%EB%8B%AC%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++++++%2F%2F+%EC%9D%B4+%EC%A7%80%EC%A0%90%EC%97%90%EC%84%9C+mut_ref%EB%A5%BC+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++%7D%0D%0A%0D%0A++++%2F%2F+%EB%B2%94%EC%9C%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%9C+%ED%9B%84%EC%97%90%EB%8A%94+%EC%9B%90%EB%9E%98+%EB%B3%80%EC%88%98%EB%A5%BC+%EB%8B%A4%EC%8B%9C+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EC%88%98%EC%A0%95%EB%90%9C+MyStruct2%3A+%7B%3A%3F%7D%22%2C+my_struct2%29%3B%0D%0A%0D%0A++++%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EC%9D%B4%EB%8F%99%EC%8B%9C%ED%82%B5%EB%8B%88%EB%8B%A4.%0D%0A++++let+my_struct3+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct3%22%29%2C%0D%0A++++%7D%3B%0D%0A++++let+my_struct4+%3D+my_struct3%3B+%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EC%9D%B4%EB%8F%99%EC%8B%9C%ED%82%B5%EB%8B%88%EB%8B%A4.%0D%0A++++%2F%2F+%EC%9D%B4%EC%A0%9C+my_struct3%EC%9D%80+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%B4+%EC%9D%B4%EB%8F%99%EB%90%9C+MyStruct4%3A+%7B%3A%3F%7D%22%2C+my_struct4%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A++++let+r1+%3D+%26s%3B%0D%0A++++let+r2+%3D+%26s%3B%0D%0A++++let+r3+%3D+%26mut+s%3B+%2F%2F+%EC%BB%B4%ED%8C%8C%EC%9D%BC+%EC%98%A4%EB%A5%98+%EC%97%AC%EB%B6%80+%ED%99%95%EC%9D%B8%0D%0A++++println%21%28%22r1%3A+%7B%7D%2C+r2%3A+%7B%7D%2C+r3%3A+%7B%7D%22%2C+r1%2C+r2%2C+r3%29%3B%0D%0A%7D%0D%0A%0D%0Afn+modify_string%28s%3A+%26mut+String%29+%7B%0D%0A++++s.push_str%28%22+world%22%29%3B%0D%0A%7D%0D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
             </div>
         </div>
         <script>
diff --git a/docs/TOC_ko.html b/docs/TOC_ko.html
index 760a8bbf83867c5f990909db9ea9753c16f33243..c12b814cb8a8968829172022bdb439ef1a130869 100644
--- a/docs/TOC_ko.html
+++ b/docs/TOC_ko.html
@@ -52,21 +52,21 @@
 <li><a href="12_ko.html">Basic Type Conversion</a></li>
 <li><a href="13_ko.html">Constants</a></li>
 <li><a href="14_ko.html">if, while, for</a></li>
-<li><a href="15_ko.html">Arrays</a></li>
-<li><a href="16_ko.html">Functions</a></li>
-<li><a href="17_ko.html">Multiple Return Values</a></li>
-<li><a href="18_ko.html">match</a></li>
-<li><a href="19_ko.html">Struct and Enum</a></li>
-<li><a href="20_ko.html">Returning Nothing</a></li>
-<li><a href="21_ko.html">Error handling</a></li>
-<li><a href="22_ko.html">Chapter 1 - 마무리</a></li>
+<li><a href="15_ko.html">Scope</a></li>
+<li><a href="16_ko.html">Arrays</a></li>
+<li><a href="17_ko.html">Functions</a></li>
+<li><a href="18_ko.html">Multiple Return Values</a></li>
+<li><a href="19_ko.html">match</a></li>
+<li><a href="20_ko.html">Struct and Enum</a></li>
+<li><a href="21_ko.html">Returning Nothing</a></li>
+<li><a href="22_ko.html">Error handling</a></li>
+<li><a href="23_ko.html">Chapter 1 - 마무리</a></li>
 </ul><h3><a href="chapter_2_ko.html">Chapter 2 - Ownership</a></h3><ul>
-<li><a href="24_ko.html">소유권과 빌림 검사기</a></li>
-<li><a href="25_ko.html">소유권</a></li>
-<li><a href="26_ko.html">빌림</a></li>
-<li><a href="27_ko.html">수명</a></li>
-<li><a href="28_ko.html">빌림</a></li>
-<li><a href="29_ko.html">소유권</a></li>
+<li><a href="25_ko.html">소유권과 빌림 검사기</a></li>
+<li><a href="26_ko.html">소유권</a></li>
+<li><a href="27_ko.html">빌림</a></li>
+<li><a href="28_ko.html">라이프타임: 참조의 유효 기간 이해하기</a></li>
+<li><a href="29_ko.html">빌림 검사기</a></li>
 <li><a href="30_ko.html">Chapter 2 - Conclusion</a></li>
 </ul><h3><a href="chapter_3_ko.html">Chapter 3 - Generic, Trait</a></h3><ul>
 <li><a href="32_ko.html">Hey</a></li>
diff --git a/docs/chapter_2_ko.html b/docs/chapter_2_ko.html
index 4f8184767238bf14bc0bc6c4b8544ab9af1b9504..71af489fe4369b55ea563daeeea4da5bae20ac7d 100644
--- a/docs/chapter_2_ko.html
+++ b/docs/chapter_2_ko.html
@@ -49,7 +49,8 @@
 <li>이러한 문제는 프로그램의 안정성과 성능에 심각한 영향을 미칩니다.</li></ol></li>
 <li>가비지 컬렉터 소개:<ol>
 <li>가비지 컬렉터는 메모리 관리를 자동화하여 개발자가 메모리 할당 및 해제를 신경 쓰지 않아도 되게 하는 기술입니다.</li>
-<li>사용하지 않는 메모리를 자동으로 회수하여 메모리 누수를 방지할 수 있습니다.</li></ol></li>
+<li>사용하지 않는 메모리를 자동으로 회수하여 메모리 누수를 방지할 수 있습니다.</li>
+<li>Java 11+ ZGC (&lt; 10ms STOP THE WORLD)</li></ol></li>
 <li>가비지 컬렉터의 단점:<ol>
 <li>가비지 컬렉터의 주요 단점은 성능 오버헤드입니다.</li>
 <li>가비지 컬렉터가 메모리를 추적하고 회수하는 과정에서 시스템 리소스가 소모됩니다.</li>
@@ -58,11 +59,13 @@
 <p>이러한 문제들에 대한 해결책으로 Rust는 소유권, 빌림, 그리고 수명을 기반으로 한 메모리 관리 시스템을 도입하였습니다.</p>
 <p>이를 통해 컴파일 시간에 메모리 안전성을 보장하며, 가비지 컬렉터의 성능 오버헤드를 피할 수 있습니다.</p>
             <div class="bottomnav">
-                <span class="back"><a href="22_ko.html" rel="prev">❮ 이전</a></span>
-                <span class="next"><a href="24_ko.html" rel="next">다음 ❯</a></span>
+                <span class="back"><a href="23_ko.html" rel="prev">❮ 이전</a></span>
+                <span class="next"><a href="25_ko.html" rel="next">다음 ❯</a></span>
             </div>
             </div>
-            <div class="code"><center><img src="/ferris.webp" alt="Rust Tutorial" width="300" height="100%"></center></div>
+            <div class="code">
+            <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=use+std%3A%3Acell%3A%3ARefCell%3B%0D%0Ause+std%3A%3Arc%3A%3ARc%3B%0D%0A%0D%0A%23%5Bderive%28Debug%29%5D%0D%0Astruct+Node+%7B%0D%0A++++value%3A+i32%2C%0D%0A++++children%3A+RefCell%3CVec%3CRc%3CNode%3E%3E%3E%2C%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+first+%3D+Rc%3A%3Anew%28Node+%7B%0D%0A++++++++value%3A+1%2C%0D%0A++++++++children%3A+RefCell%3A%3Anew%28vec%21%5B%5D%29%2C%0D%0A++++%7D%29%3B%0D%0A%0D%0A++++let+second+%3D+Rc%3A%3Anew%28Node+%7B%0D%0A++++++++value%3A+2%2C%0D%0A++++++++children%3A+RefCell%3A%3Anew%28vec%21%5BRc%3A%3Aclone%28%26first%29%5D%29%2C%0D%0A++++%7D%29%3B%0D%0A%0D%0A++++first.children.borrow_mut%28%29.push%28Rc%3A%3Aclone%28%26second%29%29%3B%0D%0A%0D%0A++++%2F%2F+The+memory+allocated+for+first+and+second+will+not+be+freed+due+to+the+reference+cycle.%0D%0A%7D%0D%0A%0D%0A%2F*%0D%0AThe+following+memory+was+leaked%3A+alloc1540+%28Rust+heap%2C+size%3A+56%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+01+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x10+%E2%94%82+00+00+00+00+00+00+00+00+04+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x20+%E2%94%82+%E2%95%BE0x2aa60%5Ba1939%5D%3C3807%3E%E2%94%80%E2%95%BC+01+00+00+00+00+00+00+00+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC........%0D%0A++++0x30+%E2%94%82+01+00+00+00+__+__+__+__+++++++++++++++++++++++++%E2%94%82+....%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0Aalloc1609+%28Rust+heap%2C+size%3A+8%2C+align%3A+8%29+%7B%0D%0A++++%E2%95%BE0x286f8%5Ba1540%5D%3C2981%3E%E2%94%80%E2%95%BC+++++++++++++++++++++++++%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC%0D%0A%7D%0D%0Aalloc1750+%28Rust+heap%2C+size%3A+56%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+01+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x10+%E2%94%82+00+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x20+%E2%94%82+%E2%95%BE0x28cc0%5Ba1609%5D%3C3235%3E%E2%94%80%E2%95%BC+01+00+00+00+00+00+00+00+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC........%0D%0A++++0x30+%E2%94%82+02+00+00+00+__+__+__+__+++++++++++++++++++++++++%E2%94%82+....%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0Aalloc1939+%28Rust+heap%2C+size%3A+32%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+%E2%95%BE0x299f0%5Ba1750%5D%3C3432%3E%E2%94%80%E2%95%BC+__+__+__+__+__+__+__+__+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A++++0x10+%E2%94%82+__+__+__+__+__+__+__+__+__+__+__+__+__+__+__+__+%E2%94%82+%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0A*%2F" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            </div>
         </div>
         <script>
         var pres = document.querySelectorAll("pre>code");
diff --git a/frontend/lessons/ko/chapter_1.yaml b/frontend/lessons/ko/chapter_1.yaml
index fdfafbd09093fcde93a95c497a211c048a6aa68e..331aae1779aecdce7882f5b2b226e61054796cfc 100644
--- a/frontend/lessons/ko/chapter_1.yaml
+++ b/frontend/lessons/ko/chapter_1.yaml
@@ -428,6 +428,47 @@
     - `is_prime` 이 true인 경우, 소수를 발견했으므로 해당 숫자를 출력합니다.
 
     - `number` 를 1 증가시키고, `number` 가 20보다 크면 `search` 레이블을 사용하여 loop 문을 빠져나옵니다.
+- title: Scope
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A%0D%0A++++let+r1%3B%0D%0A++++let+r2%3B%0D%0A++++let+r3%3B%0D%0A%0D%0A++++%7B%0D%0A++++++++r1+%3D+%26s%3B%0D%0A++++++++r2+%3D+%26s%3B%0D%0A++++++++println%21%28%22%EC%95%88%EC%AA%BD+inner+%EB%B2%94%EC%9C%84%2C+r1%3A+%7B%7D%2C+r2%3A+%7B%7D%22%2C+r1%2C+r2%29%3B%0D%0A++++++++%2F%2F+r1%EA%B3%BC+r2%EC%9D%98+%EB%B2%94%EC%9C%84%EB%A5%BC+%EC%97%AC%EA%B8%B0%EC%97%90%EC%84%9C+%EC%A2%85%EB%A3%8C%EC%8B%9C%ED%82%A4%EA%B8%B0+%EC%9C%84%ED%95%B4+%EC%A4%91%EA%B4%84%ED%98%B8%EB%A5%BC+%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++%7D%0D%0A%0D%0A++++%7B%0D%0A++++++++r3+%3D+%26mut+s%3B%0D%0A++++++++println%21%28%22%EC%95%88%EC%AA%BD+%EB%8B%A4%EB%A5%B8+inner+%EB%B2%94%EC%9C%84%2C+r3%3A+%7B%7D%22%2C+r3%29%3B%0D%0A++++%7D%0D%0A%0D%0A++++%2F%2F+%EC%9D%B4%EC%A0%9C+r1%EA%B3%BC+r2%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80+%EC%95%8A%EC%9C%BC%EB%AF%80%EB%A1%9C+%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C+%EC%A0%9C%EC%99%B8%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EB%B0%94%EA%B9%A5+%EC%AA%BD+inner+%EB%B2%94%EC%9C%84%2C+r3%3A+%7B%7D%22%2C+r3%29%3B%0D%0A%7D%0D%0A
+  content_markdown: >
+    *범위*
+
+
+    범위는 프로그램 내에서 변수가 유효한 영역을 정의합니다.
+
+
+    %rust%
+    fn main() {
+        let x = 10;
+
+        {
+            let y = 20;
+            println!("Inside the inner scope, x: {}, y: {}", x, y);
+        }
+
+        println!("Outside the inner scope, x: {}", x);
+        // println!("Outside the inner scope, y: {}", y); // This will cause a compile error
+    }
+    %end%
+
+
+    우측 예제에서는 r1, r2, r3라는 세 개의 참조가 선언되어 있으며, 각각 두 개의 다른 범위에서 초기화됩니다.
+
+
+    첫 번째 범위에서 r1과 r2는 s에 대한 불변 참조로 초기화됩니다.
+
+
+    이 범위가 종료되면, r1과 r2에 대한 참조는 더 이상 유효하지 않습니다.
+
+
+    두 번째 범위에서는 r3가 s에 대한 변경 가능한 참조로 초기화됩니다.
+
+
+    이렇게 하면 첫 번째 범위에서의 불변 참조와 겹치지 않으므로 빌림 규칙에 위배되지 않습니다.
+
+
+    마지막으로 모든 범위가 종료된 후에는 각 참조가 각각 다른 범위에서 초기화되었기 때문에 r1, r2, r3를 함께 출력할 수 있습니다.
 - title: Arrays
   code: >-
     https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20nums%3A%20%5Bi32%3B%203%5D%20%3D%20%5B1%2C%202%2C%203%5D%3B%0A%20%20%20%20println!(%22%7B%3A%3F%7D%22%2C%20nums)%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20nums%5B1%5D)%3B%0A%7D%0A
diff --git a/frontend/lessons/ko/chapter_2.yaml b/frontend/lessons/ko/chapter_2.yaml
index 42fd79122cac40d1e766e4639d810070f497fc23..5e34aeb5f569f17202773202c4a530386b29829d 100644
--- a/frontend/lessons/ko/chapter_2.yaml
+++ b/frontend/lessons/ko/chapter_2.yaml
@@ -1,6 +1,6 @@
 - title: Chapter 2 - Ownership
-  source: >-
-    /ferris.webp
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=use+std%3A%3Acell%3A%3ARefCell%3B%0D%0Ause+std%3A%3Arc%3A%3ARc%3B%0D%0A%0D%0A%23%5Bderive%28Debug%29%5D%0D%0Astruct+Node+%7B%0D%0A++++value%3A+i32%2C%0D%0A++++children%3A+RefCell%3CVec%3CRc%3CNode%3E%3E%3E%2C%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+first+%3D+Rc%3A%3Anew%28Node+%7B%0D%0A++++++++value%3A+1%2C%0D%0A++++++++children%3A+RefCell%3A%3Anew%28vec%21%5B%5D%29%2C%0D%0A++++%7D%29%3B%0D%0A%0D%0A++++let+second+%3D+Rc%3A%3Anew%28Node+%7B%0D%0A++++++++value%3A+2%2C%0D%0A++++++++children%3A+RefCell%3A%3Anew%28vec%21%5BRc%3A%3Aclone%28%26first%29%5D%29%2C%0D%0A++++%7D%29%3B%0D%0A%0D%0A++++first.children.borrow_mut%28%29.push%28Rc%3A%3Aclone%28%26second%29%29%3B%0D%0A%0D%0A++++%2F%2F+The+memory+allocated+for+first+and+second+will+not+be+freed+due+to+the+reference+cycle.%0D%0A%7D%0D%0A%0D%0A%2F*%0D%0AThe+following+memory+was+leaked%3A+alloc1540+%28Rust+heap%2C+size%3A+56%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+01+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x10+%E2%94%82+00+00+00+00+00+00+00+00+04+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x20+%E2%94%82+%E2%95%BE0x2aa60%5Ba1939%5D%3C3807%3E%E2%94%80%E2%95%BC+01+00+00+00+00+00+00+00+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC........%0D%0A++++0x30+%E2%94%82+01+00+00+00+__+__+__+__+++++++++++++++++++++++++%E2%94%82+....%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0Aalloc1609+%28Rust+heap%2C+size%3A+8%2C+align%3A+8%29+%7B%0D%0A++++%E2%95%BE0x286f8%5Ba1540%5D%3C2981%3E%E2%94%80%E2%95%BC+++++++++++++++++++++++++%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC%0D%0A%7D%0D%0Aalloc1750+%28Rust+heap%2C+size%3A+56%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+01+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x10+%E2%94%82+00+00+00+00+00+00+00+00+01+00+00+00+00+00+00+00+%E2%94%82+................%0D%0A++++0x20+%E2%94%82+%E2%95%BE0x28cc0%5Ba1609%5D%3C3235%3E%E2%94%80%E2%95%BC+01+00+00+00+00+00+00+00+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC........%0D%0A++++0x30+%E2%94%82+02+00+00+00+__+__+__+__+++++++++++++++++++++++++%E2%94%82+....%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0Aalloc1939+%28Rust+heap%2C+size%3A+32%2C+align%3A+8%29+%7B%0D%0A++++0x00+%E2%94%82+%E2%95%BE0x299f0%5Ba1750%5D%3C3432%3E%E2%94%80%E2%95%BC+__+__+__+__+__+__+__+__+%E2%94%82+%E2%95%BE%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%95%BC%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A++++0x10+%E2%94%82+__+__+__+__+__+__+__+__+__+__+__+__+__+__+__+__+%E2%94%82+%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%E2%96%91%0D%0A%7D%0D%0A*%2F
   content_markdown: >
     <div align="center">
     <p>
@@ -25,6 +25,7 @@
     2. 가비지 컬렉터 소개:
         1. 가비지 컬렉터는 메모리 관리를 자동화하여 개발자가 메모리 할당 및 해제를 신경 쓰지 않아도 되게 하는 기술입니다.
         2. 사용하지 않는 메모리를 자동으로 회수하여 메모리 누수를 방지할 수 있습니다.
+        3. Java 11+ ZGC (< 10ms STOP THE WORLD)
     3. 가비지 컬렉터의 단점:
         1. 가비지 컬렉터의 주요 단점은 성능 오버헤드입니다.
         2. 가비지 컬렉터가 메모리를 추적하고 회수하는 과정에서 시스템 리소스가 소모됩니다.
@@ -65,7 +66,7 @@
   code: >-
     https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%60drop%60+%ED%95%A8%EC%88%98+%EC%86%8C%EA%B0%9C%3A%0A%2F%2F+Rust%EC%97%90%EC%84%9C%EB%8A%94+%EA%B0%92%EC%9D%B4+%EB%B2%94%EC%9C%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%A0+%EB%95%8C+%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+drop+%ED%95%A8%EC%88%98%EB%8A%94+%EB%A9%94%EB%AA%A8%EB%A6%AC%EB%A5%BC+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%ED%95%98%EB%8A%94+%EC%97%AD%ED%95%A0%EC%9D%84+%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9D%B4%EB%A5%BC+%ED%86%B5%ED%95%B4+%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80+%EC%A7%81%EC%A0%91+%EB%A9%94%EB%AA%A8%EB%A6%AC+%ED%95%B4%EC%A0%9C%EB%A5%BC+%EA%B4%80%EB%A6%AC%ED%95%A0+%ED%95%84%EC%9A%94%EA%B0%80+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0Astruct+CustomStruct+%7B%0A++++data%3A+String%2C%0A%7D%0A%0Aimpl+Drop+for+CustomStruct+%7B%0A++++fn+drop%28%26mut+self%29+%7B%0A++++++++println%21%28%22Dropping+CustomStruct+with+data%3A+%7B%7D%22%2C+self.data%29%3B%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++let+custom+%3D+CustomStruct+%7B%0A++++++++data%3A+String%3A%3Afrom%28%22hello%22%29%2C%0A++++%7D%3B%0A++++println%21%28%22Created+CustomStruct+with+data%3A+%7B%7D%22%2C+custom.data%29%3B%0A++++%2F%2F+custom%EC%9D%80+%EC%9D%B4+%EC%8A%A4%EC%BD%94%ED%94%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%98%EB%A9%B4%EC%84%9C+drop+%ED%95%A8%EC%88%98%EA%B0%80+%ED%98%B8%EC%B6%9C%EB%90%98%EC%96%B4+%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B0%80+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%ED%95%B4%EC%A0%9C%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%7D%0A
   content_markdown: >
-    **Ownership**
+    **🎯 Ownership**
 
 
     소유권 정의: Rust에서 각 값은 하나의 소유자를 가지며, 소유자가 범위를 벗어나면 값이 할당 해제됩니다.
@@ -136,19 +137,95 @@
 
 
     이로 인해 메모리 누수나 세그멘테이션 폴트와 같은 문제를 효과적으로 방지할 수 있습니다.
+
+
+    ---
+
+
+    # Advanced
+
+
+    ## `clone` 메서드를 사용한 소유권 이전 방지
+
+    %rust%
+    let s1 = String::from("hello");
+    let s2 = s1.clone();
+    %end%
+
+
+
+
+    ## 함수로 소유권 이전 후 반환
+
+    %rust%
+    fn takes_and_gives_back(s: String) -> String {
+        s
+    }
+
+
+    fn main() {
+        let s1 = String::from("hello");
+        let s2 = takes_and_gives_back(s1);
+        // 이제 s2를 사용할 수 있지만, s1은 여전히 사용할 수 없습니다.
+    }
+    %end%
+
 - title: 빌림
-  source: >-
-    /ajou.webp
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A++++let+s_immutable_borrow+%3D+%26s%3B%0D%0A++++%7B%0D%0A++++++++let+s_mutable_borrow+%3D+%26mut+s%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EA%B0%80+%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94+%EB%8F%99%EC%95%88+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%0D%0A++++++++replace_content%28s_mutable_borrow%2C+%22world%22%29%3B%0D%0A++++%7D%0D%0A++++println%21%28%22New+String+%27%7B%7D%27.%22%2C+s_immutable_borrow%29%3B+%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EA%B0%80+%EC%97%AC%EC%A0%84%ED%9E%88+%EC%9C%A0%ED%9A%A8%ED%95%9C+%EC%83%81%ED%83%9C%EC%97%90%EC%84%9C+%EC%82%AC%EC%9A%A9%EB%90%A9%EB%8B%88%EB%8B%A4.%0D%0A%7D%0D%0A%0D%0Afn+replace_content%28s%3A+%26mut+String%2C+new_content%3A+%26str%29+%7B%0D%0A++++s.clear%28%29%3B%0D%0A++++s.push_str%28new_content%29%3B%0D%0A%7D%0D%0A
   content_markdown: >
-    **Borrowing**
-- title: 수명
+    **🎯 Borrowing**
+
+
+    빌림(borrowing) 개념은 Rust에서 소유권을 이전하지 않고, 값을 참조하거나 사용할 수 있게 해주는 기능입니다.
+
+
+    빌림은 두 가지 종류: 불변 빌림(immutable borrow), 가변 빌림(mutable borrow)
+
+
+    빌림(borrowing)에 대한 기본적인 규칙은 다음과 같습니다:
+
+
+    한 번에 `여러 개의 불변 참조`를 가져올 수 있지만,
+
+
+    가변 참조를 가져올 때는 해당 변수의 다른 참조가 없어야 합니다. (`오직 한 개의 가변 참조`)
+
+
+    이러한 규칙을 통해 Rust는 컴파일 시점에 데이터 경쟁 문제를 방지합니다.
+
+
+    가변 빌림의 예제 (mutable borrow):
+
+    %rust%
+    fn main() {
+        let mut s = String::from("hello");
+        change(&mut s);
+        println!("The new string is '{}'.", s);
+    }
+
+
+    fn change(s: &mut String) {
+        s.push_str(", world!");
+    }
+    %end%
+
+
+    빌림(borrowing) 개념을 이해하면, Rust에서 소유권을 이전하지 않고도 값을 안전하게 사용할 수 있습니다.
+
+
+    이를 통해 데이터 경쟁 문제를 방지하고, 메모리 관리에 대한 안전성을 높일 수 있습니다.
+- title: "라이프타임: 참조의 유효 기간 이해하기"
   code: >-
     https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EA%B0%80%EC%A7%80%EB%8A%94+%EA%B5%AC%EC%A1%B0%EC%B2%B4%EB%A5%BC+%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.+%EA%B0%81+%EC%B0%B8%EC%A1%B0%EB%8A%94+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%91%EB%8B%88%EB%8B%A4.%0Astruct+TwoRefs%3C%27a%2C+%27b%3E+%7B%0A++++ref_a%3A+%26%27a+str%2C%0A++++ref_b%3A+%26%27b+str%2C%0A%7D%0A%0A%2F%2F+%ED%95%A8%EC%88%98+%EC%A0%95%EC%9D%98%0A%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94+%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%2F%2F+%EC%9E%85%EB%A0%A5+%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98+%EA%B8%B8%EC%9D%B4%EC%97%90+%EB%94%B0%EB%9D%BC+%EB%91%90+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%A4%91+%ED%95%98%EB%82%98%EB%A5%BC+%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%2F%2F+%27b%3A+%27a%EB%A1%9C+%EB%91%90+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%EA%B0%84%EC%9D%98+%EA%B4%80%EA%B3%84%EB%A5%BC+%EC%84%A4%EC%A0%95%ED%95%B4%EC%84%9C%0A%2F%2F+%27b+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%80+%27a+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EB%B3%B4%EB%8B%A4+%EA%B8%B8%EA%B1%B0%EB%82%98+%EA%B0%99%EC%95%84%EC%95%BC+%ED%95%A9%EB%8B%88%EB%8B%A4.%0Afn+choose_str%3C%27a%2C+%27b%3A+%27a%3E%28str_a%3A+%26%27a+str%2C+str_b%3A+%26%27b+str%29+-%3E+%26%27a+str+%7B%0A++++if+str_a.len%28%29+%3E+str_b.len%28%29+%7B%0A++++++++str_a%0A++++%7D+else+%7B%0A++++++++str_b%0A++++%7D%0A%7D%0A%0Afn+main%28%29+%7B%0A++++%2F%2F+%EB%AC%B8%EC%9E%90%EC%97%B4+%EC%83%9D%EC%84%B1%0A++++let+a+%3D+String%3A%3Afrom%28%22%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94.%22%29%3B%0A++++let+b+%3D+String%3A%3Afrom%28%22%EB%B0%98%EA%B0%91%EC%8A%B5%EB%8B%88%EB%8B%A4.%22%29%3B%0A%0A++++%7B%0A++++++++%2F%2F+%EB%91%90+%EA%B0%9C%EC%9D%98+%EC%84%9C%EB%A1%9C+%EB%8B%A4%EB%A5%B8+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84+%EA%B0%80%EC%A7%84+%EA%B5%AC%EC%A1%B0%EC%B2%B4+%EC%83%9D%EC%84%B1%0A++++++++let+c+%3D+%22%EC%97%AC%EA%B8%B0%EC%84%9C+%EB%A7%8C%EB%82%98%EC%84%9C+%EB%B0%98%EA%B0%80%EC%9B%8C%EC%9A%94%21%22%3B%0A++++++++let+two_refs+%3D+TwoRefs+%7B%0A++++++++++++ref_a%3A+%26a%2C%0A++++++++++++ref_b%3A+%26c%2C%0A++++++++%7D%3B%0A%0A++++++++%2F%2F+%ED%95%A8%EC%88%98+%ED%98%B8%EC%B6%9C%0A++++++++let+longest_str+%3D+choose_str%28two_refs.ref_a%2C+two_refs.ref_b%29%3B%0A++++++++println%21%28%22%EA%B0%80%EC%9E%A5+%EA%B8%B4+%EB%AC%B8%EC%9E%90%EC%97%B4%3A+%7B%7D%22%2C+longest_str%29%3B%0A++++%7D%0A%0A++++%2F%2F+%EC%97%AC%EA%B8%B0%EC%84%9C+two_refs%EB%8A%94+%EC%82%AC%EB%9D%BC%EC%A7%80%EA%B3%A0%2C+%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84+%27a%EC%99%80+%27b%EB%8A%94+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%A1%B4%EC%9E%AC%ED%95%98%EC%A7%80+%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%7D%0A
   content_markdown: >
-    **Lifetime**
+    **🎯 Lifetime**
+
 
+    라이프타임은 참조가 유효한 기간 동안 해당 값이 메모리에서 해제되지 않도록 보장하는 개념입니다.
 
-    참조와 그들이 빌리는 값 사이의 관계를 나타내기 위해 수명이 사용됩니다.
+
+    이를 통해 Rust에서 참조를 안전하게 사용할 수 있습니다.
 
 
     여기선 함수 시그니처와 구조체에서 수명을 어떻게 표시하는지 보여줍니다.
@@ -157,6 +234,9 @@
     수명은 주로 빌림 검사기가 메모리 안전성을 보장하기 위한 도구로 사용되며, 컴파일러에 의해 자주 자동으로 추론된다는 것을 강조합니다.
 
 
+    ('hey: lifetime hey로 읽음)
+
+
     수명이란 무엇인가:
 
 
@@ -216,20 +296,50 @@
 
 
     이는 Rust 프로그램의 성능과 안정성에 크게 기여합니다.
-- title: 빌림
+
+
+    %rust%
+    struct Wrapper<'a, T: 'a> {
+        value: &'a T,
+    }
+
+
+    impl<'a, T> Wrapper<'a, T> {
+        fn new(value: &'a T) -> Self {
+            Wrapper { value }
+        }
+    }
+
+
+    fn main() {
+        let x = 42;
+        let y = Box::new(7);
+        {
+            let wrapper = Wrapper::new(&x);
+            println!("Wrapper contains: {}", wrapper.value);
+            let wrapper2 = Wrapper::new(&y);
+            println!("Wrapper2 contains: {}", wrapper2.value);
+        } // y가 메모리에서 해제됩니다.
+    } // x가 메모리에서 해제됩니다.
+    %end%
+- title: 빌림 검사기
   source: >-
     /ajou.webp
   content_markdown: >
-    **Borrow checker**
+    **🎯 Borrow checker**
 
 
     빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하여 메모리 안전성을 보장하는 방법을 설명합니다.
 
 
-    빌림 검사기는 코드 내 참조의 수명을 분석함으로써 작동한다는 것을 설명합니다.
+    빌림 검사기는 초기화와 이동을 추적할 뿐 아니라 수명 추론(lifetime inference)도 처리합니다. 
 
 
-    빌림 검사기가 컴파일 시간에 메모리 관리 오류를 포착하는 방법을 예제를 통해 보여줍니다.
+     Rust는 lifetime이라는 단어를 두 가지 다른 방식으로 사용합니다.
+     
+     
+     1. 첫 번째는 값을 가리키는 수명입: 값이 해제되기 전까지의 시간을 의미
+     2. 값의 수명을 가리키는 또 다른 단어는 변수 범위(scope)
 
 
     빌림 검사기가 컴파일 시간에 빌림 규칙을 적용하는 방법 설명:
@@ -262,16 +372,55 @@
     }
     %end%
 
+
     - 위 코드는 컴파일 시간에 오류를 발생시킵니다.
+
     - 빌림 검사기는 x가 변경 가능한 참조와 불변 참조가 동시에 존재하는 것을 감지합니다.
+
     - 빌림 검사기의 오류 메시지를 통해 개발자는 문제가 발생한 원인을 파악하고 코드를 수정할 수 있습니다.
-- title: 소유권
-  source: >-
-    /ajou.webp
-  content_markdown: >
-    gff
 - title: Chapter 2 - Conclusion
   code: >-
-    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%2C+%EB%B9%8C%EB%A6%BC%2C+%EC%B0%B8%EC%A1%B0%2C+%EB%B2%94%EC%9C%84+%EB%93%B1%EC%9D%98+%EA%B8%B0%EB%8A%A5%EC%9D%84+%ED%95%9C+%EB%B2%88%EC%97%90+%EC%82%AC%EC%9A%A9%0D%0A%23%5Bderive%28Debug%29%5D%0D%0Astruct+MyStruct+%7B%0D%0A++++data%3A+String%2C%0D%0A%7D%0D%0A%0D%0Afn+print_and_modify%28s%3A+%26mut+MyStruct%29+%7B%0D%0A++++println%21%28%22%5Ct%3E+MyStruct%EB%A5%BC+%EC%B0%B8%EC%A1%B0%3A+%7B%3A%3F%7D%22%2C+s%29%3B%0D%0A++++s.data.push_str%28%22+%EC%88%98%EC%A0%95%EB%90%A8%22%29%3B%0D%0A%7D%0D%0A%0D%0Afn+main%28%29+%7B%0D%0A++++let+mut+my_struct1+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct1%22%29%2C%0D%0A++++%7D%3B%0D%0A%0D%0A++++let+mut+my_struct2+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct2%22%29%2C%0D%0A++++%7D%3B%0D%0A%0D%0A++++%2F%2F+%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EB%B6%88%EB%B3%80+%EC%B0%B8%EC%A1%B0%3A+%7B%3A%3F%7D%22%2C+%26my_struct1%29%3B%0D%0A%0D%0A++++%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%88%98%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++print_and_modify%28%26mut+my_struct1%29%3B%0D%0A++++println%21%28%22%EC%88%98%EC%A0%95%EB%90%9C+MyStruct1%3A+%7B%3A%3F%7D%22%2C+my_struct1%29%3B%0D%0A%0D%0A++++%2F%2F+%EB%B2%94%EC%9C%84%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%B9%8C%EB%A6%BC%EC%9D%98+%EA%B7%9C%EC%B9%99%EC%9D%84+%EB%B3%B4%EC%97%AC%EC%A4%8D%EB%8B%88%EB%8B%A4.%0D%0A++++%7B%0D%0A++++++++let+mut_ref+%3D+%26mut+my_struct2%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++++++print_and_modify%28mut_ref%29%3B+%2F%2F+%EA%B0%80%EB%B3%80+%EC%B0%B8%EC%A1%B0%EB%A5%BC+%ED%95%A8%EC%88%98%EC%97%90+%EC%A0%84%EB%8B%AC%ED%95%A9%EB%8B%88%EB%8B%A4.%0D%0A++++++++%2F%2F+%EC%9D%B4+%EC%A7%80%EC%A0%90%EC%97%90%EC%84%9C+mut_ref%EB%A5%BC+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++%7D%0D%0A%0D%0A++++%2F%2F+%EB%B2%94%EC%9C%84%EB%A5%BC+%EB%B2%97%EC%96%B4%EB%82%9C+%ED%9B%84%EC%97%90%EB%8A%94+%EC%9B%90%EB%9E%98+%EB%B3%80%EC%88%98%EB%A5%BC+%EB%8B%A4%EC%8B%9C+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EC%88%98%EC%A0%95%EB%90%9C+MyStruct2%3A+%7B%3A%3F%7D%22%2C+my_struct2%29%3B%0D%0A%0D%0A++++%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EC%9D%B4%EB%8F%99%EC%8B%9C%ED%82%B5%EB%8B%88%EB%8B%A4.%0D%0A++++let+my_struct3+%3D+MyStruct+%7B%0D%0A++++++++data%3A+String%3A%3Afrom%28%22MyStruct3%22%29%2C%0D%0A++++%7D%3B%0D%0A++++let+my_struct4+%3D+my_struct3%3B+%2F%2F+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84+%EC%9D%B4%EB%8F%99%EC%8B%9C%ED%82%B5%EB%8B%88%EB%8B%A4.%0D%0A++++%2F%2F+%EC%9D%B4%EC%A0%9C+my_struct3%EC%9D%80+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%0D%0A++++println%21%28%22%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%B4+%EC%9D%B4%EB%8F%99%EB%90%9C+MyStruct4%3A+%7B%3A%3F%7D%22%2C+my_struct4%29%3B%0D%0A%7D%0D%0A
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn+main%28%29+%7B%0D%0A++++let+mut+s+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0D%0A++++let+r1+%3D+%26s%3B%0D%0A++++let+r2+%3D+%26s%3B%0D%0A++++let+r3+%3D+%26mut+s%3B+%2F%2F+%EC%BB%B4%ED%8C%8C%EC%9D%BC+%EC%98%A4%EB%A5%98+%EC%97%AC%EB%B6%80+%ED%99%95%EC%9D%B8%0D%0A++++println%21%28%22r1%3A+%7B%7D%2C+r2%3A+%7B%7D%2C+r3%3A+%7B%7D%22%2C+r1%2C+r2%2C+r3%29%3B%0D%0A%7D%0D%0A%0D%0Afn+modify_string%28s%3A+%26mut+String%29+%7B%0D%0A++++s.push_str%28%22+world%22%29%3B%0D%0A%7D%0D%0A
   content_markdown: >
-    gff
+    Rust의 핵심 개념인 소유권, 빌림, 그리고 빌림 검사기에 대해 배웠습니다.
+
+
+    이러한 개념들은 Rust의 메모리 관리 체계의 핵심이며, 이를 이해하고 올바르게 사용함으로써 메모리 안전성과 효율성을 높일 수 있습니다/
+
+
+    Rust의 강력한 컴파일러와 빌림 검사기는 코드가 메모리 안전성을 보장하도록 도와줍니다.
+
+
+    <div>
+    <button type="button" class="collapsible">정답 보기</button>
+    <div class="content">
+    <p>오류의 원인은 변수 s에 대한 변경 가능한 참조(r3)와 변경 불가능한 참조(r1과 r2)가 동시에 존재하기 때문입니다.
+
+
+    Rust의 빌림 규칙에 따라, 한 번에 여러 개의 변경 불가능한 참조가 허용되지만, 변경 가능한 참조가 있는 동안에는 다른 참조가 허용되지 않습니다.</p>
+
+
+    %rust%
+    fn main() {
+        let mut s = String::from("hello");
+        {
+            let r1 = &s;
+            let r2 = &s;
+            println!("r1: {}, r2: {}", r1, r2);
+        }
+        let r3 = &mut s;
+        println!("r3: {}", r3);
+    }
+    %end%
+
+    <p>
+    위 수정된 코드에서는 r1과 r2가 사용되는 범위를 별도의 블록으로 감싸서 변경 불가능한 참조들의 수명을 줄였습니다.
+
+
+    이렇게 하면 r3를 선언할 때 변경 불가능한 참조들이 이미 끝났기 때문에 컴파일 오류가 발생하지 않습니다.
+
+
+    이렇게 수명을 조절하면 Rust의 빌림 규칙을 준수하면서 안전한 코드를 작성할 수 있습니다.
+    </p>
+    </div>
+    </div>
diff --git a/package-lock.json b/package-lock.json
index 5808328786e86b163195856cc7c11b649118982c..c6f33e214919df8bfda7cb1cb45722cf70590efc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "rust",
-  "version": "1.0.0",
+  "version": "1.0.4",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "rust",
-      "version": "1.0.0",
+      "version": "1.0.4",
       "dependencies": {
         "js-yaml": "^4.1.0",
         "showdown": "^2.1.0"
@@ -22,9 +22,9 @@
       }
     },
     "node_modules/@eslint-community/eslint-utils": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
-      "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
       "dev": true,
       "dependencies": {
         "eslint-visitor-keys": "^3.3.0"
@@ -37,23 +37,23 @@
       }
     },
     "node_modules/@eslint-community/regexpp": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
-      "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
+      "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
       "dev": true,
       "engines": {
         "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
       }
     },
     "node_modules/@eslint/eslintrc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
-      "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+      "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
       "dev": true,
       "dependencies": {
         "ajv": "^6.12.4",
         "debug": "^4.3.2",
-        "espree": "^9.5.0",
+        "espree": "^9.5.1",
         "globals": "^13.19.0",
         "ignore": "^5.2.0",
         "import-fresh": "^3.2.1",
@@ -69,9 +69,9 @@
       }
     },
     "node_modules/@eslint/js": {
-      "version": "8.36.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
-      "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+      "version": "8.38.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz",
+      "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
       "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -805,15 +805,15 @@
       }
     },
     "node_modules/eslint": {
-      "version": "8.36.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
-      "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+      "version": "8.38.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz",
+      "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
       "dev": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.4.0",
-        "@eslint/eslintrc": "^2.0.1",
-        "@eslint/js": "8.36.0",
+        "@eslint/eslintrc": "^2.0.2",
+        "@eslint/js": "8.38.0",
         "@humanwhocodes/config-array": "^0.11.8",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@nodelib/fs.walk": "^1.2.8",
@@ -824,8 +824,8 @@
         "doctrine": "^3.0.0",
         "escape-string-regexp": "^4.0.0",
         "eslint-scope": "^7.1.1",
-        "eslint-visitor-keys": "^3.3.0",
-        "espree": "^9.5.0",
+        "eslint-visitor-keys": "^3.4.0",
+        "espree": "^9.5.1",
         "esquery": "^1.4.2",
         "esutils": "^2.0.2",
         "fast-deep-equal": "^3.1.3",
@@ -990,23 +990,26 @@
       }
     },
     "node_modules/eslint-visitor-keys": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
-      "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+      "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
       "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
       }
     },
     "node_modules/espree": {
-      "version": "9.5.0",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
-      "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+      "version": "9.5.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+      "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
       "dev": true,
       "dependencies": {
         "acorn": "^8.8.0",
         "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^3.3.0"
+        "eslint-visitor-keys": "^3.4.0"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1271,13 +1274,13 @@
       }
     },
     "node_modules/glob": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
-      "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
+      "version": "9.3.5",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+      "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
       "dev": true,
       "dependencies": {
         "fs.realpath": "^1.0.0",
-        "minimatch": "^7.4.1",
+        "minimatch": "^8.0.2",
         "minipass": "^4.2.4",
         "path-scurry": "^1.6.1"
       },
@@ -1310,15 +1313,15 @@
       }
     },
     "node_modules/glob/node_modules/minimatch": {
-      "version": "7.4.2",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
-      "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+      "version": "8.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
+      "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
       "dev": true,
       "dependencies": {
         "brace-expansion": "^2.0.1"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">=16 || 14 >=14.17"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -1590,9 +1593,9 @@
       }
     },
     "node_modules/is-core-module": {
-      "version": "2.11.0",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
-      "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+      "version": "2.12.0",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
+      "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
       "dev": true,
       "dependencies": {
         "has": "^1.0.3"
@@ -1778,9 +1781,9 @@
       "dev": true
     },
     "node_modules/js-sdsl": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
-      "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
+      "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
       "dev": true,
       "funding": {
         "type": "opencollective",
@@ -1857,12 +1860,12 @@
       "dev": true
     },
     "node_modules/lru-cache": {
-      "version": "7.18.3",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
-      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz",
+      "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==",
       "dev": true,
       "engines": {
-        "node": ">=12"
+        "node": "14 || >=16.14"
       }
     },
     "node_modules/minimatch": {
@@ -1887,9 +1890,9 @@
       }
     },
     "node_modules/minipass": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
-      "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+      "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
       "dev": true,
       "engines": {
         "node": ">=8"
@@ -1908,9 +1911,9 @@
       "dev": true
     },
     "node_modules/nodemon": {
-      "version": "2.0.21",
-      "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.21.tgz",
-      "integrity": "sha512-djN/n2549DUtY33S7o1djRCd7dEm0kBnj9c7S9XVXqRUbuggN1MZH/Nqa+5RFQr63Fbefq37nFXAE9VU86yL1A==",
+      "version": "2.0.22",
+      "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
+      "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
       "dev": true,
       "dependencies": {
         "chokidar": "^3.5.2",
@@ -2167,21 +2170,30 @@
       "dev": true
     },
     "node_modules/path-scurry": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
-      "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz",
+      "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==",
       "dev": true,
       "dependencies": {
-        "lru-cache": "^7.14.1",
-        "minipass": "^4.0.2"
+        "lru-cache": "^9.0.0",
+        "minipass": "^5.0.0"
       },
       "engines": {
-        "node": ">=14"
+        "node": ">=16 || 14 >=14.17"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/path-scurry/node_modules/minipass": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+      "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/picomatch": {
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -2204,9 +2216,9 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.8.4",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
-      "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
+      "version": "2.8.7",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
+      "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
       "dev": true,
       "bin": {
         "prettier": "bin-prettier.js"
@@ -2283,12 +2295,12 @@
       }
     },
     "node_modules/resolve": {
-      "version": "1.22.1",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
-      "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+      "version": "1.22.2",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
+      "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
       "dev": true,
       "dependencies": {
-        "is-core-module": "^2.9.0",
+        "is-core-module": "^2.11.0",
         "path-parse": "^1.0.7",
         "supports-preserve-symlinks-flag": "^1.0.0"
       },
@@ -2319,9 +2331,9 @@
       }
     },
     "node_modules/rimraf": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz",
-      "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==",
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
+      "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
       "dev": true,
       "dependencies": {
         "glob": "^9.2.0"