자유/잡담

IT 연합동아리 매쉬업 후기, 4년 하고도 반년의 여정

Chipmunks 2023. 1. 7.
728x90

매쉬업 홈페이지

추천 받은 배경 음악

⛳️ 4년 하고도 반년의 여정

지난 10월 초에 20대 초부터 함께 한 매쉬업이라는 동아리를 마무리했다.

과장이지만, 내 인생의 20% 를 함께 했고, 4년의 대학 생활만큼 20대의 큰 비중을 차지했었다.

물론 처음부터 오래할 생각은 없었다. 그냥 남들만큼 하리라 생각했었지.

심지어 매쉬업 첫 기수 때는 내가 남는게 팀에 민폐를 끼치는 게 아닐까 싶어 고민을 많이 하기도 했었다.

 

매 기수마다 나갈까 했지만, 후회와 미련이 나를 잡았다.

한 때는 왜 더 잘하지 못했을까, 자책을 하기도 했었다.

후회와 미련이 오기를 이끌어냈고, 시간이 지날수록 나를 점점 무겁게 만들었다.

그러던 중 나를 바꾼 터닝 포인트를 만났고, 무겁게만 느껴졌던 후회와 미련을 마주하고 벗어던질 수 있었다.

 

후련했다. 의외로 수료할 때 시원섭섭한 미련은 단 하나도 없었다.

진심 한 스푼 담겨있는 우스갯소리로, 드디어 토요일 '있는' 삶이라 후련하다고 했지만.

사실 후회와 미련이 없었어서 후련했었다.

 

그동안 많은 걸 얻었기도, 경험했기도, 깨달았기도 하였다.

모든 사람이 나와 같지는 없겠지만, 적어도 나는 이렇게 생각했었다, 라는 걸 알리고 싶다.

동아리를 가까이서, 또는 멀리서 함께 한 분에게는, 나는 어땠는지 생각해 보는 계기가 되었으면 좋겠다.

동아리를 지원하고자 하는 분에게는, 생생한 경험담으로 선택에 도움이 되었으면 좋겠다.

 

2023년 1월 11일 부터 매쉬업 13기 모집이 시작되므로 참고 바란다.

 

Mash-up Recruit | IT 연합 동아리

매쉬업은 개발, 디자인에 관심과 열정이 있는 사람들이 모인 단체로 Product Design, Android, iOS, Backend(노드,스프링), Web 총 6개의 팀으로 구성되어 있습니다. 매쉬업에서는 전체모임의 세미나 및 네트

recruit.mash-up.kr

🐾 발자취

- 2018년 3월 5기 ~ 2022년 10월 12기 수료

- 5 ~ 8기 iOS 팀원

- 9기 백엔드 (스프링) 팀장

- 10기 백엔드 (노드) 부팀장

- 11기 백엔드 (노드) 팀장

- 12기 웹팀 팀원

 

🍎 그저 iOS 앱을 한 번 쯤은 만들어보고 싶었다.

9년전 고등학교 1학년 가을~겨울 때였다.

토요일마다 학교에 있는 아이맥실에서 Objective-C 으로 iOS 앱을 실습할 수 있는 교육을 신청해 받았었다.

그래도 맥북이 있는데 iOS 앱을 끄적이기라도 해봐야지, 하는 마음으로 신청했었다.

남들이 보기에 '학교에 아이맥실이 있다고?' 싶겠지만 당시 학교의 지원이 없어 무척 열악했었다.

히터도 없이 패딩을 껴입고 수업을 들었던 기억이 생생하다.

어느 날 돌연 강사님이 안 오시고 문 앞에서 발을 둥둥 구르다, 허무하게 끝나버렸었다.

여담이지만 솔직히 나라도, 주말 아침 일찍 교통도 불편한 동네까지 갔는데 인원도 없고 대우가 그랬으면... 하루 가고 안갔을 거다.

 

그렇게 가슴 한 편에 미련을 남기고 대학교 1학년 겨울방학때였다.

교내에 무료로 iOS 특강을 해주는 프로그램에 참여했었다.

몇 년 동안 공사했던 새로운 건물을 가는 것도 설렜고 아이맥실에서 iOS 특강을 듣는 것도 설렜었다.

나중에 알았지만, 강사님들도 커뮤니티에서 유명하신 분들이라 더 기대가 됐고 많이 배울 수 있었다.

바쁜 멋쟁이 사자처럼 동아리 운영진 준비와 병행하여, Swift 온라인 강의도 집에 가서 따로 들어서 공부했을 정도로 열심히 했었다.

 

2주간 Swift 교육을 듣고 짧은 기간에 만든 프로젝트 치고는 나쁘지 않은 퀄리티의 TO DO & 다이어리 앱을 만들었었다.

 

시즈 더 데이 - Seize The Day!

채병훈 "개발자는 하지 말아야겠다." -->

projectintheclass.github.io

같이 팀을 한 형이 지인들에게 소개해줬는데 반응이 꽤 좋다고 했었다.

교육 뒤에도 더 배우고 배포까지 해보고 싶었으나, 멋쟁이 사자처럼 활동에 더 집중해야할 때 였었다.

그렇게 아쉬움을 뒤로하고 17년도를 마무리 했었다.

 

어느 날 고등학교 선배이자, 대학교 선배를 만났는데 서로가 경험했던 동아리 활동을 이야기 했었다.

그러던 중 매쉬업과 넥스터즈란 외부 동아리를 알게 되었다.

넥스터즈는 내 수준으로 합격하기 어려워보였고 활동이 타이트하다는 느낌을 많이 받았어서

자연스레 매쉬업에 관심을 가지게 되었다.

 

18년도 3월이었던가. 매쉬업 5기 공고가 올라왔고 구글 독스로 만든 지원서를 작성했다.

작년에 남겼던 아쉬움으로 iOS 팀으로 지원했다.

이번에는 열심히 배워서 앱스토어에 배포해보리라.

 

참고로 후술하겠지만, 동아리 분위기나 대내외 상황이 그 때와 완전히 다르다.

그저 참고만 해주기를.

 

매쉬업 5기 개발팀 지원서 모습

첫 번째 항목은 동아리 단골 질문인, 자기 소개와 지원 동기다.

글자 수 제한이 없다는 점을 이용해 온갖 TMI 를 적었었다.

오래 전 기억까지 끌고 와 모바일 앱 개발 경험을 작성했었다.

아까 썼던 일련의 과정으로 iOS 앱 개발을 하고 싶다! 로 결론을 맺었다.

나이가 나이다보니 군대로 인한문제로 활동에 지장이 없다 라는 것도 강조했었다.

iOS 앱 경험이 없다보니 프로그래밍 공부를 일찍 시작했다는 걸 처음에 어필했었나보다.

지금 보니 낯 부끄러운 TMI 라서 내용은 지웠다.

매쉬업 5기 지원서

글 재주가 없어 다소 딱딱하더라도 최대한 구체적으로 간결하게 적으려 노력했다.

그 뒤에는 경력 혹은 활동사항, 그 경력에 좋았던점과 나빴던 점, 사용해봤던 개발 언어, 관심있는 개발 언어를 적었다.

iOS 관련된 활동 뿐 아니라 다른 동아리나 10대때 했던 개발 경험을 모조리 압축하여 적었었다.

당연히 iOS 와 관련된 경력과 활동 내용만 적는게 베스트로 보인다.

사용해봤던 개발 언어, 관심있는 개발 언어는 나같은 iOS 앱에 도전하는 초보자를 위해, 다른 걸 어필할 수 있게 하는 문항으로 보였다.

 

다양한 개발 분야에 찍먹했다는 걸 어필했지만, 그래도 Swift 언어가 가장 기대가 된다라는 걸 강조했다.

마지막으로 진행했던 프로젝트 중 인상 깊었던 점을 말하는 항목이 있었다. ( 또는 없다면 만들고 싶은 프로젝트를 소개 )

Seize The Day 는 너무 짧은 시간에 만든 터라 인상 깊은 소재로 하기엔 무리수였다.

그래서 제일 최근에 했던 멋쟁이사자처럼 백엔드 개발 프로젝트를 썼었다.

 

다른 분야다보니 그 언어나 기술에 집중하기 보다는 프로젝트를 어떻게 진행했는지를 중점으로 작성했었다.

백엔드 지식을 몰라도, 개발자라면 그 프로젝트에 투입되는 노력이 상당했고 일반 프로젝트와 다른 경험을 했구나 라는 걸 느끼도록 작성했다. 무더운 여름날, 매일 같이 광화문으로 모여 팀원들과 서비스를 기획하고 만들었고, 답사까지 하고, 이벤트까지 여는 등, 동아리에 영향력을 펼쳤던 경험을 위주로 인상 깊었던 점을 언급했었다.

인상 깊던 건 역시 가장 힘들었던 경험이 많이 남나 싶었다.

 

그렇게 서류 전형은 합격이 되었다. 면접은 내가 사정이 있어 토요일이 아닌, 일요일 강남역 스터디룸에서 봤었다.

미루다보니 iOS 운영진이 아닌, 안드로이드 종사자인 매쉬업 단장님과 이번에 iOS 팀으로 오시는 팀원분과 함께 1 : 2 면접으로 진행했다.

면접관이 iOS 종사자가 아니었다보니, iOS 팀에 지원한 다른 케이스와는 달라서 다른 분들에게 그렇게 도움이 되지는 않을 것 같다.

그래도 여느 동아리와 같이 자기소개, 지원동기를 물었고, 지원서 바탕으로 질의응답이 오갔었다.

iOS 기술 질문보다는 경험 위주로 이야기를 했었고, 앞으로 동아리에서 어떤 걸 하고 싶은지를 이야기 했었다.

다행히 그 당시 단장 형이 지원서를 인상 깊게 봤다고 말씀해 주셔서 며칠 후에 합격 통지를 받았다.

아마 iOS 기술 질문을 물었으면 몰라서 최대한 아는 선에서만 대답했지 않을가 싶다.

 

내가 합격했던 요인은 뭐였을까?

확실한 건 아니라 짐작만 할 뿐이다.

당시에는 막 iOS 를 시작하려는 사람도 많이 들어왔었고, 학생 또는 취준생의 비율이 꽤 높았다.

대학생 중에서 경쟁한다 가정했을 시, 대학생 중에서 맥북을 가진 인원이 몇이나 되겠는가?!

또한 타동아리 운영 경험과 협업한 개발 경험도 큰 플러스 요인이 되지 않을까 싶다.

 

당시 면접관 형과의 공통점이 있었던 것도 한 몫 한 것 같다.

그 형도 산업기능요원을 준비해봤기에 군복무 제도를 잘 알고 있어 군문제가 크게 느끼지 않았으리라.

사실 20대 초의 나이가 동아리 운영 입장에서 꽤 신경 쓰일 수 밖에 없다. 실제로 군문제로 다른 동아리에 떨어진 경험이 있었다.

( 그 동아리에서 나와 배경이 비슷하고 같은 나이대의 여성 회원이 주로 붙었다는 사실과 20대 중반 이상의 남성 회원들로 구성된다는 점으로 유추했다. )

보통 사람들은 산업기능요원을 잘 모르기에 불확실성을 포옹하려하지 않았지만,

제도를 잘 아는 사람 입장에선 인생을 계획적으로 사는 친구라는 점으로 어필이 되지 않았을까?

 

언젠가 한 번 물어봤을 때 너무 오래전 일이라 잘 기억이 나지 않는다는데, 그냥 느낌이 좋았었고, 들었다.

이러나 저러나 나는, 그저 iOS 앱을 한 번 쯤은 만들어보고 싶었다.

 

❓ 꿈 꿔왔던 개발자를 나는 하나도 모르고 있었다.

여러분은 개발자, 라는 '직업'을 얼마나 알고 계신가요?

어렸을 때 부터 꿈 꿔왔지만, 정작 내 주변에 직업으로 가진 사람이 거의 없다시피 했다.

있어도 친하지 않거나, 만나면 커리어 이야기를 안하거나.

그저 지레짐작만으로 판단하고, 그들이 정말로 어떤 삶을 사는지, 어떤 고민을 하는지 알지 못했다.

 

매쉬업에 와서 가장 크게 좋았던 점이, 내가 개발자라는 직업이 된 것 처럼 체험해볼 수 있다는 점이었다.

