Record/When Univ.

2019년 여름 컴공 진학준비생 한달 과외 후기

범데이 2022. 8. 28. 01:29

1. 개요

때는 대학교 4학년 여름방학때였다.

전에 실습을 하였던 기관 연구소장님께 연락이 와서, 미국에 있는 대학교로 컴퓨터공학과 진학을 희망하는 학생이 있는데, 한달 동안 과외를 해줄수 있겠냐는 의뢰를 받았다.

 

하지만 교육업계에 종사하지 않았고, 어떻게 가르쳐야할지 감이 오지 않아서 막막했지만, 연구소장님께서 과외 소재 방향을 제시해주시고, 장소 지원 및 피드백을 도와주신다는 응원을 듣고 시작하게 되었다.

 

2. 과외 시작 전, 첫 만남

2.1 학생 만나기 전

학생을 만나기 전, 그 친구에 대해 아직 정확히 파악하지 못하여서,  지난 학년동안 보았었던 전공책들을 훑어보기 시작했다. 컴퓨터공학부의 커리큘럼들을 한번 훑는다는 느낌으로 오리엔테이션을 진행하고, 더 나아가서는 C언어의 기초부터 시작하고자 하였다.

 

2.2 학생을 만난 후

그 친구를 만나고 이런저런 얘기를 나누며, 과외를 어떤 방향으로 진행해야 하는지에 대해 파악하게 되었다.

 

그 친구는 스크레치라는 프로그램을 이용해 각종 블록코딩을 해왔었다. 스크레치 관련 자격증인 COS 1급을 취득한 내가 보기에도 1급은 충분히 따고도 남을 기본의 수준을 뛰어 넘어서 심화적으로 활용할 줄 알고 있었고, 해당 프로그램을 깊게 활용하여 꽤나 수준급의 알고리즘을 짜서 2D 총싸움 게임을 개발도 하였었다. (아래 스크린샷 참고)

 

 

과외는 한달이라는 단기간에 이루어지게 되었다. 일주일에 두번 만나서 총 4주면, 우리에게 주어진 시간이 16시간밖에 없었고, 대학 진학에 앞서 어떤 커리큘럼을 예습하고자 하는것이 아닌, 입시 포트폴리오를 준비해야 한다는 얘기를 듣게 되었다. 그래서 그 포트폴리오가 될만한 프로젝트를 고민하게 되었는데, 연구소장님께도 도움을 받아 주제를 선정하는 과정에서, 실질적으로 눈으로 볼수 있는, 흥미롭게 느껴지는 결과물이 될수 있도록 아두이노를 활용한 작품을 만드는것이 좋을것 같다고 결론짓게 되었다.

 

 

 

3. 과외 시작과 그 과정

3.1 과외 계획 구상

과외 학생 어머니께 드릴 활동 계획서를 작성했다. 

프로젝트 구상은 다음 그림과 같다. 제목은 "mini Drive-thru", 아두이노를 중앙 제어 보드로 하여, 라인트레이서 자동차(검은 선을 따라 자동으로 방향 조향)가 주행하며 각 구간마다 특정 이벤트를 수행하는 것이다.

 

하드웨어와 소프트웨어의 결합이다. 코딩도 들어가면서 실제로 제작하기도 해야하고, 그래서 결과물이 나온다면 꽤나 그럴싸한 작품이 될것으로 예상하였다.

 

 

 

3.2 제작 시작

 

본격적으로 제작 시작에 들어가, 먼저 라인트레이서 자동차부터 만들기 시작하였다. 해당 자동차는 키트로 따로 판매를 하여서, 설계도에 맞게 조립만 해주면 되어 간단했다.

 

 

 

아래 부품은 라인트레이서 자동차의 핵심이 되는 적외선센서이다.

영상에서 볼수 있듯이, 검은 선에 가까이 대면 1을, 아니라면 0을 출력하는 것을 확인할 수 있다.

 

 

이 센서를 양 바퀴 앞에 부착해준다.

간단하게 검은선을 인식할 경우 해당 방향의 바퀴를 멈추어 주어, 방향이 조정되는 원리이다.

 

 

자동차가 정상적으로 라인을 따라 주행할 수 있도록 코딩을 해주었다.

 

 

그런 다음, 아래 영상과 같이 검정 테이프를 바닥에 붙여서, 주행 시험을 하였다. 

 

 

 

 

이제 주행까지는 되었고, 다음 각 구간별 이벤트는 어떻게 제작 해야할까?

 

 

우선, 차량에 있는 보드 말고 중앙 통제용 보드를 하나 더 구비해야 한다. 각 구간별 부품들을 연결하여 통제하는 역할을 한다.

 

우측 사진에 보이는 모듈은 블루투스 모듈이다. 중앙 보드에는 하나, 차량에도 하나를 연결하여 둘간의 데이터 통신이 이루어 질수 있도록 구현하였다.

 

 

