본문 바로가기

Daily/Code Fest

2019 오픈핵 후기

첫 블로그 포스팅이네요. 이번에 저한테 의미 있었던 해커톤인 오픈 핵에 갔다 오고 나서 많은 개발자 분들이 블로그를 하시는 걸 보고 생각만 하고 있던 기술 블로그를 시작하려고 합니다.

 

오픈 핵은 소프트웨어 중심대학으로 지정된 각 대학에서 대표로 선정된 약 4명의 학생들이 모여서 한 해커톤입니다!

 

오픈 핵 지원서 쓸 때만 해도 시험기간이라서 학교 가면서 지하철에서 30분 동안 후다닥 기존 포트폴리오 복붙 했는데 붙을 줄이야!! 학과 사무실에서 오픈 핵 참가자라고 연락 왔을 때 종강하고 개발 공부 좀 하다가 가야지 했는데, 종강하고 번아웃 와서 개발을 아무것도 못하고 있었어요. 근데 오픈 핵 갔다 오고 좋은 사람들도 많이 만나고 좋은 영향을 정말 많이 받아서 다시 개발자로서 버닝 하려고 합니다!

 

후기 시작하겠습니다!

 

 

정말 본인 위주의 후기입니다.

 


 

첫째 날

- 개발 세미나

- 자기소개

- 아이디어 피칭

- 팀빌딩

- 개발

 

둘째 날

- 개발 개발 개발

- 멘털 케어엔 멘토 테이블로

 

셋째 날

- 개발

- 발표

- 수상

- 네트워킹


첫째 날

오픈 핵 일정 확인

오픈핵 일정표

 

오픈 핵은 익산 웨스턴 라이프 호텔에서 진행되었습니다.

 

저희 학교 같은 경우는 이화 개발자들끼리 모두 같은 ktx 호차를 끊어줘서 다 같이 이동했습니다. 같이 밥 먹고 종강한 얘기나 교수님 얘기하면서 조금 친해진 것 같습니다. 다 같이 사진 찰칵!! 제일 상태 좋을 때 찍어야 된다고 하고 찍었어요ㅎㅎ

 

들어가자마자 주는 받은 굿즈!!! 진짜ㅠㅠㅠ 행복했어요!!! 그동안 갔다 온 해커톤 명찰을 모두 갖고 있는데, 오픈 핵은 굿즈까지 완벽해요!! 특히 저 배지들은 진짜 너무 귀여워서 주섬주섬!!


개발 세미나

굿즈 받고 저는 3층에서 ai, 개발, openSW 특강을 들었습니다. 사실 저는 그동안 프로젝트하면서 github랑은 좀 많이 친해져서 다른 세션을 들으려고 3층에 올라온 건데 정말 좋았습니다!!

 

1. ai 세미나

사실 AI나 블록체인 쪽 보다는 웹 개발에 더 많이 관심이 있어서, 사실 잘 모르던 분야인데 발표자 분께서 질문도 잘 받아주셔서 너무 감사했습니다! 지금 강연 때 봤던 필기 보니까 음,, 역시 생소한 단어네요!!
mortal, contract의 개념에 대해서 설명해 주신 게 기억에 남는데, 외부에서 ai에 접근할지, 안 할지 영화 예시를 들어주시면서 설명해주셨습니다.

 

2. Docker + Cloud 서버 개발 세미나

이 세미나가 개인적으로 저한테 너무 도움이 된 세미나였습니다. 
사실 그동안 docker환경이나, nginx 말고 다른 aws 로드 밸런서에 대해서 궁금했는데, 개발의 전체적인 과정이나 코드를 강연자 님이 처음부터 시현해주셔서 감을 잡은 것 같은 느낌이 들었습니다. 
ppt에서 각 코드의 흐름을 하나하나 필기했는데요 제가 기억나는 전체적인 흐름은

 

AWS 서버 생성

 - AWS EC2 생성, SSH 서버 연결

DOCKER 설치 (doker hub 원격 서버 이용)

 - IMAGE 생성 (github과 비슷한 느낌?)

   > (github repository - docker hub repository)

   > (source code - image(container) : 서버 환경 저장)

