[회고] 2024 회고

2024년도를 되돌아보았습니다.

업로드 날짜: 2024년 12월 22일


안녕.. 2024

벌써 24년도가 마무리 되어간다. 올해는 유독 시간이 빠르게 흘러간 것 같다. 이번 한 해는 정말로 숨 가쁘게 달려온 것 같다. 많은 도전과 새로운 경험들로 가득했고, 그 과정이 쉽지만은 않았던 것 같다. 돌아보면 힘든 순간도 있었지만, 그 모든 경험들이 귀중한 배움과 성장의 기회가 된 것 같다.

이제 연말을 맞이하여 지난 시간을 되돌아보고 앞으로의 방향을 그려보고자 한다.

스터디

이번 년도에는 뜻이 맞는 사람들과 함께 스터디를 열어 같이 공부를 해보고자 하였다. 인생에서 처음으로 스터디를 해보기도 하였으며, 스터디를 기획하고 운영하면서 많은 소프트 스킬들도 많이 배울 수 있었던 것 같다.

리액트 스터디

때는 올해 2월 Econovation 동아리에서 24년도 1학기 프로젝트를 함께 진행할 팀원을 구하는 “팀빌딩”시간이었다.

ECONOVATION-[24.02.23] 2024년 1학기 팀빌딩.jpg

나는 이전 프로젝트에서 혼자서만 FE를 담당했었기 때문에 이번에는 FE 협업 경험을 쌓아보고 싶었다. 하지만 생각보다 나와 기술스택이 맞는 인원을 구하는게 어려웠던 것 같다.

다른 동아리 회원들 대부분 리액트에 대해서 처음 시작하는 분들이 많았고, 나또한 깊이있게가 아닌 사용 가능한 정도로만 알고 있었기에 동이라 인원들과 리액트에 대해서 함께 공부할 수 있는 좋은 기회라고 생각이 들어 리액트 스터디를 열게 되었다.

안녕하세요!🙋‍♂️ 리액트 스터디를 소개합니다!

🔥🔥안녕하세요! 이번에 리액트 스터디를 열게 된 스터디장 🍩26기 박건규🍩 입니다. 스터디에 들어오신 모든 분들 환영합니다! 🔥🔥

[슬랙 안내문] 안녕하세요! 프로트엔드 공부하고 있는 26기 박건규입니다! 🙇🏻‍♂️🙇🏻‍♂️ 이번에 새롭게 팀 빌딩이 되어 다들 신나는 마음으로 각자의 방식대로 프로젝트를 준비 중에 있을 것이라 생각이 듭니다!🎉 이번에 React를 처음 접해보시는 분들도 많이 있으신 것 같고, 또 React를 배워보고자 하는 분들도 많이 있는 것 같다고 느꼈습니다. 그래서 이번 학기 동안 React 스터디를 진행해 함께 성장해 보고자 합니다!👊진행 방식은 멘토링을 곁드린 스터디 방식인데요. 스터디 시간에는 돌아가며 공부한 내용 또는 같이 이야기해볼 만한 주제를 가져와 발표 및 토의를 해보는 시간을 가지고자 합니다. 추가적으로 매주마다 과제가 주어집니다! 과제는 화면 및 기능만 주어지고, 조건에 맞추어서 해당 화면을 구현해 주시면 됩니다. 1기가 잘 마무리된다면, 매 학기마다 스터디를 진행해보며 지식의 선순환에 기여해 보고 싶습니다!🔥 해당 스터디는 진입장벽 및 난이도가 높지 않을 것으로 생각합니다! React를 처음 써보시는 분들도 환영합니다!참여 희망 인원은 해당 스레드에 체크 이모지를 해주시면 됩니다! 많은 참여 부탁드립니다! 질문이 있으시면 스레드에 댓글 달아주세요! (추가적으로 일정 및 진행 방식은 스터디원들과의 이야기 후 조정될 수 있습니다!!)

스터디의 목표는 리액트를 사용한 구현 능력과 이론적인 지식을 논의하며 향상시키기 위함이었다. 어쩌다 보니 졸업하시고 현재 현업에 계시는 동아리 선배님들의 도움을 받을 수도 있게 되어서 구현한 코드에 대해서 코드리뷰까지 받을 수 있게 되었다!

(정말로 아무런 대가 없이 항상 바쁘신 와중에도 스터디를 위해서 리뷰를 남겨주셨던 모든 선배님들께 감사의 말씀을 올리고 싶다. 정말 감사했습니다! 🙇🏻‍♂️)

항상 혼자서 코딩을 하고 공부를 할 때는 나 스스로 어떤 가설을 세우기도 하고 또 혼자서 문제점을 찾고 이에 대해서 혼자서 적당히 이런 문제를 해결할 수 있는 나름 괜찮아 보이는 해결 방법을 찾는 방식으로 진행이 된다. 결국에 혼자서 할때는 딱 나의 능력 만큼만 성장을 할 수 있다는 문제점이 존재한다. 오히려 내가 올바른 방향으로 가고 있는 건지, 내가 생각한 해결책이 올바른지, 혹은 더 좋은 방법이 있는건 아닌지, 내가 생각한 문제점이 다른 사람들에게는 문제가 아닐 수도 있는거고, 또 다른 문제점이 있을 수도 있기도 하니.. 뭔가 혼자서 해나가는 공부는 하면 할수록 찜찜함이 남았었다.