물론 진짜 회사 조직처럼은 아니지만, 실제로 업으로 삼는 사람들과, 진지하게 업으로 삼으려는 사람들과 협업할 수 있다는 건 큰 경험이다.

대학생으로만 구성된 다른 활동과의 큰 차별점이라고 느꼈다.

 

iOS 팀은 직장인 비율이 다른 팀보다 꽤 높았다.

그 이유는 단순히 Mac 환경에 익숙하고, iOS 앱에 관심있는 대학생의 수 자체가 적었다.

iOS 개발을 언제 시작했냐, 라는 질문의 답으로 '대학교 졸업 이후'가 많을 정도로 연령대도 높은 편에 속했다.

미취업자도 나와 달리 진지하게 iOS 개발자를 꿈꾸고 있는 취업준비생인 형, 누나, 동생이었다.

 

그러다보니 개발자란 직업을 다시 한 번 생각해보았다.

실제 현업으로 일하시는 분들을 보며 자연스레 따라가게 되었다.

사실은 따라가는 것 조차 버거웠다.

 

기본 개념을 배우는 것 조차도 달랐다.

흔히 알고 있는 것이 낯설게 느껴졌다.

'그냥' 이란게 없었다.

셀 수 없을 정도로 타이핑했던 코드지만,

코드 한 글자 한 글자 작성하는 데에 생각하는 힘이 필요했고

관성으로 코드를 짜면서도 늘 이게 최선일까, 라는 의문을 가지게 되었다.

 

그 때 기억나는 건 뷰를 코드로 짤 수 있는 실습을 했을 때 였다.

오토레이아웃까지 코드로 관리하는 방식이었다.

한 번도 해보지 않은 방식이라 어색했지만, 열심히 연습해서 결국엔 체화했었다.

코드로 작성하는 법의 장단점과, 스토리보드로 작성하는 법의 장단점도 생각할 수 있었다.

 

당시 같은 팀원 분들 중에 N사에 다니거나 관련 교육을 들었던 iOS 개발자분들이 많았다.

강남역 바로 앞 커다란 빌딩 안에 있는 미팅룸을 빌려서 팀모임을 했었다.

커다란 빌딩은 나에겐 가 볼 일이 없는 배경에 불과했다.

입구에 들어가서부터 괜히 긴장됐다.

안으로 들어갈 때 1층 데스크에 있는 경비원분께 문을 열어달라 했어야 했는데

그것조차 무서운 마음이었다. 😂

 

대학교만 다녔다면, 평생 가본 적 없는 건물도 들어가볼 수 있었다.

매쉬업은 iOS 팀모임과 같은 플랫폼 모임이 있고,

전체 동아리원이 모이는 전체 모임이 있다.

전체 모임 때는 구성원분의 도움을 받아 오피스 세미나실을 빌려서 진행했었다.

모든 오피스 공간을 본 건 아니지만, 실제 IT 회사 사무실은 이렇게 생겼고,

이런 환경에서 다들 근무하는 구나를 느꼈다.

이 역시 내가 절대 경험해보지 못했을 거였다.

 

여태까지 주변에 개발자, 디자이너를 하고 계신 분들이 거의 없다보니

개발자, 디자이너 분들과 대화하고 협업해볼 수 있어서, 그 자체만으로 좋았었다.

깜깜한 어둠 속을 무작정 걸었던 과거와 달리, 개발자라는 직업에 한 발자국 다가간 느낌이었다.

🥲 첫 프로젝트의 쓴 맛

매쉬업에서는 프론트 개발자, 백엔드 개발자, 디자이너와 함께 모여 프로젝트를 한다.

첫 프로젝트는 위치 기반 급여 기록 어플리케이션이었다.

근무지를 위치로 저장해두면, 오늘 받은 급여 기록이 그 근무지로 저장된다.

 

매쉬업은 기획자가 따로 있는게 아니었다.

다 같이 시드 아이디어를 내고 발전시킨다.

더운 여름날 홍대 캠퍼스 안에 있는 카페에서 회의했던 기억이 아직도 선명하다. ( 캠퍼스 안까지 들어가본 적이 처음이랴..! )

평소에 불편했던 점을 이야기하거나 해보고 싶은 것을 나눴다.

그러던 중 알바에 관해서 이야기가 나왔고 급여를 관리하는 서비스로 방향이 결정됐다.

 

생각해보면 첫 프로젝트 치고 꽤 구현 난이도가 높았었다.

위치 기반도 생소했고 캘린더를 구현하는 것도 만만치 않았다.

당시에는 다들 어느 아이디어가 나오든 당연히 구현 가능한 분위기였다.

웃고 있지만 보이지 않는 식은 땀이 났었다. 🤣

 

iOS 팀 세 명이서 메인 페이지, 캘린더, 로그인/회원가입 플로우를 나눴었다.

메인 페이지와 로그인/회원가입 플로우의 UI 작업이 어려워 보였었다.

메인 페이지는 곡선 그래프가 들어갔고 로그인/회원가입은 페이지가 연결되는 효과가 있었다.

그래서 UI 가 심플해보이는 캘린더와 캘린더 상세 페이지를 담당했다.

내가 맡았던 UI

당장 캘린더를 구현하는 게 만만치 않았었다.

이전 달과 다음 달을 고려해야 했고 각 셀이 가지는 정보마다 표현해야되는 게 달랐다.

폰트를 적용하는 것도 처음이었고 도형을 표현하는 것도 어색했다.

가장 만만치 않았던 건 테이블뷰와 스택뷰, 컬렉션뷰였다.

 

iOS 리스트뷰를 만드는 방식은 언제 봐도 신기하다.

UI 프레임워크에서 개발자에게 '내가 뭘 출력할까?' 를 물어보는 게 신기했다.

프로젝트 덕분에 테이블뷰와 스택뷰, 컬렉션뷰는 지겹도록(?) 해봤다.

 

UI 디자인을 보는 제플린이란 것도 처음 봤고 Git 으로 프로젝트를 관리하는 것도 처음 해봤다.

모든 게 처음이다 보니 열심히 뚝닥이면서 했었다.

 

😭 다음 기수를 해야 할까?

프로젝트에서 내 생각만큼 기여를 못한 것 같아서 자신감이 떨어졌었다.

팀모임 때도 배우기 급급했고 다른 팀원의 코드는 볼 여유도 없이 지나갔다.

대학 생활도 바빴고 금전적 여유도 없었어서 부담이 되기도 했었다.

다음 기수를 할 건지 스태프 형한테 조금만 고민해 본다고 했다.

 

머리가 복잡하고 마음이 무거웠었는데 자고 일어나니 원상태로 회복됐다. (?!)

여기서 그만두면 후회할 것 같아서 한 기수만 더 해보자.

그래도 매쉬업 활동이 너무 좋았기에 동전 하나를 더 넣고 싶었다.

일 년에 두 번. 동전 하나, 동전 하나를 더 넣다보니 어느 덧 8번의 기수를 하게됐다. ☺️

 

대학교 4학년까지 그렇게 iOS 팀으로 활동했다.

카카오톡 iOS 팀 단톡방에서 열심히 서로 웃고 떠들었고

개발하다가 만난 이슈를 다 같이 고민해보기도 했다.

새로운 기술을 도전해보기도 했고 레이벤더리치 책 스터디도 열심히 했고 열심히 놀기도 했다.

 

그렇게 2년간 대학생활과 매쉬업을 함께 했다.

취업을 위해 방향을 틀 때, 코로나 시국이 도래하던 때의 매쉬업 생활을 이야기 하기 전에

대학생활과 병행했을 때 어떤 느낌이었는지 정리해보려 한다.

🧑‍🎓👍 대학생 때 좋은 점

첫 번째로 현업자분들을 많이 만날 수 있다. 비단 같은 팀 뿐 아니라 다른 팀 분들도 많이 만난다.

프론트 개발자면 다른 프론트 개발자. 백엔드 개발자. 개발자 뿐 아니라 디자이너분들까지.

동아리라는 울타리에서 학교 선배처럼 친해질 수 있다.

 

가끔 학교 행사나 여러 멘토링 서비스로 현업자분들께 멘토링을 받을 때가 있다.

또는 실무에서 뛰는 학교 선배님들을 만날 수 있는 기회가 있다.

그 때는 뭐랄까. 여러 번 만나도 친해진다는 느낌을 받기가 쉽지가 않다.

사적인 이야기하는 사이로 발전하기 힘든 느낌이 있다.

 

겪어본 매쉬업 사람들은 소통하고 친해지는 데 무척 열려있는 사람들이 많았다.

iOS 팀은 직장인 비율이 높아서 22살, 23살 때는 거의 막내 포지션이었는데,

별다른 이유 없이 잘해주셔서 고마운 마음을 가지고 있다. 🥺

 

또 매쉬업 사람들은 개발에 진심인 사람들이 많다.

내가 업으로서 어떤 마음가짐을 가져야 하는지 바로 옆에서 배울 수 있다.

프로의식을 가진 분들이 많아서 많이 동기부여가 된다!

 

두 번째로 여러 유명 IT 회사의 오피스를 경험해볼 수 있다.

다시 언급하자면, 진짜 동기부여가 많이 된다.

사무실은 항상 말로만 듣던 공간이었는데, 실물로 보니 더욱 더 개발자가 되고 싶다는 생각이 들었다.

매일 갈 때마다 설레고 괜히 기분이 업 됐었다.

 

세 번째로 프로젝트 협업 경험을 쌓을 수 있다.

서비스 개발에 진심인 사람, 현업자와 함께 서비스를 만드는 경험은 값진 경험이다.

 

대학교에서 경험한 과제와 친구들과 한 프로젝트는 재밌었지만 뭔가 부족하고 아쉬운 느낌이 있다.

힘들었지만 막상 자랑할 점이 없다든지, 외관 디자인이 부족해 어디에 내놓기 부끄러운 점이 많다.

Git 도 쓰는 사람만 써서 기본 브랜치에 커밋 푸시만 해서 코드를 관리한 적도 있었다.

코드 리뷰도 깃허브에서 잘 이뤄지지 않다보니 PR 머지도 번거로워 잘 하지 않게 된다.

 

매쉬업에서 프로젝트할 때 브랜치 관리도 해보고 PR 도 올려서 코드리뷰도 열심히 서로 해준다.

물론 해커톤을 하거나 데드라인이 코 앞일 때는 약간의 수정 사항은 바로 푸시, 머지하기도 한다. 🤣

다들 코드리뷰가 생활화 되어있고 어떻게 하면 잘 해주고 피드백을 잘 줄 수 있는지 고민을 많이 한다.

그 경험이 현업에서 코드리뷰할 때도 많이 도움이 되었다.

 

네 번째로 나와 비슷한 고민을 가진 사람들을 만날 수 있다. 비단 취업을 준비하는 대학생 뿐 아니라

직장인도 마찬가지다. 성장하고픈 사람과 이직이 목표인 사람들과 같이 스터디 할 수 있다는 게 큰 장점이다.

알고리즘 코딩 테스트를 준비하거나 기술 면접을 같이 준비할 수 있다.

실무에 계신 분들께도 부담 없이 피드백을 부탁드릴 수도 있어서 쑥쑥 자랄 수 있었다.

 

나는 주변 환경이 중요하다고 생각한다.

또 내 의지로 환경을 바꿀 수 있다고 생각한다.

개발자, 프로덕트 디자이너가 되고 싶다면 주변 사람들이 모두 개발자나 프로덕트 디자이너인 환경을 만들어 보는 건 어떨까?

오래 전 온라인으로 다같이 개발자를 꿈꾸는 환경에도 있어봤지만

역시 오프라인이 주는 소속감과 네트워크는 무시 할 수가 없다.

🧑‍🎓👎 대학생 때 나쁜 점

얻는 게 있다면 잃는 것도 있는 법이다.

동아리도 결국 내 시간과 돈이라는 자원을 쏟아야 한다.

매쉬업에서 활동하는 대학생은 자기의 자원을 매쉬업 동아리 뿐 아니라 대학 생활에, 인간 관계에 분배해야만 한다.

현명하게 자원을 분배하지 못한다면 돌이킬 수 없게 저울이 기울어진다.

 

첫 번째로 주말이 줄어든다. 이는 직장인에게도 해당된다.

팀모임과 전체모임으로 평일 하루 또는 주말 하루를 온전히 매쉬업에 쓸 수 밖에 없다.

