Skip to content

CSUOS@dev_blog

CSUOS 첫 프로젝트를 함께하면서 느낀 것들

4 min read

안녕하세요, CSUOS의 첫 프로젝트 NERA에서 프론트엔드 개발을 맡고 있는 '우희은'이라고 합니다. 현재(2020-09-04일 기준) CSUOS의 멤버를 모집하고 있는데, 혹시나 지원을 망설이시는 분들께 도움이 될까해서 포스팅을 작성하게 되었습니다. 조금이나마 도움이 되기를 바라며, CSUOS를 접했을 때부터 현재까지 느낀 점이나 얻은 것들을 진솔하게 작성해보겠습니다.😃

CSUOS의 시작

처음 CSUOS를 접하게 된 건 페이스북에서 모집공고를 보았을 때입니다. 현재 NERA의 프로젝트 매니저이신 '이완해' 학우님이 올리신 공고를 보고 지원해야겠다는 생각이 들었습니다.

NERA 모집 공고 : https://www.facebook.com/groups/uoscs/permalink/3034156119965555

저는 우선 프로젝트를 시작할 때 현재 진행 중인 프로젝트와 더불어 저의 상황에 이 프로젝트가 무리가 아닐 지를 먼저 따지고, 이 프로젝트로 인해서 얻는 점이 많고 그 장점이 제가 향하는 방향에 있는지를 따져봅니다. 더불어 해당 프로젝트의 주제가 제가 관심있는 분야라면 더더욱 좋겠죠 :>

생각없이 일을 벌리다가 마무리 하지 못한 적이 많다보니😫 그 이후로는 한참 생각하고 나서 시작여부를 결정하곤 합니다. 이렇게 까다로운 저에게도 NERA는 꼭 해야겠다 싶은 프로젝트 중 하나였습니다!

그 이유는 다음과 같습니다.

NERA를 시작한 이유

  • 학과생과의 커뮤니케이션
  • 협업 프로젝트 경험 부족
  • 웹 백엔드 지식 부족
  • 주제에 대한 관심

우선 학과생과 커뮤니케이션 할 수 있다는 점이 정말 큰 장점입니다. 저희 과는 아시다시피 선후배간의 소통이 정말 힘든 학과에요😂 물론 그 안에서도 인싸들이 많긴 하지만 (^^) 저는 새로운 사람들을 접하고 인적 인프라를 더욱 넓히고 싶다는 마음이 있어서 이러한 프로젝트 자체가 반가웠습니다. 더 발전해서 현재 CSUOS라는 소모임으로 거듭나서 더 기쁘구요. (빨리 새로운 분들이 들어오셨으면 좋겠네요..!!!) 이렇게 새로운 사람을 만나면 주위사람에게서 받을 수 없는 전혀 새로운 정보들을 얻을 수 있다는 게 큰 메리트입니다.

저는 기존에도 팀 단위로 프로젝트를 한 경험이 꽤 있지만, 모두 2인 팀이었고 해당 분야에 대해 처음 공부를 시작하는 수준이었는지라 제대로 된 협업 경험이 없습니다. 따라서 소규모라도 체계화 된 협업 경험이 있었으면 했는데, 마침 카카오 인턴 중인 '이완해' 학우님이 모집하신다 하니 이번이 기회구나! 싶었습니다. 모집공고에도 '협업 경험의 획득'이 있었구요.

저는 아직 진로에 대해서 확정한 것은 아니지만, 우선 웹 풀스택을 생각하고 공부를 해나가고 있습니다. 이에 더해서 머신러닝이나 빅데이터 등을 더 공부하고 싶긴 합니다. 어쨌든 웹 풀스택으로 나아가는 중에 걸림돌이 되는 것은 웹 백엔드에 대한 지식이 부족하다는 것이었습니다. 그래서 처음에 토이 프로젝트를 혼자 진행하며 독학도 해봤지만 쉽지 않았습니다. (NERA하면서는 이 기간이 정말 삽질이라는 걸 깨달았어요.. 물론 삽질도 중요하지만). 따라서 웹 백엔드를 배우기 위해서 프로젝트를 참여한 부분도 없지 않습니다.