이번 스터디를 진행하면서 같이 동일한 주제를 공부하는 사람들과 함께 공부를 진행할 수 있다는 점에 너무나도 행복했던 것 같다. 또한 엄청난 퀄리티의 코드리뷰까지 받을 수 있었다는 점에서 내가 맞다고 생각하는 것들을 이것저것 적용해가면서 리뷰어분들의 반응을 보면서 방향성을 잡을 수도 있었던 것 같다. 모르는 기술이나 궁금한 점들, 공부 방향성 등등을 물어보면서 정말 많은 성장을 할 수 있었던 것 같다.

image.png

하지만 처음 스터디를 진행해보다보니 조금은 미숙한 점이 많았던 것 같다.

(관련한 회고 내용은 스터디 회고 부분에 언급하였다.)

처음이라 당연히 미숙한 부분이 있을수 밖에 없었다. 오히려 처음 해보는 스터디 치고 너무나도 잘 운영 되었었고, 너무나도 많은 것을 얻어갈 수 있었던 것 같다!

자바스크립트 스터디

방학동안에는 자바스크립트 스터디(본명 :자아스스터디)를 하게 되었다. 이번 스터디는 내가 주최한게 아닌 동아리 선배님이 주체하신 스터디이다. “코어 자바스크립트” 책을 8주의 기간동안 끝내는 것을 목표로, 매주 만나기 전까지 책을 읽어오고 만나서는 랜덤으로 3명을 뽑아 공부한 내용을 발표하고 질의응답하는 방식으로 진행되었다.

나는 이전에 자바스크립트 공부를 모던 JavaScript 튜토리얼로 공부했었다. 2년 전에 군대에 해당 사이트에서 제공하는 pdf를 프린트 하여 파트 1만 가져가서(파트1만 해도 700페이지가 넘었었다) 군대에서 시간 날 때마다 노트에 깜지쓰면서 틈틈히 읽었던 것 같다. 그렇게 읽은 게 못해도 3회독은 한 것 같다(어려운 부분은 셀 수도 없이 많이 읽은 것 같기도 하다..). 하지만 그럼에도 완전히 내용을 습득하지는 못했던 것 같다. 그 당시에 나는 개발 관련 역량이 너무나도 부족했기에 이해보다는 받아들이고 머릿속에 넣기 바빴던 것 같다.

자스 책.jpg

아직 머릿속에서 정리되지 않았던 자바스크립트 개념을 정리하고, 공부한지도 조금 오래되었기에 다시한번 공부 내용을 상기시킬 수 있는 좋은 기회라고 생각하였고, 스터디에 지원하게 되었다.

가장 기억에 남는 부분은 책의 1장에서 자바스크립트가 어떻게 메모리를 사용하는지에대한 내용이 나오는데, 이에 대해서는 한번도 공부해본적이 없었고, 메모리 영역을 데이터 영역과 주소 영역 등으로 나누는 것을 보면서 처음 들어본 개념에(힙, 스택 영역 등은 알고 있지만.. 이렇게 메모리를 나눈 것은 어색했다. ) 관련해서 실제 브라우저 코드를 들여다 보며 정리한 내용이 기억에 남는다. 다만 정말 간단하게 정리만 했었다.

관련 정리글 : 링크 첨부

스터디를 통해서 정말 많은 것을 알게 되었다. 위처럼 내가 이 스터디를 통해서 얻고자 했던 자바스크립트의 전체적인 지식 뿐만 아니라 많은 소프트스킬들도 얻을 수 있었던 것 같다.

아래는 내가 작성한 스터디 관련 회고록의 일부이다.

스터디 경험을 통해 얻은 나의 스터디 철학

앞의 두 번의 스터디를 통해서 많은 소프트 스킬을 얻게 되었다. 스터디가 끝날 때마다 KTP 형식으로 개인적인 회고를 진행하였고, 이에 따라 나만의 스터디 철학을 세울 수 있었다.

지난 스터디의 (개인적인)회고
리액트 스터디

기획적으로 멘토와 멘티가 있으며, 멘티가 매 주마다 구현 문제를 풀고 멘토가 이에 코드리뷰를 해주는 방식으로 운영되었다. 추가로 멘티들은 매주 만나서 과제와 관련한 발표 등을 한다.

하지만 생각보다 잘 운영되지는 않았다(고생각한다.).

  1. 멘토들은 굳이? 얻어갈 것이 없는데 왜? 라는 생각이 들 수 있을 것이라 생각하였다

    해당 스터디에 이해관계자 모두가 본인에게 돌아가야 하는 “이득” 이 있어야 한다. 스터디의 일원으로 참여하는 모든 관계자들은 본인에게 얻을 수 있는 점이 있어야 한다.

    이를 판단하기 위해서는 자발적인 참여가 필요하며, 참여시의 목표하는 바를 인지하고, 이를 스터디 운영에 반영할 수 있어야 한다고 생각하였다

  2. 구체적인 룰이 없었다.

    스터디를 하면서 노트정리를 하거나, 또는 벌금을 내거나 하는 등의 스터디를 지속하게 해주는 장치가 없었다. 그러다보나 모두들 그냥 매주 몸만 오는 등으로 스터디에 참여하게 되었던 것 같다.

    물론 이것을 적용하게 된다면 하지 않는 것을 막는 방향이 아니라 참여를 자연스럽게 유도하도록 하는 장치로서 만드는 것이 베스트이지 않을까 싶다.

  3. 너무 기간이 방대하였다

    실제로 일정을 많이 잡기도 했고, 이것저것 일정에 치이면서 이전에 설정했던 것보다 많이 밀리기도 하였다.

    나중에는 스터디가 성장을 위해서 하는 생산적인 일이 아닌, 이전에 이렇게 하기로 약속했으니 하기 싫어도 해야만 하는 일이 되어버린게 안타깝다.

    스터디 기간을 조금 줄이고, 중간에 각자가 리프레시를 할 수 있는 기간이 필요하다.

  4. 지속 가능성이 없었다

    구현 문제를 내가 혼자서 매번 만들어야만 하는 문제가 존재하였다. 이로 인해서 누군가는 소비만, 누군가는 생산까지 해야 하는 문제가 생기게 되었고, 이는 스터디를 지속하지 못하게 만드는 주범이 되었다고 생각한다.

