2025년 하반기(7~12월) 회고
시지프의 돌을 굴리며
매년 회고록을 적고 있고, 올해로 3년 차다. 제목은 하반기지만, 연말에 한 해를 정리하다 보니 사실상 올해 회고가 됐다.
이전 회고록은 아래에서 확인할 수 있다.
2023년 회고: https://laurent.tistory.com/entry/성장을-위해-2023년-회고
2024년 회고: https://laurent.tistory.com/entry/2025년-1월-회고-신년-계획
들어가며
올해 2학기는 쉬어야 할 때를 배운 시간이었다. 졸업 요건을 채우기 위해 마지막 학기에도 수업을 많이 들어야 했고, 동시에 회사 프로젝트도 했다. 특히 회사 프로젝트를 짧은 주기 없이 장기간 밀어붙이다 보니 어느 순간 뭘 해도 흥미가 없고 집중도 안 됐다. 밀어붙이더라도 짧게 끊어야 한다는 걸 멈추고 나서야 알았다.
회고 프레임워크
이 회고록은 변성윤님의 회고 방법을 참고했다.
회고의 종류
회고는 크게 두 가지로 나눌 수 있다.
- 실행 중심 회고: 주간/월간 단위의 단기 회고. KPT, 4L 같은 프레임워크를 활용해 즉각적인 개선과 실행에 초점을 맞춘다.
- 방향성 중심 회고: 연간 단위의 회고. 키워드 중심의 자유로운 형식으로 1년을 정리하고, 큰 그림과 장기적 방향성을 고민한다.
평소에는 실행 중심 회고를 하고, 연말에는 방향성 중심 회고를 한다. 연말 회고에도 실행 중심 회고를 섞어서 하기도 한다.
KIPET
성윤님은 KPT에 Insight(깨달음)와 Emotion(감정 점수)을 추가한 KIPET 프레임워크를 사용하신다. 감정 점수가 쌓이면 연말에 한 해를 어떻게 보냈는지 흐름이 보이고, 깨달음들을 모아서 나만의 원칙으로 만들 수도 있다. 나도 이 방식을 따라 감정 점수를 기록하고 있다.
회고하며 깨달은 것들
성윤님이 공유한 내용 중 공감한 부분들은 아래와 같다.
- 회고를 작성하며 성취감을 느끼지만, 결국 회고 후에 Action을 하는 것이 중요하다.
- 완벽보단 완료. 회고에 완벽이란 없다.
- 깨달음을 정리해서 나만의 기준, 원칙까지 만들면 좋다.
특히 기존 회고록들은 단순 사건 나열식으로 많이 작성해왔다. 이번 회고록에서는 감정 흐름과 깨달음을 함께 기록하고, 경험에서 의미를 찾아보려 한다.
올해 초에 세운 목표
-
체지방률 20% 미만
- 제대로 측정은 안 해보았는데, 일단 몸무게만 보면 12kg를 감량하긴 했다. 자세한 체지방률은 인바디를 측정해봐야 알 것 같다.
-
주 3회 웨이트 + 러닝 유지
- 연 초에는 웨이트를 위주로 했었고, 4~5월부터는 러닝을 꾸준히 했다.

