온라인 강의 회고
설명할 수 없으면 아는 게 아니었다
온라인 강의를 찍으면서 알게 된 것: 코드를 짤 줄 아는 것과 설명할 줄 아는 건 다른 문제였어요.
시작은 깃허브 레포지토리 하나였어요
제가 온라인 강의를 찍게 된 건 깃허브에 올려둔 '마리오 개발자의 삶' 이라는 3D 인터랙션 페이지 덕분이에요.

캐릭터가 맵을 돌아다니며 개발자의 고충을 만나는 3D 쇼룸 페이지캐릭터가 맵을 돌아다니면서 버섯을 모으고, 그 과정에서 개발자가 겪는 고충을 하나씩 만나는 쇼룸 페이지예요. 거창한 서비스라기보다는 제가 좋아하는 걸 제 방식대로 만든 작은 프로젝트였어요.
솔직히 처음 연락을 받았을 때 신기했어요. 저는 SNS를 거의 안 하고, 이 프로젝트도 따로 홍보한 적 없이 레포지토리에만 올려두었거든요. 코드가 알아서 사람을 데려온 셈이죠. 그때 "결과물은 어딘가에 올려두기만 해도 누군가는 본다"는 걸 처음 느꼈어요.
인터랙션을 많이 하게 된 이유
제가 인터랙션 프로젝트를 많이 하게 된 건 더즈인터랙티브라는 회사를 다녔기 때문이에요. 이곳에서 여러 대기업의 프로모션·브랜드 인터랙션 프로젝트를 했어요.
그런데 사실 3D프로젝트라고 해서 전부 three.js로 만든 건 아니었어요. 그런데 패스트캠퍼스에서는 three.js로 제 프로젝트와 비슷한 결과물을 만드는 강의를 원했어요. 그래서 커리큘럼을 이렇게 잡았어요.
- 자동차가 3D 맵을 돌아다니는 인터랙션 페이지
- 날씨 API를 활용해 실시간 날씨를 3D로 보여주는 페이지


프로모션용 인터랙티브 웹 페이지회사와 강의를 같이 한다는 것
강의 준비는 생각보다 훨씬 큰 일이었어요. 예제를 만들고, 커리큘럼을 짜고, 녹화하고, 다시 찍고. 퇴근 후와 주말을 다 쏟아도 모자랐어요.
결국 강의를 찍던 중간에 회사를 그만뒀어요. 둘 다 적당히 하는 것보다 하나라도 제대로 끝내는 게 맞다고 판단했어요. 지금 돌아보면 쉬운 결정은 아니었지만 후회하지는 않아요.
설명할 수 없으면 아는 게 아니었다
강의를 찍으면서 가장 크게 부딪힌 벽은 기술이 아니라 말이었어요.
혼자 개발할 때는 "이렇게 하면 되더라"로 충분했어요. 동작하면 넘어가면 됐으니까요. 그런데 강의는 달라요. 제가 말로 설명하지 못하면 듣는 사람은 알 방법이 없잖아요.
예를 들면 이런 식이에요.
혼자 할 때 | 강의에서 필요했던 설명 |
"카메라가 캐릭터를 부드럽게 따라가게 했어요" | "매 프레임 카메라 위치를 목표 위치 쪽으로 보간(lerp)해서 급격한 이동 없이 따라가게 했어요" |
"클릭한 곳으로 이동해요" | "Raycaster로 마우스 좌표에서 광선을 쏴서 바닥 메시와의 교차점을 구하고, 그 좌표를 목표 지점으로 잡았어요" |
"그냥 이 값 넣으니까 되더라고요" | "왜 이 값이어야 하는지, 바꾸면 어떻게 달라지는지" |
감으로 쓰던 코드를 하나씩 용어로 풀어내다 보니, 제가 안다고 생각했던 것 중 상당수는 사실 '써본 적 있는 것' 이었다는 걸 알게 됐어요. Scene, Camera, Renderer 같은 기본 개념부터 좌표계, 조명, 그림자까지 공식 문서를 다시 읽으면서 제 언어로 정리해야 했어요.
그 과정이 힘들긴 했지만, 강의가 끝났을 때 가장 많이 배운 사람은 수강생이 아니라 저였던 것 같아요.