코어 자스스터디

두번째로 참여한 스터디였고, 이는 내가 아닌 타 동아리원이 운영한 스터디이다. 이는 생각보다 잘 운영이 되었다고 생각한다. 이전보다 더 체계적이었건 기억이 있고, 멤버들도 스터디를 운영해본 기억이 있거나 다수 참여해본 경험이 있는 멤버들이어서 각자가 알잘딱하게 잘 움직여준 느낌도 들었다.

이 스터디에서의 문제점을 굳이 이야기 해보면..

  1. 발표가 겹치고, 발표를 랜덤으로 하게 하는 시스템

    최소 3명은 발표를 해야만 했다.

    발표의 내용 또한 모두 공부했었던 내용만 발표하니 3명의 발표가 모두 겹치는 문제가 발생하였다. 생각보다 이 시간이 리스너 입장에서는 복습만 하는 느낌이 들어 생산적이다는 생각이 들지 않았었다.

    물론 발표를 랜덤하게 시키는 것은 발표를 할 수도 있겠다는 생각이 들게 만들어 무조건 공부를 하고 준비하게 만드는 장점이 있는 좋은 시스템이지만, 모두가 유사해도 분명히 다른 부분이 존재할텐데 이런 부분을 스터디에서 꺼내지 못하게 되며, 무조건적으로 반복되는 부분을 스터디원 모두가 들어야 한다는 문제가 있다.

    반복을 줄이고 조금 더 생산적으로 시간을 사용할 수 있는 방안이 필요하다고 느껴졌다.

  2. 토론보단 발표 중점의 진행

    좋은 스터디를 하려면 결국에는 많이 다른 사람들과 견해를 부딪쳐보면서 한번 나의 주장을 견고하게 쌓아보고 견고하게 쌓은 다른 사람들의 의견을 들으면서 내가 부족한 부분을 채우기도, 혹은 상대가 부족한 부분을 채워주기도 해야만 엄청난 성장을 할 수 있을 것이라 생각하였다.

    다만 이번 스터디는 이러한 토론들 보다는 발표 중심으로 돌아간게 조금은 아쉬운 것 같다.

이렇게 진행된 원인을 파악할 필요가 있다.

우선 발표 시간이 생각보다 많이 걸린다. 최소 3명이 발표를 하게 되면 빨라야 1시간, 길면 2시간 가까이도 걸렸다. 이는 스터디원의 체력고갈로 인한 전투력 상실로 이어진다.

두번째로 모두가 같은 이야기를 한다는 것이다. 결국에 한번 물어뜯어지더라도 다른 사람의 발표에서 동일한 내용이 나오게 되면, 다시 해당 부분을 물어뜯을 수는 없을 것이다. 이는 1번에서도 언급되었지만, 중복 발표를 줄일 필요성은 있어보인다

세번째로 미리 다른 사람의 자료를 읽어오지 않아 미리 숙지하지 않은 내용을 발표로 듣거나, 물어뜯고 싶어도 개념에 대해서 잘 알지 못해서 물어뜯기 전에 지식을 흡수하기에 바쁘다는 것이다. 하지만, 이는 어쩔 수 없는 부분이기도 하다. 모든것을 알고 스터디에 참여하지는 않을 것이다. 이 문제를 해결하기 위해서는 대면으로 만나기 전, 최소한 개념을 유창하게 설명할 수 있는 정도의 수준으로 참여해야만 하지 않을까 싶다.

위의 회고 내용을 바탕으로 주요 내용을 추려보면 아래와 같다.

  • 스터디는 모든 참여자들이 득을 볼 수 있어야 한다.
  • 꾸준히 참여할 수 있도록 장치가 필요하다. 단 이는 불참을 막는 것이 아닌 참여를 유도하는 방식이어야 한다
  • 기간이 길면 안된다
  • 발표의 시간을 줄이고 토론의 비중을 늘려야 한다.
  • 발표의 내용은 겹치지 않아야 하며, 참여자들은 발표할 내용에 대해서 어느정도의 학습 레벨이 달성되어 있어야 한다.

프로젝트

Econovation-recruit

리크루트 페이지 홈 화면

https://github.com/JNU-econovation/econo-recruit-fe

1학기

1월에 2024 winter-dev 를 진행한 이후 동아래 내에서 사용중인 신입모집 서비스의 개발팀에 운이 좋게도 합류할 수 있었다. 기술스택적으로도 배울 수 있는 부분이 정말 많았고, 무엇보다 열정적이고 존경하는 선배들과 함께 개발할 수 있는 좋은 기회를 얻을 수 있어서 너무나도 감사하다고 느끼고 있었다.

2024 winter-dev 나는 이 당시 *23#팀에 속하여 대학생 펀딩 사이트인 너와그린기린그림을 개발했었다. 리액트 훅의 비동기성과 디바운스를 사용한 트러블 슈팅 내용에 대한 기술 발표를 진행하였었다. https://www.youtube.com/live/vVuFdP8J4n4?si=Mr0ELVp77CKUsr56&t=13336

