본문 바로가기
  • 스스로 행복을 가꾸는 교육을 꿈꾸다
이것 저것

내가 개발자로 해커톤이라니...? - 학교가자 팀 IBM Call for Code 한국 해커톤 한국 IBM 사장 상 수상!!

by FermeH 2020. 6. 14.

 

 

 

시작 

지금으로부터 한 달 전, 신민철 선생님께 연락을 받았습니다. 

 

" 학교 현장에서 지금 당장 도움이 될 애플리케이션을 만들고 싶은데, 해커톤 함께 할래요?"

 

학교 가자를 하면서 코로나 19 때문에 오프라인 학습이 불가해지면서 생겼던 어려움을 피부로 느낄 수 있었습니다. 

그리고 개학이 시작되면서 생기는 어려움을 선생님들께서 페이스북에 올리신 글을 통해 파악할 수 있었어요.

학교가자 전체 회의를 하면서 그 어려움을 직접 들을 수 있었습니다. 

아이들의 체온을 재고 기록하면서, 자가 진단 여부를 확인하고, 출석 체크를 하면서, 오지 않은 학생에게 전화를 하는 것이 아침 등교 시간 내에 이루어져야 했습니다. 

그 짧은 시간 안에 얼마나 혼란스럽고 분주할지 상상조차 할 수 없었습니다. 

그렇지만 선생님들의 이야기를 들어보니, 기술을 활용하면 간단하게 해결할 수 있는 문제라는 것을 알 수 있었습니다. 

제가 도울 수 있다면 돕고 싶었어요. 그러던 찰나에 연락을 받은 겁니다.ㅎㅎ

그래서 제 대답은 당연히 YES 였죠.

학교가자에 참여하게 된 동기도 학교 현장에서 생기는 현실적인 어려움을 해결하는데에 제가 조금이나마 힘이 될 수 있다면 온 힘을 다하겠다는 마음이었으니까요. 


진행 과정 

 

전체 일정입니다.

 

IBM 2020 Call for Code  Korea Hackerthon 은 본래 기후 변화 등의 사회 문제를 프로그래밍을 통해 해결하고자 하는 해커톤입니다. 

이번에는 코로나 19 사태로 인하여 코로나19와 기후 변화 2개의 대 주제를 중심을 진행되었습니다.

모집 - 3번의 lecture - 팀 구성 - 해커톤의 과정으로 진행되었고, 소통 플랫폼은 slack 이었습니다.

매번 이메일도 보내주셔서 안내사항을 확실히 전달받을 수 있었습니다. :)

 

[모집]

저희 학교가자 팀은 세 분의 초등학교 선생님-신민철 선생님, 하주형 선생님, 김지현 선생님-과 한 분의 개발자 고태완님, 그리고 저로 이루어져 있습니다.

저희는 멤버를 미리 짜서 팀 단위로 신청했습니다.

 

[3번의 온라인 교육 세션]

 

 

총 3번의 온라인 교육 세션이 진행되었습니다.

모두 webex를 통한 화상회의의 형태로 진행되었는데요,  

첫 번째는 2시간동안 진행되었으며, 그 내용은 해커톤에 대한 간단한 안내와 사용하게 될 도구인 IBM Cloud 에 대한 소개였습니다. 

두 번째는 보건 의료, 세 번째는 기후 변화에 대한 세션으로 각각 한 시간 동안 진행되었습니다. 

 

첫 번째 세션은 당시에 제가 IBM의 도구들에 대한 지식이 부족했던 터라 조금 이해하기가 어려웠습니다.ㅠㅠ

그렇지만 나중에 코드를 짜면서 slack에 올려주신 영상을 여러 번 다시 보았는데요, 정말 쉽게 설명해주신 것이라는 걸 나중에야 깨달았습니다.ㅎㅎ

 

두번째와 세 번째 세션은 해당 분야의 전문가 분들께서 진행해주셨습니다. 

저희 팀의 애플리케이션이 코로나19와 관련되어 있어 아무래도 두 번째 세션을 조금 더 집중해서 들었던 것 같습니다. 

인상 깊었던 내용을 조금 나누어 보자면

  1) 재난 상황에 대한 대응을 공조(국가적 차원의 지원), 협조(사람들 및 공동체 간 상호 지원), 자조(스스로 나 자신 돕기)로 나누어 파악한다는 점이었습니다. 

