닫기
Loading..

전자정보연구정보센터 ICT 융합 전문연구정보의 집대성

현장리포트

홈 홈 > EIRIC 광장 > 현장리포트

트위터 공유

페이스북 공유

본 기고는 애플이 주최한 WWDC 2020의 '스위프트 학생 공모전(Swift Student Challenge)'에서 수상한 중앙대학교 컴퓨터공학부 소프트웨어 전공 3학년 이민지 학생의 앱 개발 도전 체험기입니다.


WWDC(Apple Worldwide Developers Conference, 애플 세계 개발자 회의)는 애플에서 매년 개최하는 개발자 컨퍼런스입니다. 주로 애플이 개발자들을 위해 새로운 소프트웨어와 기술 등을 공개하는 데 사용하며, 체험 활동과 피드백 세션도 함께 진행하는 행사입니다.



Swift1 Student Challenge(Scholarship)


애플에서는 WWDC가 열리기 전, 학생 개발자들을 위한 Swift 학생 공모전을 개최합니다. 공모전에 참여한 학생들은 직접 Swift playground2의 앱을 창의적으로 개발하여 제출하고 이 중에서 전 세계의 350명이 선발됩니다.

 

선발된 학생들이 누릴 수 있는 혜택으로는

1) 200만원 상당의 WWDC 티켓 

2) WWDC 행사 기간 동안의 숙식 제공

3) 12만원 상당의 apple developer program 제공

4) 애플 개발자, 리크루터들과의 소통3

5) 개발자와의 1-1 lab 예약

6) exclusive한 WWDC jacket과 pin set 제공

7) pre-release software의 다운로드 가능

등이 있습니다.


지금까지 한국에서는 2018년 1명, 2019년 2명, 그리고 이번 2020년에는 6명이 선정되었습니다. 그 중 2명은 작년에 이어 올해도 선발된 학생들입니다.


_____
1 Swift: 스위프트(영어: Swift)는 애플의 iOS와 macOS를 위한 프로그래밍 언어로 2014년 6월 2일 애플 세계 개발자 회의(WWDC)에서 처음 소개되었다.
2 Swift playground: Swift를 가지고 노는 놀이터라는 의미의 Swift playground는 인터랙티브 방식으로 재미있게 Swift 코딩을 배울 수 있는 혁신적인 iPad 및 Mac용 앱.
3 작년 선정자 2명은 이 자리에서 Sendbird에 채용 됨.


iOS 개발을 시작하게 된 계기

제가 처음 swift를 접하게 된 계기는 2018년도 겨울방학에 학교에서 진행한 iOS 앱 개발 교육 특강(12~2월)이었습니다. 

저는 iOS 앱 개발 교육 수강자 선발 과정에서 예비 번호 4번을 받았으나, 예비 번호 2번에서 선발 명단이 끝나는 바람에 원래는 iOS 앱 개발 교육을 수강하지 못 할 뻔 했습니다..
하지만, 수업 1주차에 1명이 중도 하차하고, 예비 번호 3번의 포기로 운 좋게 수업에 합류할 수 있게 되었습니다.

수업에서 팀을 선정하는 과정은 우선 수강자 30명 모두가 각자의 앱 아이디어를 발표한 후, 투표를 통해 10개의 아이디어를 선정한 다음 각자 함께 하고 싶은 아이디어를 선택하는 방식이었습니다. 제가 발표한 아이디어가 10개의 아이디어 중 하나로 선정되었고, 저는 제 아이디어로 앱을 제작하며 교육에 참여했습니다.

 

Swift Student Challenge(Scholarship)의 도전과 실패

iOS 앱 개발 교육을 통해 WWDC Scholarship(공모전)을 알게 되었습니다. 그리고 WWDC에 학생들이 참여할 수 있는 이렇게 좋은 기회가 있다는 사실에 저는 주저하지 않고 공모전에 도전하게 되었습니다.

하지만 그 과정은 순탄하지 않았습니다. 왜냐하면 공모전 접수 기간을 뒤늦게 알아서 1주일 정도의 짧은 기간 안에 swift playground 앱을 만들어야 하는데, 앱 개발에 필수적으로 필요한 맥북(혹은 맥)과 아이패드가 없었고 공모전에 제출해야 하는 swift playground도 처음 접했기 때문입니다.
 
그래서 저는 iOS 앱 개발 교육을 수강한 학생들이 사용할 수 있도록 개방한 중앙대학교 교내 310관 지하 3층 맥 강의실에 매일같이 머물면서 열심히 앱을 개발했습니다. 그리고 운이 좋게도 주변 친구들에게 아이패드를 빌릴 수 있어서 아이패드를 활용할 수 있었습니다. 

 
swift playground가 뭔지도 잘 모르고 시작했기 때문에 만드는 과정에서도 winner에 선정되리라는 확신이 서지 않았습니다. 하지만 이번에 만들어 본 경험이 다음 기회에 좋은 밑거름이 될 거라는 믿음으로 끝까지 포기하지 않았으며, 평소 환경 오염에 관심이 많았기에 나비효과를 주제로 한 콘텐츠를 나름 열심히 만들었고 그 결과물을 제출했습니다. 그러나 결과는 역시나 탈락이었습니다.

하지만, 이를 계기로 학교에서 iOS 앱 개발 교육을 진행했던 교육 회사에서 일을 하게 되었으며, 일을 하는 과정에서 swift와 playground에 더 친해질 수 있었습니다.


Swift Student Challenge(Scholarship)의 재도전과 당선