내가 합류했을 당시 해당 서비스는 1달만에 만들어져 복잡한 코드와 최적화가 잘 되어 있지 않은 상태였다. 우선적으로 우리는 회장단과 신입모집 TF팀에서 요구하는 요구사항은 최대한 빠른 시일 내에 만들어 내면서, 시간되는대로 코드를 리팩토링 하는 방향으로 하게 되었다.

헙업 방식은 이슈를 먼저 만들어 두고 시간 되는대로 하나씩 가져가서 해결 후 pr을 날리면 3명 이상의 approve를 받은 후 머지하는 방식이었다.

처음에는 엄청나게 성장할 수 있는 기회다! 하고 설레는 마음으로 참여를 했었지만, 생각보다 그 경험이 긍정적이지만은 않았던 것 같다. 일단 너무나 다들 잘하는 사람들이다보니 빠르게 빠르게 이슈를 가져가고 좋은 코드 퀄리티로 만들어 내는 모습을 보면서 나도 덩달아 빨리 해야겠다는 생각에 잠겨서 자꾸만 조바심이 들었던 것 같다. 그러다보니 다른 사람들의 pr 알림이 올 때마다 부담감으로 인한 스트레스가 조금 있었다.

게다가 다른 사람의 코드 위에서 작업하는 것 자체가 처음이었고, 다른 사람의 코드를 보면서 리뷰를 하는 것 또한 처음 해보았다. 생각보다 다른 사람의 코드를 보는 것이 어렵게 느껴졌고, 첫 리뷰를 달 때에는 엄청나게 진땀을 흘렸던 기억이 있다. 그만큼 나의 퍼포먼스가 안나와서 답답하기도 했었다. 또 그만큼 남들과 비교되고 위축되었던 것 같다.

그래도 어떻게든 해내다 보면 성장해내는 것 같다. 이전에는 다른 사람의 코드를 읽는 것이 너무나 고통스러운 일이었지만, 지금은 크게 어렵지 않게 읽을 수 있게 되었다. 게다가 기술적으로도 결국에 만들어 내야 하는 것들을 만들기 위해서 next.js, tanstack-query 등 공식 문서를 엄청 찾아보면서 많이 배울 수도 있었다!

또한 같은 분야(프론트엔드)끼리의 협업을 어떻게 진행해야겠구나를 선배들을 보면서 깨달을 수 있었다. 회의 진행은 어떻게 해야하며, 질문은 어떤 질문을 어떻게 해야하고, 문제 상황을 마주했을 때 어떻게 서로 협업을 해나갈 수 있는지에 대해서 알 수 있게 되었다.

분야를 떠나서 마감 기한이 정해진 프로젝트를 맡았을 때 어떻게 목표 기한을 지킬 수 있을지에 대해서도 많은 깨달음을 얻을 수 있었던 것 같다.

프로젝트를 진행하면서 가장 기억에 남는 순간을 뽑자면 우선 내가 가져갔던 이슈에 대해서 이틀 이상 pr이 안올라오자 팀장님께 연락이 왔던 적이 있었다. 당시에 나는 늦은 밤 동아리방에 혼자 남아서 이슈를 해결중이었는데, 팀장님께서 많이 힘드냐고 물어봐주셨다. 솔직하게 힘든 상태라고 이야기 했었고, 팀장님께서는 내가 하나의 기술적 문제에 너무 매몰되어 있다고 느끼셨다며 따뜻한 위로의 말씀을 해주셨다. 팀장님께서는 해당 이슈를 본인이 맡아 해결해보겠다고 하셨는데, 그 말씀만으로도 큰 힘이 되었던 것 같다.

또한 프로젝트에서 가장 우선시되어야 할 목표는 기한 내에 모든 요구사항을 해결하는 것이라며, 팀의 목표 달성을 위해서는 특정 문제를 더 잘 해결할 수 있는 사람이 그 문제를 맡고, 비록 부담스러울 수 있지만 업무 효율이 높은 인원이 더 많은 일을 하는 것이 당연하다고 조언해 주셨다.

이 경험을 통해 팀장이란 단순히 업무를 분배하는 것을 넘어, 팀원들이 같은 목표를 향해 나아갈 수 있도록 이끌고 주어진 시간 안에 목표를 달성하기 위해 어떤 결정을 내려야 하는지에 대해서 많은 생각을 하게 되었던 것 같다.

2학기

1학기에 이어서 2학기 신입모집때에도 참여를 하게 되었다. 2학기때에는 1학기때 팀을 이끌어준 팀장님 뿐만 아니라 다른 팀원까지 졸업 및 부트캠프에 가게 되어 남은 인원 2명과 새로운 인원 1명을 포함하여 3명의 FE팀원들과 함께 하게 되었다.

이번에는 회장단에서 많은 요구사항을 내셨고, 이와 관련한 개발 작업 및 성능 최적화, 빠른 QA를 위한 E2E 테스트까지 작성해보았다. 앞으로 해당 프로젝트를 후배들에게 물려주기 위해서 개발 문서화 또한 작성해보았다.

2학기에 진행했던 리크루트 프로젝트는 진땀 흘리는 경험을 많이 하였던 것 같다. 지난번에는 짱짱한 선배들이 많이 있었기에, 인프라쪽까지는 손댄 적이 없었는데, 이번에는 직접 내가 만든 프로젝트를 직접 배포까지 해보는 경험을 하였다. 내가 할 수 있는 범위가 늘어났다는 것은 그만큼 내 책임범위가 늘어났다는 것과 같다.

