[Review] GDSC 활동 회고록

GDSC Glenn 회고

이 글에서는 2022년 9월부터 2023년 7월까지 GDSC(Google Developer School Clubs)의 1년의 시간에 있어서 나에게 어떤 일이 있었는지, 어떤 변화가 있었는지 회고 작성을 하고자 한다.

GDSC 가 뭐지 먹는건가?

처음에는 그저 주변에 친구와 형이 속해있어 개발자들이 모인 동아리라고 들었던 것 같다. 하지만 실제 프로젝트와 이야기 해 볼수록 솔직히 아무것도 모르던 나에겐 굉장히 “멋있다… 섹시하다…” 라는 생각만 들던 동아리였다.

들어가면 여러 포지션 분들과 협업하여 프로젝트를 진행하는데 내가 아는 것이 없어서 일단 민폐를 끼칠 것 같았고, 면접을 보시는 분들 중에 친구가 참여하게 되어 부족한 모습을 보여주기 부끄러워 더 지원을 망설였다.

지원을 결심하게 된 계기는 주변인들의 지지와 “이대로 아무것도 도전 안하고 살면 졸업 때까지 나는 아무것도 할 수 없겠다”는 생각이 들어 지원서를 열심히 작성하였고… 결과는 서류 합격이였다.

면접은 솔직히 원래 성격이 솔직한 것을 지향하여 성격과 가치관을 꾸밈 없이 말씀드렸는데 다들 좋게 봐주신 것 같다…ㅎ

GDSC에서 진행하는 첫 팀 프로젝트 와플!

https://github.com/GDSC-Daejin/waffle-croffle-backend

와플은 와르르 프로젝트라는 말의 줄임말이다. (사실 풀네임 다 끝나고 알았음..)

처음 하는 프로젝트이다 보니 운영진들 측에서 주제를 정해주셨다. 주제는 TodoList 구현을 목표로 하였다.

문제는 지금부터… 우선 우리는 Frontend 2명, Backend 2명 총 4명으로 팀이 구성되었다. 근데 다들 이런 팀 프로젝트에서 각자의 역할로 진행해본 적이 없어서 내가 어디까지 구현하고 가공하여 프론트가 쓸 수 있는지 이런 걸 전혀 몰랐다….

먼저 팀 이름부터 지었는데 각자 와플에 올리고 싶은 재료 하나 골라 와플에 올린다는 생각으로 팀 이름은 시나몬치즈누텔라앙버터크로플이 되었다 ㅎㅅㅎ… 뒤틀린 황천의 네이밍

0

0

이제 우리 팀은 매주 목요일 21:30 분에 스크럼을 진행하게 되었고, 정말 특별한 경우가 아닌 이상 매주 진행했다. 근데 첫 스크럼때 정말 가관이였다.

무엇을 얘기해야…하나요? ㅋㅋㅋㅋㅋㅋㅋ 이런 분위기였다. 다행히 점점 진행될 수록 다들 내가 뭘 해야 하는 지 알게 되고 스크럼 시간도 점점 줄어들었다. (처음엔 진짜 몇 시간을 했는지 모르겠음…)

0

Backend에서 내 역할은 ERD 작성을 우선 Als와 함께했다. 서로 개발하면서 변수명, 데이터타입 등을 헷갈릴 우려를 방지하고 Front에게 데이터타입을 보면서 개발할 수 있게 해주기 위해서다.

다음으로 Github에 GDSC repo에 프로젝트를 개설하고 기본적인 프로젝트 환경설정과 뼈대를 만들었다.

진행하면서 내가 먼저 투두리스트 개발을 완료하였고 Als에게는 카테고리를 만들어 투두리스트를 연동하는 작업을 맡겼다.

그렇게 먼저 개발을 끝내게 되어 배포를 진행하게 되었는데.. 배포는 Heroku에서 진행하였다. MySQL을 올리는 것은 없어서 Heroku에 ClearDB SQL로 디비를 설정하여 배포했다.

이러한 모든 과정을 거치고 난 최종 결과물을 보자.


시나몬치즈누텔라앙버터크로플 결과

0

카테고리와 투두 CRUD

0

카테고리엔티티 스키마