모임이 2시, 3시 시작이라 점심에 약속 잡기에도 애매하고 저녁 회식까지 가면 토요일이 사라진다.

또한 프로젝트나 스터디 활동이 있다면 주말에 모일 수도 있다. 그래서 주말에 온전한 내 시간이 점점 사라진다.

학교 과제가 많거나 주말에 사람을 만나야할 때 시간이 굉장히 짧다는 게 체감이 확 된다.

 

두 번째로 돈이 많이 든다. 내가 iOS 팀을 할 때 굉장히 많이 했던 고민이었다. 🥲

회비도 부담스럽지만 사람들과 같이 밥을 먹거나 카페를 가거나, 회식을 해야 할 때 지출해야 하는 금액이 부담스러웠다.

예전에 곱창인가 먹었었는데 그 때 인당 3~4만원 정도 나온 거 보고 그 뒤로는 회식 참여를 거의 안했던 것 같다.

중요한 날이거나 조금 여유로울 때만 잠깐 잠깐 참여하는 식으로 했었다.

왜 회식 안오냐는 소리를 많이 들었는데, 학교 생활하기도 빠듯했었다. 🥺

 

세 번째로 눈이 높아진다. 좋으면서도 나쁜 점인데, 기업을 바라보는 눈이 높아지는 것 같다.

당시 iOS 팀 뿐 아니라 다른 팀 분들을 만나더라도 네카라쿠배당토야직 중 하나거나

최소 살면서 이름을 많이 들어본, 대우가 좋은 직장에 재직하시는 분이 많았다.

주변에 그런 분들이 많다보니 나도 마음만 먹으면 갈 수 있을 거라고 생각했었다. 😅

나도 23년에 학교를 졸업하고 취업 준비를 하면서 얼마나 어려운지 겪어볼 계획이다..!

🥺 가장 기억에 남는 iOS 프로젝트

앞서 설명한 5기 프로젝트는 그렇게 마무리가 되었다.

6기 프로젝트는 건강 보조 알약의 복용 시간을 알람으로 알려주는 서비스였다.

앱 이름은 '약꾹' 이었다.

약꾹 제플린 이미지

귀여운 올빼미가 캐릭터인 알람 앱이다.

건강 보조 약은 그 종류가 많고 복용법도 다르다.

언제, 무엇을 복용해야할 지 기억하기 어렵고 심심하면 빼먹는 경우가 잦다.

그 문제를 해소하기 위해 약꾹 서비스가 탄생했다.

 

바코드로 상품을 찾고 알람을 등록하는 플로우였다.

만약 바코드에 해당하는 상품이 없으면 새로 등록해 내부 서버에 등록한다.

이런 저런 사정으로 앱스토어 배포는 안됐지만,

폴더 식으로 열리는 구조의 테이블뷰를 만들어봤고 사진 촬영과 알람 기능까지,

새로운 시도를 해본 프로젝트였다.

 

7기 프로젝트는 칵테일 레시피를 알려주는 'AllNight' 앱이다.

AllNight 프로젝트를 할 때 하필 7년째 쓰던 내 맥북이 고장났었다.

사설 수리를 맡기고 거의 부품을 갈아 엎다시피 돈을 쏟았다.

그래도 가끔 부팅이 안되는 경우가 많았는데, 조금씩 부팅이 될 때 마다 코딩했다.

결국 친구의 안쓰는 맥북 에어를 빌려서 코딩했었다.

당시 팀원들에게 넘넘 죄송했었다. 😭😭

 

가장 기억에 남는 프로젝트는 바로 8기 프로젝트였다.

8기 때 iOS 팀원분들과의 추억이 너무 기억에 많이 남았고

프로젝트 팀을 같이한 분들도 아직까지 연락하고 있기 때문이다.

매쉬업 8기 iOS 팀 프로젝트 - 모티

8기 프로젝트는 매일 질문에 답하는, 다이어리 앱인 '모티' (MOTI) 서비스다.

 

GitHub - mash-up-kr/Moti_iOS: 🌈 MOTI ! Make Own True Identity ⭐️

🌈 MOTI ! Make Own True Identity ⭐️. Contribute to mash-up-kr/Moti_iOS development by creating an account on GitHub.

github.com

디자인도 세련되었고 앱스토어 배포까지 했다.

재밌게 프로젝트를 했고 추억이 많다. 게다가 이유는 모르겠지만 아직까지 사용자와 유입이 있는 서비스다.

사용자 수 자체는 많지 않지만 애정이 있는 서비스다. 😍

 

모티 앱은 iOS 13 때 새로 SwiftUI 가 나왔다.

SwiftUI 는 기존에 했던 Storyboard + Swift 방식의 개발이 아니라 선언형으로 UI 를 구성한다.

리액트 처럼 컴포넌트로 UI 코드를 짜는 거와 비슷하다고 보면 된다.

 

기술이 처음 나오다보니 자료가 거의 없었고

iOS 팀원들끼리 개발할 때 서로 엄청 쉬운 걸 뚝딱이는 모습이 많이 있었다. 🤣🤣

네비게이션이나 탭바도 당시에 SwiftUI 에서 모두 지원하지 않아 UIKit 을 커스텀하기도 했었다.

UI 구성할 때 선언형과 컴포넌트 식으로 레이아웃을 짜는 게 익숙치 않았고, 어디까지 SwiftUI 가 지원하는지 모르다보니 고군분투하며 개발했었다.

그렇게 고생해서 멋진 앱을 만들었어서 성취감이 대단했었다!

♻️ iOS 개발자에서 백엔드 개발자로 탈바꿈

2019년에는 많은 일이 있었다.

매쉬업에서 iOS 팀 7~8기를 진행했고 교내 빅데이터 동아리를 운영하기도 했다.

학교 강의도 착실히 듣고 학과 졸업 논문도 작성했다.

주변 친구들과 선배들도 취업을 하고 매쉬업에서 같이 지낸 형, 누나, 동생들도 취업을 했다.

자연스레 나도 진로에 관한 고민을 하게 되었다.

 

iOS 개발자로 가야하나, 다른 개발자를 준비해야 하나 고민이 무척 되었다.

매쉬업 iOS 팀에 지원할 때는 이렇게 오래할 지도 몰랐고 iOS 개발자까지는 진지하게 생각하지는 않았다.

iOS 앱을 출시해보고 싶다는 목표는 좋은 팀원들과 만나 이미 이뤘다.

 

iOS 앱을 만들 때 UI 를 구현하는 게 어려웠다. UI 작업을 할 때 남들보다 시간을 더 투자해야 했었다.

또 실무에서 많이 쓰인다고 하는 RxSwift 를 공부했는데 어떻게 쓰이는건지 잘 이해가 안갔다.

그래서 그런지 iOS 개발자로 오래 일 할 수 있을까를 많이 고민했다.

 

iOS 앱을 개발할 때 UI 를 꾸미는 것보다, 클래스 구조를 정리하거나 다른 사람들이 개발하기 편하게 모듈을 개발하는 작업이 더 재밌었다.

백엔드 서버와 통신하는 걸 테스트하고 네트워크 모듈을 만드는 게 재밌었다.

백엔드 개발자분과 DB 구조를 이야기하고 어떻게 통신해야 하는지 이야기를 많이 했었는데

16~17 년도에 멋쟁이 사자처럼 4기,5기에서 루비온 레일즈로 서버 개발한 경험이 있어서 그런지 되게 재밌었다.

백엔드 개발자 아티클을 보면서 AWS 인프라 구성을 레고처럼 이어 붙이는 게 신기했다.

시각적으로 구현하는 게 아닌, 논리적으로 서버를 구현하는 게 마음에 들어서 백엔드 개발자로 진로를 틀게 되었다.

🌱 백엔드 팀으로 이동, 갑작스런 제안

백엔드 개발자로 진로를 옮긴 뒤에 매쉬업 백엔드 팀으로 팀을 이동하려고 했다.

간단하게 당시 백엔드 리크루팅 담당한 형과 카카오톡으로 이야기 나눴다.

예전에 루비온 레일즈 경험한 것과 DB 설계도 해보았다고만 이야기 드렸다.

 

긍정적으로 팀 이동을 검토해보겠다고 하셨다.

며칠 뒤에 백엔드 팀으로 이동이 되었는데 예상치 못한 제안을 받았다.

바로 백엔드팀 9기 팀장을 맡아달라는 부탁이었다.

개인적인 사정으로 그 형이 팀장을 못하게 되었는데 대신할 사람이 없어 난감해 하셨었다.

 

스프링은 커녕 자바도 제대로 공부해 본 적이 없어서 당황스러웠었다.

4기수를 하면서 거의 막내 포지션이다 보니 iOS 팀장과 부팀장을 맡아본 적이 없었어서 더 부담이 되었다.

심지어 9기 면접과 합격 인원 모두 정해졌고, 새로 오시는 분들과 9기에 남는 기존 팀원들도 모르는 상황이었다.

 

여러 형들이 콕 찝어서 내가 했으면 좋겠다, 나밖에 할 사람이 없다, 내가 많이 도와주겠다라는 식으로 이야기 해주셨다.

다른 9기에 남는 분들도 나처럼 스프링을 접해본 사람이 거의 없다고 하셔서 그냥 해보자~ 하고 수락했다.

그래도 뭔가 팀장이 되면 이끌어야 한다는 생각을 많이 갖고 있었나 보다.

기수 시작하기 전에 스프링 부트를 먼저 빠르게 공부하려고 노력했었다.

 

스프링 고인물 팀원, 스린이 팀원으로 구성된 팀의 스린이 팀장이라.

내가 팀장인데 아무것도 모르니깐 스트레스를 많이 받았었다. 😭

스터디를 어떻게 해야할지, 프로젝트 기간에는 무엇을 해야할지, 한 기수를 어떻게 운영해야할 지 생각하는 게 어려웠다.

아니 불가능에 가까웠다.

 

이 때 팀장을 한 경험이 성장을 많이 했었다.

이전에 뭔가 단체를 운영할 때는 그림이 머릿 속에 그려져서 그대로 하기만 하면 됐었는데

매쉬업 9기 백엔드 팀장은 전혀 머릿 속에서 그려지지 않았다.

내가 부족하다는 걸 인정하는 법과 팀원들과 같이 그려가는 법을 배울 수 있었다.

 

매쉬업 9기를 시작하기 전에 기존 팀원들과 모임을 가졌다.

9기 때 무엇을 하면 좋을지 이야기하고 어떻게 운영하면 좋을지 많은 이야기를 나눴다.

내가 먼저 내려놓고 조언을 구하니 한결 마음이 편해졌고 팀원들이 있으니 너무 든든했다. ☺️

 

매쉬업 팀장이라는 경험이 엄청 대단한 건 아니지만, 리더라는 게 꼭 선두에 있어야만 하는 건 아니다, 라는 걸 배웠다.

서로 의견을 조율하고 전체적인 방향을 벗어나지 않게만 하는 것도 중요한 거였다.

이 밑거름은 훗날 나에게 좋은 영향을 끼쳤다.

 

매쉬업 백엔드팀 (스프링) 9기 활동 이력은 아래 매쉬업 블로그에서 시리즈로 확인할 수 있다.

 

[매쉬업 백엔드팀 9기] #1. 한다, 회고를

이 글은 2020년 3월 28일 작성된 [매쉬업 백엔드팀 9기] #1. 한다, 회고를 입니다. 반갑습니다람쥐! 매쉬업 백엔드팀 9기 팀장을 맡은, 다람쥐라는 닉네임을 사용하는 김선재입니다. 코로나19 바이러

mash-up.tistory.com

⛳️ 매쉬업 9기 백엔드 (스프링) 팀 활동

매쉬업 9기 백엔드팀 분들과 이야기를 나눠본 결과 교재로 스프링을 공부하기로 했다.

교재는 당시에 최근에 나왔었던 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' - 이동욱 (프리렉) 교재를 선택했다.

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24

가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링

www.yes24.com

프로젝트 기간 전까지는 Rest API 와 AWS 배포를 한 번은 실습해보는 걸 목표로 잡고 도서를 탐색했다.

우리가 원하는 점과 가장 맞닿은 책이 바로 이동욱 저자님의 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 였다.

다른 스프링 서적은 이론에만 치중되는 경우가 있어 빠른 시간 안에 사이드 프로젝트를 할 수 있는 도서가 없었다.