도메인 연결 (AWS route)

ELB 생성 (로드밸런서)

 - 이전에 ELB용 보안 그룹 생성하기

 - ELB 생성 후 EC2에 추가

 

가장 기억에 남는 건 docker 명령어가 흘러가는 과정을 다 보여주신 거였는데, 해커톤에서 docker를 공부하려다가 시간이 부족해서 미루고만 있었는데 AWS랑 연계해서 배포 개념을 훑어준 게 저한테 너무 큰 자산이었달까! 꼭 블로그에 공부해서 포스팅하고 말겠습니다!!

 

3. 오픈 소스 세미나

오픈 소스 세미나 같은 경우 한글시계 개발자님께서 진행해주셨습니다. 와 이전에 써 보고 나서 대단한 분이라 생각했는데 저보다 한 살 어린 분이라 진짜 놀랐습니다. 역시 컴공판 재능충들이 넘치는 곳!!

 

강연자 님이 말한 것 중에 오픈소스의 장점으로

1. 문제제기

2. 기능 개선 요청

3. 코드 품질 강화

4. 프로그램 배포 간편

 

이렇게 네 개가 있었는데 제가 질문했던 것들은 2개였습니다.

 

Q. 프로그램 배포가 간편한 거면 github에 exe파일을 공개하시는 것 같은데 브랜치 전략을 어떤 걸 사용하시나요

 

A. git flow를 사용합니다. (야호 제가 아는 개념) feature브랜치로 기능별로 구현하고, 각 feature 브랜치의 내용을 develop 브랜치에 반영, 그리고 master 브랜치에 실제 서비스를 배포하는 형식으로 하고 있습니다.

 

Q. 오픈 소스 프로젝트의 경우엔 내 주 언어(java)가 아닌 언어도 사용하고 여러 개의 언어가 얽혀있는데 어떻게 코드를 해석하시나요?

 

A. 대부분의 오픈 소스 프로젝트가 규모가 큰 프로젝트(chrom, android 등)가 많아서 여러 언어가 섞여있긴 해요. 그래서 저는 어느 언어든 main 함수와 같은 역할을 하는 게 있잖아요?! main 함수부터 보고 따라갑니다! 이해 못해도 좋아요!

특히 두 번째 질문에 대한 답변이 저한테 유익했던 시간이었습니다.

 


자기소개

세미나가 끝나고 자기소개를 진행했는데 참가자, 멘토님, 운영진님 까지 모두 200명 가까이 되는 사람들이 모두 소개하는 자리를 가졌습니다. 간단하게 학교, 자신의 기술 스택, 오픈 핵에 오게 된 소감을 발표했습니다.

 

네. 롤 API로 재밌는 서비스 만들고 싶다고 한 게 접니다ㅋㅋㅋ

개인적으로 항상 롤 API가 되게 다양하고 문서가 갖춰져 있다고 생각해서 그 자리에서 말했는데 말을 뱉고 나서 바로 api문서 찾아보니까 spring으로 개발하지 않는 이상 다른 프레임워크 학습곡선 때문에 클라이언트한테 api 넘겨주는 시간이 오래 걸릴 것 같아서 접었습니다! 헤헤


아이디 피칭

드디어 아이디어 피칭!!

한 명 한 명 나와서 아이디어를 발표하는 시간을 가졌습니다! 사실 배지가 탐나서 나갈까 했다가 제가 맘에 드는 아이디어 (저희 팀 알고리더!!!)가 나와서 혹시라도!!! 선택될까 봐 가만히 있었어요.

 

그중에도 확실히 기억에 남는 건 성관련 서비스 기획하신 분!! 진행자님의 짓궂은 멘트에도 굴하지 않고 만들어 낸 게 개인적으로 멋있는 분이었습니다!


팀빌딩

아이디어 피칭 후, 벽에 붙어있는 아이디어의 소개에 스티커를 붙여서 스티커를 많이 받은 순으로 최종 아이디어를 선정했습니다. 그렇게 최종 선정된 아이디어의 PM들은 각자 자신의 아이디어 종이를 붙이고 돌아다니면서 개발자님을 구하는 신기한 광경이 나왔습니다!