0

투두엔터티 스키마

0

카테고리 엔터티와 투두 엔터티의 연결은 @OneTomany와 @ManyToOne으로 양방향 연결을 시켜주었다.

카테고리 엔터티에는 @OneTomany 어노테이션을 사용. 하나의 카테고리에 여러개의 투두가 있기 때문. (예시→ GDSC : 와플, 스터디, 세션 등)

투두 엔터티에는 @ManyToOne 어노테이션을 사용. 여러개의 투두는 하나의 카테고리에 있기 때문. (예시→ GDSC : 와플, 스터디, 세션 등)

0

  • New Category 클릭 시

0

  • 할 일 입력하기

0

  • 입력이 된 모습

0

  • 완료 표시와 중요 표시

0

아쉬운 점

먼저 모두가 너무 초보기도 했고… 이 때는 협업이 아니고 그냥 각자 합치는 느낌이 컸다. 과연 협업이라고 할 수 있을지도 의문이다. 또한 배포에 엄청 시간을 쏟아서 기능 구현을 더 할 수 있음에도 못하였다.

결과적으로는 안되는 거 없이 다 되게 했지만, 처음에 기획했던 내용보다는 좀 부실하게 완성이 되었고, 프론트의 배포의 부재와 백엔드 배포 실패가 좀 컸다. Heroku에서 정말 많은 방법을 시도했는데 결과적으론 실패했다…(DB만 올려짐)

하지만 여기서 쌓은 경험으로 두 번째 와플 때 엄청나게 시간을 단축하고 추가적인 기능을 많이 넣어서 시작으로는 나쁘지 않았다고 지금 와서는 생각이 된다.


두 번째 프로젝트 Google Solution Challenge 참여

https://github.com/GDSC-Daejin/waffle-eungae-backend

Google Solution Challenge란?

0

구글 솔루션 챌린지로 두 번째 와플 프로젝트를 진행하게 되었다.

UN의 17가지 지속 가능한 개발 목표를 하나 이상 해결하는 것인데, 여기서 중요한 건 구글의 기술을 활용하여 개발을 해야한다. 예를 들어 Firebase, GCP 등을 이용해야 한다.

그렇지만 우리 팀은 또 Front 2명과 Back 2명이 배정이 되어 안드로이드가 없이 진행하게 되어서 좀 아쉽기도 했고 구글 기술을 활용하는 데 있어서 좀 제약을 받았던 것 같다.

0

| Goal 1 | 모든 형태의 빈곤종결 | | | — | — | — | | Goal 2 | 기아해소, 식량안보와 지속가능한 농업발전 | | | Goal 3 | 건강 보장과 모든 연령대 인구의 복지증진 | - 미혼모나 경제적으로 힘든사람의 물건기부 서비스 -푸드뱅크 형식으로 자기집의 남은음식 공유 | | Goal 4 | 양질의 포괄적인 교육제공과 평생학습기회 제공 | - 일급 또는 시급형식의 간단한 단순노동 매칭서비스

  • 개인 교육 영상을 찍으면 그에따른 광고또는 봉사점수를 줘서 한국중고딩에게 일을 시키는것
  • 번역기능을 사람이하도록하여 언어적 학습에 도움

  • 공부 학습등을 목표를 설정하고 목표를 달성하면 상금형식으로 크래딧을주고 다른 강의를 크래딧으로 살수있게
  •      
    Goal 5 성평등 달성과 모든 여성과 여아의 역량강화 코로나 확인 앱처럼 자신의 성병검사 결과를 앱으로 쉽게 조회하여 보여줄수있게
    Goal 6 물과 위생의 보장 및 지속가능한 관리  
    Goal 7 적정가격의 지속가능한 에너지 제공  
    Goal 8 지속가능한 경제성장 및 양질의 일자리와 고용보장  
    Goal 9 사회기반시설 구축, 지속가능한 산업화 증진 불편한점을 알려주고 돈주고 사는 서비스(프로잭트 구상을 위해)
    Goal 10 국가 내, 국가 간의 불평등 해소  
    Goal 11 안전하고 복원력 있는 지속가능한 도시와 인간거주  
    Goal 12 지속가능한 소비와 생산 패턴 보장 가계부 형식으로 목표를 정하고 목표달성시 그에대한 포상
    Goal 13 기후변화에 대한 영향방지와 긴급조치  
    Goal 14 해양, 바다, 해양자원의 지속가능한 보존노력  
    Goal 15 육지생태계 보존과 삼림보존, 사막화방지, 생물다양성 유지 - 포켓몬고 처럼 만들어보면???
    Goal 16 평화적, 포괄적 사회증진, 모두가 접근가능한 사법제도와 포괄적 행정제도 확립  
    Goal 17 이 목표들의 이행수단 강화와 기업 및 의회, 국가 간의 글로벌파트너십 활성화  