그중에서 특히 자조가 우리나라 사회와 관련성이 높았는데요, 각자의 재난 대응 역량을 높이는 방안으로 애플리케이션이 의미를 가진다는 점이 인상적이었습니다.

예시가 근처에 있는 대피소나 병원을 파악하는 기능 등이었어요. 

안전하게 학교가자 애플리케이션도 학교에서의 재난 대처 역량으로서 교사의 자조 역량을 증진시키는 애플리케이션이 필요하다는 생각이 들었습니다.

안전에 대해 신경써야할 많은 부분을 쉽게, 또 빠뜨리는 것 없이 챙길 수 있도록 도와주는 애플리케이션이기 때문입니다.  

그래서 애플리케이션의 기능 부분에 대한 아이디어를 생성할 때 이 내용이 많은 도움이 되었습니다. 

 

2) 재난 취약 계층에 대한 이야기였습니다. 

주요 내용은 공동체 단위에서 재난 취약계층과의 연결을 평소에도 도모하여 재난 상황에서 소외되지 않도록 하는 것이었는데요, 

저는 모두의 안전할 권리와 연결된다고 생각했습니다. 

사실 안전하게 학교가자를 만들면서도 그 보편성에 대한 이야기를 많이 했습니다. 

어느 지역의 학교든, 어느 학년이든 쉽게 적용할 수 있는 시스템을 만들고자 노력했습니다.

만약 기능의 사용법이 복잡하거나 비싼 기기가 필요하다면 '모두'가 안전하게 학교를 갈 수 있다고 할 수 없으니까요. 

그래서 1학년도 사용할 수 있고 최소한의 비용이 드는 시스템을 함께 고민했습니다. 

지금은 글로벌 챌린지를 준비하며 더 많은 환경에서 적용 가능한 시스템을 생각하고 있습니다.ㅎㅎ

 

3) 코로나 블루 현상에 대한 인식을 조금 바꿀 수 있었습니다. 

사실 저는 크게 느끼지 못하고 있었던 부분이었지만, 그 심각성을 깨달을 수 있었던 것 같습니다. 

학교랑 자꾸 연관지어 생각하다 보니, 심리적 방역의 측면에서 학교라는 공간에 대한 생각이 들었습니다. 

아이들도 분명히 힘들어하고 우울해하고 있을텐데, 이에 대해서 교육자로서 어떻게 접근해야할지 이런 저런 생각이 들었습니다. 

 

그래도 세 번째 세션도 기후 변화가 얼마나 급박한 일인지 알 수 있어서 좋았습니다.

작년에 임용고시를 준비하면서(ㅋㅋㅋㅋ) 그레타 툰베리라는 친구를 알게되었는데요, 

그 덕분에 기후 변화에 대한 내용도 관심있게 보았습니다. 

 

매번 하필 아르바이트가 있었던 날들이라 휴대폰으로 들어야 했는데요, 오디오 모드가 있어서 데이터를 아껴 쓸 수 있었습니다!

지하철이나 버스 안에서 혼자 흥미로운 표정을 지으며 들었던 것이 생각나네요.ㅎㅎ 

 

[팀 구성]

팀 구성은 slack에서 팀이나 개인이 본인의 역량이나 필요한 역할을 올리고 서로 연락하는 방식으로 진행되었습니다. 

저희 팀은 이미 멤버가 확정된 상태였기 때문에 이 부분에 대해 크게 경험한 바는 없습니다.

전에 해커톤을 진행했을 때는 참가자의 팀의 정해주었는데요, 

이렇게 서로가 필요한 부분을 찾는 것도 좋은 것 같습니다. 

학생들을 대상으로 알아서 팀을 짜라고 하면 생기는 다양한 문제들을 해결할 방법은 없을까 싶었습니다. 

전혀 모르는 사람들과 협업하는 경험도 아이들에게 분명 소중한 경험이 될테니까요!

 

[해커톤]

 

왼쪽: 대구 가는 길. 민철쌤 감사합니다 ㅎㅎ 

 

해커톤은 오전 10시부터 시작이었고, 저는 팀이 전부 대구에 있었기 때문에 대구로 내려갔습니다.

계속

홍대-집만 다니다가 (홍대 글룩에 작업실이 있습니다) 

기차를 타고 서울을 벗어나니 여행 가는 기분도 들고 좋았어요.ㅎㅎ 