우리의 고민을 해결해 줄 책으로 가장 부합하다고 생각됐다.

 

매쉬업 9기 백엔드팀 팀모임 때 할 스터디로 도서 분량을 정해 각 주마다 팀 노션에 정리하여 발표하는 식으로 정리했다.

프로젝트 시작 전까지는 끝내려고 살짝 타이트하게 잡았었다.

이동욱 저자님의 책이 아니었다면 다 같이 빠르게 성장하지는 못했을 것 같다. 😭

 

두 번째로 우아한 형제들 우아한 테크 코스에서 유투브로 올리는 10분 테크도 좋아보여서 우리도 한 번 팀모임에서 해보자고 했었다.

스프링 관련 기술이나 컴퓨터 공학 지식으로 10분 동안 발표하는 '10분 세미나' 라는 이름으로 진행했다.

발표자는 공부한 내용을 정리해서 도움이 되고, 다른 팀원은 빠르게 정보를 흡수할 수 있어서 성장에 도움이 많이 됐다는 피드백을 받았다.

10분 세미나지만 팀원분들의 열정이 대단해서 10분이 넘어가는 발표가 꽤 있었다.

 

스프링에서 많이 쓰이는 개념들인 DI (의존성 주입), IoC (제어의 역전) 를 공부한 걸 발표하기도 했다.

도커나 쿠버네티스같은 컨테이너 개념을 발표하기도 했으며 Java, JVM 이론을 발표하기도 했다.

원론적으로 운영체제, 알고리즘과 같은 내용을 발표한 분도 계셨다.

 

매쉬업 9기 백엔드팀 ~ 매쉬업 11기 노드팀까지의 10분 세미나 발표 자료는 아래 매쉬업 백엔드 세미나 깃허브 링크에 모아뒀다.

 

GitHub - mash-up-kr/Backend_Seminar: 매쉬업 백엔드팀 세미나 자료 레포지토리입니다.

매쉬업 백엔드팀 세미나 자료 레포지토리입니다. Contribute to mash-up-kr/Backend_Seminar development by creating an account on GitHub.

github.com

 

매 팀모임마다 익명으로 피드백 설문을 받았는데, 도서 스터디나 10분 세미나를 하면서

어떤 점이 좋았는지, 나빴는지, 새로 시도해보고픈 점을 자유롭게 받았다.

나도 팀 운영하는 게 처음이다 보니 사람들이 어떤 점을 신경쓰는지 파악하기 어려웠는데,

피드백 설문으로 한결 수월하게 잘 운영할 수 있었던 것 같다. ☺️

 

도서 스터디를 하고 나서 마무리 하기 전에 분위기 전환으로 팀원마다 자기를 소개하는 '자기 소개' 타임을 가졌다.

5분에서 10분 동안 자기가 어떤 사람인지 팀원에게 소개하는 시간이었다.

팀모임 할 때 마다 2~3명씩 했고 다음 사람을 지목하는 식으로 진행했다.

 

다른 동아리에서 한 번 했다가 좋았어서 매쉬업에도 도입을 했었는데, 반응이 꽤 좋았다.

근황 토크나 스몰 토크로는 알 수 없는 팀원을 알 수가 있었다.

자기 소개 시간이 기다려졌고 이후에 서로 많이 친해질 수 있는 발판이 되었다.

 

매쉬업 프로젝트 기간에는 팀모임으로 따로 스터디를 공식적으로 하는 건 부담스러웠는데,

그럼에도 따로 스터디를 열어서 성장하고자 했었다.

내가 열심히 참여했던 건 Spring JPA 스터디였다.

서너명 밖에 하지 않았던 걸로 기억하는데 서로 소소하게 재밌게 했었다.

 

교재는 김영한 저자님의 '자바 ORM 표준 JPA 프로그래밍', 2015, 에이콘 출판사 도서다.

스프링 프로젝트에서 JPA 를 쓰기도 했고 바이블급인 도서라 스터디 교재로 이견이 없었다.

 

자바 ORM 표준 JPA 프로그래밍 - YES24

자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고

www.yes24.com

스터디 목적은 자바 ORM 표준 JPA 프로그래밍 도서를 한 번 읽는 게 목표였다.

굉장히 짧은 기간 동안 빠르게 흡수하는 것이 목표라서

타이트하게 일정을 잡고 한 달 만에 끝냈었다.

 

도서 자체가 읽기 쉬웠고 설명도 너무 친절해서 술술 읽었던 것 같다.

원리 위주로 직접 노션으로 정리해 가면서 읽었고

스터디하는 친구들에게도 설명하려고 공식 문서까지 읽어가면서 했었다.

 

또 각자 퀴즈를 만들어서 왔는데, 이게 또 재미가 있었다.

퀴즈를 만들면서 공부하고, 친구들과 재밌게 서로의 퀴즈를 풀기도 했다.

모르는 부분은 해설을 바로 들어서 이해하고 넘어갔다.

 

가볍게 개념을 물어보는, 또 가끔은 일부러 헷갈리게 만든 O / X 문제를 냈었고.

JPA 1차 캐시와 2차 캐시 원리로 실제 코드에서 얼마나 실제로 DB를 호출하는지, 캐싱을 사용하는 지 묻는 문제를 냈었고.

컬렉션과 페치 전략을 물어보는 문제를 내기도 했었다.

 

짧은 기간 안에 마음이 맞는 편한 친구들과 재밌는 스터디를 할 수 있다는 게 매쉬업의 장점이 아닐까 싶다.

스터디를 하면서 다른 사람에게 많이 배웠었다.

또 스터디는 역시 짧은 게 좋다, 라는 생각을 했었다.

한 달 이상 넘어가면 루즈해지고 집중도가 많이 떨어짐을 느끼곤 했었다.

 

다른 스터디로는 마무리가 잘 되진 않았지만 알고리즘 스터디를 했었고 스프링 리액터 스터디도 했었다.

지금 돌아보니 생각보다 많은 스터디를 한 것 같다..!

스터디로 많은 지식을 얻고 이제는 실제 프로젝트 개발로 방출할 때다.

⏰ 매쉬업 백엔드 팀 첫 프로젝트 후기

매쉬업 백엔드 팀으로 이동하고 나서 첫 프로젝트를 했다.

공부하는 모습을 타임랩스로 보관하고 공부 시간을 다른 사람과 비교할 수 있는 서비스였다.

팀원 모두 스프링 부트를 처음 공부 했어서 프로젝트를 구성하고 서버 인스턴스를 만들고 배포하는 것 까지 우여곡절이 굉장히 많았다.

 

다른 팀은 어떻게 하고 있는지 매일 들여다봤고 여쭤보기도 했었다.

또 매쉬업에서 앞선 기수에서는 어떻게 코드를 짰는지 대부분의 프로젝트에서 찾아보면서 코드를 짰었다.

스프링 데이터나 스프링 시큐리티를 처음부터 끝까지 잘 아는 게 아니다보니

빠르게 구현하는 데 막힘이 좀 있었던 터라, 가까운 프로젝트 코드를 보는 게 도움이 정말 많이 도움이 되었다.

그러나 다른 프로젝트에서 없는 기능이 있었는데...

 

특히 랭킹 기능이 그 예다. RDBMS 으로 랭킹을 구현하려고할 때 부하가 꽤 걸리는 작업이었다.

그래서 레디스를 사용하여 공부한 시각을 Sorted Set 에 저장하여 내림차순으로 정렬하여 랭킹 기능을 구현했었다.

스프링 부트를 레디스에 연결하는 것조차 난관이었다.

엔티티를 단순 매핑하여 저장하는 방법이 있고, 우리가 하려고 했던 특정 명령어를 사용하는 방법이 따로 있어서 조금 헷갈렸었다.

크게 소셜 로그인, 토큰 인증, RDBMS CRUD, Redis 연동, 인프라 작업이 있었는데 뭐 하나 쉬운게 없던 프로젝트 였다.

 

처음 하는 거라 시간이 정신 없이 지나갔었다.

백엔드 팀원끼리 모여 카페에서 하기도 했고 에어비앤비로 빌린 장소에서 해커톤을 할 때엔

중간에 20~30분 잠깐 쉰 것 외에는 작업을 계속 하고 팀원들과 공유했었다.

백엔드 개발을 맡는다면 위 작업은 반드시 하게 되는 터라 좋은 공부가 되었다.

😷 코로롱 시국과 함께한 매쉬업

2020년 2월부터였나, 9기부터 대 코로롱 시대가 열렸다.

마스크 의무화가 생기고, 온라인으로 전환하는 등의 많은 변화가 있었다.

디스코드로 팀모임을 진행하고 Zoom 으로 전체 모임을 하기 시작했다.

게더타운으로 행사를 진행하기도 했고 거리두기 제한으로 숙소를 빌려 팀원끼리 해커톤을 하기도 했다.

 

코로롱 시국과 그 전 오프라인 모임이었을 때는 아래 글을 참고해보면 좋다.

 

나의 코시국 전 매쉬업