UN의 17가지 지속 가능한 개발 목표는 위에 표처럼 빈곤 없음, 기아 문제, 건강 및 웰빙 등 조금은 난해한 주제들이 있다.

‘응애’팀 구성

0

팀 조합은 저번과 같지만 사람들이 달라졌다!!

팀 이름은 ‘응애’로 정해졌는데… 이유는 사실… 응애 해줘… 할 때 응애다…히히

왜 ‘응애’로 정했냐고 한다면 대답해드리는 게 인지상정! 이것이 전 세계적으로 참여하는 챌린지라서 해외 사람들이 한국의 ㅇ 같은 동글동글한 글자를 좋아한다고 카더라 통신을 들었다.

그래서 해외 사람들이 로고를 봤을 때 되게 귀여워하고 우리가 보기에도 좋았던 단어는 ‘응애’여서 채택되었다.

아이디어 뱅크

많은 것을 고민하다 여러 아이디어가 나왔다.

  • 미혼모나 경제적으로 힘든사람의 물건기부 서비스
  • 푸드뱅크 형식으로 자기집의 남은음식 공유
  • 일급 또는 시급형식의 간단한 단순노동 매칭서비스
  • 개인 교육 영상을 찍으면 그에따른 광고또는 봉사점수를 줘서 한국중고딩에게 일을 시키는것
  • 번역기능을 사람이하도록하여 언어적 학습에 도움
  • 공부 학습등을 목표를 설정하고 목표를 달성하면 상금형식으로 크래딧을주고 다른 강의를 크래딧으로 살수있게
  • 코로나 확인 앱처럼 자신의 성병검사 결과를 앱으로 쉽게 조회하여 보여줄수있게
  • 불편한점을 알려주고 돈주고 사는 서비스(프로잭트 구상을 위해)
  • 가계부 형식으로 목표를 정하고 목표달성시 그에대한 포상
  • 식물 동물 해상 육상에대한 포켓몬고 처럼 만들어보면???

NOX

  • 식물 동물 해상 육상에대한 포켓몬고 처럼 만들어보면???
  • 코로나 확인 앱처럼 자신의 성병검사 결과를 앱으로 쉽게 조회하여 보여줄수있게
  • 푸드뱅크 형식으로 자기집의 남은음식 공유

Lucy

  • 코로나 확인 앱처럼 자신의 성병검사 결과를 앱으로 쉽게 조회하여 보여줄수있게
  • 장애인을 위한 위키백과같은 느낌
  • 기후변화

Jade

  • 미혼모나 경제적으로 힘든사람의 물건기부 서비스
  • 기후변화 커뮤니티
  • 푸드뱅크 형식으로 자기집의 남은음식 공유

Glenn

  • 성병검사
  • 기후변화 커뮤니티 + 챌린지
  • 장애인 어플?

환경관련 커뮤니티로 결정

2차 스크럼 때 대충 뭘 만들지 틀을 잡으면서 나온 내용이다.

  • 반응형 웹 게시판 만들기
  • 포인트방식
  • 광고달아서 기부
  • 초기엔 관리자가 인증
  • 사용자가 모이면 사용자들의 추천을 통해 포인트 적립
  • 사용자 각각에 대한 “***님이 □그루의 나무를 심었습니다.”하는 정보

백엔드 해야 할 일 개요

4차 스크럼 때는 본격적으로 팀원인 Nox와 같이 무슨 기능이 필요할지 의논하여 적어 놓았다.

