[회고] 2025 회고

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

업로드 날짜: 2026년 1월 20일


잘가라 파이썬의 해

2025년 파이썬(푸른 뱀)의 해가 갔다.

지난 1년을 돌아보며, 여러모로 의미 있었던 순간들을 정리해보고자 한다.

사실 4학년이 되면 이전 학년들 때보다 훨씬 여유롭다는 말을 많이 들었는데, 나는 이번 25년도가 인생에서 가장 바쁜 해였던 것 같다. 겪었던 일에 대하여 회고하고 넘어가는 프로세스 자체가 잘 되지 않았고, 지난 일에 대해 곱씹어보면서 정리하는 시간이 많이 부족했던 것 같다.

그러다보니 25년도 회고를 쓰면서 나의 생각이나 느낀점들 보다는 주로 내가 했던 활동들을 나열하는 형태가 되어버린 것 같긴 하다.

그럼에도 이번 글을 통해 25년도를 되돌아보며, 내가 했던 활동들을 정리해보고자 한다.

동방 이사

image.png

새해가 시작되면서 동아리방을 이전하게 되었다. 나는 동아리 관리부장으로서, 그동안 관리하던 모든 서버 자원을 이전하고 기존과 동일하게 동작하도록 만드는 역할을 맡았다.

동아리방에서 운영하던 서버 컴퓨터는 Proxmox 기반으로 여러 VM을 띄워 관리하고 있었다. 그동안 큰 문제 없이 잘 돌아가던 서버였던 만큼, 제대로 된 인수인계를 받지 못한 상태에서 작업을 시작하게 되었다.

우선 서버 컴퓨터를 새 위치에 설치하고 IP를 연결하는 것부터 난관이었다. 위치가 바뀌면서 IP가 달라졌고, 그 결과 기존에 정상 동작하던 서비스들이 당연하게도 제대로 돌아가지 않았다. PC병원과 지속적으로 소통하며 IP를 재할당받고, 직접 설치를 마무리했으며 NAT 설정과 UPS 연동까지 완료했다.

하지만 여기서 끝이 아니었다. VM 내부에서 외부와의 통신이 되지 않는 문제가 발생했다. 원인을 파악해보니, 전산원 측에서 해당 VM의 MAC 주소와 IP 주소를 기준으로 방화벽에서 모두 차단해둔 상태였다. 이를 인지한 후 필요한 정보를 전달해 다시 할당을 받고, Ubuntu를 설치해 VM들을 새로 구성했다.

추가로 기존 구조에는 하나의 VM에서 리버스 프록시를 통해 econovation.kr 도메인의 모든 트래픽을 관리하는 문제가 있었다. 만약 해당 VM에 문제가 생기면 동아리의 모든 서비스가 한 번에 마비될 수 있는 구조였다. 이 문제를 해결하기 위해 Cloudflare의 규칙을 활용해 각 VM으로 직접 라우팅하도록 구성했고, 단일 장애 지점을 제거할 수 있었다.

사실 이 과정에서 아는 것이 거의 없었다. 문제를 마주칠 때마다 직접 부딪히고, 머리를 박아가며 하나씩 공부해 나갔다. 정말 고통스러운 순간도 많았지만, 그만큼 네트워크와 서버에 대해 체감할 수 있을 정도로 많은 것을 배운 경험이었다.

이 경험을 통해 나의 부족함을 명확히 인지하게 되었고, 관리부 부원들과 함께 CS 스터디를 열게 되었다. 네트워크를 주제로 공부했고, 후니의 쉽게 쓰여진 네트워크를 읽으며 기초부터 다시 다지기 시작했다. 이렇게 24년도 말에 시작한 스터디는 현재 26년도 초까지 꾸준히 이어가고 있다. 매주 한 챕터씩 읽어나가며, 네트워크의 기초부터 심화 내용까지 폭넓게 다룰 수 있었다. 스터디를 진행하면서, 이전에 겪었던 문제들을 다시 떠올리며 복습할 수 있었고, 그때는 이해하지 못했던 부분들도 명확히 알게 되며 큰 성장을 할 수 있었던 것 같다.

두 번의 Hello Econo

현업에 계신 졸업 선배님들과 함께하는 세미나 행사에 참여했다. 이번에는 직접 서울로 올라가 비교적 큰 규모로 진행된 자리였고, 그만큼 시작 전부터 많이 설렜다. 실제로 만나 뵌 선배님들은 하나같이 너무 멋진 분들이었고, 그 공간에 함께 있다는 사실만으로도 긍정적인 자극이 되었던 것 같다.

가장 인상깊었던 점은, 함께 개발하던 친구가 어느새 한 명의 연사로 무대에 올라 발표하는 모습을 보았을 때였다. 익숙한 얼굴이 무대 위에서 자신의 경험과 이야기를 당당하게 풀어내는 모습을 보며, 정말 멋지다는 생각이 들었다. 발표를 들으면서 나도 가까운 미래에 무언가 내세울 수 있는 사람이 되어, 저 자리에 서서 나만의 이야기를 하고 싶다는 마음이 들었다.

그 친구는 오픈소스 기여와 관련한 본인의 경험을 나누었고, 나도 오픈소스 기어의 꿈을 막연하게라도 꿀 수 있게 해줬다!