작년의 실패를 바탕으로 이번에는 꼭 winner가 되고 싶었습니다. 하지만 COVID-19로 인해 WWDC가 연기되었고, 이대로 올해는 학생 공모전을 개최하지 않을 거라고 생각했습니다. 그러던 중, 중간고사 준비 기간에 WWDC를 온라인으로 개최하고 학생 공모전도 개최한다는 소식을 듣게 되었습니다.

중간고사가 끝나고 바로 1주일 후가 공모전 마감이어서, 중간고사가 끝나고도 쉬지 못하고 1주일 동안 열심히 코딩을 했습니다.

처음에는 이번 공모전에서 core ML4이나 create ML5을 이용한 playground를 만들고 싶었고, 기획했습니다. 하지만, challenge의 용량 제한6과 사용자에게 코딩을 재밌게 배우고 접하는 경험을 제공하는 swift playground의 특성을 생각하여 이를 사용한 playground를 출품하는 것은 적합하지 않다고 판단하여 다른 주제를 생각하게 되었습니다.

평소에도 밴드 보컬 활동을 하고, 악기도 연주하는 등 음악을 좋아하는 저는 음악과 관련된 콘텐츠를 생각하게 되었습니다. 그리고 코딩의 기본적인 개념인 함수 호출, 조건문, 반복문과 피아노를 접목하게 되었습니다.
C(), D()등의 함수를 호출하면, 해당하는 음이 연주가 됩니다.
(첫 번째 사진 하단을 보면 A() B()등의 함수가 나오는데, 이처럼 빈 칸을 누르면 각각에 적합한 요소들이 하단에 나와서 사용자들이 콘텐츠를 더 쉽고 편리하게 이용하도록 만들었습니다.)
 
_____
4 coreML: 애플의 머신러닝(Machine Learning) 프레임워크.
5 createML:  Create ML 앱을 사용하면 머신러닝에 관한 전문적인 지식이 없더라도 머신러닝 모델을 구축하고 학습시키고 배포할 수 있다.
6 25MB로 기억합니다.
 
 
피아노 건반 위에 보면 고양이가 피아노를 치고 있는 그림이 있는데, 그것에 맞게 연주되는 음에 고양이 발자국이 표시되도록 했습니다.

 
함수 호출을 통해 '작은 별'을 연주해 볼 수 있습니다. 

 



조건문, 반복문에 대한 간략한 개념을 익힐 수 있습니다.



함수 호출, 조건문, 반복문을 이용하여 'Jingle bells'을 연주할 수 있습니다.



이전에는 ‘작은 별’을 연주할 때 음 하나 하나를 입력해야 했지만 이제는 함수 호출, 조건문, 반복문을 이용하여 또 다른 방식으로 ‘작은 별’을 연주해 볼 수 있습니다.


처음에는 이 컨텐츠의 사용자가 매개변수의 개념도 익힐 수 있게끔 이를 활용하여 화음을 만들어 젓가락 행진곡을 연주하는 페이지도 있었으나, 제출물을 3분 내에 즐길 수 있어야 한다는 규정을 준수하기 위해 결국 최종본에서는 포함하지 않았습니다.


음악을 좋아하는 사람들이 더 흥미 있게 코딩을 경험할 수 있고, 음악에 별 흥미가 없더라도 바로 소리를 통해서 반응이 나타나기 때문에 사람들이 더 재미있게 코딩의 기본적인 개념을 배울 수 있는 좋은 콘텐츠라고 생각합니다.


그리고 이번에는 작년과 달리 만드는 과정에서도 좋은 예감이 들었으며, 작품을 제출한 결과 마침내 저는 winner에 선정되었습니다.



전 세계 사람들의 코드를 보고 싶다면 - https://github.com/wwdc/2020


아쉬운 점, 배운 점

전 세계에 불어닥친 코로나 팬더믹으로 WWDC가 온라인으로 진행됨에 따라 개최지였던 미국에 가지 못했고, 그 현장에서 얻을 수 있는 귀중한 경험들을 하지 못해서 많이 아쉽지만 그래도 저의 코딩에 대한 열정과 창의력을 보여줄 수 있는 좋은 기회였다고 생각합니다. 그리고 세상에는 정말 대단한 사람들이 많다는 것을 새삼 느꼈고 더 열심히 노력해야겠다는 좋은 자극제가 된 경험이었습니다.

기회가 된다면 내년에 다시 도전하여 현장의 열기를 꼭 느껴보고 싶습니다.

이번에 제가 winner가 될 수 있었던 건, 창의적인 아이디어라고 생각합니다. 뛰어난 코딩 기술 없이도 좋은 아이디어가 있다면 누구나 winner가 될 수 있다고 생각합니다.

또한, 작년에 "그래도 일단 해보자!"라며 도전한 경험이 큰 도움이 된 것 같습니다. 그래서 안 될 것 같다고 처음부터 포기할 것이 아니라 비록 실패하더라도 그 경험이 나중에 다른 상황, 다른 미션을 만났을 때 큰 도움이 될 수 있으니 일단 도전해보는 것이 정말 중요하고 필요하다는 것을 다시 한 번 확인한 소중한 경험이었습니다.
 

댓글(3)

  • 황금

    매우 훌륭하시네요
    내년에도 도전해서 좋은 결과있어서면합니다 그리고 열심히 하는 모습이
    아럼답네요 향상응원할께요
    건강잘챙기시고 화이팅하세요

    2020-07-28 16:19
  • 제시

    포기하지 않고 계속 도전하면 정말 되는걸까요? 그래도 실력이 되니깐 가능한 거겠죠:D

    2020-09-04 16:46
  • 도라지

    생생한 내용 잘 보았습니다. 앞으로도 좋은 일 가득하시길 바랍니다.

    2020-09-16 11:06