저희 팀은 AlgoReader! 백준 알고리즘 아이디를 입력하면, 유저가 푼 문제를 분류해서 시각화해서 알려주는 아이디어였습니다. 저는 저희 PM님한테 스티커 3개 몰빵 했다고 어필했습니다!


개발 시작

백엔드 2 + 프런트엔드 2 + 디자인 1 이렇게 5명이서 개발을 시작했습니다!

첫날에 다 같이 닭강정 먹으면서 이야기하는데 이때만 해도 다들 세상 해맑은 성격인지 몰랐어요!! 개발하면서 너무 재밌게 개발하고, 오류가 나도 음!!! 이런 오류가 나도 이쁘게 보이는 것 같아!! 하고 칭찬해주는 다들 착한 사람들ㅜㅜ 

특히 디자이너 소현이랑 엄청 친해져서 좋았어요><

 

이후 스택을 정했는데

 

프런트엔드는 vue js백엔드django로 정했습니다!


둘째 날

개발 개발 개발!!

1. 크롤링

 

백준 알고리즘을 이용해야 했기에 백준 api를 찾아봤는데 백준 님 답변은

 

그렇지만 api가 없더군요ㅜㅜ 그래서 결국은 파이썬 beautiful soup을 이용해서 제가 크롤링을 담당하게 되었습니다.

 

그런데 개발을 하면서 확실히 안 하던 언어를 사용하다 보니 계속 오류가 뜨더라고요.

저 같은 경우 대부분의 에러가 타입 에러... 그동안 java로 개발하면 intellij에서 타입을 다 확인하고 개발을 하다 보니까 이런 경우가 없었다 보니 더 고생을 했습니다!

2. 장고!!!!

클라이언트와 통신하는 rest api 같은 경우는 장고를 이용해서 개발했습니다.

장고가 확실히 api가 빠르게 구현되긴 하지만 오히려 제가 애먹은 부분은 환경 세팅이었습니다ㅜㅜㅜ 파이썬으로 개발하는 친구가 docker를 사랑하는 이유를 알게 됐어요!

 

그렇지만 확실히 여러 프레임워크를 상주하다 보니까 이해는 빨리되는 느낌이었습니다! node.js에서의 package.json, spring의 gradle과 maven처럼 django도 requirement.txt 파일이 필요하다는 걸 알았고, django에서 DB 연동 시 migrate 하는 방식이 ruby에서 migrate 하는 방식이 비슷하다고 느꼈습니다.


멘털 케어엔 멘토 테이블로

그래서! 위에 문제들을 겪을 때! 특히 환경설정에서 애먹을 때 멘토 테이블을 갔는데 다들 너무 친절하게 같이 고민해주고 해결해주셔서 너무 감사했습니다.

 

핵 데이에서 같은 팀이었던 두진님이 gitignore 파일이 안 먹어서 (이미 올라간 파일을 ignore 하려고 해서 생긴 문제) 고민했던 문제도 해결해주셨고

 

멋쟁이 사자처럼을 같이했던 현석오빠 같은 경우는 저랑 같이 장고 코드 보면서 주변분들께 파이 참 환경설정 물어봐주는데 너무 고마웠습니다! 그리고 이때 당근 마켓 재호 오빠가 해결을 싹 해주셔서 그 이후 개발은 순탄했습니다!!ㅎㅎ

 

외 에도 자바의 requirement.txt 파일을 만들 줄 모르고 이런 모듈 설치가 안돼서 장고 실행이 안돼서 애먹을 때도 데브옵스 코리아 조철현 멘토님께서도 다 해결해주셨습니다.

 

멘토님들이 하나같이 자기들 문제처럼 코드 한줄한줄 봐주시는 모습에 감동하고 이번 해커톤에서 자바 개발자라고 자바만 파지 않고 스택을 그래도 조금씩은 넓혀봐야겠다는 생각을 하게 되었습니다.


셋째 날

개발

