07. 프랙탈(Fractal), 무한한 자기 닮음의 우주

1. 학습 목표 (Learning Objectives)

  • 부분의 모양이 전체의 모양과 끝없이 똑같이 반복되는 ‘프랙탈(Fractal)’ 기하학의 신비를 탐구합니다.
  • 파이썬(Python)의 ‘재귀함수(Recursion)’를 이용해 프랙탈의 대표적인 코흐 눈송이가 자라나는 수학적 모델링 공간을 체험합니다.

2. 끊임없이 자기를 복제하는 눈송이와 나뭇잎

겨울에 내리는 아름다운 눈송이를 현미경으로 확대해 본 적이 있나요? 눈송이의 끄트머리 가지 하나를 엄청나게 확대해서 보면, 놀랍게도 그 작은 나뭇가지 모양이 전체 눈송이의 커다란 모양 뼈대와 완벽하게 100% 닮아 있습니다. 그 작은 가지에 붙어있는 더 미세한 얼음 결정조차 똑같은 눈송이 형태를 띠고 있습니다.

2D 웹툰 애니 판타지 스타일: 짙은 겨울 밤하늘에 거대하게 형형색색 뿜어져 나오는 나선형 코흐 눈송이 결정, 미세한 가지 속까지 빛나는 프랙탈 무한 반복 구조

수학에서는 이처럼 “일부분을 떼어내어 아무리 크게 확대해도, 그 모양이 다시 계속해서 전체 모양을 이루는 무한 반복 구조”를 가리켜 프랙탈(Fractal, 자기 닮음)이라고 부릅니다. 단순히 두 개의 도형이 닮았다는 수준을 넘어서, 도형 하나 안에 닮은 도형이 세포분열처럼 영원히 중첩 배열되는 궁극의 닮음입니다. 고사리 같은 양치식물의 잎맥 구조, 사람의 폐동맥 모세혈관, 비가 내릴 때 번쩍이는 번개의 갈래 줄기 등 자연계의 가장 거대하고 복잡한 시스템들은 사실 가장 단순한 하나의 닮음비 규칙(프랙탈)을 무한 루프로 재생시킨 결과물입니다.

3. 파이썬을 이용한 재귀 프랙탈 코딩 (Python)

개발자들은 컴퓨터 모니터 안에 은하수나 울창한 숲을 그려낼 때 일일이 이파리를 그리지 않습니다. 프랙탈 씨앗 함수 하나를 만들고 재귀(자신이 자신을 다시 부름)시켜 컴퓨터가 수만 개의 닮은 가지를 순식간에 복제해 내도록 명령합니다.

프랙탈 재귀 트리 알고리즘 구상도 SVG: 스스로를 분열하여 두 갈래로 뻗어나가며 자연의 나무를 렌더링하는 컴퓨터 스택 층 차트
# 가장 간단한 문자열 기반 프랙탈 트리(가지치기) 시뮬레이션
def draw_fractal_tree(branch_length, level):
    # 레벨이 0이 되면 가장 끝 잎사귀이므로 가지치기를 멈춥니다
    if level == 0:
        return
        
    # 현재 가지의 길이를 출력 (시각화를 위해 '-' 기호 사용)
    current_branch = "-" * branch_length
    print(f"{'  ' * (5 - level)} {current_branch} (레벨 {level})")
    
    # ▷ 핵심: 나뭇가지 끝에서 '잘라진 길이(절반)'로 
    # 내 자신(draw_fractal_tree)을 다시 2개로 복제해서 뻗어나감!
    new_length = branch_length // 2
    draw_fractal_tree(new_length, level - 1) # 왼쪽 가지 
    draw_fractal_tree(new_length, level - 1) # 오른쪽 가지

# 길이 16짜리 거대한 기둥에서 시작하여 3번 분열하는 프랙탈 트리
print("=== 프랙탈 생명체의 무한 복제 시작 ===")
draw_fractal_tree(16, 3)

파이썬의 실행 결과 요약:

=== 프랙탈 생명체의 무한 복제 시작 ===
     ---------------- (레벨 3)
       -------- (레벨 2)
         ---- (레벨 1)
         ---- (레벨 1)
       -------- (레벨 2)
         ---- (레벨 1)
         ---- (레벨 1)

위 출력 결과처럼, 하나의 큰 줄기(레벨 3) 속에는 정확히 반으로 축소된 두 개의 중간 줄기(레벨 2)가, 그 속에는 আবার 그 절반으로 축소된 잎사귀(레벨 1)가 담겨 있습니다. 이 레벨을 무한대로 돌리면 거대한 우주 생성 시뮬레이션이 됩니다.

4. 학습 정리 (Summary)

  1. 프랙탈 (Fractal): 자기 자신의 크기를 축소시킨 닮음 모형들이 끝없이 중첩되어 전체의 형상을 이루는 ‘무한 자기 닮음’ 기하학입니다.
  2. 자연의 알고리즘: 복잡해 보이는 자연의 형태(혈관, 나뭇잎, 눈송이, 해안선)는 사실 아주 단순한 닮음비 확장 공식을 세포분열처럼 반복한 효율의 극치입니다.
  3. 컴퓨터 프로그래밍에서 함수가 자기 자신을 끝없이 호출하는 재귀 알고리즘(Recursion)은 수학의 프랙탈 개념을 코드로 완벽하게 번역한 기술입니다.
서브목차