안녕하세요, iOS 팀 김주희입니다. 지난 6기부터 총 5기수 동안의 활동을 하고 있는데요! 어떤 글을 올릴까? 하다가 코로나 이전의 우리는 어땠는지, 추억팔이를 해볼까 해요 +_+ (물론 제 추억 위

mash-up.tistory.com

그나마 9기 때는 오프라인으로라도 모일 수는 있어서 괜찮았는데 10기 때부터는 100% 온라인으로 진행했다.

전체 모임은 안정적인 100인 화면 송출을 위해 Zoom 으로 진행했다.

Zoom 은 호스트가 계속 있어야만 유지가 되는데, 평소에 매쉬업 동아리원과 이야기를 할 수 있는 공간으로서는 적합하지 않았다.

가볍고 쉽게 음성 통화를 할 수 있는 디스코드 서비스를 도입하자고 주장했었다!

 

매쉬업 공식 서버 디스코드

모든 동아리원과 만날 수 있는 전체 채팅방 및 음성방, 각 팀별로 모일 수 있는 채팅방과 음성방을 만들었다.

추가로 팀별 Github 프로젝트 알림 (PR 리뷰, 이슈) 을 디스코드 웹훅으로 보내도록 설정하였다.

누군가 PR 리뷰를 올리거나 답글을 달거나 머지했을 때 확인할 수 있다.

우리 팀의 프로젝트 뿐 아니라 다른 팀원의 프로젝트도 같이 리뷰해주는 문화를 만들었다.

디스코드 웹훅 PR

채용봇도 디스코드와 연결했다.

채용봇은 이전에 매쉬업 하셨던 분이 슬랙과 원티드를 연결한 봇을 만들으셔서

허락을 득하고 디스코드와 연동되도록 만들었다.

특정 시간마다 스크래핑을 하는 건 AWS EC2 서버와 크론을 활용하거나, AWS CloudWatch & Lambda 를 하는, 조금 귀찮은 작업으로 생각했었는데, 의외로 초 간단하게 하는 법이 있었다.

바로 Github Actions 으로 특정 시간마다 스크립트를 실행시킬 수 있다는 점이었다.

매쉬업 지인 덕분에 유용한 기능도 알게 됐다. ☺️

 

GitHub - kor-Chipmunk/wanted-sauron: 원티드의 새로운 채용공고를 알려주는 크롤러

원티드의 새로운 채용공고를 알려주는 크롤러. Contribute to kor-Chipmunk/wanted-sauron development by creating an account on GitHub.

github.com

디스코드 채용 봇 결과

디스코드로 새벽까지 떠들 수 있었고 재택하는 분들끼리 쉬는 시간에 잠시 모여 수다떨 수 있었다.

완전 거리두기로 밖에도 잘 못나가는 시기였어서 디스코드의 존재가 컸었다.

만약 디스코드가 없었다면 사람들하고 하나도 못 만나고 기수가 끝났겠다고 피드백을 받았을 때는 엄청 뿌듯했었다. ☺️

노래 봇으로 함께 노래를 들을 수도 있었고 게임도 함께할 수 있었다.

 

20년도에는 게임이 무척 유행했었다.

오프라인으로 했을 때보다 오히려 온라인으로 할 때 사람들과 많이 친해질 수 있었는데...

🕹 매쉬업 리그 오브 레전드 게임 유행

20년도부터 백엔드 팀 스태프를 하면서 열정적인 다른 스태프 분들을 만났고

온라인 디스코드로 다른 팀의 사람들과 부담 없이 만날 수 있었다.

그 중 제일 많이 친해진 건 게임을 했을 때 많이 친해졌었다.

 

아이러니하게 오프라인 때와 달리 온라인 일 때가 사람들과 가장 많이 만났었다.

아무래도 다들 집에만 있다보니 심심해서 디스코드로 많이 들어온 게 아닐까 싶다.

특히 게임방이 선풍적인 유행을 끌었는데, 그 인기가 어느정도였냐면

평일인데도 리그오브레전드에 접속한 매쉬업분들이 20명 이상일 때가 있었다..! 🤭🤭

 

매쉬업 수료한 분들도 게임을 좋아하는 분들이 많았어서 자연스레

수료자 분들과 현재 매쉬업을 하시는 분들 끼리의 네트워크가 형성되었다.

서로 나이대도 비슷하고 게임을 좋아한다는 공통점이 있다보니 쉽게 친해졌었다.

 

리그오브레전드 게임에선 커스텀 대전 방을 만들어 사람들을 초대하여 게임할 수 있다.

게임을 하다가 온라인 중인 사람이 10명이 넘으면 매쉬업 동아리 사람들끼리 5:5 대전을 하는 수순을 밟았다.

디스코드 방송으로 참여하지 않은 사람들과 같이 구경하고 떠들 수 있었다.

그렇게 밤 12시나 새벽 1시까지 열심히 떠들고 게임하다가 자러가는 일상이었다.

주말에는 체력 좋으신 분들은 밤새 달리기도 하셨다. 🐎

 

어느 날 누군가 갑자기 리그 오브 레전드 대회를 하자고 했는데,

승부욕에 진심이신 분들이 많다보니 🤣

바로 대회 일정을 잡아버리고 팀 지명식(?)도 하는 등 일사천리로 진행이 되었다!

 

나는 구글 시트를 만들어 대회에 참여할 사람의 명단을 정리했다.

팀 지명식을 위해, 어떤 사람이 내전에서 어떤 특징을 보였는지 정리하려고 내전 기록을 정리하기 시작했다.

내전은 따로 수집되는 곳이 없어서 게임 세부 결과창을 보고 수기로 작성했다.

작성한 데이터를 바탕으로 매쉬업 대회에 참여한 선수들의 성적을 한 번에 볼 수 있게 정리했다.

이런 기록으로 각 선수마다 잘하는 게 뭔지 상성은 어떻게 되는지 유추할 수 있었다.

팀 지명할 때 데이터를 참고할 수 있도록 하나 하나 정리를 했었다. ☺️

구글 시트로 작성한 선수 전적

대회 준비 전에는 매쉬업 사람들이 진짜로 승부욕에 진심이었다..!

프로게이머 대회에서나 할 법한 밴픽을 준비하고 비장의 카드를 준비하는 등 너무 재밌었던 경험이었다.

실제 대회를 할 때 해설자도 돌아가면서 했었고 트위치 방송으로 매쉬업 사람들에게 공개가 됐었다.

 

나도 풀컨디션으로 하려고 늦은 밤에 성능 좋은 피시방까지 가는 수고를 들였다. 😁

와, 근데 진짜로 너무 떨렸었다..!!! 이게 뭐라고 가슴이 쿵쾅쿵쾅 댔었다.

나 뿐만 아니라 다들 평소와는 달리 긴장한 모습이 많이 보였다.

편하게 게임을 즐기는 게 아니라 평소에 준비했던 것을 팀과 함께 호흡을 맞춰 보여주는 거다 보니 엄청 긴장이 됐었다.

어느 정도였냐면 손이 막 떨리기도 했었고 게임이 1초 1초 흐르는게 똑똑히 느낄 정도로 집중력이 높아졌다.

나와 우리 팀의 목소리, 게임만 세상에 있는 듯한 느낌이었다.

친한 사람들끼리 하는 것도 이정돈데 실제 직업으로 프로게이머를 하시는 분들은 얼마나 떨리고 간절할까, 가 자연스레 생각났다.

아쉽게 우승까지 하지 못했지만 기상천외한 전략들이 많이 나와서 처음에 긴장했던 것과는 다르게 나중에는 즐겜 모드로 다들 즐겼던 것 같다.

 

같이 팀을 한 매쉬업 사람들끼리 엄청 친해지는 계기가 되었다.

다른 팀은 같이 밥도 먹고 여행까지 가는 사이로 친해졌다고 들었다..!

게임의 힘이 정말 대단하다고 느꼈다. ☺️

🚀 Node.js 팀에 끌려가다!

그 다음 10기는 갑작스럽게 Node 팀으로 이동했다.

이동이라 말하고 납치 당했다(?)가 맞는 표현인 것 같다.

 

다음 기수에서는 좀 더 스프링의 숙련도를 높이고 WebFlux, Docker 같은 것들을 더 배우고는 싶었다.

사실 스프링으로 군복무 취업을 준비했는데 막상 9월 달에 공고를 찾아봤을 때 스프링 공고가 거의 없었다.

그 해를 넘어가면 재검을 해야했기에, 수습기간까지 생각했을 때 9월에는 쇼부를 봐야 했었다.

그래서 내가 원하는 기술 스택보다는 회사의 비전이나 산업기능요원 대체를 보장해주는 기업에 갈 수 밖에 없었다.

 

최종적으로 입사했던 기업에서는 스프링이 아닌, 전혀 해본 적이 없었던 장고를 채택했다.

그래서 스프링 팀에 더 있어야 할 필요성을 크게 느끼지 못했었다.

그러던 중에 친한 형이 NodeJS 팀을 만들어 보고 싶었다고 해서, 백엔드 팀 3명과 웹 팀 1명으로 NodeJS 팀이 개설되었다!

설상가상? 으로 스태프도 그대로 맡게 되었다.

 

장고나 노드는 내가 예전부터 배워보고는 싶었는데 우선순위에서 점점 밀렸고 파이썬과 자바스크립트가 너무 어색해 이상한(?) 거부감이 들었었다. 어차피 20년에 공부했던 스프링은 어차피 당분간 안 쓸 것 같아서, 장고를 새로 도전했던 것처럼 노드도 도전하고 싶었다.

옛날에는 공부하는 걸 피했지만, 이제 올 게 왔다는 생각이 들기도 했다.

같이 하자는 팀원들이 서버리스에도 관심을 많이 있었고 나도 AWS 서비스와 서버리스 생태계에도 관심이 생겨서 노드팀에 합류하게 되었다.

👽 매쉬업 사람들과 한 사이드 프로젝트, Dear World

매쉬업 노드팀 10기를 기다리는 2020년 12월달 이었다.

노드팀을 같이 스태프로 참여하는 친한 형이 매쉬업 사람들과 사이드 프로젝트를 하는데 서버 같이 해보자고 제안을 줬다.

마침 매쉬업도 끝났겠다, 10기도 멀었고, 노드팀을 시작하기 전 실력도 쌓을 겸, 직장 일도 안정적이라 흔쾌히 수락했었다.

 

사이드 프로젝트는 전 세계 사람들에게 코시국의 희망찬 메시지를 전달하는 서비스였다.

글을 올리고 리액션을 해주고 나라별로 메시지 수를 시각화해준다.

그 때 실무에서도 한창 국제화를 준비했어가지고 나라별로 데이터를 관리한다는 사실에 흥미가 돋았었다.

 

연말에 주말만 되면은 사이드 프로젝트 팀원끼리 밤새 작업을 했었다.

처음에는 API 서버 배포와 배포 자동화 인프라 셋팅, 프론트엔드 S3 정적 호스팅 배포 자동화 인프라 셋팅을 했었다.

앱 버전(iOS, 안드로이드)와 웹 버전으로 나누어졌으며 각기 다르게 디자인되고 개발했었다.

지금 생각해보면 왜 S3 정적 호스팅 배포로 했는지 모르겠지만, 그냥 해보고 싶었다. 🤣🤣

 

본격적으로 API 를 개발하고 익명으로 메시지를 보낼 수 있게 DB 모델링과 API 를 개발했다.

나라 정보를 수집하고 각 나라별로 메시지 수를 저장하여 랭킹으로 내려지는 기능도 개발했었다.

NodeJS Sequelize Migration 과 스크립팅으로 기본 데이터를 셋팅하도록 꾸몄었다.

 

사이드 프로젝트를 하다보니 팀원에게 많이 배웠다.

같이 서버 작업 한 형은 꼼꼼해서 사소한 이슈를 사전에 미리 발견하고 일정 관리를 잘 했었다.

서비스 디자인을 맡은 누나에게선 서비스의 애정과 프로페셔널한 꼼꼼함을 배웠다.

iOS와 안드로이드 앱 작업을 한 친구와 형에게선 단 며칠만에 끝내버리는 프로페셔널에 놀랐고

웹 작업을 해 준 형들에겐 공유를 자주 하는 모습을 보고 배웠었다!

 

서로 막 캐릭터도 만들어주면서 놀기도 했다.

우리 팀의 이름이 OFU 팀이었는데, UFO 에 비유한 팀 명이었다.

외계에서 지구인들의 행복과 안녕을 빌어주는 너무 귀여운 컨셉이었다.

그래서 각자의 캐릭터에서 외계인의 모습이 조금 섞인 귀여운 자캐가 탄생했었다!

OFU 팀의 귀여운 자캐들

노션도 야무지게 꾸며 프로젝트 일정 관리나 QA 티켓 관리를 잘 했었다.

디스코드에서 서로 밤새 작업하면서 수다를 떨거나 가끔 게임도 같이 하면서 추억을 쌓았다.

사이드 프로젝트를 하는 게 굉장한 힐링이 되기도 하는구나를 느꼈던 나날이었다. 😊😊

매쉬업 10기부터 노드팀을 운영하거나, 언젠가 실무에서 NodeJS 환경의 서버리스, NodeJS 프로젝트를 할 때 엄청난 큰 도움이 되었었다.

🙋‍♂️ 매쉬업 10기 노드팀으로 올 사람~ - 리크루팅

노드팀을 만들어서 첫 매쉬업 리크루팅을 했다! 새로운 사람들을 만나는 건 늘 설렌다. ☺️

새로 만들어지는 팀이다보니 열심히 커뮤니티에서도 홍보하며 매쉬업을 홍보했다.

리크루팅 준비는 나랑 팀장형 뿐 아니라 같이 10기 하기로한 친구들도 흔쾌히 도와준다 수월하게 준비했다.

 

매쉬업 10기 노드팀의 키워드는 '빠른 속도' 🐎 와 '끊임 없는 증명' 🤔 이었다.

빠르게 학습하고 정말 잘 학습했는지 매일 증명했으면 하는 바람이었다.

매쉬업 프로젝트 때도 빠르게 일단 배포하고 다른 팀원과의 피드백을 빠르게 받아 반영하는 걸 지향했었다.

 

강남의 작은 스터디 카페를 하루 종일 예약했다.

노드팀 4명과 새로 들어오실 예비 노드팀 세 분과 함께 이야기를 나눴다.

노드에 관심 갖게된 계기와 동아리에서 어떤 걸 하고 싶은지를 여쭤봤었다.

실무에서 잠깐 쓰다가 제대로 공부해보고픈 분들도 계셨고 프로젝트를 경험해보고 싶으신 분들도 계셨다.

 

지원자 분들을 다 만나보고 동아리 활동 열심히 하실 분들을 선별했다.

4명이서 다시 한 번 검토해보고 서로 느낀점을 이야기했다.

아무래도 처음 시작하는 것 만큼 기수 유지를 위해 최대한 많이 뽑고 싶었다.

우리가 판단했을 때 동아리 활동하는 데 지장이 많으신 분들이 아니면은 웬만하면은 뽑았던 것 같다.

우리가 관심있던 걸 똑같이 관심 있어하시는 분, 경력이 조금 있으셨던 분은 모두 플러스 요인으로 꼭 함께하고 싶었었다. ☺️

🎉 매쉬업 10기 노드팀 경주 시작

매쉬업 10기 노드팀은 새로 NodeJS 노드를 배우는 느낌이었다.

기본 템플릿은 매쉬업 9기 백엔드팀때 했던 걸 그대로 차용했다.

그 때도 스프링 부트를 처음 배우는 식으로 진행을 했어서 얼추 맞았었다.

 

교재를 정해서 정해진 진도를 나가고 서로 공부한 걸 공유하는 식으로 진행했다.

교재는 조현영 저자님의 'Node.js 교과서' 도서를 선정했다.

노드 교과서의 거의 바이블급인 도서였고 노드의 기초를 잘 설명하고

처음 팀을 만들 때 배우고팠던 서버리스 내용도 있어서 선택했다.

 

Node.js 교과서 - YES24

Node.js 베스트셀러 1위! 개정 3판!한 권으로 끝내는, 노드 기본부터 실무까지 전 과정 총망라! 다양한 서비스를 직접 만드는, 실무에 가장 가까운 강의!개정 3판을 맞아 노드와 npm 패키지 버전을 최

www.yes24.com

매쉬업 10기 노드팀 스터디 노션

스터디 장소는 디스코드 노드팀 음성 채널에서 진행했다.

발표자는 화면 공유로 발표 자료를 공유한다.

아이스 브레이킹

팀 모임을 하면 처음에는 한 주를 어떻게 보냈는지 서로 이야기하는 시간을 가진다.

노드팀 인원이 소규모인 편에 속해서 소소하게 이야기를 나눴었다.

팀모임 시간에 딱 맞춰서 접속하는 경우가 많다보니 소리가 전원 다 들리는 디스코드 특성상

근황 토크나 스몰 토크를 할 수 있는 기회가 적다보니

팀모임에서 할 수 있게 구성했었다.

 

스터디를 온라인으로 하다 보니 반려동물과 함께 사는 분의 진귀한 풍경을 볼 수 있다.

너무 귀여운 장면을 많이 봐서 심장에 무리가 많이 갔었다. 😇

매쉬업 10기 노드팀 스터디 중에 나온 장면

그 날 바로 루이 (고양이 이름) 팬클럽을 결성했었다. ☺️☺️

 

노드팀 두 번째 스터디는 보일러 프로젝트 스터디였다.

보일러 프로젝트는 사용자가 바로 개발할 수 있도록 기본 셋팅을 한 프로젝트다.

예를 들어 Sequelize 으로 MySQL 를 연동하고 간단한 CRUD 가 구현된 REST API 와 GraphQL API 엔드포인트가 있는 프로젝트다. 프로젝트를 클론받고 설명서대로 셋팅만 하면 API 서버가 완성된다.

 

매쉬업 프로젝트 팀이 정해져 노드팀 내에서도 팀이 나뉘었다.

본격적인 매쉬업 프로젝트 개발에 들어가기 전에 서로 선호하는 기술 스택의 보일러 프로젝트를 미리 만들어보고자 했다.

또 노드 팀의 키워드 중 빠른 행동에 적합한 스터디였다.

 

어떤 팀은 기본 Sequelize + MySQL & REST API 를 셋팅한 팀이 있었고,

또 어떤 팀은 Redis 캐싱이나 GraphQL 을 셋팅한 팀도 있었다.

 

매쉬업 프로젝트의 묘미는 바로 프로젝트 첫 셋팅이다.

급하게 프로젝트를 셋팅하다보면 놓치는 게 많고 어렵기도 한데

여유롭게 프로젝트 팀별로, 노드팀과 함께 피드백을 주고 받으면서 프로젝트를 셋팅할 수 있었다.

 

다른 팀의 보일러 프로젝트가 마음에 들면 그 프로젝트의 셋팅법을 그대로 적용할 수도 있었고

새로운 기술들을 많이 만나 성장할 수 있는 기회였다.

프로젝트 셋팅하는 것도 하나의 어려움이자 고비다.

고비를 팀원과 함께 헤쳐 나가는 모습이 보기 좋았다!

 

매쉬업 프로젝트 기간에 돌입한 뒤로는 각자 프로젝트에서 어려웠거나 해결한 점, 공유하고픈 점을 이야기 하는 시간을 가졌다.

보통 다른 팀의 프로젝트는 전혀 모르고 한 기수가 흘러가기 마련이다.

나처럼 다른 팀의 소스 코드와 앞 기수의 소스 코드까지 공부하는 사람은 거의 없다고 보면 된다. 🤣

서로 디스코드 웹훅으로 PR 과 리뷰가 오갈 때 마다 알림이 울리다 보니 어떤 리뷰가 오고 갔는지 팔로업하기가 편하고 공감하기가 쉬웠다.

그러다보니 자연스레 다른 팀의 프로젝트에도 관심이 갔고 조언과 문제 해결에 적극적이게 되었다.

 

프로젝트 기간에는 모든 인원들이 스터디를 하는 덴 부담이 되어 별도의 스터디로 운영이 되었다.

스터디로는 서버리스 스터디 등을 진행했었다.

서버리스 스터디는 NodeJS 교과서의 뒷 파트 중 서버리스 파트를 스터디 했었다.

이 때 서버리스를 스터디한 게 나중에 실무에서 큰 도움이 되었다.

서버리스를 공부하면서 더더욱 서버에 푹 빠져들었다.

 

그런 와중에 노드팀에서의 첫 프로젝트가 진행됐다.

🎈 매쉬업 10기 노드팀 첫 프로젝트, 소양이팀 🐮😸

매쉬업 10기 노드팀으로서의 첫 프로젝트는 바로

GPS 위치 기반의 익명 커뮤니티 서비스였다.

서비스 기획도 매력적이었지만 위치를 다루는 새로운 기술 시도가 더욱 매력적이었다.

 

MySQL 에 위치 정보를 넣는 법부터 내 위치에서 거리를 계산하고 몇 km 이내의 데이터를 조회하는 등의 로직이었다.

전형적인 게시글 형태의 CRUD 다 보니 구현도 쉬웠다.

그래서 새로운 기술 시도를 여유롭게 해볼 수 있던 프로젝트였다.

 

확실히 백엔드 개발자로 실무를 하다보니 DB 설계부터 운영단까지 많이 공부하고 신경써본 것 같다.

노드팀의 모토에 맞게 일단 서버를 배포하고 배포 자동화로 API 개발을 빠르게 하는 식으로 진행했다.

팀원들과 모르는 점을 구현하고 서로 코드 리뷰로 배운 점과 피드백을 활발하게 주고 받았다.

 

디자인도 신비로운 컨셉에 맞게 보라색 계열의 앱 디자인과 귀여운 동물 캐릭터가 주를 이뤘다.

동물마다 고민 주제를 담았고 누가 어떤 동물을 많이 담았는지 볼 수 있었다.

신비로움과 동물의 컨셉 모두 마음에 들었다.

 

우리 팀이 안드로이드 팀과 웹 팀이 함께 있는 팀이었다.

GPS 기능은 주로 앱에서 담당하고 게시판 기능은 웹에서 담당하는 구조였다.

웹도 빠른 배포가 가능하다보니 커뮤니케이션과 피드백 속도가 빨랐던 것 같다.

플레이스토어로 앱 배포의 진입장벽이 그리 크지 않은 플랫폼이기에 배포에 성공했었다.

🐈 매쉬업 노드팀 11기 NestJS 도입, 나만 고양이 없어!

2021년 매쉬업 노드팀 11기가 다가왔다.

매쉬업 노드팀 10기 스태프가 그대로 11기 스태프가 되어버렸다!

노드팀 10기를 함께 하던 친구들이 매쉬업을 수료하거나 본래의 팀으로 돌아가 버렸다. 😭

10기에서 11기로 넘어가는 사람도 없었고 스태프를 하기 부담스럽다고 해서 어쩔 수 없이 스태프가 되었다!

 

NodeJS 생태계의 동향을 쭉 살펴보다 NestJS 가 선풍적인 인기를 끌고 있다는 소문을 들었다.

처음에는 React 프레임워크 중에 Next.js 와 엄청 헷갈렸었다. 😂 나만 헷갈린 게 아닐 거다..!

NestJS 홈페이지를 봤는데 세상에.. 메인에 고양이가 나온다!

 

NestJS - A progressive Node.js framework

NestJS is a framework for building efficient, scalable Node.js web applications. It uses modern JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Progr

nestjs.com

아마 NestJS 를 만드신 분들이 고양이를 되게 좋아하시나 보다, 했다.

기본 예제도 고양이들을 조회하는 귀여운 예제다. ☺️

import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

스프링 프레임워크처럼 DI 개념도 들어가있고 어노테이션으로 설정하고 모듈 컴포넌트 기반으로 개발하기 편해 보였다.

필터, 파이프, 가드, 인터셉터 등의 미들웨어들도 세분화되어 있고 의존성 주입 개념이 잘 녹아 있었다.

타입스크립트 기반이라 컴파일로 사전에 타입 오류를 미리 알 수 있다는 점도 매력적이었다.

타입스크립트와 NestJS 모두 러닝 커브가 좀 있어 보이지만 한 기수로 다 같이 배워 볼만은 한 정도였다.

 

NestJS 는 따로 책이 없다 보니 공식 문서로 스터디를 진행했다.

각자 선착순으로 문서를 선택하고 노션으로 정리하는 식으로 스터디를 진행했다.

NestJS 기본 개념과 TypeORM 기본, 환경 설정, 인증 까지 스터디했었다.

매쉬업 노드팀 11기 NestJS 스터디

노드팀 10기 때와 다른 점은 인원이 더 많다는 점이다.

그래서 그런지 좀 더 많은 양을 공부할 수 있었다.

4주차에 웬만한 기본 문서는 다 읽었다.

 

백엔드팀 (스프링팀) 9기, 노드팀 10기와 마찬가지로 10분 세미나도 열심히 했다.

기본 문서만으로는 프로젝트를 하기에 조금 부족한 감이 있어서

자유 주제 하나와 NestJS 심화 문서 하나를 하기로 했다.

매쉬업 노드팀 11기 10분 세미나

NestJS 문서 스터디를 하면선 자유 주제로 10분 세미나를 했다.

프로젝트 기간에는 부담 없이 NestJS 문서를 하나 더 공부해 발표하는 식으로 대체했다.

 

매쉬업 노드팀 10기엔 교재 스터디를 마친 후 보일러 프로젝트를 만들었다.

매쉬업 노드팀 11기에도 마찬가지로 매쉬업 프로젝트에 들어가기 전 보일러 프로젝트를 만들어보는 걸 했었다.

같은 NestJS 를 사용하지만 기술 스택에 맞춰, 게시판 형태의 CRUD 를 구현하는 걸 목표로 했다.

매쉬업 프로젝트에 앞서 미리 협업을 경험해보고 NestJS 를 복습하고 기술 스택을 서로 공유하여 리뷰하는 시간을 갖는게 목적이었다.

요로코롬 데이터 모델링까지 요구사항을 줬었다.

TypeORM 으로 엔티티 클래스를 만들어보고 여러 관계를 설정해보는 게 목표였다.

 

총 네 팀이 각자 팀별로 열심히 회의하며 3주 동안 합을 맞췄다.

0123
놀랍게도 하루 회의록이다. 이 팀에겐 무슨 일이 있었던 걸까?
0123456
다른 팀의 회의록들
0123

사전 프로젝트를 마치고나서 다들 NestJS 프로젝트를 한 번 경험해봤고 개발을 위한 셋팅도 마쳤다.

사전 프로젝트를 기반으로 매쉬업 프로젝트를 그대로 이어 나가 개발에 수월했었다.

다른 팀 리뷰도 활성화됐어서 이후 매쉬업 프로젝트 때도 서로 영향을 많이 주고 받을 수 있었다.

 

그렇게 우리도 고양이와 조금은 친해질 수 있었다.

🚶 매쉬업 노드팀 11기 NestJS 프로젝트

매쉬업 노드팀 11기 프로젝트 이름은 '나들길' 서비스다.

그 즈음 실내에만 있으면 답답해서 잠시 산책을 나가는 사람이 많았다.

산책러들을 위한 경로를 알려주고 서로 공유하는 서비스다.

 

매쉬업 노드팀 10기 때와 마찬가지로 이번에는 '점'에 해당하는 위치 개념이 아닌

'직선'의 모음에 해당하는 경로 개념을 다뤘다.

직선의 모음 또한 점과 점의 연속이라 개념적으로 이해하는 데 크게 무리가 없지 않았다.

산책 경로의 총 길이를 알려주고 현재 나와 가까운 위치의 산책 경로가 무엇이 있는지 알려주는 것도 재밌었다.

 

NestJS & TypeORM 으로도 MVP 기능은 충분히 쉽게 구현할 수 있었다.

클라이언트에서 점의 위치의 모음을 넘겨주고 서버에선 데이터로 저장하고 모음 그대로 클라이언트에 주기만 하면 됐다.

MySQL Workbench 를 쓰다가 이번에 DBeaver 앱을 썼는데, 세상에 경로 데이터를 조회하면 실제 지도에 경로가 나온다. 😮

사람들이 등록한 경로 데이터를 바로 보는 게 신기하고 마음에 들었다. 😚

 

데이터베이스로는 PostgreSQL 데이터베이스를 이용했고 AWS ECS Fargate 으로 배포까지 했다.

PostgreSQL 데이터베이스와 AWS ECS Fargate 모두 처음 써봤는데

기본 쿼리는 MySQL과 유사한데 지리 데이터를 다루는 게 달라서 신기했었다.

지리 데이터를 설명하는 명칭도 살짝 다르긴 했는데 문서가 잘되어 있어서 크게 어렵지는 않았었다.

 

AWS ECS Fargate 는 사실 그 때 이해를 하나도 못했었다.

도커 가상화 환경도 어려웠고 더군다나 작업 정의 (Task Definition) 도 뭘 의미하는 지 알 수 없었다.

이런 저런 이유로 AWS 계정 권한 자체가 없었기도 했고 뭔가 인프라가 내 손을 떠난 느낌? 이었어서 그냥 그런가보다 하고 넘어갔었다.

그래도 이런 서비스가 있었다는 걸 알았고 결국 나중에 실무에서 구축해보긴 했다. ☺️

 

같이 서버 개발을 하시는 한 분이 너무 바쁘셔서 마무리가 되어갈 즈음에 참여를 거의 못하시긴 했었다.

같이 못한 게 아쉽긴 한데 현생이 바쁘면 어쩔 수 없지 않을까 싶다. 😭

 

iOS 팀과 웹 팀과 같이 프로젝트를 개발했다.

메인 기능인 산책길을 보여주고 산책길을 등록하고 서버에 저장하는 건 웹 프론트엔드에서 담당해서

웹 프론트엔드 분들과 소통을 많이 했었다.

웹 쪽이 UI 작업이 빠르고 지도 API 를 다루는 게 편하고 작업 결과물도 바로 볼 수 있어서 편했었다.

이 때 웹 프론트엔드 개발하는 게 신기해서 훗날 웹 팀에도 관심을 가지게 되는 계기가 됐다.

 

iOS 팀분들도 인증 기능과 그 외 컨텐츠 기능을 빠르게 작업해서 앱스토어에 등록했다.

( 현재는 아쉽게도 서비스를 종료했다. )

 

‎나들길 - 당신이 좋아할만한 나의 길

‎[당신에게 걷기 좋은 길은 어디인가요?] 나만 알고 있던 학교 지름길이 될 수도 있고, 연인과 밤에 걷기 좋았던 길이 될수도 있어요. 걷기 좋은 길을 찾고 싶다면, 나들길의 9가지 테마와 위치

apps.apple.com

앱스토어에 등록된 나들길 스크린샷

매쉬업 노드팀 11기 프로젝트로 NestJS 프로젝트를 경험했다.

NestJS 프로젝트를 한 번 경험해본 게 나의 커리어에도 도움이 됐다.

우연한 기회로 NodeJS 환경의 새로운 웹소켓 서버를 신규 개발해야하는 일이 있었는데,

사내 레거시 프로젝트에서 사용하던 Express 프레임워크로 개발하는 것보다 NestJS 프레임워크로 개발하는 걸로 결정하는 데 도움이 됐다. 유지보수 측면에서도 NestJS 프레임워크를 사용하는 게 더 나았고 실제로도 그랬어서 사내에서 개발되는 NodeJS 프로젝트는 NestJS 프레임워크로 시작하게 되었다.

 

매쉬업 노드팀을 안했다면은 NodeJS 에 막연한 두려움 같은게 있어서 기회가 와도 못 잡았을 것 같다.

매쉬업같은 IT 동아리로 한정된 시간 안에 유의미하고 성장 효율이 높은 사이드 프로젝트를 한 게 큰 도움이 되었다.

다른 개발자 분들과 디자이너 분들을 많이 만날 수 있고 서로 다른 견해를 주고 받아서 시야가 넓어졌던 것 같다.

👍 코로롱 시국이었을 때 좋았던 점

나는 비대면 코로롱 시국일 때의 혜택을 좀 많이 봤다고 생각한다.

마음에 맞는 분들과 많이 친해질 수 있었고 스태프 활동으로 동아리에 기여할 수도 있었다.

비대면으로 했다고 해도 사적으로는 오프라인으로도 꽤 만나긴 했다.

 

대학생 시절 오프라인 시절일 때와 비교해서 가장 좋았던 점은, 돈이 안든다 였다.

매 팀 모임마다 스터디룸과 카페로 이동하여 나오는 교통비와 스터디룸비, 추가로 음료비, 저녁 식사하면 나오는 식비를 아낄 수 있었다.

가끔 온라인 회식으로 저녁을 같이 먹거나 야식과 술로 서로 이야기 하면서 먹긴 했어도, 오프라인일 때 보다는 적게 나온다.

 

전체 모임으로 80~100 명의 사람들이 모일 장소를 대관하는 것도 운영측에서도 돈이 많이 드는 일이다.

그러나 오프라인으로 그 비용을 대폭 아낄 수 있었고 심지어 다른 사기업에서의 후원도 받아 운영적으로 여유있게 할 수 있었다.

해커톤할 때 파티룸이나 숙소를 소규모로 빌려서 했었는데, 그 비용 뿐 아니라 식사 비용까지 지원을 받을 수 있어서 너무 좋았던 것 같다.

 

두 번째로는 시간을 더 많이 쓸 수 있었다.

사람들이 자주 모이는 강남까지 가는 데 오래 걸리고 또 모여서 이야기하고 집에 오면은 토요일이 끝난다. 

매일 밤까지 노는 건 아니지만, 온라인일 때는 확실하게 시간을 많이 확보할 수 있었다.

다른 사이드 프로젝트를 한다든지, 현생에 조금 더 신경을 쓴다든지 하는 식으로 다들 시간을 잘 보냈었다.

 

세 번째는 온라인으로 많은 사람들과 이야기하고 놀 수 있었다.

오프라인으로 다른 사람들을 많이 만날 수 있는 기회가 별로 없다.

다른 팀과 하는 스터디를 잘 참여하거나 번개에 참여해서 같이 놀거나 회식을 많이 참여해 술로 친해지거나 등등이었다.

술을 못 마셔서 그렇게 노는거에 부담스럽기도 했고, 학생 때는 여유가 없어서 자주 그러지는 못해서 거의 같은 iOS 팀 아니면 같이 프로젝트를 했던 다른 팀원 분들만 알고 한 기수가 흘러갔다.

온라인으로 소통할 수 있는 디스코드 창구가 생기다 보니 부담 없이 집에서도 다른 사람들과 많이 이야기할 수 있어서 좋았다.

아마 5~8기에서 다른 팀 사람들과 이야기한 것 합친 것 보다, 9~10기에 한 게 더 많지 않을까 싶다. 🤣

👎 코로롱 시국이었을 때 안 좋았던 점

혜택을 보긴 했어도 단점이 아예 없는 건 아니었다.

 

가장 큰 단점은 디스코드 매쉬업 채널을 아예 활용하지 않는 사람은 사실상 볼 수 없었다!

처음에 의무로 가입해서 들어오긴 해도 팀모임만 하고 아예 접속하지 않으신 분들의 비중도 많았다.

팀마다, 개인마다 권한과 역할을 부여하고 봇 셋팅까지 했지만, 채널을 아예 따로 팠다고 했을 땐 조금 속상했었다. 😢

나는 팀 외의 다른 사람들과 이야기하지 못한 채로 흘러가는 걸 막고 싶어 공식 채널을 만들었지만,

누군가는 친해진 몇몇의 사람들 외에 다른 사람들을 굳이 만나려 하고 싶지 않다는 사실을 알게 됐었다.

 

전체 모임은 줌으로 진행하지만 모임을 진행할 때 모두 음소거를 한 채로 진행자와 몇몇 발표자만 이야기를 한다.

가끔 아이스 브레이킹용으로 소규모 회의실을 개설해서 이야기를 하기도 하지만, 시간이 그리 여유롭지는 않고 서로 알아가기엔 짧은 시간이라고 느꼈다.

 

두 번째로 같은 팀원과 친해지는 게 쉽지 않다. 첫 번째 이유와 비슷한 맥락이긴 하다. 내가 스태프라서 직접 면접때부터 이야기를 나누고 티타임 같은걸로 근황이나 고민같은 걸 나누긴 했어도 만나는 시간이 짧아 솔직하게 말하자면 딱히 친해진다는 느낌을 받지 못했었다. 티는 안냈지만 매 팀 모임마다 만날 때 마다 서로 와아아아! 친해지고 몇 주 지나서 다시 어색해지는 느낌을 많이 받았다. 🤣

스태프도 이런데 다른 팀원분들은 같은 프로젝트 팀원으로 매일 디스코드상에서 만나는 거 아니면, 다른 팀원과 친해지기 쉽지 않았을 것 같다. 그래도 오프라인으로 보면 스몰토크나 밥을 먹으면서 친해질 기회가 많았을 텐데 온라인 상에선 그런게 쉽지 않았다.

코로롱 시국임에도 오프라인으로 2~4명씩 자주 만나시는 분들은 여행까지 같이 갈 정도로 친해져서 그 갭이 크게 느껴졌었다.

 

세 번째로 사람들과 더욱 만나고 싶어도 쉽지 않았다. 같이 만나서 모각코나 프로젝트 작업을 하고 밥을 먹고 싶어도 거리 두기 제한으로 모이기가 쉽지 않았다. 지금은 코로나 걸린 사람의 인식이 누그러졌지만, 당시만 해도 단체에서 집단 감염이라도 일어나면 비난받는 시기였기에, 동아리 스태프 입장에선 보수적이고 조심스러울 수 밖에 없었었다. 두 번째 이유처럼 모르는 사람들과 친해지는 것도 힘들었지만, 친해진 사람들과 더 못 만나는 것도 힘들었던 것 같다. 거리 두기 제한이 완화됐을 때 잽싸게 만났어야 했었다. 🐿

🕸 매쉬업 12기 웹 프론트엔드 팀 도전

매쉬업 11기 쯤을 마치고 나니 사적으로 많이 만나는 친한 사람들이 많이 수료했다.

나는 웹 프론트엔드를 도전해보고 싶어 수료 대신 마지막으로 매쉬업 12기 웹팀으로 이동했다.

11기가 끝나기 전부터도 계속 웹팀에 갈거다, 라는 떡밥을 매쉬업 웹팀 12기 스태프가 될 친구한테 많이 던져놨다 보니 🤣

당연히 오겠거니 해서 자연스레 이동이 됐다.

 

매쉬업 12기 웹팀 (프론트엔드) 은 React 프레임워크로 스터디를 하고 프로젝트를 진행한다.

매쉬업 iOS 팀처럼 직장인의 비율이 훨씬 높은 편이었다.

직장인이 많아서 그런지, 그래도 학생 비율이 꽤 있었던 백엔드팀 (노드팀, 스프링팀) 보단 여유있고 자유로운 분위기였다.

이미 평일 하루를 실무로 뛰고 계신 분들이다 보니 평소에 궁금했었던 기술 논의나 질의응답이 활발했었다.

 

처음에 나는 대화 내용을 따라가기 어려웠었는데, 조금 시간이 지나니 체념했었다. 🤣🤣

그냥 그런게 있구나 정도만 넘어갔던 것 같다. 키워드만 줍줍해서 나중에 따로 찾아보고 모르는 것 정도만 물어보곤 했다.

시중에 나온 웹 강의를 봤지만 확실히, 실무로 뛰시는 분들의 이야기와는 갭이 좀 크긴 했다.

프로젝트를 같이 하면서 눈치로 배우는 게 웹 프론트엔드 감각을 익히는 게 훨씬 실력 향상에 도움이 됐었다. 😁

🎶 매쉬업 12기 웹팀 프로젝트 - 눈치로 살아남기 대작전 👀

자랑은 아니지만 매쉬업 12기 웹팀 프로젝트 하기 전까지, 따로 사이드 프로젝트라도 해본 적이 없었다. 🤣

사실상 노베이스였었는데, 눈치로 매쉬업 12기 웹팀 프로젝트를 했었다.

 

매쉬업 12기 웹팀 프로젝트는, '뮤즐리' 라는 서비스로 플레이리스트를 사람들과 공유하는 서비스다.

웹 프론트엔드 단일팀으로, 웹팀 + 백엔드 (스프링팀) + 디자이너로 구성되었다.

막연히 단일팀으로 하면 웹사이트를 만드나 싶었다.

모바일 앱에 최적화된 서비스를 만드는게 더 빨라서 모바일 앱으로 채택되었다.

뮤즐리 서비스 일부 화면

1차 해커톤 하기 전까지 프로젝트 셋팅정도만 하고 갔다.

NextJS 으로 프로젝트를 만들고 ESLint, Prettier, Commit Lint, husky, .env 환경변수 등을 설정해주셨다.

사실 해커톤 전까지 페이지를 만들어 본 적이 없었는데...

'람쥐야, 이 플로우 맡아줄래?' 속으로 식은땀을 흘렸다. 😅

 

열심히 다른 형누나들이 한 소스 코드를 보고 눈치껏 따라 만들기 시작했다.

일단 하나의 페이지를 인라인 스타일링과 CSS Flex 으로 레이아웃 잡아가며 뚝딱이면서 만들고

스타일링 상수를 만들어 각 태그에 넣을 스타일을 분리했다.

컴포넌트를 분리할만한 건 따로 컴포넌트 폴더로 분리하였다.

 

다른 분들은 프론트엔드 개발 경험이 많으셔서 공통으로 쓸만한 컴포넌트는 이야기 해주시고 빠르게 컴포넌트로 제작해주셨다.

다들 공통으로 필요한 컴포넌트부터 정의하고 맡은 분야에서 필요한 컴포넌트를 정의한 다음에 페이지를 작성하는 바톰업 방식이었다면,

나는 그런 경험이 없어서 다른 분들이 만든 공통 컴포넌트를 쓰고 페이지를 먼저 만들고 컴포넌트를 분리하는 탑다운 방식으로 개발헀다.

모바일에 최적화된 루트 컨테이너와 네비게이션, 모달은 컴포넌트로 진즉에 만들어두셔서, 나는 눈치껏 사용하기만 하면 됐었다. 👀

 

페이지를 만들어보고 컴포넌트도 만들어봤더니 익숙해지기 시작했다.

반복 작업은 내가 제일 자신 있는 거라서 열심히 화면을 찍어냈다. 🤣

디테일한 부분은 코드 리뷰나 구두 리뷰로 열심히 받으면서 했었다.

나를 엄청 엄청 배려해주시는 게 느껴져서 너무 고마웠었다. 🥺🥺🥺🥺🥺

죄송해요, 사실 그 때 다 이해 못했었어요. 😁

 

API 연동하는 커스텀 훅도 먼저 다른 분이 작업하셨는데 단순 반복 작업으로 찍어낼 수 있을 것 같았다.

서버 개발자 아니랄까봐 API 연동하는 거에 관심을 가졌다.

백엔드 서버 스웨거에 나온 대로 API 연동한 커스텀 훅도 마구 찍어내기 시작했다.

요청 데이터와 응답 데이터의 구조를 바로 알 수 있도록 Typing 도 열심히 추가했었다.

세부적인 UI를 내가 구현하는 것보다는 더 효율이 좋은 결정이었다..!

 

Axios 인스턴스도 그냥 각 API 호출하는 훅에서 불러오는 게 아니었다.

`api/core` 으로 Axios 인스턴스를 랩핑하여 사용하도록 커스텀으로 만들어주셨다.

로컬 스토리지에서 API 서버와 통신할 토큰을 가져오고, 환경 변수에서 API 베이스 주소를 설정해준다.

Axios 인스턴스에 뒷 주소와 데이터만 입력해도 토큰이나 베이스 주소를 신경쓸 필요가 없었다.

 

해커톤 끝나고 나서도 뚝딱뚝딱 열심히 같이 작업하면서 만들어나갔다.

원래 애니메이션도 프론트엔드단에서 구현하는 거였는데, 리소스의 한계로 GIF 파일로 대체되었다.

1차로 만들 기한까지 만들고 나서 서로 QA 열심히 하면서 서비스를 고쳐나갔다.

QA 시트

 

서비스 디자인이 너무 귀엽고 기능도 실용적이라 반응이 무척 좋았다.

왠지 모르겠는데 매쉬업 사람들도 뮤즐리가 나오기를 기대하고 있었고 입소문 같은게 나있었다. (?!)

그래서 그런지 매쉬업 최종 발표 때 내부 평가로 1등으로 나의 매쉬업 마지막 12기 생활을 마무리 했었다. 😁

 

다른 기술적인 부분은 다른 팀원의 게시글을 보는 게 더 나을 것 같다. 크크...

 

뮤즐리 다른 매쉬업 웹 팀 분의 블로그

 

함께 만드는 음악 플레이리스트 'Muzily' 개발기

주니어 프론트엔드 개발자가 사이드 프로젝트에서 새롭게 경험한 5가지 | 변하지 않고 안락한 환경에 오래 머물다 보면 나도 모르게 상황에 안주하게 되곤 합니다. 그도 그럴게 지금의 상황에

brunch.co.kr

뮤즐리 디자이너님의 블로그

 

함께 만드는 모두의 플레이리스트 'Muzily' 탄생 스토리 (from Mash-up)

Muzily(뮤즐리)는 IT 연합 동아리인 Mash-up에서 디자이너와 개발자들이 협업해서 만든 프로젝트다. 카페, 바, 동아리, 팀플 상황 등 노래를 여러 사람들과 함께 듣는 상황에서 모두가 원하는 노래를

ux-navigator-story.tistory.com

👍 매쉬업 오프라인 시기 직장인 장점

직장을 다니면서 매쉬업을 한 건 매쉬업 10기 노드팀 때부터였지만,

오프라인으로 매쉬업을 한 건 매쉬업 12기 웹팀이었다.

예전 오프라인 시기때와 마찬가지로 팀 모임 때마다 강남역 쪽에 웹팀 팀원 한 분이 오피스 사무실에 대여하여 아주 쾌적하게 했었다.

전체 모임도 마찬가지로 오피스 장소를 빌려 진행하기도 했으며 행사할 땐 후원으로 사옥이나 큰 세미나 실을 빌려서 했다.

 

첫 번째로 실무에서 쓰는 기술 외의 기술을 도전해볼 수 있다.

업무에서 쓰는 걸 더 공부할 수 있지만, 우리 팀에 도입할까 말까 싶은 것을 미리 해볼 수 있다.

팀원과 같이 공부하거나 매쉬업 프로젝트 때 제안하여 써볼 수 있다.

장단점을 겪어보고 팀에 도입을 하고자할 때 조금 더 설득력 있게 제안해볼 수 있다.

 

두 번째로 다른 회사를 다니는 개발자와 디자이너분들을 많이 만날 수 있다.

물론 IT 업계는 좁으므로 같은 회사의 다른 부서 사람을 만날 수도 있다. 🤣

사람들과 많이 친해지고 베프를 만나는 경우도 많이 봤다.

사내 동료와는 달리 동아리 안에서 만나는 사람들은 친구나 친한 형, 누나, 동생 정도로 가까워 지다보니

정보도 많이 얻을 수 있고 서로 고민도 많이 나누고 삶이 뭔가 재밌어진다. (?!)

👎 매쉬업 오프라인 시기 직장인 단점

매쉬업 오프라인 시기 직장인 관점에서의 단점은 명확하다.

직장 일이든지, 개인적인 인간 관계에 시간을 많이 쏟아야 한다면 안하느니만 못한 것 같아서 비추천 한다.

가끔 야근을 매일 하신다든지, 주말에도 출근하시는 심하게 시간을 투자해야 하는 분을 종종 봤었다.

 

시간을 생각보다 많이 투자해야 한다.

팀모임도 가야하고 전체모임도 가야하고 스터디는 스터디대로, 프로젝트 기간 때는 프로젝트 팀원끼리 만나는게 잦다.

밤샘 작업하는 해커톤도 12기 때는 무려 세 번을 했었다. 다행히 13기 부터는 줄인다고 들었던 것 같긴 하다.

너무 과투자를 해도 현생, 즉 회사 업무 퍼포먼스에 악영향을 줄 수도 있다.

또 너무 저투자를 하면 동아리에서 얻을 수 있는 이점이 많이 없다.

팀모임과 전체모임을 주로 하는 토요일은 없다고 보면 편하다.

아침, 점심 약속 잡기도 애매하고 낮에 모임 가고 저녁도 먹고 놀다오면 하루가 끝나있다.

철저히 계획적으로 시간 관리와 체력 관리가 필요하다.

두 마리의 토끼를 잡아보자. 🐰

 

시간이 없다와 체력적으로 힘들다 외에는 그렇다 싶은 단점은 없는 것 같다.

갑자기 많은 인간관계가 생겨서 힘들다? 도 사람에 따라 있을 수는 있지만 다들 어느정도 각오하고 오지 않았지 싶다.

💌 함께 했던 분들에게 감사의 말씀

대학생 때 했던 iOS 팀 5기 ~ 8기 때는 금전적인 여유가 없었고, 교내 동아리도 여러 개 하는 게 많았다 보니 시간 투자를 많이 못했었다.

나이도 또래가 거의 없을 정도로 어렸지만 말도 많이 붙여주시고 이해해주셔서 고마웠다. ☺️

iOS 7기 때 맥북 고장나서 프로젝트에 잘 참여하지 못했을 때 팀원들에게 너무 죄송했고 잠시 이해해주셔서 너무 감사했다!

백엔드팀 (스프링팀, 노드팀) 때에도 온라인이지만 팀원들이 열심히 의견도 많이 내주고 피드백도 열심히 해주고 준비한 걸 참여를 적극적으로 해주셔서 고마웠다! 게임도 시간 날 때마다 같이 하고 보드게임이나 방탈출도 간간히 같이 가준 친구, 동생, 형, 누나들도 너무 감사하다!

가장 기억에 많이 남는 건 진심 어린 조언들을 많이 해준 분들인데, 정말 도움이 많이 되었고 많이 공감해주셔서 감사의 말씀을 전하고 싶다. 🥺🥺

⭐️ 매쉬업 13기에 지원할 분들에게 할 말

매쉬업 외에 다른 IT 동아리를 많이 하지는 않았지만, 나의 개발자 인생에서 많은 영향을 끼쳤다고 느낀다.

매쉬업에 뛰어나신 분들이 정말 많다. 몇몇 수료하신 분들이 자주 하는 이야기 이기도 하다.

당시에는 몰랐지만 매쉬업 사람들이 정말 뛰어난 거였다고 많이들 이야기 하신다.

그 중 실력이 뛰어나신 분들도 있겠지만, 비단 실력 뿐 아니라 아직 실력은 부족하더라도 애티튜드가 훌륭하신 분들이 많다.

 

개발자 인생에 많은 영향을 받고싶은 IT 동아리를 하고 싶다면 매쉬업을 추천드린다.

많이 배울 수 있고 내 시야를 넓히고 잠재력을 높일 수 있다.

궁금한 점이 있으면 댓글로 언제든 남겨주시면 답변해주겠습니다. ☺️

✅ 수료 후 할 것

4년 반년만의 정든 동아리를 마치기도 했고, 병특 2년 3개월을 마무리하기도 했고, 복학 까지의 조금의 시간이 남았기도 해서 잘 쉬는 거에만 집중할 것 같다. ☺️ 하고 싶었던 활동도 하고, 따고 싶은 자격증도 따고, 가끔 공부도 좀 하고, 여행도 가면서 푹 쉬는 한 해가 될 것 같다.

아직은 모르는데, 정말 빠르면 졸업하고 나서 취업할 수도 있고 더 놀고 싶으면 한 해를 통째로 쉴 수도 있을 것 같다. 그냥 여유롭게 생각하기로 했다~

 

대학교 졸업하기 전에는 대학교 IT 연합 동아리를 한 번 해보고 싶긴 하다!

23년도에는 블로그에 최대한 많이 올려보겠다~

댓글