세미나 이후에는 선배님들과 함께 현실적인 고민들을 솔직하게 나눌 수 있는 시간도 가졌다. 당시에 나는 여러 프로젝트를 진행하면서 팀원들 혹은 개인이서 끙끙 앓던 문제들에 대해 질문을 드렸고,선배님들께서는 자신의 경험을 바탕으로 진심 어린 조언들을 아낌없이 해주셨다. 기획이 자주 바뀌는 상황에서는 어떻게 대응해야 하는지, 프로젝트가 외주처럼 느껴지지 않게 만들기 위해서는 무엇이 중요한지, 그리고 진로와 커리어에 대한 고민들까지 최근에 가지고 있던 고민들을 나누고 많은 인사이트를 얻을 수 있었다

짧은 시간이었지만, 나에게는 앞으로의 방향을 다시 한 번 생각하게 만든 정말 값진 순간이었다!

당근 인턴십 지원

image.png

25년도 2학기는 정말 바쁜 시기였다.

졸업을 위해 준비해야 할 것들이 너무 많았고, 동시에 진행 중이던 프로젝트는 실제 사용자를 받기 위해 프로토타입 검증 단계에 있었다. 이에 따라서 많은 변경 사항이 발생했고, 그에 맞춰 빠르게 코드를 작성하고 또 수정해야 하는 상황이 반복됐다.

그 시점에 당근 윈터테크 인턴십 모집을 알고는 있었지만, 지원할 엄두는 나지 않았다. 여유도 없었고, 당장 처리해야 할 일들이 너무 많았다.

image.png

11월 12일 수요일에 산결 프로젝트를 위한 국립공원공단과의 미팅이 끝났고, 이후 예정돼 있던 작업과 여러 스터디 공부를 13일까지 마친 상태였다. 당근 윈터테크 인턴십 모집 지원 마감은 11월 14일 자정이었다.

사실 너무나도 바쁘니까 다음 기회를 노릴려고 했었다. 하지만 14일 당일에 주변에서 계속 지원하라는 이야기를 해줬다. 이런 기회는 흔하지 않고, 학생들끼리 경쟁하는 구조이다보니 그나마 가능성이 있다, 그리고 떨어져도 괜찮으니 일단 내보라는 말에 지원서를 부랴부랴 작성했던 기억이 있다.

나는 프론트엔드 코어팀을 지원했다. 예전부터 단순히 서비스를 만드는 것에 더 나아가서 깊이있게 개발자가 사용하는 도구를 탐구하고 또 개발자 경험 및 생산성 부분에서도 많은 고민을 해왔다고 생각했다. 이런 부분에서 다른 팀 보다는 프론트엔드 코어팀이 나에게 맞을 것이라 생각하였다.

지원서 문항은 하나였다. 프론트엔드에서 개선하고 싶은 부분에 대한 생각을 작성하는 것이었다. 나는 그 당시 위에서 기술했듯 많은 qa상황을 마주했었고, 웹뷰 기반으로 만들어진 우리 서비스에서 “디버깅”이 너무나도 힘들었던 경험이 있었다. os가 크게 2개이고 그 위에서 앱과 웹이 돌아가고 있다. 총 4개의 환경마다 디버깅 환경이 다르다보니 디버깅 환경을 만드는데에도 시간이 소요되며, 다른 직책의 팀원들에게도 설명하기가 매우 까다로웠다. 이를 해결하기 위해서 개발자 도구를 직접 만져보고 또 만들어 보면서 이에 대한 솔루션을 찾는 중이었다.

이러한 내용을 지원서에 녹여내려고 노력했다.

문제는 필수 제출 서류였던 이력서였다. 제대로 작성된 이력서가 없는 상태였고, 짧은 시간 안에 급하게 만들어야 했다.

주변 동아리원들이 같이 봐주고 조언을 해줘서 그나마 정리된 형태로 제출할 수 있었다. 완벽하진 않았지만, 당시 기준에서는 최선을 다해 만든 이력서였다. 당시에 바쁜 와중에도 열심히 도와준 동아리원들에게 정말 고마운 마음이 든다.

image.png

1차 합격자 발표

서류 합격 소식은 동아리방에서 공부하던 중에 받았다. 순간적으로 너무 기뻐서 자리에서 바로 일어나 밖으로 나가 주변 사람들에게 자랑했던 기억이 난다.

합격했다는 기쁜 마음과는 별개로 스트레스는 정말 컸었다. 해야 할 일은 여전히 많았고, 면접 준비에 쓸 수 있는 시간은 매우 제한적이었다. 면접 일정이 확정되고 나서 실제로 준비할 수 있었던 시간은 약 일주일 정도였다.

남은 기간 동안 이전에 스터디를 하면서 정리했던 CS 내용들을 읽으며 하루에 한 과목씩 끝내는 것을 목표로 공부했다. React 관련 내용도 다시 훑었다. 면접 하루 전에는 개인 PR 위주로 연습했다. 전날에는 미리 서울로 올라가 하루를 쉬려고 했지만, 준비가 충분하지 않다는 걸 알고 있었기 때문에 편하게 잠들지는 못했다.