아직도 기억이 난다… 백엔드팀과 논의를 하면서 수정 사항에 대해서 배포를 할 때 개발용에 했어야 했는데, 커뮤니케이션 미스로 인해서 운영용에 배포를 해버린 것이다. 리크루트는 실사용자가 있는 서비스임에도 이런 무책임한 내 행동 때문에 잠깐동안 서비스가 멈추게 되었다. 물론 빠르게 롤백하기는 했다. 당일 하루종일 팀원들 얼굴을 볼 수가 없었다. 그때만 생각하면 아직도 손발에 땀이 주룩주룩 난다.. 이런 경험을 지금 할 수 있다는 것에 너무나도 감사하게 생각하고 있다. 이 경험이 아니었다면 언젠가는 터질 수 있는 일이었고, 아마 그때쯤에는 지금보다는 훨씬 중요한 서비스를 맡고 있을테니.. 이 경험 통해서 개발자로서 갖춰야 할 책임감과 신중함에 대해서 깊이있게 생각해볼 수 있었다. 그리고 팀끼리 얼마나 커뮤니케이션이 중요한지를 깨달을 수 있었던 것 같다.

이번 일을 계기로 운영용에 배포하기까지의 올바른 프로세스를 세워보았다. 그리고 팀끼리(사실 팀 뿐만 아니라 이해관계자 모두) 서비스에 대한 이해도를 높이기 위한 이벤트스토밍을 진행하기도 했다.

이벤트 스토밍 글 링크 :

EEOS

앞에서 언급했던 팀 빌딩때 나는 결국 Black-company팀에 들어가 EEOS 프로젝트를 진행하게 되었다. EEOS는 Econovation Event Operating System의 줄인말로, 우리 동아리의 행사를 관리하는 서비스이다. 실제로 23년도 2학기 말부터 실사용하기 시작했고, 나는 24년도 2월에 들어가게 되었다.

사실 처음 들어갈 때는 그리 달갑지 않았던 것 같기도 하다. 당시의 일기를 읽어보면 새 출발에 대한 설램보다는 걱정이 더 많이 느껴졌다.

(아래는 당시 내 일기의 일부이다.)

image.png image.png image.png

당시에 리크루트 개발팀에 들어가서 프로젝트를 하던 때인데, 앞서 말했듯이 너무 내 퍼포먼스가 안나오고 심적으로는 부담감이 있었던 것 같다. 그때의 나는 다른 사람의 코드를 잘 못 읽는다고 스스로 생각하고 있었고, 기존에 진행되고있던, 다른 사람이 짠 코드 위에서 다시 한번 개발을 해야한다는 것에 대해서 부담감이 컸던 것 같다.

하지만 결론적으로 너무너무너무나도 좋은 경험이었던 것 같다. 우선 다른 사람 코드 위에서 개발하는 경험은, 기존에 코드를 작성했던 사람과 동일한 문제를 바라볼 수 있게 해주는데, 다른 사람이 해결한 방법을 확인할 수 있다는 점에서 나의 관점을 넓혀줄 수 있었던 것 같다. 또한 내가 문제라고 생각하지 못했던 부분까지 멋진 방법으로 해결한 것을 보면서 다른 사람의 기술적 능력까지 흡수할 수 있었던 것 같다.

EEOS라는 프로젝트 자체가 실사용자가 있는 프로젝트이다보니 사용자의 피드백을 받으며 빠르게 기획을 세우고 빠르게 개발하고 사용자에게 빠르게 다시 피드백을 받아보는 에자일 방식으로 운영될 수 있었고, 빠른 개발만큼 생산성에 대해서 많은 고민을 할 수 있는 좋은 기회가 되었다. (24년도 초에 읽었던)리팩토링 2탄 책에서 언급되었듯 개발이 진행될 수록 개발 속도는 느려질 수 밖에 없기에 이를 유지하는 것이 정말 중요한 과제이다. EEOS 자체가 규모가 꽤 있는 프로젝트이고, 내가 참여할 시점에 2.0 배포까지 완료된 작성된 코드가 많은 시점에서 개발 속도에 대해서 생각해보는 것은 아마 지금까지의 내 인생에서 가장 가파르게 성장시켜준 경험이 되지 않았을까 싶다.

당시에 결국 답을 찾은 것은 Headless 기반의 추상화였고, 이와 관련하여 Dev 행사때에도 발표를 진행했었다.

개발적인 부분 뿐만 아니라 처음으로 기획자가 있는 프로젝트 경험이었는데, 기획자가 팀에 있는 것이 얼마나 중요한지를 깨닫기도 했다. 팀의 방향성을 명확히 잡아주고, 일정을 명확히 잡을 수 있게 도와주고, 개발자로 하여금 개발에 더욱 집중할 수 있게 도와주셨다. 이번 기획자님을 보면서 팀을 이끄는 리더로서 어떻게 하면 효율적으로 이끌 수 있을까를 많이 생각할 수 있었던 것 같다.

매번 팀원들과 기획을 짜고, 개발 일정을 잡아서 힘들게힘들게 개발을 진행하고 배포하여 사용자들이 사용하는 모습을 보면서 엄청난 동기부여도 얻을 수 있었다. 이 때문일까 나는 지금것 진행했던 모든 프로젝트를 통틀어서 가장 내 가슴을 설레이게 하는 프로젝트가 바로 EEOS이다. 가장 팀합이 잘 맞았고, 조금의 부정적인 감정이 들었던 적이 단 한순간도 없었다. 개발이 힘들고, 또 반응이 좋지 않아도 좋은 팀원들이 있었으니까 팀원들 믿고 내 할일에 집중하고, 또 어려운 순간을 같이 이겨내려고 했던 것 같다. EEOS를 통해서 함께 하고싶은 팀원이란 누구일까? 에 대해서도 많이 생각할 수 있는 기회였던 것 같다.

