벨로그 오랜만☘️
연말 기념으로 2023년을 되돌아봤다. 올 여름에도 비슷한 이야기를 했지만, 다른 해와는 비교도 안 될 정도로 바쁘고 알차게 보낸 한 해였다. 벌써 여름 쯤의 기억은 흐릿하지만, 더 늦기 전에 정리하는 글을 쓰고자 한다.
레포지토리 링크
여름의 가장 큰 이벤트는 멋사 중앙해커톤이었다. 평소에 동아리 활동을 하면서 보고 배울 점이 많다고 느꼈던 동생들과 팀을 이루게 됐다. 우리 팀원들의 성격은 제각각이었지만 다들 열정과 끈기는 결이 비슷했기 때문에 재미있게 작업했다.
우리 팀은 고령층이 연예인 팬 활동을 쉽게 즐길 수 있도록 돕는 서비스를 제작했다. 7월에 여기톤을 경험한 뒤에 해커톤에 대한 감이 잡혀서 너무 욕심부리지 말고 그냥 내 마음에 드는 서비스를 만들어보자는 생각이 컸다.
서비스 규모가 상당했는데도 한달 안 되는 시간동안 생각했던 모든 서비스를 만들어냈다. 대회 일주일 전부터 밤새는걸 기본으로 생각하고 작업했다.ㅎㅎ... 제대로 잠도 못 자며 작업했고 결과물에 나름 자신이 있었다. 그렇게 대회 당일. 완벽한줄 알았던 서비스에서 최종 제출 이후 큰 문제를 발견했다. 카카오톡으로 로그인하는 기능을 구현했는데, 해당 기능을 사용할 때 성별 및 나이대 제공에 동의하지 않으면 회원가입이 안되고 오류 페이지가 뜨는 문제였다.
그 기능을 구현한게 나였고, 정말 간단한 예외처리 하나를 안 해서 큰 문제가 생겼기 때문에 마음이 심란했다. 며칠을 잠 못자고 고생한 팀원들이 있는데 심사위원이 로그인조차 못해보고 나가면 어쩌지 싶었다.
그런데 다행인지 불행인지 심사위원은 우리 서비스에 정상적으로 로그인했다.
그리고 아무것도 안 하고 나갔다...
로그에 아무 내역도 찍히지 않았다. 실망하는 팀원들 다독이면서도 나도 많이 실망스러웠다. 그래도 이번 프로젝트 만들면서 느낀 점이 너무 많았어서 끝나고 보니까 심사여부와는 관계없이 좋은 경험이었다. 여기톤 때부터 느낀거지만, 수상에 욕심내는 순간 그간의 노력을 스스로 무시해버리게 되기 때문에 욕심내지 말고 대회를 즐기자고 되새겼던 것 같다. 그 생각이 많이 도움됐다. 게다가 팀원들이 다들 유쾌하고 밝아서 금방 기운차릴 수 있었다.
긴장이 풀리니까 다같이 사진도 찍고 이야기 나누면서 그간의 회포를 풀 수 있었다. 시상식 끝나자마자 회원가입 관련 오류도 수정했고, 여러모로 심장 철렁이는 대회였던 것 같다.
레포지토리 링크
중앙해커톤을 준비하면서 서비스 성능 향상에 조금이라도 도움이 될까 싶어서 백엔드 파트 팀원들과 함께 파이콘 튜토리얼을 들으러 갔다. 프로젝트 스택이 장고MTV였는데, 마침 장고 채널스와 관련된 강의가 있었다.
신청 비용이 저렴하기도 했고 소개 내용이 너무 좋아보여서 기대가 됐다. 재밌는건 이 튜토리얼에서 멋사 소속 친구를 만났다. 이런 우연이 다 있을 수 있나 싶은데, 그 친구도 같은 강의를 들으러 왔다고 했다. 몇 명 안되는 우리학교 백엔드 파트 아기사자가 무려 네명이나 한자리에 모여서 강의를 들었다.
챗지피티와 소켓통신 관련된 튜토리얼이었는데, 처음 접해보는 분야에 프로젝트까지 짧은 시간에 만들어보면서 여러모로 느낀 점이 많았다. 여태까지 내가 했던 프로젝트는 정말 간단한 거였구나 싶기도 했다. 이유모르는 승부욕이 불타오르는 시간이었다.
이것저것 여러 행사에 참여한 8월이었다. 작년에 참가했을 때 굉장히 좋은 기억이 있었던 인프콘에 올해도 참여하게 됐다. 올해부터 유료 + 추첨제로 변경되었는데 운 좋게 당첨되어 방문할 수 있었다.
회장에 우채님도 계셔서 인사도 하고 서버 로깅 관련 컨퍼런스도 듣고 왔다. 응애 개발자에 전혀 모르는 기술스택(nest)으로 설명해주셨음에도 여러 기술을 도입해보자는 관점에서 흥미롭게 보고 왔다.
42서울 대표로 카뎃 한 분이 발표를 하셨다고 했는데 내가 너무 늦게 도착해서 듣지 못해 아쉬웠다.
부스 구경하고 컨퍼런스 몇 개 보니까 시간이 훌쩍 지나서 집에 가는데, 빈 손으로 왔다가 양손가득 짐이 생겨서 웃겼다. 참 이것저것 퍼주는 행사같다.
멋쟁이 사자처럼의 주요 행사들이 어느정도 마무리 됐다고 느껴져서 새로운 웹개발 동아리에 들어갔다. 바쁜 하루하루에 익숙해져서 그런지 한가함을 못 견딜 것 같았다.
서류 및 면접 준비는 언제나 힘들기에 관련된 글을 따로 작성했다.
궁금하면 여기로
8월부터 4주 동안 평일에 알고리즘 문제를 푸는 구름톤 챌린지에 참여했다. 블록을 모으면 주마다 캐릭터를 꾸밀 수 있는 게임 요소의 챌린지였는데, 문제풀이를 블로깅하면 주마다 5천원 씩 총 2만원을 주는 이벤트도 진행했다. 사실 시작은 그 오천원 때문이었는데, 풀다보니 문제 난이도도 그렇게 어렵지 않고 해설 없이 풀 수 있는 문제들이 몇 개 있어서 점점 열심히 풀게 됐다.
알고리즘 문제풀이를 안 한지 오래됐고 솔직히 자력으로 풀 수 있는 문제가 몇 개 안될거라고 생각했는데, 난이도가 점차 올라가는 식으로 문제가 구성돼 있어서 열심히 풀게 됐다. 게다가 문제풀이를 잘 못하는 나도 풀 수 있을 정도의 난이도라서 개발자 누구나 편한 마음으로 참여할 수 있었을 것 같다. 결국 이마넌 게또 V
블럭을 18개인가 19개인가 모으면 오프라인 팀 챌린지를 신청할 수 있었는데 나는 딱 커트라인에 맞춰서 블록을 모았다. 블록 개수에 맞게 커트라인이 생긴다고 들었기 때문에 큰 기대를 안하고 참가신청서를 작성했다. 그런데 선발이 되었다. 올해는 운도 참 좋았던거 같다.
팀 챌린지는 판교에 있는 구름스퀘어에서 진행됐다. 어떤 내용으로 챌린지가 진행되는지 전혀 알 수 없었기 때문에 아무 준비도 없이 왔는데 프론트엔드 관련된 과제가 주어졌다. 당황스러웠던 점은 스퀘어에 다같이 모여있을 때 자기소개를 시켰는데, 그 내용을 바탕으로 챌린지 참가자들끼리 서로 팀매칭을 했다는 점이었다.
나는 당일에 지각해서 그 사실을 전혀 모르고 내 소개를 두루뭉실하게 했는데, 그때문에 팀매칭에서 누구에게도 선택받지 못하는 일이 발생했다 ^^... 자기 pr이 중요하다는걸 이 때 절실히 느꼈다. 사실 리액트도 다뤄봤고 상태관리도 어느정도 할 줄 아는데다 프로젝트 경험도 꽤 있었는데 너무 자신감 없이 얘기했던게 아쉬웠다.
그래도 어찌저찌 팀매칭을 하고 과제를 수행했는데, 약 5페이지 정도 되는 과제에서 메인 페이지와 첫번째 페이지를 내가 구현하고, 합치는 것도 진행했다. 과제 진행하면서 생각보다 쉽네...? 라는 생각이 들었고, 자신감이 붙었던 것 같다.
팀원분들은 다들 착하셨고 우리팀은 재밌게도 모두 백엔드 개발자로 팀이 구성돼 있어서 이야기도 잘 통하고 즐거웠다.
그리고 구름스퀘어에서 42서울 멤버를 만났다! 42서울 덕분에 다양한 사람들과 말문을 틀 수 있어서 좋았다. 과제지를 보면서 앞으로 팀프로젝트를 몇 번 더 해야되는데, 그 때 이런식으로 기획서를 작성하면 개발하기 수월하겠다 하는 생각이 들었다.
챌린지가 끝난 직후에 노션에 후기를 작성해놨는데 거기에도 비슷한 내용이 담겨있었다.ㅋㅋㅋ
프로젝트 끝나고 수료증도 나왔는데, 너무 뿌듯해서 방에 전시해놨다. 이런 행사 다니는거 너무 즐겁다. 지금 생각해도 이 때 너무 웃기고 재밌었어서 피식거리게 된다.ㅎㅎ 챌린지 끝나고 한참 뒤에 우리팀 단톡방에서 한 분이 유튜브에 영상 올라왔다고 공유해주셨다. (유튜브 링크)
2학기 멋쟁이 사자처럼의 세번째로 큰 행사... 바로 세미나 준비! 나는 비동기 통신을 주제로 발표했다. 신박한 주제로 발표하고 싶었지만 내가 알고 있는 지식도 한정적이고, 프론트엔드와 백엔드를 둘 다 경험해본 내가 잘 설명할 수 있는 주제가 무엇일까 고민하다가 프론트엔드와 백엔드가 어떻게 데이터를 주고받는지를 서비스 사용자 관점에서 설명해봤다. 사실 백엔드보다는 프론트엔드와 더 가까운 이야기였다ㅎㅎ...
동기와 비동기를 설명하기 위해서 C언어로 쓰레드 사용하는 코드도 작성하고 네이버 회원가입으로 실제 사례도 보여주는 등 다양한 구성을 보여주기 위해서 노력했다.
여러 프로젝트가 겹쳐서 바쁜 와중에 틈내서 하다보니 만족할만한 퀄리티가 나오진 않았지만 이 세미나 보고 감명받았다고 나중에 따로 연락도 받았다ㅎㅎ 착한 멋사 사람들
11월에 예정된 해커톤을 준비하기 위해서 유신이와 JPA 스터디를 진행했다. 인프런의 유료 강의를 수강해야 하기 때문에 함께 공부할 사람이 있으면 좋겠다고 생각했는데 유신이가 선뜻 하고싶다고 얘기해줬다.
10월은 큰 행사 없이 강의 두개를 완강하고 지나갔다. 강의를 통해 배울 수 있는 내용이 많았고 이후의 프로젝트에 큰 도움이 됐다.
레포지토리 링크
2학기 멋사의 두번째로 큰 행사... 미르톤! 여태까지 프로젝트를 모두 장고 MTV로 진행했었기 때문에 이번에는 스프링부트로 프로젝트를 해보고 싶다는 소망이 있었는데, 팀원분들과의 의견이 맞아서 스프링부트로 진행하게 됐다.
10월에 팀매칭이 발표되었는데, 팀미션을 수행하면 구름스퀘어의 회의실 선점권을 주는 이벤트를 진행했다. 마침 9월에 구름 스퀘어에 방문한 경험이 있었기 때문에 무조건 창가쪽 회의실을 사수하고 싶었다.
그래서 열심히 미션 깨고 다녔다. 팀원들과 프로젝트 전 오프라인으로 만날 수 있어서 좋았다. 게다가 다들 개성있고 재미있어서 만날때마다 즐겁게 놀았다.
그 결과 팀매칭 미션 1등! 그래요 우리 팀이 엥? 금지 팀이에오
대회 주제 발표날 오프라인으로 모여서 아이디어 회의를 했는데, 당일에 여러가지 좋은 의견이 나왔지만 다른 팀과 주제가 겹칠 것 같아서 쉽게 결정하지 못했다. 그 다음날 온라인 회의를 통해서 비교적 빠르게 주제를 정하고 기획과 디자인을 진행했다.
이번 프로젝트는 게임요소가 있어서 여러가지 의견을 낼 수 있었다. 그 중에 내 의견으로는 상점과 닉네임 관련된 의견이 채택되었고, 구현 과정에서 나와는 다른 의견을 가진 팀원들이 있었지만 그분들을 설득시키는 경험도 할 수 있었다.
장고와 리액트로 카카오 소셜 로그인 구현을 여러 번 해봐서 OAuth 로그인에 나름 자신이 있었음에도 토큰을 통해 인가 절차를 구현하는 게 상당히 어렵게 느껴져서 스프링 시큐리티와 jwt에 관련된 공부를 열심히 했다.
다행히 스프링부트에 경험이 있는 개발자가 계셨고, 내가 제일 걱정했던 계정 인가 관련된 로직에 대해서도 많이 알려주시고 코드 리뷰도 잘 진행해 주셔서 정말 배워가는 게 많았다. 인증은 내가 하고 인가는 그 팀원분이 해주셨다.
팀에서 짐이 되지 않기 위해서 주제 발표 전까지는 스터디를 꾸려서 인프런의 스프링 관련 강의를 여러 개 수강했다. MVC패턴이나 JPA에 대해서도 학습했고, REST API 설계를 위한 최적화 강의도 수강했다.
암튼… 팀원분이 너무 바빠보여서 인가 절차 부탁드린 뒤에 나머지 개발은 대부분 내가 했다. 코드 짜면서 내 코드가 너무 구려보여서 자괴감에 빠지기도 했지만 아직까지 서비스 이용자가 0에 수렴하기 때문에 성능 최적화는 미래의 나에게 맡겨두고 일단 제대로 돌아가는 코드를 작성했다.
프론트와 REST API로 협업하는 첫번째 백엔드 프로젝트였기 때문에 의미가 있었다. 진행이 더뎌서 압박감도 느꼈다. 우리 팀은 슬랙을 사용했는데, 개발 관련 이슈를 깔끔하게 남길 수 있어서 좋았다.
대회 당일 프론트엔드 파트 팀원 한분이 아파서 불참하셨다. 사실 대회 직전까지도 양측의 진행상황이 제대로 공유되지 않아서 어쩌면 프로젝트를 못 끝낼 수도 있을 것 같다는 생각이 들었다.
그나마 그 팀원분이 아픈 와중에도 비대면으로 열심히 참여해주셨지만, 새벽이 될수록 회장에 혼자 남은 프론트엔드 팀원분이 버거워하는게 보였다. 나도 프론트엔드 개발이 어느정도 가능했기 때문에 필수 api 개발이 끝나자마자 프론트엔드 파트 마무리에 참여했다.
깃을 사용하면서 코드가 꼬이다보니 원래는 되던 코드가 제대로 작동하지 않는 문제도 있었다. axios를 사용해서 휴지통 마커가 지도에 보이도록 수정한 뒤에 DB에 수동으로 마커 데이터를 등록했다. 코드가 거의 완성되었고 조금만 수정하면 되는 상태였기 때문에 그나마라도 할 수 있었다.
여차저차 많은 일이 있었고 우리 팀의 발표 순서가 되었을 때 기획과 디자인을 맡은 팀장님이 훌륭하게 발표해주셨다. 내가 옆에서 대본 보고 우리팀이 무조건 1등이라고 바람 넣었는데, 엄청 부담스러워 하셔서 귀여웠다. 그런데 정말 말을 잘 하셨다.
1차 발표에서 우리팀이 순위권에 들어서 최종 발표할 기회를 얻게 되었다. 최종 발표는 프로덕트 소개뿐만 아니라 실제 서비스 시연까지 보여줘야 했다.
시연을 내가 맡게 됐는데 시간조절을 잘못해서 실제 구현의 80% 정도밖에 보여주지 못했다. 열심히 시간분배를 했는데도 시연 도중에 발표가 끝나서 아쉬웠다.
그렇게 발표가 끝나고 시상할 팀을 공개할 때 장려상에 우리팀이 나왔다.
그런데 잘못 발표했다고 말씀하시고는 다른 팀을 불렀다...
팀원들 다같이 기뻐하다가 오보 소식에 다같이 무너졌다...ㅋㅋㅋㅋㅋ 그 뒤로 기대없이 수상 결과를 보는데 우리팀이 대상이었다. 엥.
수료증도 주는 개짱 대회
레포지토리 링크
미르톤이 끝나자마자 부랴부랴 멋사 2학기 프로젝트를 마무리했다. 테이블 20개이상의 대장정... 미르톤에서 기획자님의 달콤함을 맛봐서 그런지 스스로 기획해야 하는 프로젝트가 조금 힘들었다.
그래도 기존의 기획 바탕으로 프로덕트 개발을 끝냈다.
발표 자료도 내가 만들었다. 프로젝트 발표와 동시에 멋쟁이 사자처럼 11기 수료식이 있기 때문에 유종의 미를 거두고자 발표 자료에 영혼을 갈아넣었다.
피그마로 제작했는데 내 생각대로 디자인이 나와서 만족스러웠다. 피피티 만들면서 목업 이미지를 적절히 활용하기 위해서 노력했는데 나름대로 잘 나왔다.
마지막 세션 후 백엔드 파트 아기사자들끼리 다같이 뒤풀이를 했다. 그곳에서 함께 프로젝트를 했었던, 세션을 들었던 친구들과 다양한 이야기를 나눌 수 있었다. 내가 평소 대단하다고 느꼈던 사람들이 나를 같은 시선으로 보고 있었다는 이야기를 들을 수 있었다.
타인의 장점을 발견하고 칭찬할 수 있는 사람들을 만나서 복에 겨운 한 해였다. 나보다 몇살은 어린 친구들에게 배운게 너무 많았다.
42서울 과제를 회고에 남기는건 처음인 것 같다. 지수리, 원림림과 같이 프로젝트를 진행하게 됐다. irc 기반의 새로운 채팅 서버를 만드는 과제였다.
처음에는 아무것도 감이 안 잡혔기 때문에 소켓통신 기반으로 간단한 c++ 코드를 작성했다. 다같이 모여서 핵심 코드를 작성하고 커맨드는 나눠서 작업했다.
나는 join과 invite, quit을 맡아서 클라이언트가 채팅 서버에 나가는 경우를 생각하며 코드를 작성했다. 팀 프로젝트를 여러 번 했었지만 이미 프로젝트를 완료한 다른 동료들에게 도움받지 않고 오직 팀원들과 상의하며 과제를 해결한 것은 처음이었다.
클래스 구조 관련하여 팀원들과 의견 충돌도 있었고, 간단하게 해결하고 싶기도 하고 깔끔한 코드를 짜고 싶기도 하고, 갈팡질팡하는 사이에 어느새 프로젝트가 마무리되었다.
시간 투자도 많이 했고, 남들은 몇주면 끝낸다는 irc를 한달 넘게 붙잡고 있었다. 사실 그 사이에 진행한 프로젝트가 많아서 온전히 irc에 시간내기가 어려운 것도 있었다. 기다려준 팀원들에게 감사할 뿐...
어두캄캄했던 내 우주가 밝게 채워지는게 보인다. 42서울에 대해 여러가지 이야기가 나오고 있지만, 이 곳에서 다양한 경험을 했고 그 경험으로 인해 성장할 수 있었다는건 부정할 수 없을 것 같다. 과제가 단 두 개 남았다.
umc 합격 이후 크게 언급은 안 했지만 매주 스터디를 진행하면서 서버 관련된 지식을 많이 배울 수 있었다. 스터디에서 배운 것이 너무 많아서 다 적기도 힘들 정도이다.
umc는 학기 말에 팀매칭을 통해 프로젝트를 진행하는데 원하는 프로젝트의 팀장님께 보여드리기 위해서 포트폴리오를 제작했다. 남들 보여주기 부끄러운 내용이지만 내가 어떤 경험을 했고 그를 통해 어떤 것을 느꼈다를 노션같은 주먹구구식 보여주기가 아닌 제대로 정리된 글과 그림으로 보여주고 싶었다.
그래서 굳이 힘든 길을 선택했다. ㅎ 노션도 충분했을거 같기도 하고...
ppt에 열심히 내 소개를 적었다. 프로젝트에 대한 소개, 내가 맡은 역할, 느낀 점 등을 적었다. 후에 다른 동아리에 지원하게 되었을 때 사용할 수 있었으면 해서 보여지는 것에 신경써서 만들었다. 포폴 만드는 김에 텅텅 빈 리드미도 적당히 채워넣었다. 소프트웨어 아키텍처 그리는게 어려워서 완벽한 리드미를 작성하지는 못했지만 나름대로 써넣었다.
그 덕에 1차 팀 매칭에서 바로 매칭될 수 있었다. 2차, 3차에 최종까지 매칭되지 않을 수도 있었는데 빨리 매칭돼서 다행이다. 구름톤 팀 챌린지 이후 자기pr의 중요성을 느꼈기 때문에 열심히 준비한 보람이 있었다.
프로젝트는 1~2월에 진행할 예정이라서 내년도 바쁘게 살 수 있을 것 같다.
환경은 스스로 만들어내는 거라는걸 느낀 해였다. 이전까지는 주변과 나를 끊임없이 비교하며 나정도면 적당히 잘 사는거지~ 하는 마인드로 살아왔는데, 내 스스로 도전과 실패, 성공을 반복하다보니 아무것도 안 하고 지레 겁부터 먹었던 이전의 시간들이 조금 아깝게 느껴졌다. 실패에서도 느끼는 점은 분명히 있었다.
지금도 엄청나게 성실하게 사는건 아니지만 내가 하고 싶은 일에 몰두할 수 있다. 뭘 해야 하는지도 방향이 잡혔다. 휴학하고 시간 날릴까봐 벌벌 떨던거 사실 기억은 나는데... 그래도 후회는 안 해요
고마운 사람들도 너무나 많았고 미안한 사람들도 많았는데, 많은 사람에게 최선의 모습으로 기억되고 싶다는 욕심이 있다.
팀 프로젝트를 경험하면서 내가 생각보다 규칙에 예민한 사람이라는 것을 알 수 있었고 기대받으면 받을수록 더 열심히 잘하는 사람이라는 것도 알 수 있었다. 다양한 사람을 만나다보니 나에 대해서도 더 잘 알 수 있었다. 내가 지향하는 내 모습으로 살 수 있도록 앞으로도 노력해야겠다.
1월부터 바빠질 나를 위해 미리 파이팅...!