image.png

면접 당일에는 일찍 일어나 아점을 먹고 건물 1층 스타벅스에서 개인 PR 관련 글을 계속 보면서 외웠다. 면접 시작 30분 전에는 올라가서 대기하고 있었다.

대기하는 중에 다른 지원자분께서 페레로로쉐도 나누어주시면서 응원해주셨던게 엄청 기억에 남는다!

면접 시작 약 15분 전에 면접관님이 직접 찾아오셔서 면접 장소로 안내해주었다. 면접장에 들어가자, 유튜브로만 보던 프론트엔드 업계에서 엄청 유명한 분이 계셨다. (Tony님! 아마 컨퍼런스 영상을 자주 본다면 무조건 한번쯤은 보았을 것이다)

실제로 마주하니 엄청 신기한 느낌이 들었다.

면접

당근 면접 사진

면접 질문을 돌아보면, 사실상 내가 작성했던 이력서를 기준으로 충분히 설명할 수만 있었어도 됐던 것 같다. 하지만 나는 그마저도 제대로 하지 못하는 소리나는 감자였다.

준비 방향도 조금 잘못 잡았던 것 같다. 학생이니까 (경험 보다는) 기초적인 CS 위주의 질문이 많을 거라고 예상했는데, 실제 면접은 전혀 그렇지 않았다. 질문의 초점은 기술 지식 그 자체보다는, 팀에 들어왔을 때 잘 적응할 수 있는지, 그리고 실제로 함께 일을 잘할 수 있는지에 더 가까워 보였다. 예를 들어, 특정 기술을 선택해야 하는 상황에서 성향이 다른 팀원이 있을 때 어떻게 설득할 것인지, 그 과정에서 어떤 기준으로 판단할 것인지 같은 질문들이 있었다. 협업과 커뮤니케이션, 그리고 기술적인 판단이 함께 요구되는 질문들이었다. 면접 질문의 구체적인 내용은 자세히 말할 수 없지만, 극단적인 상황을 가정하고 그 안에서 어떤 선택을 할 것인지, 왜 그런 선택을 하는지에 대해 내 생각을 말하는 질문들이 많았던 것 같다. 단순히 정답을 말하는 형태가 아니라, 사고 과정 자체를 보려는 느낌이었다.

인상 깊었던 점은 팀 내에서 실제로 있었던 논의나 고민을 비교적 가볍게 공유하고, 그에 대해 내 의견을 묻는 질문들이었다. 꽤 기술적인 문제이거나 팀의 운영과 관련된 이야기였는데, 이런 내용들을 큰 장벽 없이 공유하는 문화가 질문을 통해 느껴졌었다.

기술적인 피드백도 많았다. 내가 만들었던 여러 라이브러리들에 대해, 전혀 생각하지 못했던 상황이나 문제점을 짚어주면서 이런 경우에는 어떻게 해결할 수 있을지를 묻는 질문들이 이어졌다. 한 번도 깊게 고민해본 적 없는 것들이었고, 그런 질문을 받을 수 있다는 점 자체는 흥미로웠지만 제대로 답변하지 못했다는 점이 많이 아쉬웠다.

그럼에도 이런 피드백들은 좋은 인사이트가 되었다. 이후에 내 라이브러리와 코드들을 다시 점검하고, 더 발전시켜 나가는 기준으로 삼을 수 있을 것 같았다.

돌이켜보면, 답변의 내용 자체보다 전달 방식이 더 아쉬웠다. 자신 있게 말하지 못했고, 생각을 정리해서 명확하게 전달하지 못했다. 같은 내용을 말하더라도 더 효율적으로, 더 설득력 있게 말할 수 있었을 텐데 그러지 못했다는 점이 계속 머릿속에 남았다.

이번 면접을 통해 확실하게 느낀 건, 기술을 어느 정도 이해하고 사용할 수 있다고 해서 공부가 끝나는 건 아니라는 것이었다. 더 깊이 고민하고, 그 고민을 바탕으로 토론할 수 있어야 하고, 여러 질문에 답할 수 있어야 하며, 경우에 따라서는 아주 쉽게 설명할 수 있을 정도로 개념 정리가 돼 있어야 한다는 걸 깨달았다.

당근 느낀점 사진

내려가는 기차 안에서는 묘한 기분이 들었다. 면접이 끝났다는 안도감과 후련한 마음이 들었다. 그리고 여러 기술적인 이야기를 할 수 있었다는 점에서 기쁜 마음도, 내가 누구인지를 제대로 보여주지 못해서 아쉬운 마음도 정말 컸다.

하지만 확실한건 이번 경험을 통해 내가 앞으로 어떻게 성장해 나가야 할지에 대한 방향성은 잡았다는 점이었다. 이 경험을 바탕으로 더 깊이 고민하고, 더 많이 준비해서 다음 기회에는 더 나은 모습을 보여주고 싶다는 생각이 들었다.

결과

당근 결과