그 와중에 프론트인 Jade는 페이징 기능도 부탁하여 추가해서 넣었다.

  • 깃허브 레포파기
  • 페이징 처리 해줬으면 좋겠다 (제이드) = 주소 보낼 때 page=7 같이 오는 거
  • 로그인(구글로그인 추천)
  • 게시판 게시글쓰기(카테고리 별)
  • 좋아요 누르기(게시글, 댓글)
  • 댓글쓰기
  • 대댓글쓰기
  • 카테고리별로 리스트 조
  • 배포

전체적인 개발 과정

먼저 이 프로젝트는 정말 시간을 많이 쏟았다.

백엔드의 개발 과정은 어찌 보면 개발보다는 개발하고 “어? 이거 왜 안됨?” 이러고 몇 주 동안 고치고 했던 시간이 길었다.

처음 한 건 첫 번째 와플때와 마찬가지로 ERD, 환경설정, 깃허브 등 똑같이 했고 기능 개발도 게시글, 카테고리 정도 먼저 했다.

이제 차이점은 사진이 들어가기도 하고, 회원제가 도입되기에 회원가입부터 벌어지는 모든 과정들이 크게 차이점이라고 보면 된다.

내가 맡은 일은 전체적인 기능 개발이지만 사실 어려운 부분은 Nox가 담당했다. 나는 기능 API 개발을 담당하고 Nox는 그 외 GCP로 배포를 담당해주고 Auth 사용하여 구글 로그인을 담당했다.

구글 로그인 부분이 진짜 문제가 많았는데 우리는 JWT방식이 아닌 Session 방식을 채택하여 진행했는데, 코드 상에서도 로그인 정보가 넘어오지 않는 문제가 있었고, 구글 로그인 페이지에서 메인 페이지로 넘어올 때 쿠키를 가지고 와야 하는데 그게 계속 이상한 이유로 필터링이 되어서 거의 한 달 동안 이것만 고쳤다.

오류 났던 사항들은 개인 블로그에 적어두었는데 여기에 까지 올리면 너무 길 것 같아 생략…

[Spring] JWT 구글 로그인 토큰 유효성 검사 에러

[Spring] 개발 과정 Error 해결 모음

이 외에도 결정적인 해결 방법을 포스팅을 깜빡하고 안 넣었는데… 아까 말한 쿠키가 필터링 되는 문제는 발표 자료에 있으니 사진으로 첨부…

0

결과 동영상

이렇게 좌충우돌 Solution Challenge 최종 동영상을 첨부합니다…

0


이번엔 진짜 프로젝트…! (내가 PO라니…)

https://github.com/GDSC-Daejin/project-mio-backend

원래는 하고 싶은 프로젝트에 구상도 다 끝내 놓은 상태였고 사람만 모으면 됐는데… GDSC 내부에서 이미 술 카테고리의 프로젝트를 진행하고 있기도 했고 여러 생각으로 인해 그 프로젝트는 나중에 마음 맞는 사람들을 모아서 진행하기로 했다.

그러다 Harry 가 Slack에 학교 셔틀버스 문제로 인해 카풀의 수요가 증가함의 증거들을 바리바리 싸들고 와주셔서 이왕 프로젝트를 할 거 확실한 사용자들을 모집할 수 있고, 우리가 실제로 겪는 문제를 해결해보자는 생각으로 프로젝트를 시작하게 되었다.

이번이 진짜 여태까지 쌓아온 모든 경험치를 불태우는 프로젝트라 생각하고 열심히 준비했다. 처음에는 안드로이드 2명, 백엔드 1명으로 3명이 시작하려 했지만 진짜 놀랍게도 디자이너 분들의 TO가 남아 매력 어필을 했더니 흔쾌히 2명이 참가해주셨다… ㅠㅠㅠㅠㅠㅠ

총 인원은 5명으로 결성되었다. 어벤져스…

0

프로젝트 개요

  • 학교 계정을 이용한 구글 로그인 방식으로 학생 인증 + 학번 공개로 인한 익명이 아닌 학번으로 활동하게 하여 신뢰성을 높임
  • 사용자 입장에서 운전자가 제 시간에 갑자기 오지 않는 경우 사용자에게 큰 리스크가 주어져서 학번을 밝혀서 신뢰성을 높여주는 것이 목적
  • 카풀 후에 서로를 평가하는 기능을 주어 회원의 매너 등급을 확인할 수 있게하여 신뢰성을 높임