솔직히 아~주 즐거운 여행이었죠!! 

 

 

해커톤은 각 팀끼리 특정 장소에 모여서 진행하였습니다. 

저희 팀은 첫째날 오전에는 대구 창의융합원에,  첫째날 오후 및 둘째날 오전에는 에어비앤비로 잡은 숙소에, 둘째날 오후에는 다시 대구 창의융합원에 있었습니다.
저, 태완님, 김지현 선생님 이렇게 셋이 먼저 모여 만들기 시작했습니다.
그리고 신민철 선생님과 하주형 선생님이 합류해서 본격적으로 시작했습니다!:)

 

맛있는 점심 먹고 시작!!

 

 

저희 팀은 멘토링을 마지막 즈음에 받아 오후 5시쯤 받았습니다. 

그때쯤이면 얼추 괜찮겠지 싶었는데 그것은... 행복한 상상이었습니다..^^

멘토링은 주로 아이디어에 대한 내용이었습니다.

저는 주로 기술 측면에서 조언을 받게될 것이라 생각했는데, 제 예상과는 좀 달랐어요. 

그렇지만 다시 생각해보니 해커톤이라는 성격을 갖고 있기 때문에, 아이디어 자체가 굉장히 중요함을 다시금 깨달았습니다. 

이때 주신 조언이 굉장히 큰 도움이 되었어요!

 

 

ibm으로부터 받은 맛있는 저녁

 

 

그리고 밤새 만들고(새벽 6시쯤 해보고 잠든 것 같습니다),

다음날은 발표를 중심으로 진행되었습니다. 

중간에 박정환 선생님께서 숙소로 응원을 와주셨는데요, 그동안 학교가자닷컴으로 연락드리면서도 한 번도 뵙지 못했어요.

이때 잠깐이라도 뵙게 되어 정말 기뻤습니다.

그리고 선생님의 응원도 밤을 새며 만들 수 있었던 큰 힘이었습니다!!

먼저 각 트랙별로 심사가 진행되었는데요, 비공개로 진행되었어요. 

그 후에는 1차 예선을 통과한 25개의 팀의 발표가 비공개로 진행되었고,

마지막으로 2차 예선을 통과한 5개의 팀이 발표했습니다.

 

학교가자팀의 발표는 민철쌤과 태완님이 맡으셨습니다. 발표 시간이 짧아서 말할 내용이 많아 아주 그냥 혼났습니다. ㅎㅎ

비공개라는 점은 제게는 조금 아쉬운 점이었습니다.

공개 발표는 최종 예선을 통과한 5팀만 발표했어요. 

모두 약 50여개의 팀이었는데, 그 아이디어들이 무엇인지 정말 궁금했거든요. ㅎㅎ 

중간 발표가 있으면 조금 더 배워갈 수 있었을 것 같아요!

 

빰!!!

 

그후 최종 결과가 발표되면서 행사가 마무리되었습니다.

소리 많이 질렀습니다ㅋㅋㅋㅋ

당시를 촬영한 페이스북 영상이 있는데요, 다시 보면서 소리에 깜짝 놀랐습니다.ㅋㅋㅋ 

맛있는 뒤풀이까지~~


환상의 팀워크

 

 

앞서 간단히 이야기했지만, 우리 학교가자 팀은 5명의 팀원으로 구성되어 있습니다. 

물론 아이디어는 다 함께 나누고 발전시켰지만, 각자 맡은 부분을 너무나도 완벽하게 수행했습니다.ㅎㅎ 

디자인은 김지현 선생님, 하드웨어는 하주형 선생님, 발표는 신민철 선생님, 프론트엔드는 고태완님, 백엔드는 제가 맡았습니다. 

와우... 진짜 계속 함께하면서 서로의 케미에 놀랐습니다!ㅋㅋ

 

그 비밀은 오픈 마인드에 있을 것이라고 팀내에서 잠정적인 결론을 내렸습니다.

모두 다양한 아이디어를 냈고 그 아이디어의 구현을 망설이지 않았습니다.

협력 작업에서 가장 중요한 것은 서로를 존중하는 태도라고 생각합니다. 

아이디어의 단점과 장점은 꼼꼼히 분석하면서도, 서로를 존중하는 마음이 가장 큰 힘이 되는 것 같습니다. 

