
이번 글에서는 실제로 내가 교육 현장에 나가 아이들을 만나고 직접 수업을 기획하고 진행했던 실전 경험을 담아보고자 한다.
여러 수업에 참여했지만, 그중에서도 특히 기억에 남고 의미 있었던 대표 수업 세 가지를 언급하겠다.
🌟이 경험들이 단순한 ‘교육 활동’에 머무르지 않고 개발자로서의 커뮤니케이션 능력을 키우는 데에도 많은 도움이 되었기 때문이다.
성산중학교에서는 혼자 강사로 수업을 맡아 디지털 윤리 수업을 진행하게 되었다.
윤리라는 주제 자체는 학생들에게 익숙한 내용이 많았지만, 디지털 환경에서의 개념(ex IP, 서버, 인터넷망)은 낯설어하는 학생들이 많다.
🧠 그래서 나는 최대한 추상적인 기술 개념을 아이들의 언어로 쉽게 풀어 설명하려고 노력했다.
- "인터넷은 눈에 보이지 않지만 서로 연결되어 있는 거대한 거미줄이라고 생각해볼래?
- "우리가 각자 사용하는 컴퓨터는 거미줄 끝의 ‘서버’라고 할 수 있어. 이 서버들이 줄을 타고 연결되어 있어야 서로 메시지를 주고받을 수 있겠지?"
- "그런데 서버가 누구인지를 알아야 연결할 수 있으니 IP주소는 서버의 집 주소와 같은 역할을 해."
- "데이터를 주고받을 땐 한번에 가지 않고 '택배처럼 잘게 나뉘어서' 가는 ‘패킷’이라는 것도 있어."
이런 식으로 시각 자료와 함께 설명했더니 학생들의 이해도가 훨씬 높아졌다.
PPT 자료는 단순한 텍스트보다 시연 영상과 퀴즈 요소를 넣어서 구성했고 수업 전에는 여러 번 리허설을 하며 시간 배분도 꼼꼼히 점검했다.
🎨 수업 후반에는 Canva라는 AI 기반 디자인 도구를 활용해 학생 각자가 ‘자기만의 명함’을 만드는 활동도 진행했다.
단순히 정보를 전달하는 수업이 아니라 디지털 도구를 실생활에서 어떻게 응용할 수 있는지 체험해보는 시간으로 구성하고 싶었다.
김천여중에서는 1~4교시에 걸쳐 자율주행차(알티노)를 블록코딩으로 제어하는 수업을 진행했다.
🧠 이 수업은 특히 반복문(for, while)이나 조건문 같은 기초 코딩 개념을 처음 접하는 아이들에게 어떻게 쉽게 설명할 수 있을지 고민이 많았던 수업이다.
아이들은 대부분 코딩을 처음 접해보는 친구들이었기 때문에, 추상적인 용어보다는 친근한 일상 예시를 들어 설명하려고 했다.
예를 들어 for문은 이렇게 설명했다.
"라면을 끓일 때 물을 붓고 → 스프를 넣고 → 면을 넣고 → 3분간 끓이는 과정을
세 번 반복한다고 생각해봐. 그러면 이게 바로 for문이야!"
while문은 조금 다르게 접근했다.
"while문은 ‘엄마가 그만하라고 할 때까지 게임하기’ 같은 거야.
언제 끝날지 모르고 계속 반복되니까 while은 조건이 참일 때 계속 도는 거고, for는 정해진 횟수만큼 반복되니까 달라!"
이렇게 설명하니 아이들이 금방 고개를 끄덕이며 이해하는 모습을 보여줬고, 직접 블록을 조립해서 자율주행차가 ‘실제로 움직이는’ 과정을 보면서 흥미를 느끼는 듯했다.
‘내가 입력한 코드가 진짜로 작동하고 있구나’라는 성취감을 아이들 스스로 느낄 수 있게 해주고 싶었고, 그 부분은 충분히 전달된 것 같아 뿌듯했다.
경일여고에서는 방학 특강으로 4일간의 AI 데이터 분석(AICE Junior) 자격증 수업 보조를 맡았다.
🧠 이 수업은 비교적 난이도가 높은 수업이었고 딱딱한 개념들이 많다 보니 어떻게 하면 ‘기계적인 암기’가 아닌 ‘이해 기반’의 수업이 될 수 있을까를 가장 많이 고민했다.
예를 들어, MAE와 MSE의 차이를 이렇게 설명했다.
"친구 생일을 1일 틀리는 것과, 10일 틀리는 건 느낌이 다르지?
MAE는 평균 오차고, MSE는 큰 오차에 더 민감하게 반응해.
MSE는 오차를 제곱하니까 실수를 더 크게 받아들이는 방식이야."
또 머신러닝의 종류를 설명할 때는 이렇게 말했다.
"단순 회귀는 딱 하나의 조건만 가지고 예측하는 거야.
예를 들어 ‘공부 시간만 가지고 시험 점수를 예측하는 것’
다중 회귀는 여러 개를 고려하는 거지.
‘공부 시간, 수면 시간, 식사 여부까지 다 고려해서 점수를 예측하는 것’!"
이렇게 예시를 들어 설명했을 때, 아이들이 훨씬 자연스럽게 받아들이는 것을 보면서 ‘설명이 어렵고 복잡하다고 느껴지는 건 결국 예시가 없어서 그런 게 아닐까’라는 생각이 들었다.
나는 백엔드 개발자가 되기 위해 다양한 프로젝트를 진행하며 기술적인 역량을 키워왔다.
하지만 실제 프로젝트를 하는 과정에서 프론트엔드나 기획자 등 다른 직군과의 소통이 매우 중요하다는 것을 자주 느꼈다.
이 강사 활동을 시작한 것도, 단순히 교육이 하고 싶어서가 아니라
"기술을 기술 언어로만 설명하지 않고, 상대방의 눈높이에 맞게 전달하는 연습"을 하고 싶었기 때문이다.
실제로 이런 연습이 많이 되었고, 프로젝트를 진행하면서 큰 도움이 되었다.
예를 들어, 프론트엔드 팀원에게 Redis와 SSE 구조를 설명해야 할 일이 있었는데 이렇게 설명한 적이 있다.
"Redis의 pub/sub 구조를 통해 서버A가 서버B에게 '지금 들어와도 돼!'라는 메시지를 실시간으로 보내주고
이때 클라이언트는 SSE를 통해 서버B와 연결된 상태로 계속 대기하다가, 서버 B가 A에게 메시지를 받으면 클라이언트에게 신호를 보내요"
이렇게 설명했더니 프론트팀도 쉽게 이해하고 그에 맞춰 설계해줬다.
결국 기술은 사람을 위한 것이고, 그 기술을 잘 전달할 수 있어야 진짜 개발자라고 생각한다.
앞으로도 나는 단순히 코드를 잘 짜는 개발자가 아니라,
기술을 이해시키고 함께 만들어갈 수 있는 개발자가 되고 싶다.
그 방법 중 하나가 기술을 모르는 사람에게 쉽게 설명하는 연습이라고 생각한다.