한 학기가 끝나고, 백엔드 인원 1명을 제외하고는 전부 졸업을 하게 되었다. 모두들 각자의 바쁜 삶을 살아가게 되었는데, 그래도 실사용자를 모은 만큼 우리는 이 서비스를 게속해서 유지하고 개선해야하는 의무가 생긴거라며 다시 팀원을 모아 지금까지 프로젝트를 진행중에있다. 팀을 이끌었지만, 이제는 참여를 못하시는 기획자님의 빈자리를 내가 매꾸는 중이다. 지금은 기술적인 부분으로도 성장을 많이 하지만, 어느 집단을 이끄는 사람으로서 어떻게 해야하는지를 몸소 깨닫는 중인 것 같다.

부트캠프

카카오 테크 캠퍼스

kakao-tech-camp

카테캠의 시작

사실 카테캠을 하겠다고 하고 주변에 말하고 다녔을 때는 모두가 좋은 눈으로 바라보지는 않았던 것 같다. 작년에 카테캠 1기를 경험하신, 그리고 주변에서 봐오신 분들은 잘하는 사람이 통나무를 들어야 하는 상황이 무조건적으로 나오게 되므로 내 실력으로 카테캠을 하게 되면 내가 무조건 통나무를 지게 될 것이다라는 것이었다. 사실 나도 너무나도 부족한 점이 많다고 생각을 했었고, 카테캠을 하는 다른 훨씬 잘하는 사람들을 보면서 많이 배워갈 수 있을 것이라 생각하였다.

수많은 절망의 순간들

하지만, 생각보다 잘하는 사람을 찾기가 어려웠던 것 같다. 최소한, 우리학교 내에서는 “아 이사람이 알고있는 무엇인가를 나도 공부하고, 또 흡수하고싶다” 라는 생각이 든 사람을 찾기 어려웠다. 그래서 카테캠을 하는 내내 지금 내가 하고있는 것들이 “하고싶은일” 에서 “해야하는일” 이 되어가는게 너무나 안타까웠던 기억이 있다.

3단계 팀 프로젝트를 진행하면서도, 생각보다 매 순간 잘 풀리지는 않았던 것 같다. 회의때 참여를 하지 않는 인원도 보이고, 코드를 작성해도 거희 모든 부분을 AI에 의존하여 코드를 작성하시기도 했다. 이 경우, 프로젝트 초반에 세웠던 코드리뷰 규칙도, 내가 변경사항 혹은 코드에 대한 질문을 하여도 대답하지 않고(아마 본인이 작성하지 않았기 때문일 것으로 추측된다.) 나 또한 리뷰를 남기는 입장에서 AI가 작성한 요구사항에 맞지 않는 코드를 힘들게 리뷰를 해야하는 상황이 너무나 안타까웠다.

물론 문제 상황을 단순히 방관만 하였던 것은 아니었다. 매 주마다 대면 회의를 진행하면서 회고를 진행했었고, 이를 통해서 팀원들이 더 많이 참여하고, 이전의 활동을 돌아보게 하고 결론적으로 더 나은 방향으로 나아가게 하기 위해서 노력했었다. 이러한 노력은 그래도 나름 팀원들에게 긍정적으로 작용했다고 생각한다. 후반에는 초반에 비해서는 회의에 더 적극적으로 참여하는 모습을 보일 수 있었고, 문제 공유적인 부분에서도 더 많이 공유하려고 노력하는 모습을 보일 수 있었던 것 같다.

하지만.. 조금 더 나아졌을 뿐이었던 것 같다. 결국에는 프로젝트의 성공을 이루지는 못했다. 본인이 맡은 도메인을 제출 전날까지 아무런 작업도 하지 않은 인원도 있었다. 결국 내가 몇 시간 전에 전부 손대야만 했었다. 내가 정말 실력이 뛰어나고, 손이 빠르다면 이 또한 문제되지 않을 수도 있지만, 나는 그런 능력자도 아닌 개발자 지망생일 뿐이라 결국 전체 플로우가 돌아가지는 않는 결과물을 제출하게 되었다.

이러한 경험들을 통해서 팀원 모두가 나와 같지 않다는 것을 깨달을 수 있었던 것 같다. 팀이 성공으로 나아가기 위해서는 결국 개개인의 마음가짐과 능력또한 중요하다는 것을 깨달았다. 그렇기에 정말 마음이 잘 맞는 팀원과 함께해야하며, 팀원 모두가 바라보는 목표점을 일치시키는 것이 얼마나 중요하고, 또 목표를 이루기 위해서 방해요소를 제거하는 것이 얼마나 중요한지도 깨달았던 것 같다. 개발은 현실 세계에 존재하는 문제점을 소프트웨어로서 해결하고자 하는 것이고, 문제 해결은 혼자의 힘으로는 해결하기 어려운 문제들이 많기에 협업 능력이 정말 중요하다. 매 순간 이상적인 팀과 협업을 할 수는 없을것이다. 이렇게 다양한 경험을 빠른 시일 내에 할 수 있었다는 것은 나에게 엄청난 소프트스킬 자산이 될 수 있을 것이라 생각한다.

그럼에도 너무나 소중했던 성장의 순간

하지만 카테캠의 모든 점이 부정적이었던 것은 아니었다. 카테캠에서 정말 양질의 프로그램을 준비해주었고, 이를 통해서 많은 기술적인 성장을 꽤할 수 있었다.

