미적분학에서는 함수의 그래프를 그리고, 미분해서 변화율을 구했습니다. 미분기하학에서는 이 생각을 조금 넓혀서 공간 속의 점, 곡선, 곡면이 어떻게 움직이고 휘어지는지 살펴봅니다.
이번 글의 목표는 어렵고 추상적인 정의를 많이 외우는 것이 아닙니다. 부산소프트웨어마이스터고등학교 학생들이 익숙하게 떠올릴 수 있는 게임, 드론, 물리 시뮬레이션, AI 데이터 예시를 통해 다음 질문에 답해보는 것입니다.
공간에서 움직이는 점을 수식으로 어떻게 표현할까?
그 점의 속도와 가속도는 미분으로 어떻게 읽을까?
경로가 얼마나 급하게 휘어지는지는 어떻게 생각할까?
이 내용이 곡면, 3D 그래픽스, 로보틱스, AI와 어떻게 이어질까?
이 글은 Manfredo P. do Carmo의 미분기하학 교재로 들어가기 전, 특히 곡선 단원을 읽기 위한 가벼운 준비 운동으로 보면 됩니다.
익숙한 상황에서 시작하기
게임 속 캐릭터가 3D 공간에서 이동한다고 생각해봅시다. 캐릭터는 매 순간 어떤 위치에 있고, 어느 방향으로 움직이며, 방향을 얼마나 급하게 바꾸는지에 따라 자연스러움이 달라집니다.
드론도 비슷합니다. 드론이 장애물을 피해 날아가려면 단순히 목적지만 아는 것으로는 부족합니다. 현재 위치, 속도, 가속도, 회전 가능 범위까지 고려해야 합니다.
물리 시뮬레이션에서는 입자의 위치가 시간에 따라 변합니다. 힘이 작용하면 속도가 바뀌고, 속도가 바뀌면 경로도 달라집니다.
AI에서도 공간의 관점이 등장합니다. 이미지, 문장, 사용자 행동 같은 데이터는 숫자 벡터로 바뀐 뒤 고차원 공간의 점처럼 다루어집니다. 이 글에서는 고차원까지 깊게 들어가지는 않지만, “데이터를 공간의 점으로 본다”는 감각은 미분기하학과도 연결됩니다.
이처럼 미분기하학은 다음과 같은 질문을 다룹니다.
공간 속 대상의 위치, 방향, 변화, 휘어짐을 미분으로 어떻게 분석할 수 있을까?
공간에서 움직이는 점을 함수로 나타내기
평면 위 점은 보통 (x,y)로 나타냅니다. 공간 위 점은 (x,y,z)로 나타냅니다.
이제 점이 시간에 따라 움직인다고 합시다. 시간 t에서 점의 위치를 다음처럼 쓸 수 있습니다.
α(t)=(x(t),y(t),z(t))
여기서 α는 그리스 문자 알파입니다. do Carmo 교재에서도 곡선을 나타낼 때 자주 쓰는 표기입니다.
이 식은 이렇게 읽으면 됩니다.
t: 시간 또는 경로를 따라 움직이는 매개변수
x(t): 시간 t에서의 x좌표
y(t): 시간 t에서의 y좌표
z(t): 시간 t에서의 z좌표
α(t): 시간 t에서의 위치벡터
예를 들어 다음 식을 봅시다.
α(t)=(cost,sint,t)
처음 두 좌표 (cost,sint)는 원을 그립니다. 그런데 세 번째 좌표 t는 계속 증가합니다. 따라서 이 점은 원을 그리면서 위로 올라갑니다. 모양으로 보면 나선형 경로입니다.
드론이 원형 계단처럼 빙글빙글 올라가는 장면을 떠올리면 됩니다. 이때 드론의 이동 경로가 바로 공간 곡선입니다.
아래 탐색기에서 나선 곡선, 원운동, 포물선 경로, 곡면 격자를 회전해보세요. 3차원 대상은 종이에 그린 그림보다 직접 돌려보는 편이 위치와 방향을 이해하기 쉽습니다.
3D 곡선·곡면 탐색기
공간 곡선의 위치, 속도, 가속도와 곡면의 격자를 같은 화면에서 보기
3D
보기 조절
대상 선택
매개변수 t = 0.62
드래그로 회전하고, 마우스 휠로 확대·축소하세요.
3D view
현재 수식
\alpha(t) = (\cos t,\; \sin t,\; t/3)
현재 위치
\alpha(t) \approx (0.81,\; 0.58,\; 0.21)
속도벡터
\alpha'(t) \approx (-0.58,\; 0.81,\; 0.33)
가속도벡터
\alpha''(t) \approx (-0.81,\; -0.58,\; 0)
읽는 법
점은 곡선 위에 있고, 파란 화살표는 순간적인 진행 방향을 나타냅니다.
보라색 화살표는 속도벡터가 어떻게 바뀌는지 보여 줍니다.
미분하면 속도와 가속도가 보인다
미적분학에서 한 변수 함수 f(t)를 미분하면 변화율 f′(t)를 얻었습니다. 벡터함수도 비슷합니다. 각 좌표 성분을 각각 미분하면 됩니다.
α(t)=(x(t),y(t),z(t))
이면,
α′(t)=(x′(t),y′(t),z′(t))
입니다. 이 벡터를 속도벡터라고 부릅니다.
한 번 더 미분하면 가속도벡터가 됩니다.
α′′(t)=(x′′(t),y′′(t),z′′(t))
정리하면 다음과 같습니다.
기호
의미
컴퓨터공학 예시
α(t)
현재 위치
캐릭터 또는 드론의 현재 좌표
α′(t)
속도벡터
어느 방향으로 얼마나 빠르게 움직이는지
α′′(t)
가속도벡터
속도가 어떻게 바뀌는지
게임 엔진에서 캐릭터의 다음 위치를 계산할 때도 비슷한 생각이 쓰입니다. 아주 작은 시간 Δt가 지났을 때 위치는 대략 다음처럼 업데이트할 수 있습니다.
새위치≈현재위치+속도×Δt
물론 실제 물리 엔진은 충돌, 중력, 마찰, 회전 등을 더 정교하게 다룹니다. 하지만 출발점은 “위치가 있고, 속도가 있고, 시간이 조금 지나면 위치가 바뀐다”는 생각입니다.
예시: 원운동을 미분해보기
가장 단순한 예시로 반지름이 1인 원 위를 움직이는 점을 생각해봅시다.
α(t)=(cost,sint)
이 점은 원점을 중심으로 원을 따라 움직입니다. 속도벡터는 각 성분을 미분해서 구합니다.
α′(t)=(−sint,cost)
가속도벡터는 한 번 더 미분합니다.
α′′(t)=(−cost,−sint)
여기서 중요한 점은 α′′(t)가 −α(t)와 같다는 것입니다.
α′′(t)=−α(t)
즉 가속도는 항상 원의 중심 방향을 향합니다. 물체가 일정한 빠르기로 원을 돌고 있어도 방향은 계속 바뀌기 때문에 가속도가 존재합니다.
이 사실은 물리 시뮬레이션과도 바로 연결됩니다. 공이 원형 트랙을 따라 움직이거나, 게임 캐릭터가 곡선 경로를 따라 회전할 때는 속력만 보는 것으로 충분하지 않습니다. 방향 변화까지 함께 봐야 합니다.
속도의 크기는 속력이다
속도벡터 α′(t)는 방향과 크기를 모두 가집니다. 이 벡터의 크기를 구하면 속력이 됩니다.
∣α′(t)∣
방금 본 원운동에서는
α′(t)=(−sint,cost)
이므로 속력은 다음과 같습니다.
∣α′(t)∣=(−sint)2+(cost)2=1
따라서 이 점은 항상 같은 속력으로 원을 따라 움직입니다.
do Carmo 교재에서 곡선을 공부할 때 중요한 생각 중 하나는 매개변수를 어떻게 잡느냐입니다. 같은 길을 걷더라도 천천히 걷는 사람과 빠르게 달리는 사람의 t에 따른 위치는 다릅니다. 하지만 실제로 지나간 길의 모양은 같습니다.
그래서 미분기하학에서는 시간 t 대신 실제 이동거리, 즉 호의 길이를 기준으로 곡선을 다시 표현하는 방법을 중요하게 다룹니다. 이 내용은 다음 글에서 더 자세히 볼 수 있습니다.
곡률: 경로가 얼마나 급하게 휘어지는가
직선으로 움직이면 방향이 바뀌지 않습니다. 반면 원을 따라 움직이면 방향이 계속 바뀝니다. 더 작은 원을 따라 움직이면 방향이 더 급하게 바뀝니다.
이 “방향이 얼마나 빠르게 바뀌는가”를 나타내는 개념이 곡률입니다.
처음에는 다음 정도의 직관으로 충분합니다.
경로
곡률의 느낌
직선
휘어지지 않으므로 곡률이 0
큰 원
천천히 휘어짐
작은 원
급하게 휘어짐
급커브 경로
순간적으로 방향 변화가 큼
로보틱스나 드론 경로 계획에서는 곡률이 매우 중요합니다. 경로가 너무 급하게 꺾이면 실제 드론이나 로봇이 그 경로를 따라가지 못할 수 있습니다. 게임에서도 캐릭터의 이동 경로가 갑자기 꺾이면 움직임이 부자연스럽게 보입니다.
AI와 데이터 분석에서도 비슷한 직관이 등장합니다. 고차원 공간에서 데이터가 어떤 구조를 따라 분포한다고 볼 때, 그 구조가 얼마나 휘어져 있는지 이해하는 일은 차원 축소나 표현 학습의 배경 직관과 이어질 수 있습니다. 이 글에서는 계산까지 하지는 않지만, “공간 속 구조의 모양을 분석한다”는 관점만 기억해도 좋습니다.
곡선에서 곡면으로 넘어가기
지금까지는 하나의 매개변수 t로 움직이는 곡선을 보았습니다.
α(t)=(x(t),y(t),z(t))
곡면은 보통 두 개의 매개변수로 표현합니다.
X(u,v)=(x(u,v),y(u,v),z(u,v))
곡선이 “한 방향으로 따라가는 길”이라면, 곡면은 “두 방향으로 펼쳐진 표면”이라고 볼 수 있습니다.
컴퓨터그래픽스에서는 이 관점이 매우 자연스럽습니다. 게임 속 지형, 캐릭터의 얼굴, 자동차 표면, 물체의 금속 재질은 모두 곡면으로 생각할 수 있습니다. 표면 위 한 점에서 법선벡터를 구하면 조명 계산에 사용할 수 있습니다. 빛이 어느 방향에서 들어오고, 표면이 어느 방향을 향하는지에 따라 밝기가 달라지기 때문입니다.
do Carmo 교재도 곡선에서 출발해 곡면으로 넘어갑니다. 곡선을 먼저 공부하는 이유는 곡면을 이해하는 데 필요한 언어가 곡선에서 많이 등장하기 때문입니다.
흔히 헷갈리는 점
첫째, 위치벡터와 속도벡터를 같은 것으로 보면 안 됩니다. α(t)는 현재 점이 어디에 있는지를 나타내고, α′(t)는 그 점이 어느 방향으로 움직이는지를 나타냅니다.
둘째, 속력과 속도벡터도 구분해야 합니다. 속도벡터는 방향이 있는 벡터이고, 속력은 그 벡터의 크기입니다.
셋째, 가속도는 “속력이 빨라질 때만” 생기는 것이 아닙니다. 원운동처럼 속력은 일정해도 방향이 바뀌면 가속도가 있습니다.
넷째, 곡률은 경로 위의 점이 얼마나 빠른 속력으로 움직이는지만 보는 개념이 아닙니다. 핵심은 방향 변화입니다. 같은 모양의 길을 더 빨리 달린다고 해서 길 자체가 더 휘어지는 것은 아닙니다.
연습해보기
다음 곡선을 생각해봅시다.
α(t)=(t,t2)
직접 해볼 일은 세 가지입니다.
α′(t)를 구해보세요.
α′′(t)를 구해보세요.
t=0, t=1, t=2에서 속도벡터가 어떻게 달라지는지 말로 설명해보세요.
이 곡선은 포물선입니다. 시간이 지날수록 x좌표는 일정하게 증가하지만, y좌표는 점점 더 빠르게 증가합니다. 그래서 속도벡터의 방향도 조금씩 바뀝니다.
마무리
이번 글에서는 미분기하학의 첫 출발점으로 공간 곡선을 살펴보았습니다.
핵심은 다음과 같습니다.
움직이는 점은 α(t) 같은 벡터함수로 표현할 수 있습니다.
α′(t)는 속도벡터이고, α′′(t)는 가속도벡터입니다.
속도벡터의 크기는 속력입니다.
곡률은 경로가 얼마나 급하게 방향을 바꾸는지 설명하는 개념입니다.
곡선을 이해하면 곡면, 그래픽스, 로보틱스, 시뮬레이션, AI 데이터 공간으로 자연스럽게 이어질 수 있습니다.
다음 글에서는 곡선을 실제 이동거리 기준으로 다시 바라보는 호의 길이와 단위속력 매개화 아이디어를 다뤄보겠습니다.
💬 댓글
이 글에 대한 의견을 남겨주세요