NERA의 목적은 '마크다운을 이용한 과제 제출 플랫폼'입니다. 컴퓨터과학부 특성 상 과제를 수식으로 출제하거나 제출해야하는 경우가 많은데, 기존 과제 제출 플랫폼으로는 한계가 있기 때문에 컴과 맞춤형 플랫폼을 제작하자는 것이었죠. 저는 Typora라는 마크다운 에디터를 정말 좋아하고, 지인들에게 항상 추천해왔습니다. 그래서 마크다운 관련 프로젝트가 나오자마자 바로 하고 싶다는 생각이 들었답니다! 🙋‍♀️

타이포라 한번만 써보세요 여러분 ㅠㅠㅠ 🥺

https://typora.io/

저는 이러한 이유들 덕분에 NERA 프로젝트를 시작하게 되었고, 여러분들은 물론 다를 수도 있겠지만 모두 원하는 것을 얻어갈 수 있는 프로젝트를 하셨으면 좋겠습니다. 물론 그만큼 시간을 쏟을 열정과 체력이 있는지 충분히 고민해보세요.😊

CSUOS로 인해 얻은 것

다양한 기술 접하기

NERA의 첫 회의 때부터 저는 이 프로젝트를 시작하길 잘했다고 생각했습니다. 다소 길었던 2시간의 첫 회의에서 '기술 스펙', '기능 요구사항', '협업 툴' 등을 논의했습니다. 체계화된 협업이 처음이었던 저는 무수히 많은 협업 툴이 쏟아져서 다소 당황했지만, 써보니 다 좋더군요..! NERA에서 사용해 본 협업 툴은 다음과 같습니다.

  • Github

    • Pages
    • Issue
    • Projects
  • Gitlab

  • Notion

  • Google 문서

  • Google Meet (이전 Hangout)

  • Miro

    앞으로 다양한 프로젝트들이 등장함에 따라 각각의 팀에서 사용하는 협업 툴은 다를 수 있겠지만 Github 추천합니다. 정말 모든 걸 먹으려고 하는지 대부분의 기능을 다 가지고 있더라구요..! Notion이 좋긴 하지만 저희도 사용하면서 용량 제한 때문에 Github로 대체하고 있답니다.

그 외에도 툴로는 Oven, SwaggerHub, Vault, Overleaf, Postman, Insomnia

기술로는 Koa.js, MongoDB, Material-UI, axios, jwt, web storage, oAuth, LDAP, Typescript, Docker, eslint, history API, mobX, CORS (proxy), Hook 와 같은 것들을 접했습니다.

모두 사용해봤다는 얘기는 아니고, 2개월이라는 짧은 시간내에 가능하지도 않습니다 ㅎㅎㅎ. 하지만 어떤 툴과 기술이 존재하고 뭐가 좀 더 편리하며 대체 기술로는 어떤 게 있는지를 알 수 있는 기회였습니다. 이렇게 정리해두면 다음에 어떤 기술을 쓸 지 고민할 때 참고할 수도 있고, 반드시 공부해야할 부분에 대해서도 정리할 수도 있으니까요..!

그리고 제 입장에서는 백엔드 코드를 보면서 부족했던 백엔드에 대해 공부할 수 있는 기회여서 정말 좋았습니다. 혼자서 토이 프로젝트를 진행할 때는 책과 구글링에만 의존해서 배움이 더디고 구현이 허술했습니다. 역시 기술은 나보다 앞서 있는 사람의 코드를 보면서 배우는 것이 가장 빠른 것 같습니다.

다양한 사람 만나기

함께 NERA 프로젝트를 진행하게 된 '이완해', '고태진', '오준영', '김정현' 학우분들과는 실제로 다같이 만난 적이 없습니다. 코로나의 영향으로 매번 화상 회의만 했기 때문에 아쉽긴 합니다. 그래도 회의 때 자주 소통했으니 내적 친밀감은 높네요 ㅎㅎㅎ

