ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TWL : 프로그래머스 데브코스 운영일기 #14 함께 해요. 온라인 수료식! (feat. 인공지능 최종프로젝트)
    교육 이야기/운영일기 2022. 6. 7. 12:21
    Summary

    지난 5월 6일, 인공지능 데브코스 3기의 수료식이 열렸습니다. 온라인 수료식부터 최종 프로젝트, 팀 별 부스와 방명록까지 다양한 이벤트가 존재했는데요. 이제는 추억으로 남은 온라인 수료식의 현장! 함께 살펴볼까요?

     

    게더타운에서 진행하는 온라인 수료식!

    이번 인공지능 수료식은 온라인으로 진행됐습니다. 코로나로 인해 오프라인 모임이 어려워 게더타운에서 진행하게 되었는데요. 직접 만날 수는 없지만 아바타가 돌아다니며 사람들과 마주하고, 대화를 나누듯 자연스럽게 화상으로 소통하니 느낌도 새롭고 재밌더라구요. 온라인이지만 직접 만든 장소에 캐릭터를 꾸미고 들어가니 수료식 현장의 느낌이 뿜뿜 느껴졌답니다.

    게더타운에서 진행하는 온라인 수료식!

     

    팀 별로 최종 프로젝트를 볼 수 있는 개별 부스가 있어요.

    반 별로 마련된 공간에 들어가니 개별 부스가 있고, 팀 별 최종 프로젝트를 볼 수 있었는데요. 부스에는 발표 영상과 제작한 프로젝트의 사이트가 남겨져 있었답니다. 저도 한팀 한팀 돌아다니며 체험을 해봤는데, 폰트 제작 사이트와 동화책을 읽어주는 AI, 동물 장기 게임 등 볼거리와 즐길거리가 엄청 다양하더라구요! 돌아다니며 시간가는 줄 모르고 구경했어요👀

     

    다양한 프로젝트 결과물

     

    팀 부스로 들어가 프로젝트를 확인하면 방명록을 남길 수 있는데요. 멘토님들이 프로젝트를 확인하고 직접 코멘트도 달아주셨더라구요! 애정이 담긴 코멘트에는 프로젝트에 대한 질문과 장점, 보완점이 남겨져 있었어요. 쭉 읽다보니 수강생 분들이 수료 후 리팩토링할 때에 큰 도움이 되겠다는 생각이 들었답니다ㅎㅎ 프로젝트부터 방명록까지 열심히 참여해 주시는 모습이 너무 보기 좋았어요😄

     

    방명록과 멘토님 피드백

     

    수료식 간접 체험하기!

    인공지능 온라인 수료식이 궁금하신 분들을 위해 영상을 준비했어요! 인공지능 교육매니저 헤더가 여기저기 돌아다니며 부스별로 체험하는 장면을 짧게나마 담아주셨답니다😄 이렇게 다시 보니 수료식 때의 기억이 새록새록 떠오르네요. 

    * 인공지능 수료식 게더타운이 궁금하다면 이 링크를 통해 자세히 살펴보실 수 있습니다!

     

     

    열심히 달려온 5개월,
    그리고 최종 프로젝트까지

     

    이렇게 끝내긴 너무 아쉽죠? 수료식에서 선보인 다양한 프로젝트 중 수강생들의 투표를 통해 우승 팀을 뽑았는데요. A반과 B반, 각 반에서 우승팀을 선정했답니다. 최다 득표를 받은 우승팀을 위해 소소한 시상식도 진행했어요!

    A-1팀(이재석, 류지호, 김동환) 과 B-4팀(김동영)

    치열한 접전 끝에 선정된 두 팀! 프로젝트를 체험하다 보니 서비스를 만든 목적이나 최종 프로젝트를 진행하며 겪었던 에피소드들이 궁금하더라구요. 우승 트로피를 받은 프로젝트는 어떤 서비스였을까요? 👀 함께 살펴봐요~!

     

    최종 프로젝트 어떠셨나요?

    1) Face_Flow / A-1팀

    Face Flow 시연 영상 (화남, 행복, 놀람, 무표정 등)

    Face_Flow는 방송 중 실시간으로 상황에 맞는 감정을 파악해야 하는 카메라 감독을 보조하기 위해, AI 카메라 시스템을 구축하여 편의성을 제공하는 것을 목표로 하는 프로그램입니다. TV 프로그램에서는 방송흐름에 맞게 실시간으로 청중들의 감정을 분석하여, 가장 좋은 감정의 청중을 보여주는데요. 카메라 감독이 수백명의 방청객(청중)을 바라보며 실시간으로 상황에 맞는 감정을 파악해서 zoom in, zoom out을 해야 하기 때문에 번거로울 것이라는 생각이 들었고, 이 과정을 'AI 카메라가 도와주면 좋겠다'는 생각으로 기획을 시작하게 되었다고 해요! 

    팀 프로젝트 진행하며 힘든 점은 없었나요? 어떻게 소통하며 해결했나요?

     이재석: 할당된 컴퓨터 자원이 많이 부족했고, 대용량의 데이터셋을 처음 다뤄보는 것이기 때문에 처음에는 '어떻게 전처리를 해줘야 할 지, 모델을 누가 어떻게 얼마나 돌릴 것인지'에 대한 소통이 많이 부족했었던 것 같아요. 다행히도 팀원 분들이 협업 툴을 다뤄본 경험이 있으셔서 데일리 스크럼과 일정관리를 통해서 어느 것이 부족한지, 언제까지 어떤 일을 수행해야 하며 다음 작업을 위해서 어떤 것이 수행되어야 하는지 눈으로 보기 편해지니까 나중에는 많이 개선되었어요.

     김동환: 처음에는 5명으로 시작했지만 일부 팀원분들이 취직을 하셔서 3명이 남게되었습니다. 그중에서도 한분은 학업과 병행을 했어야 했는데요. 업무분담이나 투자할 수 있는 개발 인력이 점점 줄어든다는 생각에 불안했습니다. 하지만 제 걱정이 무색할만큼 모든 팀원이 적극적으로 참여했고, 빈자리가 느껴지지 않도록 서로 노력했습니다. 다만, 데이터를 처리하는 과정에서 계획에 차질이 생겼고, 애자일 방식을 도입하여 작은 기능이지만 동작하는 프로그램을 완성시킨 후 멘토님의 피드백을 반영하며 업그레이드하는 방식으로 계획을 세웠습니다. 처음에 기획했던 만큼의 결과물이 나오지는 못해 아쉽지만, 저희 팀이 원했던 모델을 구축할 수 있었습니다.

     

    팀 프로젝트를 통해 배운 점이 있다면 무엇인가요?

     이재석: 5개월 동안 기초지식을 많이 쌓고 실습도 진행해 왔지만, 미리 준비된 데이터 내에서 준비된 모델을 선정하는 것과 실제 프로젝트를 진행하는 건 이미 많이 들었을지라도 체감은 훨씬 더 크더라구요. 데이터셋과 라벨을 저희 모델에 맞게 고치는 데에만 2주 가까이 쓸 줄은 상상도 못 했으니까요. 이 부분에서 시간을 어떻게 효율적으로 쓸지 많이 배웠던 것 같고, 또한 팀워크적인 측면에서도 비대면 상황에서 역할 분배를 더 확실하게 하는 것이 중요하다는 걸 배웠어요.

     김동환: 데이터는 거짓말을 하지 않는다!! 저희 팀에서 사용했던 데이터는 1차적으로 AI Hub의 ‘한국인 감정인식을 위한 복합 영상’을, 2차적으로는 작은 얼굴과, 다 수의 얼굴에 대한 감정 인식을 돕기 위해 WIDER Face를 택했어요. WIDER Face 상에 있었던 얼굴들의 감정은 대부분 중립(neu) 또는 기쁨(del)이었고, 학습된 저희 모델에서도 작은 얼굴, 다 수의 얼굴에서 중립 또는 기쁨의 감정을 주로 검출해냈습니다. 이처럼 모델은 데이터의 영향을 많이 받기 때문에 학습 데이터의 질과 양이 굉장히 중요하다고 느꼈어요.

     류지호: 팀워크, 개발 일정 관리, 모델 파이프라인 구축 등 배운점이 너무 많았던 프로젝트라고 생각합니다. 한 달 동안 과연 얼마나 진행할 수 있을까 걱정했어요. 한달이라는 시간동안 매일 작업을 하면서 많은 시행착오를 겪었지만 결과가 나올 때 마다 제대로 하고 있는게 맞는 것 같아 안심했습니다. 한 달을 돌아보면 모델 파이프라인 구축에 대해 배울 수 있었고, 매일 개발을 진행하면서 작성했던 칸반보드를 통해 개발 일정을 관리하는 방법에 대해서도 배우게 되었습니다. 그리고 가장 많이 배운점은 좋은 팀워크 인 것 같습니다. 서로 협력하고 협동하고 의견을 조율하는 과정이 계속 있었기에 좋은 결과가 나온 것 같습니다.

     

    아쉬운 점이 있었나요?

     이재석: 아쉬운 점이라면, 원래 계획으로는 웹 페이지 상에서 사용자의 웹캠을 이용하여 실시간으로 감정을 분석하는 데모를 만들고 싶었는데, 기술적으로 불가능한걸 미리 알지 못했어서 나중에 가서 급하게 데모는 영상으로 대체하게 된 점인 거 같아요. 전 기수 선배님들도 이미 이 이슈를 겪으셨는데, 제대로 알아보지 못해서 대책을 미리 마련하지 못한 것이 매우 아쉬웠습니다.

     류지호: 인공지능 모델 구축에 더 많은 시간을 쓰지 못한 것이 아쉽습니다. 한달 안에 웹 서비스를 배포하는 것이 목표라서 데이터 전처리, 모델 학습, 웹 배포 까지 해야 하기 때문에 모델에만 쓴 시간은 적었던 것 같습니다. 전체적인 파이프라인 이해에는 많은 도움이 된 것 같지만 모델 관련 작업에 더 시간을 쓰지 못한 것이 아쉽습니다. 그리고 AWS 서버에서 실시간 웹캠 기능을 사용하는 부분이 잘 되지 않아 로컬 환경이 아닌 웹에서 실시간 테스트를 하는 부분을 구현하지 못한 것도 너무 아쉬웠던 것 같습니다.

     

    함께 한 동료들에게 한 마디!

     이재석: 돌이켜보면 부족한 점이 정말 많았던 팀장이였는데, 믿고 따라주고 더 열심히 참여해줘서 미안한 마음과 고마운 마음이 교차하고 있어요. 프로젝트 때 봤던 것 뿐만 아니라 같이 이런저런 얘기도 하면서 스스로 반성도 많이 하고, 동기부여도 많이 되었어요. 이렇게 좋은 팀원들을 만나서 저는 정말 인복이 많은 사람이라고 생각하고 있습니다. 비록 5개월동안의 데브코스는 끝이 났지만, 언제라도 어디서든지 인연을 이어갈 수 있으면 좋을 거 같아요! 정말 수고 많으셨습니다!

     김동환: 빼지 않는 우리 A1팀 사랑합니다. 같은 개발자로서 또는 친구로서 계속 인연을 이어갔으면 좋겠습니다. 인공지능에 대해서 경험이 없었던 제가 좋은 팀원분들을 만나서 같이 성장할 수 있었고, 인생에 있어서 터닝 포인트가 될 수 있었습니다. 프로그램에 참가하기 전에 저는 인공지능이라는 분야에서 방향성을 잡고 싶었습니다. A1팀이 있었기 때문에 이러한 제 목표를 이룰 수 있었다고 생각합니다. A1 최고❤️

     류지호: 다들 한 달동안 너무 고생많으셨습니다 ㅎㅎ 우리팀 최고!

     

    2) 가나폰트 / B-4팀

    가나폰트는 생성적 적대 신경망(GAN) 을 기반으로
    1. 폰트, 글씨 서체에 대한 디자인 속성을 웹 인터페이스를 통해 입력 받아 (ex. 예술적인, 현대적인)
    2. 이를 반영하는 디자인으로 36개의 한글 글자 이미지를 생성하고
    3. 앞서 생성한 한글 이미지의 초성, 중성, 종성을 조합하여 자주 사용되는 2,448개의 한글 글자 이미지 집합으로 확장한 후
    4. 이를 각 글자와 이미지를 매핑하여 트루 타입 폰트(.ttf) 파일로 가공하는 E2E 프로젝트입니다.

    B-4팀은 동영님 단독 팀이였어요! 단독 프로젝트의 외로움을 달래준 귀여운 조니와 조아도 넣어보았습니다😊

    프로젝트 진행하며 힘든 점은 없었나요? 어떻게 소통하며 해결했나요?

    김동영: 이번 프로젝트는 꼭 GAN을 이용해보고 싶었습니다. 하지만 팀을 구성할 당시 GAN을 주제로 하고자 하는 학생이 적었는데, 매니저님과 상담하다보니 혼자서 진행해도 좋다는 이야기를 들었습니다. 제 스스로에게 혼자서 프로젝트를 기획하고 계획할 능력이 있는지, 이를 수행할 집중력과 끈기가 있는지, 그리고 문제를 해결해나갈 역량이 되는지 질문해보았고 가능하다고 판단했습니다. 물론 쉬운 과정은 아니었고, 작업량이 많아서 계획과는 달리 개발 일정이 조금씩 밀려서 초조했던 것이 기억납니다. 담당 멘토님이 해외에 계셔서 시차가 많이 나는데도 불구하고, 1대1로 몇 시간씩 코드를 같이 봐주셔서 외로움이 많이 덜했던 것 같습니다.

     

    가장 기억에 남는 사건은 무엇인가요?

    김동영: Attr2Font 기술을 적용할 때, 제가 구성한 데이터 세트로 학습을 시키는데 성공시켰을 때의 고생이 기억납니다. 프로젝트 기획 당시에 이 기술의 튜토리얼을 진행하고 데이터 세트의 구조를 미리 확인했었습니다. 그리고 데이터 세트는 부주의하게 삭제해버렸습니다. 그런데 몇 일 후 제대로 작업을 시작하려고 보니 제가 구성한 데이터 세트로는 프로그램이 잘 실행되지 않았습니다. 그래서 원본 데이터 세트를 확인하려고 보니 그 몇 일 사이에 링크가 만료되었습니다.

    문제는 원본 데이터 세트에서 존재하지만 사용하지 않는 데이터가 있었고, 이것을 눈으로 본 저는 잘못된 데이터 세트 구조에 대한 심상을 가지게 되었습니다. Attr2Font는 데이터 세트의 정보에 대해 하드 코딩된 부분이 많아서, 이 하드 코딩된 정보들을 제 데이터 세트에 맞게 수정해야 했습니다. 원본 데이터를 더 이상 구할 수 없는 상황에서, 데이터 구조에 대한 잘못된 심상을 가지고 이 정보들을 다루는 것이 상당히 어려웠습니다. 논문을 읽고 멘토님의 도움을 받으며 코드를 한 줄 한 줄 디버깅 해갔습니다. 결국 아주 간단했던 원인을 잘못된 데이터 구조에 대한 심상 때문에 파악하지 못 하고 있었던 것을 깨달았을 때 후련하면서도 황당했던 것이 기억에 남습니다. 다운로드는 언제 불가능해질지 모른다는 것과 함께 데이터 세트는 소중히 관리해야 한다는 것을 아주 제대로 배웠습니다.

     

    프로젝트를 통해 배운 점이 있다면 무엇인가요?

    김동영: 이 정도 규모의 프로젝트를 직접 개발 일정을 세워서 진행한 것은 처음입니다. 이전에 규모 있는 1년 단위 프로젝트에서 제 선배가 개발 일정을 세우고, 저는 수행만 한 적이 있습니다. 그 때 개발 일정을 세우는 회의에는 매번 참석했었습니다. 그래서 규모 있는 프로젝트에서 계획이 얼마나 중요한지 알고 있었기에 프로젝트의 첫 1주의 계획 단계에서 공을 많이 들였습니다. 혼자 개발을 할 것이므로 작업량이 많을 것이라는 것은 알고 있었습니다. 그만큼 시간을 더 많이 들이고 끈기 있게 집중해서 작업해나갔지만 예상 외의 변수들이 항상 있었습니다. 따라서 원래 계획했던 일정을 계속 유동적으로 변경해야 했습니다. 문제는 한정된 인력과 시간 자원 내에서 계획이 바뀐다는 것은 목표를 낮춘다는 것이었습니다. 그래서 내 프로젝트에서 뭐가 제일 중요한 과업인가? 뭐가 꼭 필요한 기능은 아닌가? 우선순위를 구분하면서 프로젝트를 진행했습니다. 이렇게 프로젝트 개발 계획을 세우고 수정했던 과정들이 좋은 경험이 된 것 같습니다. 결국엔 좋은 성과 또한 뒤따라오게 되어 한정된 자원을 잘 활용했다고 생각합니다.

     

    아쉬운 점이 있었나요?

    김동영: 변수에 대응하느라 계획을 계속 수정하게 되면서, 목표로 했던 몇 가지 기능들을 목표만큼 달성하지 못 했습니다. 프로젝트 평가에서는 좋은 평가를 받았지만, 이 프로젝트를 직접 진행한 입장에서는 너무 아쉬운 성능이었습니다. 예상보다 프로젝트 구현이 늦어져서 모델에 충분한 학습 시간을 주지 못 했기 때문입니다. 본 프로젝트는 2개의 모델을 1단계, 2단계로 나누어 사용하는데, 1단계는 충분히 학습되어 만족할만한 성능을 냈었습니다. 하지만 2단계가 충분히 학습되지 못 했고, 전체적인 성능이 만족스럽지 않았습니다. 2단계에 적용된 기술이 성능이 보장되어있는 기술이라서, 제가 조금 더 잘했다면 훨씬 좋은 결과를 보여드릴 수 있었다고 생각됩니다. 그 외에도 프론트 엔드의 퀄리티나, 백 엔드의 데이터 베이스 등 아쉬운 부분이 많습니다. 그리고 이러한 모든 점들이 제 역량으로 구현 불가능한 것이 아니라 개발 속도의 문제였습니다. 그래서 조금 덜 쉬었으면 잘 할 수 있지 않았을까, 야근을 좀 더 많이 했어야 했는데.. 하고 아쉬운 점이 남습니다.

     

    마지막으로 하고 싶은 말이 있다면?

    김동영: 혼자 팀을 꾸려 진행하게 되면서 느꼈던 외로움을 달래준 저희 집 고양이 조니와 조아에게 무한한 감사와 애정을 보냅니다. 하루 종일 학습 중인 컴퓨터의 키보드를 건드린 이후, 중간 저장을 자주 하도록 스크립트를 변경하는 습관을 배우게 해줬습니다. 프론트 엔드의 디자인에 도움을 준 여자친구에게도 감사를 전합니다. 덕분에 공대 감성으로 기능에 충실했던 디자인이 모양새를 갖출 수 있었습니다.😊

     

     

    댓글

Programmers