다시 시작 Restart

삼육대 학생들에게 테스트 주도 개발을 강의하다

Tap to restart 2024. 5. 7. 22:00
반응형

전 회사 친구로부터 받은 부탁

전 회사 친구가 삼육대 학생들을 대상으로 백엔드 강의를 하고 있어서 테스트 주도 개발 특강 부탁을 받았다. 처음에는 호기롭게 하겠다고 했는데, 시간이 다가오자 무슨 말을 어떻게 해야 할지 고민이 많아졌다. 그 친구들한테 뭔가 남았으면 좋겠는데, 시간만 뺐는 것은 아닌지, 별로 도움이 안 되는 것은 아닌지 등등 말이다.

 

고민

테스트 주도 개발을 어떻게 하면 하게 만들 수 있을까. 테스트 주도 개발이 사실 쉽지는 않다. 특강이 끝난 뒤에 바로 시도하지는 못해도, 반드시 하고 싶게 만들려면 어떻게 하는 게 좋을지 고민이 되었다. 평범한 개발자인 내가 하는 말이 설득력이 생기려면 어떻게 해야할까 고민이 컸다. 결국 객관적인 자료나 사례를 바탕으로 설득을 해야겠다고 생각했다. 이야기 시작도 고민이었다. 관심을 끌만한 무엇 20대인 친구들이 공감할만한 이야기로 시작하려면 어떻게 하는 게 좋을지 고민이었다. 

 

시작은 한 소설가의 이야기로

드디어 2024년 5월 2일 약속한 특강날이 되었다.

한 소설가의 이야기로 시작했다. 수상경력만 봤을 때는 천재인 한 소설가가 소설 쓰기를 포기했던 이야기. 그가 다시 소설을 쓰게 된 계기를 나눴다. 전에 블로그에 쓴 '어제보다 오늘이 나아지는 세계'를 만들기 글을 바탕으로 다시 편집한 이야기였다. '재능이 없다'라고 생각하기보다 어제보다 오늘이 나아지는 세계를 만들면 자연스럽게 실력이 좋아질 것이란 이야기를 하고 싶었는데 잘 전달이 되었는지는 모르겠다. 개발자로서 어제보다 오늘이 나아지는 세계를 만들어주는 훌륭한 도구로 테스트 주도 개발을 소개했다.

 

테스트 주도 개발 이야기

전 회사에서 발표했던 전통적인 개발과 테스트 주도 개발, 그리고 애자일 발표 자료 그대로 테스트 주도 개발 이야기를 했다. 물어보니 다들 테스트 주도 개발도 애자일에 대해서 잘 모르는 것 같았다. 사실 나도 불과 몇 년 전에는 제대로 몰랐으니까. 테스트 주도 개발이 단순히 테스트 코드를 작성하는 것이 아니라고 강조했다. 테스트 주도 개발이 왜 혁명적인지 설명해보려고 했는데 잘 전달되었는지는 모르겠다.

 

테스트 주도 개발을 하면 좋은 이유

테스트 주도 개발을 소개했지만 현실적으로 테스트 주도 개발을 하면 무슨 이익이 있는지 설명했다. MS, 구글, 아마존 등 유명 IT 기업의 깃허브 오픈 소스를 찾아보고 공통점을 찾아보게 했다(관련 글: Q. 유명 개발자들은 파이썬 테스트 코드를 어떻게 작성할까?). 문제 출제 의도를 파악한 한 친구가 테스트 코드가 존재한다는 공통점을 말해주었다. 링크드인에서 찾은 유명 기업의 백엔드 개발자 채용 공고를 공유했다. Testing, Test 부분을 두껍게 잘 보이게 해서. 백엔드 개발자에게 테스트는 필수라는 것을 말하고 싶었다. 특히 유명한 기업에 들어가고 싶다면.

 

여러분의 손흥민존은?

컴퓨터공학 전공 학생들이라 남학생들이 많을 거 같아서, 전에 블로그에 쓴 손흥민존, 나에게는 OOO존이 있을까? 글을 바탕으로 '여러분의 손흥민존은'이란 주제로 이야기를 이어갔다. 손흥민에게 손흥민존이 있듯이 나만의 무언가가 있으면 좋다고. 그 중에 하나가 테스트 주도 개발이 될 수 있다고 말이다.

 

어떻게 지나간지 모르게 흘러간 첫 한 시간

첫 한 시간이 그렇게 흘러갔다. 약장수와 같은 마음으로 테스트 주도 개발이란 약을 팔았다. 물론 약을 판다고 나한테 이득이 되는 것은 없었지만.

 

테스트 주도 개발 실습

스프링을 배우고 있으니 스프링으로 테스트 주도 개발 실습을 해볼까하다가 책에 나온 가장 쉬운 첫 예제로 해보기로 마음 먹었다. 테스트 주도 개발을 만든 켄트벡의 의도대로 실습해보는 것 자체가 의미가 있다는 생각이 들었기 때문이다. 이번에 같이 하지 않으면 평생 하지 않을 가능성도 크고. 켄트 벡의 테스트 주도 개발 예제대로 따라해보기 그대로 실습을 진행했다. 책 그대로 진행하니 생각보다 일찍 끝났다. 실습 시간을 가늠하기 어려우니 더 많이 다양하게 준비했어야 했는데 아쉬웠다. 그래도 예제가 워낙 쉬워서 테스트 주도 개발이 별 거 아니구나란 생각을 갖게 되었으면 좋겠다고 생각했다.

 

Q&A 시간

남은 시간은 질문을 받았다. 백엔드 관련 아무 거나 질문해 달라고. 학생들 입장에서 즉흥적으로 질문을 생각해내기는 쉽지 않았던 거 같았다. 다양한 질문을 많이 받을까봐 걱정을 많이 했는데, 생각보다 질문이 많지 않았다. 프런트엔드의 경우 테스트 코드 작성을 잘 안 하는 이유는? 등의 질문을 받았다. 아예 강의 전에 질문을 모아달라고 친구한테 부탁할 걸 그랬나란 아쉬움이 들었다.

 

끝인사

테스트 주도 개발 책을 3권 선물했다. 시간 날 때 책을 돌려보며 실습해 보길 권했다. 책을 눈으로만 읽지 실습해보는 사람 자체가 드무니까. 또 개발의 역사에서 한 획을 그은 책을 읽는 것 자체도 의미가 크니까. 특강이 도움이 되었기를, 특강을 통해서 어제보다 오늘이 나아지는 세계에 들어오기를 기원하며 강의를 끝냈다. 강의가 끝나고 쉬는 시간에 한 친구가 "저도 저만의 손흥민존을 만들어야겠어요"란 말을 해주었다. 그래도 그 친구한테는 뭔가 하나라도 남은 거 같아서 기분이 좋았다.

 

 

특강을 진행한 삼육대학교 제1실습관 모습

 

전 회사 친구가 보내준 강의 중 모습(학생들 뒷모습만 찍혀서 블러 처리는 따로 하지 않았다)

 

 

반응형