프론트엔드 작업을 같이 맡았던 '김정현' 학우와는 실제로 만나서 여러 이야기도 나누고 작업도 같이 해보았는데, 굉장히 좋은 경험이었습니다. 저는 React를 조금은 알고 프로젝트에 참여했고, '김정현' 학우는 모르는 상태였지만 배우는 속도가 굉장해서 이제는 저보다 잘한답니다 ㅎ휴ㅠㅠ 같은 분야에 있어서 열정적이고 능력있는 사람을 만나고 나면 한동안은 기를 받아서 cheer-up된 상태로 개발을 향한 열정이 마구 솟습니다. 자기반성도 많이 되구요.

다양한 위기 만나기 ㅠ

NERA를 진행하면서 React에 대해 많이 공부해봤다고 생각했지만 아직 정말 정말 정말 정말 부족한 상태라는 걸 알게 되었습니다.

처음에 프로젝트를 빌드하고 나서 개발에 급급해서인지 중간에 라우팅 구조를 아예 바꾸어야하는 상황이 왔습니다. 이래서 계획 및 문서 작성이 가장 중요합니다. 소프트웨어 공학에서 7~80%가 개발 전 과정이라는 것을 배웠을 때 눈치챘어야했어요.. 후.. 🤦‍♀️ 새로 작성했지만 이로 인해서 아주 나중에 갈아엎어야하는 불상사를 막았다고 생각해요. 어떻게 보면 다행입니다.

두번째 위기는 시크릿 키 값이 노출되어 DB가 사용불가 상태가 되었을 때입니다. 누군지 모르겠지만 DB를 아예 바꿔놔서 갑자기 사용이 안되는데, 제가 푸시한 다음부터라서 제 탓인줄 알고 이틀을 꼬박 오류 개선에 투자했었습니다. 하지만 결국 이유가 저렇게 드러나서 속상했지만 다행이었죠 ㅎㅎㅎ..

세번째 위기는 백엔드 api와 연동할 때 찾아왔습니다. 데이터 흐름이 처음부터 끝까지 이어져있는 프로젝트 구조로 개발을 했는데, 몇가지 이유 때문에 더 이상 그럴 수 없는 상황이 오고 말았죠. 몇 일을 소비해도 제대로 된 해결방안을 찾지 못해 결국 팀원분들의 충고를 받아 데이터를 각각 가져오는 식의 다른 방향으로 프로젝트를 진행하게 되었습니다.

네번째 위기는 git issue로부터 발생했습니다. git에 대한 공부가 충분하지 않은 상태에서 다루다보니 issue를 다룰 때 따로 브랜치를 만들어서 PR해야한다는 사실을 뒤늦게 깨달았습니다. 그래서 본의 아니게 다른 분의 코드를 함께 PR하게 되는 불상사가 벌어졌지만 너그럽게 이해해주셨습니다 ㅠㅠ

그래도 이렇게 소규모의 프로젝트에서 배우게 돼서 얼마나 다행인지 모릅니다. 나중에 회사에 영향을 미칠 수 있는 행동을 했다고 생각하면.. 상상도 하기 싫습니다.🤮

CSUOS를 추천하는 이유

저한테는 처음에 NERA를 시작한 이유를 모두 충족하고도 남을만큼 만족스러운 프로젝트였습니다. 배우고 싶었던 분야(백엔드)에 대해서도 만족할만큼 배웠고, 협업 툴이나 여러 가지 기술들에 대해서도 접하게 되었고, 새로운 사람들도 만나게 되었고, 앞으로 나아가야할 방향이 조금 뚜렷해졌으니까요! 특히 혼자 공부하던 저에게는 여러 사람과 함께 한 경험이 재밌었고 자극이 되어서 저에게 선한 영향력을 끼쳤다고 생각합니다.

여러분도 CSUOS에 들어오셔서 마지막에는 저보다 많은 것을 얻어가시길 바랍니다.🙏

지원은 바로 여기서 👉 https://csuos.github.io/career

프로필

저는 서울시립대학교 컴퓨터과학부 17학번 '우희은'입니다.

저에게 뭔가 제안하고 싶으시거나 같이 이야기라도 나누고 싶으신 분, 또는 뭔가 물어보고 싶으신 분들을 아래의 방법으로 연락해주세요 :>