결과는 아쉽게도 다음 기회를 기약하게 됐다. 나에게는 과분한 기회였다고 생각한다. 하지만 이 경험을 통해 앞으로 어떤 부분을 더 채워야 하는지, 어떤 방향으로 나아가야 하는지는 분명해졌다고 생각한다. 앞으로는 더 깊이 고민하고 준비하면서, 같은 기회가 왔을 때는 지금보다 나은 모습을 보여주고 싶다. 어쩌면 좁은 개발 세상 속에서 다시 만날 면접관들에게 달라진 모습을 보여주고 싶기도 하다. 그럴 수 있을 날을 기약하면서 다시 차근차근 성장해 나가야 겠다

우아한 테크 코스 지원

당근을 준비함과 동시에 우아한 테크 코스도 함께 준비했었다.

현재 내 위치에서 나를 급속도로 성장시켜 줄 동력이 필요하다고 느꼈다. 학교에만 남아 있는 것으로는 더 이상 많이 얻을 수 없는 상태라고 생각하고 있었다. 하루하루를 정말 열심히 공부하고 성장하려 노력하며 살아가고 있었지만, 언제부턴가 학교와 동아리는 나에게 너무나 익숙한, 컴포트존이 되어버렸다. 열심히 성장 거리를 찾으려 해도 정체된 느낌을 지울 수가 없었다.

분명한 건 환경을 바꿔야 한다는 생각이었다. 나에게 온전히 집중할 수 있고, 너무 편안하기만 한 곳이 아닌, 여러 긴장감과 스트레스를 받으며 나를 성장시킬 수 있는 곳에 가고 싶었다. 이를 할 수 있는 다양한 선택지가 있겠지만, 그중에서도 다른 무엇보다 우아한 테크 코스에 가고 싶다는 생각이 가장 컸다.

우아한 테크 코스는 단순히 개발 기술만을 배우는 곳이 아니라, 문제를 바라보는 태도, 말하기와 글쓰기, 협업 등 다양한 소프트 스킬을 함께 배울 수 있다는 점에서 정말 매력적으로 느껴졌다. 만약 내가 우테코에 가게 된다면, 지금과는 비교할 수 없을 만큼 성장할 수 있을 것이라고 생각했다.

요 몇 년 동안 여러 대회, 자격증 시험, 부트캠프 등 다양한 활동에 도전해 보고 싶었지만, 당시 내가 맡고 있던 일들로 인한 바쁨과 책임감 때문에 타의적으로 모두 포기한 상태였다. 우아한 테크 코스 지원 역시 크게 다르지 않았다. 쏟아지는 학교 과제와 부가 일정들, 무엇보다도 진행 중이던 프로젝트의 말도 안 되는 일정으로 인해 몇 달 동안 제대로 잠을 잔 기억이 없었다.

그 당시에도 거의 3일 가까이 무수면 상태로 버티며 겨우 프로젝트 개발 일정을 맞추고 있었고, 우테코 지원서 제출까지는 3시간도 남지 않은 상황이었다. 그럼에도 불구하고 이번 우아한 테크 코스 지원마저 현실의 벽에 굴복해 버린다면, 지금까지의 내가 이룬 것이 아무것도 없는 것이 될까봐 너무 슬펐다. 그래서 일단 지원만이라도 하기로 했다. 좋지 않은 몸 상태를 버티며, 잠을 제대로 자지 못해 제대로 돌아가지도 않는 머리를 쥐어짜 가며 지원서를 작성했다. 솔직히 만족스러운 글은 아니었다. 어쩔 수 없었다. 그럼에도 주어진 상황 속에서 내가 할 수 있는 최선은 다했다는 사실만으로도 정말 후련했었다.

우테코 지원

사진은 지원 당일에 올렸던 팀 프로젝트 데일리스크럼 내용 일부분이다.

몇개월이 지난 지금에서야 그렇구나 하며 볼 수 있지만, 당시의 나는 너무나도 힘들고 지친 상태였었던 것 같다.

우테코 지원 메일

프리코스 1~3주차

프리코스를 진행하면서 최대한 우테코가 원하는 모습의 사람이 되고자 노력하며 참여했다. 매 주차가 지날 때마다 제공되는 공통 피드백을 최대한 수용하려고 했고, 내가 놓치고 있던 부분들을 하나라도 더 가져가고 싶었다. 특히 문서화와 개발 프로세스에 대한 부분은 계속해서 의식하며 개선하려고 했다.

부가적으로 진행된 피어리뷰를 통해, 같은 문제를 보고도 각자 다른 방향으로 작성한 코드들을 보면서 정말 많은 인사이트를 얻을 수 있었다.

피어리뷰를 하며 가장 인상 깊었던 순간은, 남들과 독보적으로 다른 접근 방식의 코드를 마주했을 때였다. 당연히 대부분 객체지향적으로 코드를 작성했을 것이라 생각했지만, 전혀 다른 방식으로 함수형 패러다임을 선택한 분의 코드를 봤을 때는 정말 멋있다는 생각이 먼저 들었고, 동시에 새로운 패러다임에 대한 흥미도 생겼다.

해당 PR을 읽자마자 바로 「쏙쏙 들어오는 함수형 코딩」 책을 구매했고, 프리코스를 진행하는 동안 꾸준히 책을 읽으며 함수형으로 코드를 작성하고 고민하는 사고 방식을 기르고자 했다.