-
11시 취침 패턴 유지
- 올해 초에 세운 목표인지 회고록 적으면서 알았다..
-
자바스크립트 깊게 공부 + 블로그 정리
- 연초에 면접 스터디를 하면서 자바스크립트를 깊게 공부할 순간이 있었는데, 스터디 진행 중에 프로젝트빌드업에 합류하기도 하고, 동시에 학업도 병행하고 있었기 때문에 블로그에 정리까지는 하지 못 했다.
-
인문학 독서
- 연초에 계획했던 것보다 인문학 책을 많이 읽지 못했다. 그래도 한 권을 읽었는데, 학교랑 회사를 병행하면서 잠시 삶에 의미가 없는 듯한 생각이 들었었다. 이때 예전에 읽었던 카뮈의 시지프 신화를 다시 읽었다.
- 시지프는 신들의 벌을 받아 영원히 돌을 산 위로 밀어올린다. 정상에 도달하면 돌은 다시 굴러떨어지고, 시지프는 다시 산 아래로 내려가 돌을 민다. 끝이 없다. 처음 읽었을 때는 나와는 상관없는, 옛날 그리스 어딘가의 신화 속 이야기 같았다. 근데 이번에 다시 읽으니까 다르게 느껴졌다. 하나의 문제를 해결하면 다음 문제가 기다리고, 그것도 해결하면 또 다음이 있다. 마침표가 없다는 게 처음엔 버거웠다. 시지프의 돌과 다를 게 없었다.
- 카뮈는 "우리는 시지프가 행복하다고 상상해야 한다"고 했다. 솔직히 그 경지까지는 못 갔다. 행복하진 않았다. 근데 삶이 원래 그런 거라는 생각은 들었다. 문제가 끝없이 온다는 건 바꿀 수 없다. 하지만 그 문제를 풀기로 선택한 건 나다. 행복까지는 아니더라도, 이게 삶이라면 그대로 받아들이기로 했다.
-
주말 하루 카페 리프레시
- 일이 몰릴 때는 주말에 카페 갈 여유가 없었는데, 연말에 시간이 좀 나면서 주말에 카페에 가서 리프레시를 했다. 커피도 맛있지만, 여유 있는 카페 분위기가 편안함을 줬다.
- 핸드드립을 좋아한다. 원래 커피는 쓰다는 선입견이 있었는데, 군대에서 핸드드립을 처음 마셔보고 생각이 바뀌었다. 커피 안에서 이렇게 풍부한 맛이 날 수 있구나 싶었다. 그때부터 원두에 관심이 생겼다.
- 그동안 학생이라 블렌드 원두를 싸게 많이 사서 마셨다. 내년에는 싱글 오리진으로 산지별 차이를 느껴보고 싶다.
과업
YouViCo
8월부터 12월까지 동영상 피드백/협업 플랫폼을 개발했다. 기존 Vue/Nuxt 프로젝트를 React/Next.js로 완전히 새로 만들면서 기능도 추가하는 작업이었다.
핵심 기능은 드로잉 피드백 시스템이었다. 영상의 특정 시점에 그림을 그리고 댓글을 남길 수 있는 기능이다. Fabric.js에서 Konva.js로 라이브러리를 교체하고, 타임스탬프 기반으로 드로잉과 댓글을 연동하는 구조로 재구현했다.
반응형 처리가 생각보다 까다로웠다. 다양한 화면 크기에서 드로잉이 같은 위치에 표시되어야 하는데, 좌표 계산 로직에 버그가 많았다. PDF 오버레이 배치에서도 비슷한 문제가 있었는데, JavaScript로 복잡하게 계산하던 걸 CSS 레이아웃으로 단순화해서 해결했다.
리렌더링 최적화도 했다. 비디오 재생 중에 화면 전체가 리렌더링되고 있었는데, 렌더링에 필요 없는 값을 구독하고 있어서 생긴 문제였다. store를 분리하고 selector 패턴을 적용해서 해결했다. 구독은 렌더링 비용이다는 걸 배웠다.
상태 관리에서도 두 개의 boolean으로 관리하던 상태가 동시에 true가 되는 버그가 있었다. 상호 배타적인 상태는 여러 개의 boolean보다 하나의 enum으로 관리하면서 충돌을 구조적으로 방지할 수 있었다.
많은 내용들을 회고록에 적기에는 민감한 부분들이 존재해서, 자세한 내용은 여건이 된다면 따로 정리해 볼 예정이다.
프로젝트를 마치고
프로젝트는 12월에 마무리되었고, 진행하면서 예상대로 잘 되었던 부분도 있었지만 제대로 되지 않았던 것들도 많았다. 프로젝트가 끝나고 나서야 여러 생각이 들었는데, 문득 중학생 때 개발자가 되기로 결심했던 순간이 떠올랐다. 어렸을 때부터 되고 싶었던 개발자가 되었는데, 이 프로젝트를 하면서는 그 때의 기대감을 느끼기는 어려웠다. 프로젝트를 하면서와 끝난 지금까지도 내가 좋아하는 것이 무엇인지에 대해 진지하게 고민하게 됐다.
돌이켜보면 무기력하고 공허한 순간들이 있었는데, 원인을 곰곰이 생각해보니 구현한 것들이 엎어지는 경험이 반복되면서 그런 감정이 쌓였던 것 같다. 기능 단위든 프로젝트 단위든 구현까지 마무리했는데 "더 이상 필요 없다", "구현하지 마라"는 요청을 받을 때가 있었고, 그럴 때마다 내가 들인 시간과 에너지가 허공에 흩어지는 느낌이었다.
중학생 때 개발자가 되겠다고 결심했을 때 상상했던 모습이 있었다. 나라는 개인이, 또는 사회가 처한 문제를 해결하고 작게는 주변 사람들, 넓게는 전 세계 사람들의 삶에 도움이 되는 서비스를 만드는 사람이 되고 싶었다. 그 꿈 자체는 지금도 변하지 않았고, 프로젝트를 끝까지 완성하지 못하더라도 이걸 원하는 누군가의 문제를 해결해줄 수 있다면 의미가 있다고 생각했다. 문제는 그 과정이 너무 비효율적이었다는 것인데, 목적지는 보이는데 가는 길이 순탄치 않았고 방향이 자주 바뀌면서 왜 이걸 해야 하는지 목적성을 잃어버리기 쉬웠다. "우리가 정말 사용자의 문제를 해결할 수 있는 건가?", "해결이 되긴 하는 건가?" 의심하는 순간들도 있었다.
새벽 3시까지 코드를 작성하면서 "언제 끝나지?"라는 생각을 많이 했는데, 프로젝트를 완수하는 데만 집중한 나머지 개인적인 시간, 건강, 성장 같은 것들을 놓쳤다. 어쨌든 끝내야 한다는 생각에 다른 건 다 미뤘고, 돌이켜보면 그게 지속 가능한 방식은 아니었다.
그런데 이상한 점이 있었다. 같은 시기에 했던 다른 개발들—대동제 안내 웹, 해커톤, 개인 블로그—은 재밌었고 시간 가는 줄 모르고 몰입했다. 괴롭지 않았다. 왜 이 개발들은 다르게 느껴졌을까?
돌이켜보면 그 개발들에는 공통점이 있었다. 내가 기획부터 방향까지 결정할 수 있었고, 한 번 정한 방향이 엎어지는 일이 없었다. 머릿속으로 상상한 것을 직접 구현해내고, 실제로 사용자들이 쓰는 걸 보면서 뿌듯함을 느꼈다. 대동제 웹은 축제 당일에 사람들이 예약 시스템을 쓰는 걸 직접 봤고, 부스 운영하시는 분들께 사용법을 설명하러 다니기도 했다. 내가 만든 게 누군가에게 쓰이고 있다는 게 눈에 보였다.
반면 Youvico는 달랐다. 기술 선택은 내가 할 수 있었지만, 기획이나 방향은 선택권이 없었다. 물론 방향성을 제안할 수는 있었고, 기존에 구현된 것과 차이가 크면 말씀을 드리기도 했다. 하지만 결정권은 내게 없었고, 그래서인지 구현한 것들이 엎어질 때 더 무력하게 느껴졌던 것 같다. 비대면으로 협업하다 보니 결속력도 떨어졌다. 매일 데일리 스크럼을 하면 맥락 공유를 할 수 있고, 대면은 아니더라도 같이 대화하는 시간이 늘면서 적어도 "이런 사람이랑 같이 협업하는구나"를 알게 되면서 생산성이 오르지 않을까 생각했다. 그래서 데일리 스크럼의 장점을 구성원들에게 보여주려고 했는데, 어느 순간부터 팀 내에서 번거롭게 생각하는 분위기가 생기면서 중단됐다.
Chiki는 또 달랐는데, 시니어 개발자분들께서 함께 해주셨다. 그분들의 경험을 기반으로 설계와 인프라가 올라가니까 주먹구구식으로 진행되는 게 아니라, 서비스를 원하는 사람이 예상하는 고객 규모에 맞게 체계적으로 이루어졌다. 이게 맞는 방향이라는 생각이 들었다.
이 경험들을 통해 앞으로 어떤 환경에서 일하고 싶은지 생각하게 됐다. Youvico에서는 프론트엔드 구성원들을 내가 이끌어나가야 했는데, 국비 교육을 3~6개월 학습한 분들이 인턴으로 계속 들어왔다가 한 달 만에 나가고를 반복했다. 컨벤션을 어느 정도 정했지만 너무 상세하게 지정하면 속도가 늦어질 것 같아서 깊게는 정하지 않았고, 코드 리뷰도 마찬가지였다. LGTM만 하는 코드 리뷰를 할 바에는 아예 없는 게 낫다고 생각했는데, 그러다 보니 읽기 힘든 코드들이 쌓였다. 기획도 개발이 진행되면서 계속 변했고, 목표했던 산출물도 선형적으로 늘어났다. 모든 구현 단계에서 프론트엔드가 가장 나중에 이루어지다 보니 부담이 컸고, 기획 변경으로 추가 구현이 늘어나면서 버그를 통제할 수 없는 상황도 있었다. 주어진 시간이 부족해지고, 이런 상황이 지속되다 보니 번아웃이 왔다. 시니어 개발자분께서 중심을 잡아주시면서 소프트웨어 개발 주기를 맞추고 프로젝트를 매니지먼트하는 과정이 필요했는데, 그 역할을 내가 해야 했고 아직 부족했다. 이런 경험들을 겪으면서 주니어로만 이루어진 팀에서는 다시 하기 힘들겠다는 생각이 들었다.
결과물을 제 시간에 만들어내지 못하니 팀 내에서 나에 대한 불신도 쌓여갔다. 업무 시간이 종료되고 부모님과 개인적인 시간을 보내는데, 개인 SNS를 보고 "이렇게 놀러다니는 것 때문에 산출물을 낼 시간이 부족한 것 아니냐"는 뉘앙스의 말을 듣기도 했다. 내 능력이 부족해서 결과물이 늦게 나왔을 수 있지만, 개인적인 시간까지 감시당하니 그때부터 꽉 막힌 것 같다는 생각이 들었다. 그 이후로 답답함을 느끼지 않으려고 더 적극적으로 바깥 바람을 쐬려고 했던 것 같다.
이 과정에서 구성원들 간의 신뢰가 얼마나 중요한지 깨달았다. 책에서만 보던 딱딱한 문장인 줄 알았는데, 직접 겪어보니 정말 중요했다. 신뢰를 잃지 않기 위해 내가 해야 할 것들을 생각해봤다.
- 약속한 일정을 지키거나, 못 지킬 것 같으면 미리 공유하기
- 진행 상황을 투명하게 공유하기 (잘 되는 것뿐 아니라 막히는 것도)
- 모르는 건 모른다고 솔직하게 말하기
- 문제가 생기면 숨기지 않고 빠르게 알리기
- 예상 일정을 낙관적으로 잡지 않고 현실적으로 산정하기
- 한 번 한 말은 지키고, 안 되면 안 된다고 말하기
어렸을 때는 회사를 단순 일터로만 생각하고 돈이 가장 중요하다고 생각했다. 이제는 다르게 본다. 회사는 단기든 장기든 공동의 목표를 정하고, 마음이 맞는 사람들끼리 협력해서 문제를 해결해나가는 곳이다. 연봉이나 사회적 지위는 그 위에 부수적으로 따라오는 것이고, 적어도 나에게는 부수적인 게 더 중요한 직장은 어울리지 않는다는 걸 느꼈다. 회사는 물론 일을 하는 곳이고 전문적인 지식과 태도로 참여해야 하는 건 당연하다. 하지만 하루의 대부분을 차지하는 시간인데, 이 시간에서 문제를 해결했다는 만족감, 최고의 동료들과 최고의 서비스를 만들어간다는 자부심이 아닌 불안감, 실망, 좌절이 지속되는 환경에서 오로지 연봉과 사회적 지위만 보면서 회사를 다니는 것은 앞으로 지속할 수 없는 방향이라고 생각하게 됐다.
Chiki (Photobooth v2)
기존 photobooth 프로젝트가 Chiki라는 이름으로 리브랜딩되었다. 기존 포토부스는 시제품용이었지만 실제 제품처럼 사용되고 있었고, 점점 요구사항이 많아지고 비즈니스 로직 자체도 변경되어 아예 새롭게 리브랜딩하게 되었다. 8월부터 Youvico를 하면서 동시에 Chiki 설계와 PRD 작성도 맡았다.
PRD 작성
PRD 작성은 처음 해보는 일이었다. 고객 플로우(발견 → 촬영 → 결제 → 출력)를 정의하고, 키오스크 관리자 모드와 본사 어드민 콘솔까지 요구사항을 문서화했다.
어려웠던 건 거시적인 그림에서 미시적인 세부사항으로 내려가는 과정이었다. 프로젝트 전체를 조망하는 건 할 수 있었는데, 그걸 구체적인 기능 단위로 쪼개고, 각 기능이 어떤 화면과 API로 구현되어야 하는지 정의하는 게 쉽지 않았다. 나무가 뿌리를 내리듯 하나하나 세세하게 정해가야 했다.
Multitenancy, B2B SaaS, 화이트라벨 같은 용어들도 생소했다. 이런 개념을 알아야 요구사항을 이해하고 설계할 수 있었다. 프로젝트를 구현하려면 큰 틀을 잡을 줄 알아야 한다는 걸 느꼈다.
아키텍처 설계
시스템 전체 구조를 설계하는 건 처음이었다. 키오스크, 백엔드, AI 서버, 어드민 웹이 어떻게 연결되는지 그림을 그려야 했다. 키오스크는 Electron으로 하드웨어를 제어하고, 백엔드는 Serverless로 API를 분리하고, AI는 별도 서비스로 독립시키는 구조를 잡았다.
이 과정에서 느낀 건, 최선의 시스템 구조를 설계하는 게 쉽지 않다는 것이었다. '가상 면접 사례로 배우는 대규모 시스템 설계 기초' 같은 책을 보면 채팅 시스템, 알림 시스템, 검색 자동완성 등 다양한 설계 사례가 나온다. 물론 Chiki는 그 정도로 대규모는 아니지만, 그런 사고 자체가 아직은 벽처럼 느껴졌다.
그동안 프론트엔드, 백엔드 코드를 작성하는 데만 집중해왔다. 코드 너머에 있는 것들—인프라, 배포, 서비스 간 연결—을 볼 기회가 없었다. 설계를 하려면 코드뿐 아니라 그 코드가 어디서 어떻게 돌아가는지도 알아야 한다. 아직 갈 길이 멀다는 걸 느꼈다.
다음 기회에
결국 Youvico에 집중하느라 Chiki는 흐지부지됐다. 휴직 후 시니어 개발자분과 디자이너분들이 외주로 합류하면서 설계 자체를 처음부터 다시 쌓아올려 나갔다. 내가 했던 설계 역할이 더 경험 많은 분한테 넘어갔다.
아쉬웠지만 그분들이 어떻게 PRD와 명세서를 작성하셨는지, 왜 그렇게 구조를 잡으셨는지 배워가는 시간으로 삼으려 한다. 다음에 비슷한 상황이 온다면 그때는 조금 더 나은 설계를 할 수 있도록 공부하려 한다.
대동제 안내 웹
https://chcse.knu.ac.kr/festival
10월에 학교 축제 안내 웹을 만들었다. 원래 올해 학생회가 없어서 축제가 없을 예정이었다. 근데 작년에 집행하다 남은 돈으로 축제를 하게 되었다고 한다. 작년에도 축제 안내 웹페이지를 만들었었는데, 이번에도 만들었다. 9시부터 6시까지 회사 일을 하고, 그 이후에 퇴근하고 나서 평균적으로 하루에 한 시간 정도 투자했던 것 같다. 데드라인 약 1달 반 전부터 주 1회 회의하고, 2주 남았을 때 본격적으로 구현 진행했었다.
작년과 다르게 새롭게 추가한 부분은 예약 시스템이었다. 기획하면서 캐치테이블을 많이 참고했다. 기존에는 부스마다 웨이팅이 있었는데, 전화로 자리 났다고 연락하는 방식이었다. 기다리는 사람은 자기가 몇 번째인지 알 수 없었고, 운영하는 사람도 수기로 명단을 관리해야 했다. 대기 순서를 화면에 보여주면 양쪽 다 편하지 않을까 싶었다. 예약은 간단하게 이름과 전화번호만 받았다.
축제 당일에는 부스 운영하시는 분들께 앱 사용법을 설명하러 다녔다. 만약의 사태에 대비해서 온라인이 안 될 경우 수기로 전환할 수 있도록 표를 프린트하고 코팅해서 지워지는 펜과 함께 배포했다. 코드만 짜는 게 아니라 실제로 현장에서 쓰이는 걸 보니까 뿌듯했다.
아쉬운 건 사용자 피드백을 수집하지 못한 것이다. 부스 운영하시는 분들 의견을 들어봤어야 했는데 그 부분이 빠졌다. 축제 끝나고 나서 구글폼이라도 그 분들께 전달했었으면 좋았을 텐데, 이 부분은 약간 아쉬운 점이다.
컴퓨터학부의 지원
당연하게도 경북대학교 도메인(knu.ac.kr)의 서브도메인을 사용하려면 학교 자원을 활용해야 한다. 컴퓨터학부에서 서버를 지원해주셔서 서브도메인을 사용할 수 있었다. 작년에는 같이 만드는 친구들과 돈을 모아서 AWS EC2를 띄운 뒤에 운영을 했었는데, 올해는 학교에서 지원해주신 덕분에 서버 비용을 아낄 수 있었다.
좌표 변환
지도에 축제 구역을 표시해야 했는데, 받은 좌표가 이상했다. 위도/경도면 35.xxx, 128.xxx 형태여야 하는데, 14316543 같은 큰 숫자가 왔다. 네이버 지도 길찾기에서 뽑은 좌표였다. 지도에 찍어보니 아예 표시가 안 됐다.
여러 좌표계를 시도해보다가 원하는 위치에 찍혔다. EPSG:3857(Web Mercator)이었다. 이때 좌표계가 여러 개 있다는 걸 처음 알았다. 생각지도 못한 곳에서 에러가 터진 느낌이었다. proj4 라이브러리로 WGS84(위도/경도)로 변환해서 해결했다.
축제 구역이 길을 따라 비스듬하게 배치되어 있어서 직사각형 4개 좌표가 필요했다. 손으로 찍다 보니 사각형이 나오긴 하는데, 두 변이 평행하지 않았다. 깔끔하게 하고 싶어서 개인적으로는 반듯하게 보이길 원했다. 회전 행렬로 중심점과 각도를 계산해서 보정했다.
이미지 품질
아티스트 이미지가 PC에서는 선명한데 모바일에서만 흐릿하게 보이는 문제가 있었다. 파일 확장자는 .svg였는데, 열어보니 진짜 벡터 그래픽이 아니었다. SVG 태그 안에 JPEG 이미지가 base64로 인코딩되어 들어있었다. Figma에서 사진을 "SVG로 export" 하면 사진은 벡터로 변환이 안 되니까 이런 식으로 처리된다.
문제는 원본 이미지 해상도가 낮았다는 것이다. 모바일 레티나 디스플레이는 같은 크기를 표시할 때 2~3배 많은 픽셀이 필요하다. 원본 해상도가 낮으니 확대되면서 흐릿하게 보였다. SVG 껍데기를 벗기고 WebP로 교체하니 해결됐다. 파일 크기도 77% 줄었다.
마무리
축제 안내 서비스는 2년 연속 만들면서 매년 새로운 기술적 도전을 해볼 수 있었다. 무엇보다 실제로 사람들이 쓰는 걸 보는 게 좋았다. 꼭 돈을 벌기 위한 서비스가 아니어도, 누군가에게 쓸모 있는 걸 만드는 경험 자체가 의미 있었다. 앞으로도 이런 작은 서비스들을 틈틈이 만들어보고 싶다.
일상
러닝
원래 러닝을 좀 했었는데, 호기심에 시작한 거였다. 스트레스 해소용으로 뛰었다. 근데 목적 없이 뛰는 것 같아서 목표를 가지고 뛰어볼까 해서 시작하게 되었다.
처음에는 6분대 페이스로 뛰는 걸 목표로 했다. 개인적으로 뛸 때. 그게 되니까 5분대를 목표로 해봤다. 마라톤 대회도 나가볼까 해서 10km 대회에 참가하게 되었다. 런서울런, 한글런, 춘천 마라톤에 나가게 되었고 세 개 모두 제 시간에 완주했다.
기존에는 목표한 페이스에 달성하지 못 했지만. 마지막 대회인 춘천 마라톤에서는 4분대 페이스로 들어오면서 달성했다. 개인적으로 뛸 때도 4분대 페이스는 못 했었는데 대회에서 이루게 되어 완주했을 때 기분이 좋았다. 6분대에서 시작해서 5분대, 4분대까지 순차적으로 줄이면서 점점 재미도 느끼게 되었다. 올해 러닝하면서 10kg 이상 감량했고, 건강검진 지표도 다 좋게 나왔다.
야구
작년에 삼성이 가을야구를 할 때 학교 근처 주점에서 다 같이 응원하는 걸 봤다. 사람들이 모여서 시끌벅적 응원하는게 재밌어 보였고 부러웠다. '내년에 한화랑 삼성이랑 같이 가을야구를 해서 대구에서 같이 응원을 하면 얼마나 재밌을까?' 라고 생각했었다.
올해 초만 해도 한화가 가을야구를 다시 갈 수 있을까 싶었다. 근데 중반에 치고 나오더니 결국 정규시즌 2위를 했다. 83승 57패, 구단 역사상 한 시즌에 가장 많이 이긴 시즌이었다. 삼성도 중반에는 순위가 낮았는데 후반에 치고 올라왔다. 작년에 생각으로만 했던 게 실제로 이루어져서 놀랐다. 7년 만에 가을야구를 가는 것만으로도 잘 했다 생각하고.. 사실 이렇게까지 잘 해줄 줄 몰랐다.
일과 집만 반복하는 생활에서 야구가 유일한 낙이었다. 올해 여가 생활이라고 할 게 거의 없었다. 게임을 한 것도 아니고, 어딘가에 시간을 쓴다면 유튜브 정도였다. 그런 와중에 야구를 보는 시간이 말 그대로 버팀목이 됐다.
대구에 살기도 하고 대전보다 표 구하기도 편해서, 대구에서 삼성과의 플레이오프 경기를 직관했다. 경기 내용은.. 한국시리즈는 축제 기간이랑 겹쳐서 제대로 보지는 못했다. 1차전을 보고 시리즈 자체가 쉽지 않겠다고 느꼈고, 결국 LG에 1:4로 졌다. 아쉽지만 첫 해에 여기까지 온 것만으로도 좋았다.
카페
원래 카페 다니는 걸 좋아했다. 맛있는 걸 먹을 수도 있고, 답답한 게 환기도 되고. 작년에 휴학해서 혼자 집에 있는 시간이 많았는데 그게 되게 답답했었다. 카페로 나가니까 스트레스도 풀리고, 맛도 있고, 집중도 잘 되고, 아무것도 안 하면 그냥 느긋하게 멍때려도 되고. 커피 맛도 좋지만, 여유 있는 카페 분위기가 편안함을 줬다.
11월 이전에는 주말에도 잘 쉬지 못하고 있었는데, 어느 순간부터 답답하고 지속적인 번아웃이 왔다. 일도 어느 정도 마무리 되어가고 있어서 리프레시를 하기 위해 주말에 카페를 다니기 시작했다. 개발도 하고, 블로그 글도 적고, 그동안 개발했던 것들을 정리하기도 했다. 오랜만에 나만의 시간을 가졌던 것 같다.
올해 졸업을 하고, 대구를 당분간은 오지 않을 것 같아 '떠나기 전에 가볼 수 있는 곳은 가보는 게 좋지 않을까?' 해서 여러 곳을 다녀봤다. 이 곳에서 오래 산 것도아니고, 특히 올해는 제대로 어딜 다니질 못 해서 더 그런 생각을 했던 것 같다. 네이버 지도에서 좋다는 카페를 찾아갔는데 닫혀있고, 다른 곳을 찾아서 갔음에도 닫혀 있어서 카페가 요즘 많이 힘들긴 한가보다 싶었다. 그래도 좋은 카페들을 몇 군데 발견했다. 더 많이 알지 못해서 아쉽지만, 떠나기 전에 알게 돼서 다행이었다.
대구에서 보낸 시간은 장점이 더 많았을 정도로 뜻깊었다. 지금까지 많은 지역에서 살아봤지만 이 곳에 와서 쉽게 경험하지 못한 것들을 많이 할 수 있었다. 대구에서의 경험들은 내년에 고향으로 돌아와서도 오랫동안 기억에 남을 것 같다.
한편 커피 원두에 관심이 생긴 건 3년 전 군대에서였다. 커피를 좋아하셔서 생활관 내에서 핸드드립을 내리시는 분들이 많았고 그때 시작하게 되었다. 원래 커피는 쓰다는 선입견이 있었는데, 선임 분이 내려주시는 핸드드립을 처음 마셔보고 생각이 바뀌었다. 커피 안에서 이렇게 풍부한 맛이 날 수 있구나 싶었다. 카페를 다니면서 그 관심이 다시 살아났다. 그동안 학생이라 비교적 저렴한 블렌드 원두를 많이 사서 마셨는데, 내년에는 싱글 오리진으로 구매해 산지별로 맛있는 원두들의 차이점을 느껴보고 싶다.
건강
올해를 돌아봤을 때 대체로 건강했다. 재작년에는 코로나와 독감을 둘 다 걸렸었는데, 그에 비하면 올해는 건강 관리를 나름 잘 한 편이라고 생각한다. 다만 학기 중에는 늘 그랬듯이 잠을 많이 줄였다. 학교에서는 학업과 교내 프로젝트로 인해 줄이게 되었다면, 올해는 회사 프로젝트로 밤을 지샜던 것 같다. 시간이 지날수록 컨디션을 조절하기가 힘들어졌다.
한편 연말에 어렸을 때부터 있었던 비염 때문에 비중격 교정술을 했다. 군대에 있을 때는 약 수급이 비교적 쉬워서 약물 치료를 장기간 진행해 예후가 좋았다. 하지만 전역 이후에는 학업과 프로젝트에 치여 병원 갈 시간이 없었고, 결국 약을 타지 못해 다시 심해졌다. 약을 꾸준히 써도 며칠 안 쓰면 다시 돌아오고, 점점 약도 잘 안 들었다. 이런 반복들이 너무 피곤했다. 더 이상 약으로 버티는 게 의미가 없다고 느꼈고, 수술을 결심했다. 작년 12월에 처음 예약하고, 6개월 뒤인 6월에 수술 일정을 잡았다. 그리고 며칠 전 12월에 수술했다.
당분간은 회복 기간이 필요하다 느껴 무급휴직에 들어갔다. 돌이켜보면 멈춘 게 오히려 필요했다. 10~11월 부터는 뭘 해도 흥미가 없었고 집중도 안 됐는데, 그런 생각이 드는 게 스스로도 위험하다고 느껴졌다. 수술이 없었다면 그 상태로 더 심해졌을 것 같다.
배움
FECONF와 DAN25 컨퍼런스에 다녀왔다. FECONF는 국내 최대 프론트엔드 컨퍼런스고, DAN25는 네이버 컨퍼런스다.
FECONF에 간 이유는 단순했다. 혼자 개발하다 보니 기술적인 고민을 나눌 상대가 없었다. 다른 현업 개발자들은 어떻게 하시는지 궁금했고, 내가 생각하지 못한 부분들을 배우고 싶었다. 강의도 들었지만, 네트워킹에서 off the record로 현업 이야기를 많이 들은 게 도움이 됐다.
여러 세션을 들었다. 스벨트를 통해 리액트를 이해하는 세션, React Compiler 세션, 음성 인터페이스 개발 세션 등이 있다. 그중에서 React Compiler가 가장 인상 깊었다. 그동안 최적화는 useMemo 쓰는 게 전부인 줄 알았다. 자동으로 해주는 게 있다는 걸 처음 알게 됐다. 마침 학교에서 컴파일러 수업도 듣고 있어서, 컴파일 과정이 정확히 어떻게 되는지 알고 싶었다. 그래서 글도 작성해 추후 배포를 하지 않을까 싶다. 이 때부터 다시 React core에 관심을 가져야겠다는 생각이 들었다.
10년차 시니어 개발자분과 네트워킹을 했다. 기술 용어의 정의를 고민하라는 조언을 받았다. 왜 React라는 이름인가, 왜 HTML이라는 이름인가. 이 조언이 와닿았던 이유가 있다. 그동안 키워드에 대한 정의를 제대로 알지 않고 얼렁뚱땅 넘어온 게 많았다. 기본적인 키워드도 제대로 대답 못 하는 나를 봤을 때, 정말 이 기술을 제대로 알고 쓰는 게 맞나 싶었다. 지금까지는 "A는 B고 C다" 식으로 단편적인 지식을 얻는 게 대부분이었다. "왜 React는 React인가?" 같은 질문을 하셨는데, 속으로 대답하기 어려웠다. 확실히 단편적으로만 공부했던 나로서는 이런 방식이 차원이 다르다고 느껴졌다. 앞으로 공부하는 방향성을 잡을 수 있을 것 같았다. 방향을 잃을 때마다 이걸 떠올리면서 깊이 있게 공부하면 조금씩 성장하지 않을까?
DAN25에서는 두 세션이 인상 깊었다. 네이버웍스 MCP 세션에서는 체인 프로토콜을 소개했다. 서버가 여러 툴 호출을 주도적으로 처리하고 최종 결과만 전달하는 방식인데, 컨텍스트 소모량이 90% 이상 줄어든다고 했다. Claude Code를 쓰면서 컨텍스트를 남용해 원하는 결과가 안 나올 때가 많았는데, AI 도구를 쓸 때 컨텍스트를 어떻게 관리해야 하는지에 대한 힌트를 얻을 수 있었다.
모바일 스트리밍 세션에서는 iOS 50MB 메모리 제약을 극복한 과정이 인상적이었다. RGB를 YCbCr로 변환해서 픽셀당 24bit를 12bit로 줄이는 방식으로 메모리를 절반으로 줄였다. "안 된다"에서 멈추지 않고 우회로를 찾는 자세, 데이터 표현 방식을 바꿔서 최적화하는 발상이 배울 점이었다. 영상 쪽에서는 이미지를 컴퓨터가 어떻게 표현하는지 알아야 이런 최적화가 가능하다는 것도 깨달았다. 그리고 "시청자가 보는 건 렌더링 퍼포먼스가 아닌 콘텐츠 생산 능력"이라는 말도 기억에 남았다. 기술적 완벽함보다 사용자에게 필요한 것에 집중하는 관점이 인상적이었다.
네트워킹
부스트캠프 9기 송년회, 체계단 밋업에서 같은 업계 사람들을 만났다. 각각 기존에 부스트캠프 하시던 분들과, 내가 나왔던 부대에 같이 시간을 보냈던 분들이었다. 회사를 다니고 계신 분들도 있었고, 아직 학생이신 분들도 계셨다.
내가 기술 블로그 글을 읽으면서 도움을 받았던 곳, 직접 대화를 해보면서 회사 문화가 좋다고 느껴지는 곳에 다니는 분들을 보면서 같은 회사에 합류하고 싶다는 생각이 많이 들었다. 같은 환경 속에서 이런 분들과 동료가 되어 함께 성장하면 얼마나 좋을지 혼자서 끊임없이 상상했던 것 같다.
두 모임을 가지고 나서 목표가 더 명확해졌다. 회사 이름만 보고 지원하는 게 아니라, 내가 회사에 필요한지, 회사도 나에게 맞는지 서로 확인하는 과정이라는 생각이 들었다. 앞으로는 이 부분에 집중해서 지원하려고 한다.
대부분 수도권에서 일을 하고 계시기도 하고 이런 약속 자리 두 개 모두 서울이었어서 빨리 올라오고 싶었다. 같은 회사에서 일하게 되면 뭔가를 같이 하게 되겠지만, 그것보다도 커리어 고민이 있을 때 옆에서 같이 이야기 할 사람들이 많다는 게 컸다.
마무리
월별 감정 흐름
| 월 | 점수 | 주요 사건 |
|---|---|---|
| 7월 | 70 | Chiki PRD 작성, 새 프로젝트 기획 |
| 8월 | 40 | Youvico 개발 시작 |
| 9월 | 50 | Youvico 본격 개발 (475 커밋) |
| 10월 | 50 | Youvico 집중 개발, 대동제 웹 준비 및 배포, 2학기 중간고사 |
| 11월 | 10 | Youvico 집중 개발 |
| 12월 | 70 | Youvico 마무리, 2학기 기말고사, 건강 상의 이유로 휴직 |
7월에는 상대적으로 여유가 있었다. Chiki PRD를 작성하면서 새로운 프로젝트를 기획하는 시간이었다. 8월부터 Youvico 개발이 본격화되면서 상황이 달라졌다. 9월에는 집중적으로 작업했고, 10월에는 대동제 웹 데드라인에 맞춰 마무리했다. 11월에는 쉬어야 할 때가 됐다는 걸 알았다. 12월에는 작년부터 준비해왔던 비중격 교정술로 인해 휴식을 갖게 되면서 회복할 수 있었다.
러닝하며 생각을 정리하고, 이번 학기에도 교내 소모임에서 모여서 야구를 같이 보는 시간이 있었다. 때로는 일과 분리된 시간이 왜 필요한지 알게 된 시간이었다.
유지할 것
러닝은 계속하려고 한다. 스트레스 해소도 되고 건강도 좋아지고, 무엇보다 목표를 세우고 달성하는 경험이 좋았다. 올해 10kg 이상 감량하면서 건강 지표가 전부 좋아졌는데, 이 상태를 유지하고 싶다.
카페도 계속 가려고 한다. 혼자 집에서 하면 쳐지는데, 카페에서는 주변에 사람이 있어서 오히려 집중이 잘 됐다. 환경이 중요하다는 걸 느꼈다. 카페 다니면서 커피 원두에도 관심이 생겼는데, 내년에는 취미로 좀 더 깊게 파보고 싶다.
커리어
기술적으로는 성장을 많이 하지 못 했다고 느꼈다. 데드라인에 맞추느라 깊은 고민을 못 한 부분들이 있었는데, 그게 찝찝함으로 남았다. 데드라인이 예상대로 흘러가지 않는 상황이 많았고, 그 안에서 최선을 다했지만 최상의 결과는 아니었다.
깊게 고민하지 못한 부분들은 결국 어떤 형태로든 다시 돌아왔다. '이렇게 하면 안 되는구나. 이건 무리구나'와 같은 한계점을 알게 됐다. 정답 보다는 오답을 많이 알게 되었던 한 해였고, 다음에는 정답을 많이 맞추는 개발자가 되고 싶다.
깨달은 것
두 프로젝트를 동시에 하면서 context 전환이 힘들다는 걸 알았다. 한 프로젝트에 몰입하고 있는데 다른 프로젝트 질문이 오면 바로 생각이 안 바뀌었다. 아직 역량이 부족해서 그럴 수 있지만, 다음에는 가능하면 한 번에 하나에 집중하는 환경을 만들어야 할 것 같다.
나중에 이런 상황이 오면, 개인 시간이 먼저 확보되고 그 위에 일을 올려야 하지 않을까 싶다. 내 시간이 아예 없는 삶을 살기는 어려운 것을 이번에 많이 느꼈다. 11월 말부터 카페에서 이런 부분들을 좀 챙기면서 확실히 숨이 많이 트였다. 오히려 나를 돌보는 시간이 있으니까 전체적으로 여유가 생겼다. 나를 챙겨야 개발도 할 수 있었다. 앞으로는 주말에 최소 반나절은 개인 시간으로 비워두는 것이 좋을 것 같다.
돌이켜보면 컴포트 존에 안주한 게 아니었다. 오히려 너무 많은 걸 하려다가 중요한 걸 놓쳤다. 특히 알고리즘 공부를 꾸준히 했어야 했는데, 할 게 많다 보니 우선순위에서 밀렸다. 그러다 보니 실력이 부족해진 게 느껴졌고, 문제 해결할 때 AI에 너무 의존하게 됐다. 알고리즘은 취업용으로만 쓰이는 게 아니라 개발 역량에도 도움이 된다는 걸 이번에 많이 느꼈다. 다음에는 하고 싶은 게 생겨도 일단 멈추고, 계획된 부분들을 어느 정도 끝내고 다음 과정으로 넘어가야 할 것 같다. 내년에는 선택과 집중을 해보자.
내년
내년 12월 이맘때쯤에는 서로 같은 목표와 긍정적인 영향을 주는 동료들과 같이 회사에서 일을 하고 있는 내가 되면 좋겠다. 그리고 커뮤니티 활동들을 올해보다는 적극적으로 하고 있으면 좋겠다. 링크드인이나 블로그, 발표 같은 활동을 시작해 지식 공유를 통해 커뮤니티 내에서 조금이나마 이바지하는 개발자가 되고 싶다. 더 자세한 2026년 목표는 다음 달 회고에서 작성해볼 것 같다.