우선 방학때에 진행했던 2단계 교육 과정의 경우 매 주마다 라이브 특강을 통해서 라이브로 프론트엔드 기술관련 강의를 들을 수 있었고, 이해가 안되는 부분에 대해서 바로바로 물어볼 수 있다는 점에서 빠른 기술적 지식을 흡수할 수 있었다. 그리고 매 주마다 구현 미션이 나가며, 이에 대한 현업자 개발자의 코드 리뷰를 받을 수 있었다.

리뷰를 받으면서도 일부러 이것저것 많이 시도해보면서 코드를 짜고, 이에 대해서 내가 많이 고민하고 생각했던 것을 공유하면서 어떤 방향이 맞는 것인지에 대해서 알 수 있게 된 좋은 기회가 되었다.

3단계에서는 팀 멘토링을 진행했는데, 멘토님과 주기적으로 1시간 정도의 멘토링 시간을 가질 수 있었다. 여기에서도 개발자 지망생으로서의 많은 고민들을 털어놓을 수 있었고, 앞으로 취업까지, 그리고 그 이상의 인생에 대해서 많이 고민을 할 수 있게 되었던 것 같다.

세미나

올해는 다른 학교에서 열리는 네트워킹 위주의 세미나를 참여하기도 했다. 우선 지스트에서 열리는 dev night과 에코노베이션x스팍스 동아리 연합 세미나 이 둘에 참여하게 되었다. 네트워킹이 정말 큰 인생의 자원이 된다는 것을 여기저기서 많이 들었다보니 이런 기회에 많은 인연을 만들어보고자 했지만, 생각보다 쉽지 않았던 것 같다. 나의 내성적인 성격덕분에 수많은 모르는 사람들이 오가는 그 공간 속에서 내 입이 벌어지지 않았다. 이러한 내성적인 성격도 내년에는 고칠 수 있도록 해야할 것 같다.

올 한해 목표 돌아보기

image.png

이번 2024년도에 세웠던 목표들이다.

자기개발
발표에 거부감이 없는 사람 되기

우선 내가 목표했던 모습이 되었다는 점에서 목표완수했다고 생각한다.

image.png

올 해 초까지도 남들 앞에서 발표를 한다거나, 회의를 하더라도 주목받는 느낌이 들면 머리가 하애지고, 말을 하고 있긴 한데 내가 무슨 말을 하고 있는지, 또 상대는 무슨 말을 하는지도 이해가 안되는 상태가 되었었다. 주변에 발표를 잘하는 동아리 사람들을 보면서 나도 저렇게 되어야 한다는 생각이 들었었고, 이를 24년도 목표로 잡게 되었다.

세부목표로 회의를 참여할 수 있는 많은 기회를 가지도록 하려했고, 주간발표 발표자로서, 그리고 참여자로서 발표와 질문을 자주 하려고 했다. 수업 시간에도 질문을 하려고 노력했다. 그리고 그 목표대로 잘 수행했던 것 같다.

생각했던것보다 빠르게 발표 불안감을 없앨 수 있었던 것 같다. 결국에는 발표 경험을 많이 쌓다보니까 어떻게든 해결이 되었던 것 같다!

플래너 작성하기

image.png

사실, 기존에는 아날로그로 플래너를 작성해왔었다. 군대에 있을 때부터 만년필에 관심이 많이 있어서 글을 쓰는 시간을 많이 즐겼던 것 같다. 다만, 손으로 글을 쓰게 되면 그만큼 시간이 많이 뺏기는 느낌을 많이 받았다. 수정하는 것도 어려웠고 플래너를 작성하기 위해 그려야 하는 보일러플레이트가 생각보다 많아서 언젠가는 디지털로 플래너를 변경하고 싶다는 생각을 가지고 있었다. 그렇게 올해 2월에 플래너를 완성하게 되었다.

내가 플래너에 넣고 싶은 것은 아래의 내용들이었다.

  • 1년, 한달, 하루의 목표를 정리한다.
  • 플래너에 기록해야하는 2가지 주요 정보는 이벤트와 할일이다.
    • 이벤트는 시험, 미팅(회의)와 같은 하나의 해야하는 일을 뜻한다.
    • 할일(세부 일정)은 이벤트를 위해서 내가 해야하는 일(예를 들면 자료 검색, 과제 수행 등) 혹은 그 이외에도 해야하는 일들을 뜻한다.
  • 매일매일 회고를 할 수 있도록 한다.

이를 바탕으로 노션을 통해서 만들어 보았고, 나중에 기회가 되면 플래너 설명과 템플릿을 공유할 수 있으면 좋을 것 같다.

내가 세운 세부 목표대로 매일매일 맥북을 펼쳐서 하루를 시작하는 것이 생각보다 어렵다는 것을 느꼈다. 그 조금의 시간을 더 자면, 일주일이면 1시간 이상이 모인다고 생각하니.. 한창 바쁠때에는 플래너에 탈모가 생기기도 했었던 것 같다.(의지력보다는.. 살기 위해서 어쩔 수 없이 선택한 느낌이었다..) 그나마 2학기때에는 여유가 생겨서 많이 작성할 수 있었던 것 같고, 내가 기대하는 나의 모습대로 되지는 않았던 것 같다.

개발
책을 읽자

image.png

올 한해동안 위의 세 권을 읽고자 하였으나, 생각보다 책을 읽는게 쉽지만은 않았던 것 같다. 그나마 유일하게 리팩터링 2판은 1회독을 할 수 있었으나, 기존에 목표했던 다회독은 하지 못했다. 25년도 1, 2월까지 남은 책들을 최대한 빠르게 읽을 수 있도록 해야할 것 같다..

알고리즘

image.png