아직 많이 부족하긴 했지만, 책을 읽으며 공부한 내용들을 다음 주차 미션에 직접 적용해 보기도 했다. 완벽하지는 않았지만, 그 과정을 통해 분명히 이전과는 다른 시선으로 코드를 바라보고 있다는 느낌을 받을 수 있었다.

해당주차 pr : https://github.com/woowacourse-precourse/javascript-racingcar-8/pull/165

프리코스 오픈 미션

오픈 미션으로는 당시 내가 많이 고민하고 있던 웹뷰 환경 디버깅 툴을 만들어보는 것을 선택했다. 직접 Chrome DevTools를 만져가며, 내가 원하는 웹뷰 환경에 맞게 커스터마이징해 보고자 했다. 단순히 기능을 구현하는 것보다, 실제로 내가 불편함을 느끼던 부분을 해결해 보고 싶었다. (당근의 지원서 내용과 겹치는 부분이다) 하지만 관련된 레퍼런스가 거의 전무하다 보니, 정말 멘땅에 헤딩하는 느낌이 강했다. 이 과정에서 레퍼런스가 없는 분야에서는 AI조차도 말도 안 되는 정보들을 알려줄 수 있다는 사실을 체감하게 되었다.

오픈 미션은 돌아가는 코드를 제출해야 했지만, 결국 나는 완성이라고 부를 수 없는 상태로, (문서/설정 파일을 제외하고) 합쳐도 400줄이 채 되지 않는 코드를 제출하게 되었다. 개인적으로 아쉬움이 많이 남았지만, 앞으로도 쭉 개발해나갈 예정이다. 최종 결과가 나오게 된다면, 그때 내가 제출했던 오픈 미션관련한 글을 작성해 보고 싶다.

최종 코딩테스트

image.png

정말 운이 좋게도 최종 코딩테스트 기회가 주어졌다!

이전에 우테코를 수료한 지인들에게 여쭤본 결과, 프리코스때 했던 문제들을 풀어보면서 테스트 코드 짜는 것, 그리고 요구사항 분석하는 것 등을 연습해보라는 답을 받았다. 이에 맞춰서 이전 기수 기출까지해서 5문제 정도 풀어봤던 것 같다. 최대한 공통 피드백에서 받았던 피드백들을 유념하면서 모든 것을 수용하고 지키려고 하고, 이를 시간내에 구현하기 위해서 몸으로 최대한 습관화를 시키려고 노력했었다.

image.png

꾸준히 개인적인 회고도 하면서 공부했었다. 실제로 당시 내 생활 패턴에서는 오후 4시 30분부터 5시까지 졸음이 쏟아지는 문제가 있었다. 그리고 해당 시간이 코딩테스트 시간과 겹치는 문제가 있었다. 짧은 시간이지만, 이전에 내 몸에 대해서 테스트를 해봤던 경험들을 바탕으로 가장 오후 1시부터 6시까지 졸림이 없는 생활 패턴을 맞추고자 하였고, 직접 안마시던 커피도 조금씩 마셔가면서 나에게 가장 맞는 커피 종류와 마시는 양을 찾으려고 노력했었다. 덕분에 빠르게 생활 패턴을 오전4시-11시에 자는 패턴을 만들었고, 스타벅스 돌체 라떼 아이스 톨사이즈의 섞은 상태로 초록색 플라스틱 빨대로 4번 마신 상태가 가장 최상의 상태임을 찾을 수 있었다.

시험보기 전날에 서울로 올라가 시험장 주변에서 잠을 잤다. 잠 자기 직전에도 회고록을 한번씩 다시 읽고 문제 하나라도 더 풀어보면서 코딩과 요구사항 분석 감각을 살리고자 했다. 시험장에 들어가기 이전에 똑같이 오전 11시에 일어나 스타벅스 돌체 라떼 아이스를 마셨다.

이전 기수들이 교육을 받았던 잠실 교육장에서 시험을 봤다. 너무나도 시설이 좋아보였다. 이런 곳이라면 하루종일 코딩해도 지칠 일이 없을 것 같다는 생각이 들었다. 시험은 정말 운이 좋게도 자기 직전에 마지막으로 풀어봤던 로또 문제가 나왔다. 문제를 보자마자, 저번 프리코스 때 나왔던 문제라서 모두들 복사·붙여넣기하고 추가 미션을 풀지 않을까 하는 생각이 들었다. 나 역시 그렇게 할 수도 있었지만 그러지 않으려고 했다. 지금까지 우아한 테크 코스 프리코스를 하면서 내가 가장 크게 성장했다고 느낀 지점은 문제를 바라보는 방법과 해결해 나가는 태도라고 생각했다. 최종 코딩 테스트를 준비하면서 계속 가져가고자 했던 것도 바로 이것이었기에, 단순히 코드를 복사/붙여넣기하는 대신 직접 요구사항을 분석하고, 테스트 코드를 먼저 작성한 뒤, 중간중간 TODO를 최신화하며 개발을 이어나갔다.

중간중간 시간이 부족하다고 느낄 때마다, 그냥 전체 코드를 복사/붙여넣기할지 말지 수없이 고민했다. 하지만 결과가 어떻게 되든, 내가 스스로 설정한 목표만큼은 꼭 지키고 싶었다. 그래야 나 자신에게 떳떳할 수 있을 것 같았다.