특히 제 부분에 있어서 태완님이 정말 많이 도와주셨습니다. 

이해하기 쉽게 설명해주셔서 저도 백엔드를 만들어 낼 수 있지 않았나 싶습니다. 

감사하면서도 더욱 열심히 참여하고자 하는 열정이 샘솟았습니다. 

 

한편으로 대회를 참여한 목적이 우승이 아니었던 것도 중요한 부분이었던 것 같습니다. 

교육을 목적으로 학생들을 위해, 선생님들을 위한 시스템을 만드는 것이 목표였습니다.

외적 동기가 아닌 완벽한 내적 동기였달까요 ㅎㅎ  

 

애플리케이션을 만들고 상을 받을 수 있었던 것도 팀의 케미가 8할 정도 한 것 같습니다.ㅎㅎ 

이 자리를 빌려 팀원분들에게 감사한 마음을 전합니다.😍

❤️학교가자 팀 최고입니다 ❤️

 


 

나의 아름다운 노드들 (이때는 1차원이지만 이제는 2차원입니다 후훗)

 

개인적인 후기

제가 맡은 역할은 2개였습니다.

 

-앱의 백엔드 부분 만들기

- 우리 애플리케이션에 맞는 IBM Cloud 솔루션 찾기

 

얼떨결에 백엔드를 맡았는데 무엇을 해야할지 감이 오지 않았습니다. 

막상 준비를 본격적으로 시작하니 어떻게 무엇을 할지 막막했습니다. 

아, 이전에 프론트엔드와 백엔드를 모두 구축해서 웹 애플리케이션을 만들어본 적은 있었어요.

코딩야학 1기 과정과 CS50를 수료하면서 조금씩 해봤거든요.

그것은 단순히 주어진 예시를 따라하는 정도였고, 애플리케이션 또한 굉장히 단순한 형태였습니다. 

그때는 php랑 mysql 을 사용했고, 

그리고 무엇보다도, 3년 전에 해본 것이었습니다...ㅋㅋㅋㅋ

(임용 준비하느라 다 까먹은 상태였어요 냠냠)

그렇지만 이번에 맡은 것은 (적어도 제게는) 굉장히 본격적이었고, 그 완성도가 높아야 했습니다.

 

이에 더하여 IBM Cloud 솔루션을 사용해야 했습니다. 

IBM 에서 개최하는 해커톤이다 보니, 그 조건 중 하나가 IBM Cloud 솔루션을 사용하는 것이었거든요. 

아, 요거 적응하는 데에 조금 걸렸습니다.

첫 번째 lecture 에서 IBM Cloud 에 대한 설명을 듣고 와우... 괜히 한다고 했나 싶었습니다. 

이러한 클라우드 기반 앱이나 서비스를 이번에 처음 알게 되었다는 점이 문제였습니다.

 

일단은 조사를 하고 공부를 하기 시작했습니다.

제 경험상 일단 부딪쳐보면 뭔가 배울 수 있는 게 코딩이었거든요. 

그렇지만 어떤 서비스를 써야할지, 클라우드 기반 앱이나 서비스를 어떻게 연결하는지 이해하기가 어려웠습니다. 

분명 굉장히 쉽게 설명해주신 것 같은데, 정말 개론 정도의 지식만 갖고 있는 상태였기 때문에 (지금도 크게 다르지는 않지만요 ㅋㅋ) 어렵더라구요..ㅋㅋㅋ

제대로 하지도 못하는데 괜히 나선 것은 아닌가,
오히려 팀의 좋은 아이디어를 구현하는데에 방해가 되지 않을까하는 걱정으로 여러 날 잠을 설쳤습니다.

 

그러나 일주일, 이주일 공부를 이어가다보니 뭔가 깨닫기 시작했습니다. 

어떤 것이 왜 좋은 서비스인지, 어떻게 연결 방법을 찾는지, 

클라우드 기반으로 앱을 구축하면 왜 좋은지 조금씩 알 수 있었습니다. 

(사실 아직도 매일 새롭게 깨닫는 중입니다 ㅋㅋㅋ) 

그리고 백엔드를 조금씩 구축하기 시작했어요. 

 

[찾아보았던 자료들과 도움이 되었던 점]

node RED

이외의 IBM 클라우드 서비스

*HTTP 관련 자료

- node-RED 공식 자료https://cookbook.nodered.org/http/