저 같은 경우엔, 크롤링 api 수정을 마치고 잠시 눈을 붙이러 올라갔는데 저희 프런트엔드들은 한숨도 못 잤다고 해서 미안했습니다ㅜㅜ 그래서 일어나서 밥 먹는 대로 빠르게 README.md 파일 및 서버 아키텍처 구조 작성하고 발표를 준비했습니다.


발표

각 팀에서 몇 명은 자신의 테이블에서 각종 시연 및 발표를 하고, 다른 몇 명은 다른 테이블을 돌아다니는 방식으로 발표가 진행됐습니다. 1인 3표까지 다른 팀에 투표할 수 있어서 통상적인 해커톤이랑은 심사기준부터가 달랐습니다!

개인적으로 한 명 한 명 무대 앞에서 나와서 피칭하는 방식이 아니라, 모두가 직접 시연하고 질문할 수 있는 방식이라서 더 집중되었습니다.

 

제가 개인적으로 대단하다고 생각했던 프로젝트는 15조였나 안드로이드 텍스트 에디터 라이브러리를 만들었던 팀이었습니다. 대부분의 해커톤 서비스는 일반 사용자를 겨냥한 게 많은데, 이 팀처럼 개발자를 겨냥한 서비스는 새로웠습니다!! 그래서 개인적으로 수상팀에 당연히 들 거라고 생각했어요!!

 

저희 팀도 열심히 시현했습니다!!

저희 팀 시현하다 보니까 와,,, 알고리즘 120위 대인 랭커 분도 보고 신기했습니다


수상

두구두구 그래서 저희 팀은!!

2등입니다!!!

사실 시연 때 많은 분들이 재밌어해 주셔서, 팀원들이 모두 4등 정도 기대하던 상태인데 이름이 안 불리길래 다들 체념했었습니다ㅋㅋㅋ 그래서 2등 팀에 저희가 불렸을 때 팀원들 모두 얼떨떨해하면서 갑자기 행사장에 침묵이!!!

다들 너무 기뻐하면서 기념 촬영하고!

나중에 얘기했는데 알고리더는 서버도 프런트도 조금씩 수정해서 제가 dns 배포 무조건 할 거라고 밀어붙이는 중입니다!!


네트워킹

수상이 끝나고 기념촬영 후에 저녁식사 겸 네트워킹 시간이 있었습니다. 팀원들끼리 이야기하다가, 여성 개발자분들 이야기를 들을 수 있다고 해서 저는 그 테이블에 가서 이야기를 했습니다. google 프로덕트 매니저 이해민 멘토님, MS 전미정 멘토님 이야기를 들으면서 사실 걱정이 많이 됐습니다. 멘토님들이 그동안 여성 개발자로서 고생했던 일화들이 저한테도 일어날 것 만 같았기 때문입니다. 근데 듣다 보니 멘토님들은 이런 고생에도 꿋꿋하게 자신이 하고 싶은 일, 커리어가 개발이라는 걸 알고 있고 오류를 해결하는걸 즐거워하시는 정말 코딩을 사랑하시는 분들이었습니다. 그래서 저도 앞으로 힘들겠지 하고 짐작하고 고민하는 것보단, 개발자로서 이것저것 시도하면서 이번 해커톤처럼 재밌게 코딩해야겠다고 마음을 먹게 되었습니다!


마무리

저한테 정말 기억에 많이 남는 해커톤입니다. 여기서 만난 기존에 알던 인연들도, 새로 만난 인연들도 저한테 너무 소중한 사람들이기 때문입니다. 그리고 그동안 7번 정도의 해커톤을 나갔지만, 이렇게 실제로 배포하고 싶다고 생각될 만큼 애정을 가진 프로젝트가 알고리더가 처음이었습니다!! 그리고 해커톤에서 처음 수상을 해본 거라서 저한테 뜻깊었던 것 같습니다.

top4에 들어서 8월 말에 있을 중국 해커톤에도 나가게 되었는데요, 거기서도 지금 팀원들하고 으쌰 으쌰 해서 쓸고 오겠습니다!! 후기는 여기까지 끝!