어찌저찌 개발을 마친 이후, 남은 한 시간 동안은 리팩토링을 진행했다. 깊이 있는 구조 개선까지는 하지 못했고, 상수화, 매직 넘버 제거, 함수 길이와 들여쓰기 제한 등 정량적인 부분 위주로 정리했다. 이후 남은 시간에는 느낀 점을 작성했다. 시험을 보면서 들었던 생각들을 하나라도 놓치지 않고 그대로 적어내고 싶었다.

일단 테스트는 통과했지만, 결과는 솔직히 잘 모르겠다. 어쩌면 우테코에서는 치팅 시트를 허용하고 이전 프리코스 문제를 다시 출제함으로써, 과거의 미션과 비교해 얼마나 성장했는지, 그리고 더 나은 코드를 짜기 위해 무엇을 고민했는지를 보고자 했던 것일지도 모른다. 그런 관점에서 보면, 나는 문제를 푸는 방식보다는 문제를 대하는 태도를 보여주려고 했으니, 어쩌면 우테코에서 기대한 방향과는 다소 다른 방식으로 시험을 치렀을 수도 있겠다는 생각이 들었다. 그래서 결과가 좋지 않을 것 같다는 불안도 남아 있다. 그럼에도 불구하고, 짧은 시간이었지만 가장 바꾸기 어렵다고 생각했던 태도, 혹은 습관을 바꿀 수 있었다는 점은 나에게 굉장히 크게 다가왔다. 정말 많은 것을 얻어간 기회였다고 느낀다.

우아한 테크 코스에 들어가 더 가파르게 성장해 보고 싶다. 설령 그렇지 않더라도, 지속 가능한 개발자로서의 업무 태도를 배웠다는 사실만으로도, 앞으로의 내 성장이 너무나 기대되는 하루였다.


프로젝트

그동안 동시에 여러 프로젝트를 진행하고 있었다. 이전에 진행하던 프로젝트들이 점점 스택처럼 쌓이면서, (학생 인턴 업무와 올해 잠시 발 담궜던 리크루트 프로젝트들까지 합쳐)25년도 초에는 어느덧 돌리고 있던 프로젝트만 5개가 넘기는 상황까지 오게 되었다. 일정 자체도 빠듯했지만, 동아리 내에서 점점 내가 맡고 있는 역할의 비중이 커지는 게 느껴졌다.

동아리의 대부분의 일들이 자연스럽게 나를 거쳐 가는 구조가 되었고, 그게 은근한 부담으로 다가왔다. 연락이 올 때마다 긴장하게 되고, 지금도 너무나도 지치고 바쁜데 새로운 업무가 추가될까 봐 신경을 쓰게 되는 순간들이 반복됐다. 큰 사건이 있었던 건 아니지만, 이런 상태가 계속되다 보니 너무나도 정신적으로 지치게 되었던 것 같다.

그래서 한 번 정리가 필요하다고 판단했다. 지금은 여러 역할을 동시에 끌고 가기보다는, 잠시 속도를 줄이고 나 자신에게 집중하는 게 맞겠다는 생각이 들었다. 그에 따라 진행하던 프로젝트들과 책임지던 자리들을 대부분 내려놓게 되었다.

이번 선택을 통해 몇 가지를 다시 생각해보게 됐다. 내가 정말 하고 싶은 방향이 무엇인지 계속 점검해야 한다는 점, 그리고 업무는 혼자 떠안기보다 분산되는 구조가 중요하다는 점이다. 앞으로 비슷한 상황이 온다면, 이 두 가지는 더 신경 써서 선택하게 될 것 같다.

산결

image.png

올해 2분기부터는 산결이라는 프로젝트를 진행하게 됐다. 팀의 목표가 빠르게 개발하고, 빠르게 비즈니스 테스트를 해보자는 쪽에 맞춰져 있었기 때문에 단순 네이티브 앱 대신 웹뷰 기반으로 방향을 잡고 개발을 시작했다. 나는 앱 개발 자체에 대한 지식이 아예 없는 상태였어서, 구현하는 모든 과정이 나에겐 새로운 도전이었다.

프로젝트는 타 동아리와의 협업 형태로 진행됐다. 협업 과정이 매번 매끄럽지많은 않았던 것 같다. 기획 쪽에서 개발이나 기획 전반에 대한 이해가 부족한 상태였고, 그로 인해 요구사항이 다소 비현실적으로 나오는 경우도 잦았다. 나는 개발자로서의 역할과 경계를 명확히 하고 싶었지만, 되돌아보면 그게 생각만큼 잘 되지는 않았던 것 같다.

가장 힘들었던 부분은, 개발자가 하는 일이 어느 정도의 난이도와 비용을 가지는지에 대한 인식 차이였다. 시간과 체력, 정신력을 꽤 많이 쏟아부은 결과물이 사소한 이유로 삐걱대는 경우가 있었는데, 그에 대한 반응이 썩 좋지 않았던 순간들이 특히 마음에 남았다. 그래도 이 팀을 어떻게 하면 조금 더 지속 가능한 방향으로 나아갈 수 있을지를 계속 고민하게 됐던 것 같다.