이건 공식 자료인데요, 그렇게 친절하지는 않습니다 ㅋㅋ 

-Steve Cope 자료:  http://www.steves-internet-guide.com/node-red-overview/

이분 자료가 좋습니다! 예시를 보면 이해하기 좋게 되어 있어요. 저도 이번에 개발하면서 알게된 것을 조금 쉽게 설명해볼까합니다.(언제...?ㅋㅋㅋ)

 

*기본 사용법에 대한 포럼 

https://discourse.nodered.org/ 노드레드에 대한 자료 자체가 그렇게 많지는 않지만, stackoverflow 쪽보다는 조금 많은 같아요

 

*노드 팔레트 관련 자료 

- 사실 노드 레드에는 다양한 노드를 추가해서 사용할 있습니다. 구현할 있는 기능이 상당히 많아요! 그런데 설명이 짧습니다. ㅋㅋㅋ 그래서 공식 문서보다는 예시를 찾아보는 편이 좋습니다.

*docker, kubernetes: 혹시나 써먹을까하고 공부했던 부분입니다. 세션에서 중점적으로 설명해주시기도 했고요

- IBM 공식 자료https://www.youtube.com/user/IBMCloud 유튜브에 자료가 올라와있기는 한데, 이해하기 어렵습니다. 엄청 쉽게 설명해주시는 것 같기는 하지만 어렵더라구 ㅋㅋ 그보다는 

https://www.facebook.com/groups/developerWorksKRUG/permalink/2176947709184728/  자료가 좋습니다. developerworks Meetup이라고 해서 IBM 직원 분들이 나와서 소개해주시는데, 훨씬 이해하기 좋아요! 저 위에 ibm 자료는 이것 먼저 보고 나서 해보면 좋을 것 같습니다.  

-docker:  https://docs.docker.com/get-started/ 공식 문서가 괜찮습니다. 따라하면서 이해했어요 ㅋㅋ 

-kubernetes: https://subicura.com/2019/05/19/kubernetes-basic-1.html  자료가 이해하기 좋았습니다!

 

백엔드는 IBM Cloud 의 Cloud Foundary 앱 중 Node-RED 로 구성했고, Cloud Foundary Service 중  push notification, mysql 서비스를 붙였습니다. 

 

이번에 해커톤을 하면서 도전과 실천의 가치를 다시금 피부로 느꼈습니다.

당일에 전부 만들어 갈 수는 없을 것 같아서 어느정도 만들어 갔습니다.

행사 당일 기능에 대한 논의를 진행하면서 계속 수정 및 추가할 사항이 생겼고, 결국 프론트엔드와 백엔드를 연결하지 못한 채로 해커톤이 끝났습니다. 

역시 하룻밤 만에 다 하기에는 어려움이 있었나봅니다 ㅠㅠ 

그래도 해커톤 행사까지 백엔드에서 필요한 부분 - 데이터 전송 및 조회 등등-을 얼추 전부 구현했다는 점에서 굉장히 뿌듯했습니다. ㅎㅎ 

끝나고 나서 열심히 연결하고 있네요.ㅎㅎ 

계속 보다보니 처음에는 하나도 이해하지 못했던 내용도 갈수록 조금씩 머리에 들어오기 시작했습니다. 

역시 생각만으로는 부족한 것 같아요.

무언가를 만들어야 배우는 것 같습니다. 

 

이번에 학교가자 팀이 만든 안전하게 학교가자 애플리케이션이 현장에서 조금이나마 힘이 되었으면 좋겠습니다. 

해커톤이 끝난 이번주도 애플리케이션 출시를 위해 밤낮이 아닌 낮낮의 삶을 살며 열심히 만들고 있습니다.ㅎㅎ 

그럼 마지막으로 공식 기사 올리고 개발하러 이만 가보겠습니다!(총총)

https://platum.kr/archives/143152

 

50개 팀, 216명 참가한 ‘2020 콜 포 코드 한국 해커톤’ 우승팀 - 'Startup's Story Platform’

한국IBM과 서울시, 환경재단이 공동 개최한 ‘2020 콜 포 코드 한국 해커톤’이 마무리되고, 우승팀 3팀이 선정되었다. ‘2020 콜 포 코드 한국 해커톤’은 국내 개발자들이 오픈소스 기술과 IBM에서

platum.kr

 

 

댓글