기능 요약

현재까지 구현된 기능은 아래와 같다.

  • 학교 계정을 필터링하는 구글 로그인 (JWT 방식)
  • 계좌번호, 성별, 흡연 여부 등 회원 추가 정보 기입
  • 카풀과 택시 같이 타기 분리
  • 게시글 기능
  • 댓글, 대댓글 기능
  • 알림 기능
  • 북마크 기능
  • 카카오맵 API 사용한 핀의 위도, 경도 저장
  • 검색, 세부사항 필터 검색(성별, 흡연 여부 등)
  • 게시글 참여 기능(운전자가 올린 게시글을 유저가 참여 신청, 운전자 유저 확인 후 승인 등)
  • 해당 위도 경도에 존재하는 게시글 보여주기
  • 매너 등급 기능(게시글이 완료 되었을 때, 탑승자는 운전자를, 운전자는 탑승자를 평가 후 매너 등급 결정)
  • 신청한 게시글, 승인된 게시글 확인하는 마이페이지

배포

배포는 현재 PaaS 방식으로 편하게 배포해놨는데, 성능도 속도도 상당히 무료인 것 치고 괜찮다고 생각되어서 CloudType에 배포를 했다.

Heroku 같은 경우는 해외 서버를 이용하니 결국은 속도가 느릴 수 밖에 없는데 CloudType은 한국에 위치하여 한국에서 쓰기엔 굉장히 최적이라고 생각되고 CI/CD도 간편하게 설정할 수 있어서 선택했다.

아무래도 실제 배포를 하고 유저들이 생겨 속도가 느려지면 따로 다시 배포를 하고 CloudType은 개발용 서버로 해야겠지만 현재는 안전한 것 같다.

디자인 + 안드로이드

현재 둘 다 굉장히 열심히 해주셔서 이쁘게 나오고 있고 정말 디자이너 팀에게 감사한 게 기획적으로 부족한 부분을 디자인 하면서 기획까지 다 해주고 계셔서 정말 편하게 개발하는 것 같고, 안드로이드 팀은 들들 볶는데도 열심히 구현해주셔서 너무 다들 감사합니다…ㅠㅅ ㅠ


마치며

현재 프로젝트를 진행하고 있지만 이번 기수를 마지막으로 나가게 됩니다. 함께 프로젝트를 하고 밥도 먹고 파티도 하고 1년 동안 GDSC가 없었다면 느껴보지 못했을 많은 추억과 감정을 가지고 좋은 기억으로 나가려고 합니다!

프로젝트를 진행하신 많은 분들께도 감사하지만 저를 전적으로 도와준 우리 Backend 포지션 분들께 제일 감사하다고 말씀드리고 싶습니다. Panda, Peony 특히 감사드려요 ㅠㅅ ㅠ

다음으로는 항상 누구보다 바쁜 거 같은데 어떻게 저렇게 시간내서 회의하고 의견 내어 헌신할 수 있을까 싶었던 운영진분들… 리드 Jason 정말 고생하셨어요… 여러분들이 없었다면 GDSC가 있을 수 있었을까요? 존경합니다.

마지막으로 우리 MIO 프로젝트에 참가하고 있는 Winnie, Judy, Purang, Ace 부족한 저를 데리고 함께 프로젝트 하느라 고생이 많으신데… 디자이너 측에서 원하시는 바를 항상 감사하게 주장해주시고 그걸 열심히 구현해주는 우리 안드로이드 인복이 참 많네요 제가… 고마워요 다들

부족한 저를 지금까지 잘 봐주시고 말씀 걸어주셔서 모든 분들에게 감사합니다. 조금 더 나은 제가 되어 나갈 수 있게 되어 저는 너무 행복합니다. 앞으로도 많은 분들이 GDSC를 이끌어서 더 좋은 동아리로 발전될 수 있게 제가 열심히 응원할게요! 감사합니다!!

Leave a comment