이와 관련된 기억에 남는 에피소드 중 하나는 디자인 시스템 도입을 두고 나눴던 논의다. 컬러와 디자인이 전반적으로 정리되어 있지 않았고, 스프린트 하나에 사용되는 색상만 해도 100개가 넘을 정도였다. 토큰화는 전혀 되어 있지 않았고, 그 결과 개발 입장에서는 대부분의 UI를 매번 새로 작성해야 했다. 아무리 일정이 빠듯해도 디자인 시스템은 필요하다고 계속 주장했고, 이 문제를 비개발자에게 어떻게 설명해야 할지 많이 고민했다. 전문 용어를 사용해 설명하거나 단순하게 “안 된다”라고 말하기보다는, 현재 상황을 비유를 통해 전달하는 방식을 택했는데, 생각보다 효과가 좋았다. 이 경험을 반복하면서, 비개발자와 소통할 때 어떤 방식이 더 잘 전달되는지 몸으로 익힐 수 있었던 것 같다.

프로젝트를 진행하면서 여러 라이브러리도 직접 만들었다. npm에 배포도 해보고, 관련 글을 쓰고 발표도 진행했다.

처음 라이브러리를 만들었을 때는 너무 신나서 주변 사람들에게 자랑하고 다녔었다. 지금 돌이켜보면, 앱 개발이나 RN에 대해 아는 게 많지 않았기 때문에 가능했던 부분도 있었던 것 같다. “이걸 처음 쓰는 입장에서 왜 이게 없지?”라는 생각에서 출발한 개발이 많았다. 다만, 이처럼 아는 범위 안에서만 설계하다 보니 한계도 분명했다. 실제로 당근 면접 과정에서 앱-웹뷰 버저닝 전략, 타입 안정성, 특정 환경에서의 구조적 선택 등에 대한 질문을 받았지만, 대부분 제대로 답하지는 못했다. 그래도 직접 만들어보고 부딪혀본 덕분에 DX, 좋은 코드와 추상화에 대해 스스로 정리해볼 수 있었고, 모듈 시스템에 대해서도 많이 배울 수 있었다는 점에서 엄청 가파르게 성장할 수 있었던 경험이었다.

[관련 글] 웹뷰 브리지 라이브러리 개발 기록 : https://geongyu09.github.io/post/webviewThreeWayHandshake/ 웹을 앱처럼 만들어 보자! :https://geongyu09.github.io/post/appLikeWeb/

이 프로젝트를 하면서 작성한 코드량도 꽤 많았다. AI의 도움을 최대한 받지 않으려고 했고, 테스트 코드나 문서화를 제외하더라도 약 3개월 동안 10만 줄이 넘는 코드를 작성했다. 학교 수업, 다른 프로젝트, 동아리 일정과 병행하면서였다는 점을 생각하면 지금도 조금은 놀랍다. (사실 이번 회고 글에서 올해 너무 바빴다는 말이 나왔던 이유 대부분이 이 프로젝트이기도 했다. 그만큼 이 프로젝트에 진심으로 임했었다!)

image.png

이번 프로젝트를 통해서 나는 앱 개발을 처음 해보았다. 그러면서 조금 확실해진 부분은 나는 앱 개발 자체에 그렇게까지 큰 흥미를 느끼지는 못하는 것 같다. 웹 개발을 할 때는 새로운 개념을 배우는 과정이 설레고 재미있었는데, 앱 개발은 ‘아.. 이거 개발하려면 이것도 공부해야해?’ 이런 생각이 무의식중에 드는 것 같다. 앱 개발은 내가 정말 원해서 선택했다기보다는, 현실적인 이유로 선택한 측면이 컸다보니 더더욱 그렇게 다나오지 않았나 싶다. 그럼에도 불구하고 가능성을 닫고 싶지는 않다. 아직 많이 부족한 상태이기도 하고, 배울 것도 정말 많다. 아직 앱개발에 많은 시간을 할당하지 않았기에, 그 묘미를 찾지 못한 것일 수도 있다. 당분간은 웹과 앱 두 분야 모두 열어둔 채로 공부를 이어가면서, 어느 쪽이 나에게 더 잘 맞는지 천천히 확인해보려고 한다.

EEOS

eeos_logo.png

EEOS 개발도 계속 진행하였다. 올 한해에는 엄청 눈에 띄는 성과가 있었다기보단 그냥 꾸준히 했었던 것 같다.

최근 우리 팀에서는 항상 “회원들이 EEOS를 어떻게 더 자주 쓰게 만들 수 있을까?”를 이야기한다. 원래 기획 방향과는 조금 다르게, 지금은 주간 발표 출석 체크 용도로만 쓰이는 경우가 많아서 아쉬움이 있다. 그래서 주간발표가 없는 일상 속에서도 자연스럽게 열어볼 수 있는 서비스가 되도록 기획을 계속 진행중이다.

개발적으로 보면, 1학기에는 캘린더랑 마이페이지를 만들었고, 2학기부터는 모바일에서도 쓸 수 있게 구조를 바꾸는 작업을 하고 있다. 플랫폼 전환은 아무래도 웹 기반 서비스였다보니 웹뷰 방식을 택하는 것이 유리할 것이라 생각하였다. 하지만 생각보다 화면 하나 늘리는 정도의 문제가 아니라, 전체적인 구조 자체를 변경해야하는 문제가 발생하여 개발팀 전체가 조금 애를 먹고 있는 상황이다.