사실 알고리즘도 공부를 열심히 했었어야 했는데, 문제를 풀기에는 조금 바쁘기도 했고, 소흘히 해기도 했다. 현재의 위치는 실버이다.

그래도 올해 자료구조, 알고리즘 수업은 모두 A+을 받았다. 이를 통해서 알고리즘 공부를 할 때 조금 더 쉽게 티어를 올릴 수 있지 않을까..? 싶다. 정말 있는 시간 없는시간 다 쪼개서 알고리즘을 공부하는 사람들은 정말로 정말로 존경스럽다.

프론트엔드 공부

image.png

우선적으로 js에 대해서는 올해 여름에 스터디를 하게 되면서 한번 더 js를 공부할 수 있었다. 다만 아직 브라우저와 이벤트 쪽으로는 공부를 많이 하지는 못했던 것 같다. 이에 대한 공부는 코어 자바스크립트 사이트 2, 3부를 보면서 공부하려고 했는데, 생각보다 목표는 실제 현실을 반영하지 못하는 것 같다는 생각이 들었다. 공부하고싶은 욕심이 많았지만 생각보다 하기 쉽지 않았던 것 같다. 아마 이 목표는 내년 목표로까지 가져가지 않을까 싶다.

image.png

마지막 24년도 목표이다. 내 진로를 프론트엔드 개발자로 정한 이후에 관련된 사람들을 많이 만나볼 수 있었다. 그들 중 본인만의 철학을 가진 정말로 멋진 사람들을 보면서 나의 열정과 노력은 생각보다 적은 수준이구나를 느끼게 되었다. 나도 저 멋진 사람들처럼 올해에는 나만의 명확한 철학을 세우고자 했었던 것 같다.

기술적인 지식을 습득하고, 또한 본인만의 철학을 가진 그런 사람이 되고 싶지만, 실제로 갑작스럽게 누군가 나에게 “왜 프론트엔드를 공부하시고, 그 이유를 통해서 당신은 어떤 노력을 하고, 본인의 최종 목표지점은 어디인가요?” 라고 물어보게 된다면, 바로바로 답할 수 있을까? 에 대해서는 아직은 아닌 것 같다는 생각이 든다.

이 또한 다음 년도 목표로 가져가도 괜찮지 않을까 싶다.

24년도를 보내면서..

올해는 정말 정신없이 지나갔던 것 같다. 숨 고르기 한번 제대로 못한 채 시간은 물 흐르듯 흘러갔고, 주변을 둘러볼 여유가 없었던 것 같다.

연말이 되어 이렇게 회고를 하면서 한 해를 돌아보니 그래도 생각보다 많은 경험을 했고, 정말 많은 성장을 할 수 있었던 것 같다. 사실 회고록에 적지 못했던 다양한 경험들( 행사 tf, 해커톤, 관리부 활동 등등 )을 통해서도 소프트스킬적으로나 기술적으로나 많은 성장을 할 수 있었던 것 같다.

올해를 마무리하면서 느껴지는 점은 개발이 조금은 해야하는일이 되어가는 느낌을 받는다는 것이다. 그래도 전반기보다는 후반기에 여유가 조금은 생겨서 주변을 보게 되었는데, 함께 성장하던 선배들과 지인들이 취업 준비에 힘겨워하는 모습을 자주 보게 되었던 것 같다. 유튜브든 아티클이든 언제부턴가 개발 관련 콘텐츠들도 대부분 취업이라는 주제만 가득한 것 같다. 그런 분위기 속에서 나도 모르게 '취업'이라는 거대한 벽이 내 앞을 가로막고 있다는 생각이 무의식 속에 자리 잡았던 것 같다. 문득 돌아보니, 내가 코딩을 시작했던 초심이 흐려지고 있다는 느낌을 받았다. 기술로 꿈을 현실로 만들고, 난관 앞에서도 끊임없이 고민하고 공유하며 성장하는 과정, 그리고 내가 만든 것으로 누군가에게 기쁨을 전하는 것. 이것이 내가 개발이라는 진로를 정한 이유였는데, 어느새 '취업'이라는 목표에 내가 좋아하는 일이 가려진 느낌을 받았다. 특히 내가 개발을 시작할 때 많은 동기 부여를 해주었던 드림코딩 앨리님의 근황을 접하면서 내 변화를 더욱 선명하게 느낄 수 있었다. 내가 개발공부를 시작할 때 그분의 열정과 성장에 대한 집념에 감탄하고 또 동기부여를 받았는데, 최근에는 좋은 직장에서 조기 은퇴한 모습을 부러워하는 나를 발견했다(동일한 대상을 보고 어릴때는 열정을, 지금은 부러움을 느꼈다.). 결국 나도 개발공부를 하고 프로덕트를 만들어가는게 단순히 내가 남들을 통해서 돈을 벌기 위한 수단으로만 생각하고있는 것 같았다. 물론 이것은 잘못된 변화라기보다는 현실과의 타협이지 않을까 생각한다. 그래도 나는 다시 한번 초심으로 돌아가고 싶다. 단순히 직장인으로서의 개발자가 아닌, 기술 발전을 선도하고 새로운 길을 개척하는 진정한 개발자가 되고 싶었던 그 때의 열정이 그립기도 하다. 취업이라는 목표에 다가갈수록 오히려 진정한 나를 잃어가는 것 같아 조금은 안타까운 것 같다. 지금의 나는 과연 어떤 개발자일까? 이 질문에 대한 답을 찾는 과정이 어쩌면 나를 다시 찾아가는 여정이 될지도 모르겠다.

올해도 수고했다 :)