우리에게 주어진 16시간은 턱없이 모자르다. 각종 온&오프라인 재료 구매 및 짜잘한 재료 제작은 내가 도맡아서 하기로 하였고, 그외 코딩과같은 좋은 경험이 될수 있는 것들은 학생에게 숙제로 내주어, 기간 안에 잘 마치고자 하였다.

 

각 구간의 도착은 어떻게 알 수 있게 할까? 초음파 센서를 통해 차가 특정 구간에 오면 멈추게 하려 하였으나,

초음파 센서를 만나도 차가 통과하거나 만나서 멈췄는데 움찔움찔 움직이거나, 시간이 지나도 출발하지 않는 등 간헐적인 문제가 너무 잦게 발생해 다른 대안을 찾게 되었다.

 

 

그것은 아래와 같이 라인에 수직으로 줄 하나를 그어서, 두 바퀴가 검은선을 만나면 일시정지 하도록 하였다.

 

 

이제 본격적으로 제작에 집중하여 각종 부품들과 보드를 연결해주고, 부품들이 동작할 수 있도록 아두이노 코딩을 해주는 시간을 가졌다.

 

 

 

참 만들면서 다사다난했던 순간..잘 가던 차가 갑자기 움찔움찔거리며 안가고, 센서가 반응이 늦고.

유튜브 긱블같은 채널을 보며 대단하다고 느꼈다.

 

소프트웨어는 멱등성이라는 개념과 같이 결과가 달라지지 않는 성질이 있는데,

하드웨어의 세계에서는 여러가지 요인이 작용해서 잘되던게 안되는 현상이 부지기수다. 

 

특히 1.5V 소모성 배터리를 많이 사용하여 전압이 낮을때 잘되던 부품들이 안되는 문제가 가장 많았다.

 

 

 

그러면서 제작이 마무리에 들어서자, 게임보다 이 제작이 더 재밌어 지는 순간이 왔다.

정규 과외 시간이 끝난지도 모른채, 좀 더 보강하기 위해 남아서 작품을 손보기도 했다.

 

디버깅하고, 빌드해서 보드에 씌워넣고, 테스트하고 문제가 있으면 다시 디버깅하여 보드에 씌워 넣고 반복 하였다.

 

 

 

 

4. 제작 결과 시연

위의 제작과정을 거친 대망의 제작 결과 영상이다.

 

비록 보기에 모양새가 이쁘지도 않고, 최초기획에 비해 몇가지 못미치게 완성하긴 하였지만, 그간 수많은 시행착오를 거쳐 완성을 해냈다는 점이 중요한 것 같다. 

 

차량이 라인을 따라 돌면서, 안내 문구가 흘러나오는 LCD를 지나, 신호등을 기다렸다가 출발음을 듣고, 마지막엔 바리케이트앞에서 멈춰 섰다가 열리면 통과하는, 두개의 보드와 블루투스 모듈, LCD모듈과 LED, DC모터 및 적외선센서 그리고 그들을 잇는 여러 핀들이 상호작용하여 동작하는 작품을 완성하게 되었다.

 

 

5. 과외가 끝나고..

참 대학생 4학년으로써 다른사람을 가르치기에도 부족한 베이스를 갖고 있지만, 과외하는 학생을 도와주며 함께 같이 해냈다는 느낌으로 잘 마무리 한것 같다. 

 

이 학생은 본인이 경험하였던 총 세개의 프로젝트중 나와 같이 한 프로젝트를 메인으로 삼아 다른 엘리트 멘토 선생님께 포트폴리오 작성을 도움받아서 미국의 여러 공대에 지원서를 내게 되었고, 결국 미국 공대 순의 8위에 위치한 Perdue University에 합격하여 입학하게 되었다는 참 뿌듯한 소식을 듣게 되었다. (아래는 포트폴리오의 일부 내용을 발췌하였다.)

 

 

무엇이든 가지고 있는 아이디어를 추진해 내는것은 정말 중요한 일인것 같다. 실현을 하기에 앞서 많은 고민들과 걱정들에 가로막혀 한 가지도 해내지 못한다면, 그것은 그냥 아무것도 아닌 결과를 낳지만, 걱정을 걷어버리고 떠오르는 생각을 추진력있게 밀고 실현해 나간다면, 돌아보았을때 큰 결과를 낳는다. 

 

이 친구와 과외 하면서도 되려 내가 많이 배우고 좋은 경험을 가진것 같다. 나는 고등학교때 이렇게 무언가를 해내며 살지 못하였지만, 이 친구는 하고싶은게 있으면 몰두하며 해내고 마는 성격이었다. 따라서 좋은 대학교에 입학을 하게 되어 인생에 있어서 좋은 출발점을 갖게 되었다. 

 

나도 이번에 느낀 것처럼, 늘 매사에 좋은 아이디어를 갖기위해 많은 생각을 하고, 도전하며 결과물로 일궈내는 개발자가 되어야겠다.

반응형