기존에는 슬랙 로그인을 통해서 로그인하는 방식이었지만, 웹뷰 개발을 하다보니 구글 소셜 로그인이 불가능 하다는 것을 알게 되었다. EEOS는 동아리 내부 서비스다 보니 회원 정보도 전부 우리가 다루고 있다보니, 이왕 로그인 방식을 다시 설계할거 SSO 방식으로 통합 로그인을 만들어 버리자는 이야기가 나와 현재 설계중에 있다. 개발이 완료되면 개발팀에서 들었던 생각이나, 실제로 고민했던 선택들 같은 것도 나중에 한 번쯤은 정리해보고 싶다.

아마 EEOS는 올해에도 쉬지않고 변하고 또 발전해 나갈 것이다. 함께해오는 우리 개발팀에게 너무나도 감사하다는 말을 전하고 싶다.

스터디

올 한 해 동안 정말 많은 스터디를 했다. 물론 매년 꾸준히 해오긴 했지만, 올해는 유독 공부에 쓰는 시간이 체감될 정도로 많았던 해였다.

25년 1학기와 2학기 모두 동아리 신입부원의 멘토로 들어가게 되었다. 사실 반드시 멘토로 들어가야하는 책임이 있는 건 아니었지만 졸업하기 전에, 내가 지금까지 쌓아온 지식과 공부하는 태도 등을 후배들에게 전해주고 싶었다.

그 마음으로 멘티들과 함께 스터디를 진행했다. 크게 보면 두 개, 세부적으로는 세 개의 스터디였다. 모던 JavaScript 스터디와 TypeScript 스터디를 직접 기획하고 운영했고, 단순히 커리큘럼을 따라가는 방식이 아니라 왜 이걸 배우는지, 어디에서 쓰이는지까지 함께 이야기하려고 노력했다.

물론 나는 알고있는 개념들이 많이 있었다. 그럼에도 스터디를 통해서 졸업 후 취업하기 전에 알고 넘어갔던 개념들을 다시 정리하고, 지식의 빈틈을 발견하고, 설명하려다 막히는 순간마다 ‘아, 이건 내가 제대로 이해하지 못했구나’를 깨달으면서 공부하고자 하였다.

Frame 1618872757.png

나는 예전부터 지식은 쌓아두는 것이 아니라 흘려보내야 한다고 생각해왔다. 그래서 25년의 목표 중 하나도, 내가 가진 지식을 혼자만의 것으로 로컬라이징하지 말고 최대한 밖으로 꺼내 나누는 것이었다. 돌아보면 완벽하진 않았지만, 적어도 올 한해 그 방향으로는 꽤 성실하게 걸어왔던 것 같다.

내 인생의 마지막 학생 시절을 보내며

이제 대학 4학년을 마무리하고, 곧 졸업을 앞두고 있다. 학생이라는 타이틀을 떼고 진짜 사회로 나아가는 사회 초년생이 되었다. 지금 같은 불황기에 취직이 안 되지는 않을지 솔직히 불안하기도 하고, 얼마나 백수의 시간을 보내게 될지 걱정도 된다.

지금 나는 불확실한 미래에 대한 두려움이 너무 큰 것 같다. 지금처럼 학생이라는 사회의 암묵적인 보호막 아래에서, 내가 하고 싶은 공부를 하면서 살고 싶은 마음이 크다.

하지만 (자의가 아니더라도) 결국 사회로 나아가게 된다. 그곳에서는 내가 하고 싶은 공부만, 하고 싶은 코딩만 할 수는 없을 것이다. 사회에 맞추어 필요한 인재가 되려고 해야할 것이며, 전략이라는 명목 하에 내가 원하지 않는 일을 하거나 하고싶은 일을 원치않는 방향으로 발전시켜야 할 수도 있다. 학생이라는 타이틀이 빠지는 지금, 내 인생의 메이저 버전을 올리는 이 상황이 조금은 슬프기도 하고, 무섭기도 하다. (불확실한 미래가 너무나도 두렵다. 내년의 나는 정말 무엇을 하고 있을까?)

그럼에도 어쩌겠는가. 시간은 가고, 나는 더 성숙해져야만 한다. 어쩌면 이런 생각을 하고 있다는 것 자체가, 내가 아직은 정신적으로 어리다는 뜻일지도 모르겠다.

지금의 나에게 두려움의 존재인 26년도를, 도망치지 않고 맞이할 수 있게 열심히 살아보자. 그리고 사회에 물들어 언젠가는, 지금 내가 좋아하는 코딩과 공부가 생계를 위한 "일"이 되어 흥미를 잃고 방황하게 된다면, 지금 이렇게 새로운 것을 공부하는 걸 좋아하는, 열정적인 지금의 모습을 한 번 떠올려 보자.

올 한해도 정말 고생했고, 힘들었던 25년도 잘 버텨줘서 너무 고맙다. 이 열정 잃지 말고 잘 나아가보자