본문 바로가기
Journal & Retrospective

9월 회고 - Sequence of events

by Juhn with h 2025. 12. 16.

9월부터는 시간이 정신없이 흘러갔다. 바쁘게 지냈지만 돌아보면 '뭘 했지' 싶었던 9, 10, 11월. 그렇기에 뒤늦게라도 흩어져 있던 가닥들을 짝지어 보는 것도 나쁘지 않겠다. 

1. 우선 9월의 가장 큰 이벤트는 동생의 결혼식이었다. 매제가 될 사람이 집에 자주 들르게 됐다. 가족으로서 인사만 하고 말 수는 없는 법. 오빠가 여동생에게 줄 수 있는 가장 큰 선물은 가정에서 사랑받는 소중한 존재라는 걸 예비 신랑에게 보여주는 것이라고 생각한다. 동생과 남자친구가 오면 되도록 함께 시간을 보내려 했다. 고기도 먼저 굽고 정리도 먼저 하고... 집 정리에도 많은 시간을 썼다. 예비 신랑이 나중에 그렇게 해주길 바라며... 모처럼 늘어난 새 식구와 함께 즐거운 시간들을 보내긴 했지만 개인 일과 측면에서 보면 하루의 흐름이 불시에 많이 깨지곤 했다. 

여동생의 결혼이라는 게 알게 모르게 내게 심리적인 영향을 많이 줬던 거 같다. 아직 어린 여동생을 너무 일찍 누군가에게 빼앗긴 거 같은 느낌도 들고, 나는 누구를 언제 만나서 결혼하나 하는 생각도 들었다. 자리 잡지 못하고 있는 내 비루한 현실에 대한 자각까지... 크고 작은 이벤트가 있을 때마다 갖은 감정들이 찾아왔고, 나는 애써 무시하며 내 할 일을 하고자 버텼다.  

2. 코딩 테스트 연습을 시작했다. 구직에 있어 가장 걱정되는 건 과제와 코테였다. 과제는 "잘 만들어야 한다"는 부담감이 싫었고, 코딩 테스트는 제대로 준비해본 적이 없었다. 명색이 프로그래머인데 코테라는 말만 들으면 작아졌다. 프로그래머스에 들어가 문제를 풀기 시작했다. 기초부터 시작해 입문 문제까지 2주 동안 300여 문제를 풀었다.

우선 함수형 프로그래밍에 익숙해졌다. 문제 풀이 후 다른 사람들의 답을 보다 보면 짧고 간결한 풀이들은 시퀀스 함수들을 잘 활용한 경우들이 많았다. 리스트 뒤에 filter, map, apply, reduce, fold 같은 시퀀스 함수들과 withIndex, sorted 같이 자기 자신을 결과값으로 돌려주는 체인 연계가 가능한 메소드들을 조합하면, 마치 하나의 물 샐 틈 없는 파이프처럼 유려한 생산 공정이 만들어졌다. Flow, StateFlow를 쓰면서도 시퀀스 함수들을 써봤지만 가장 간결하고 아름다운 메소드 체인을 만들기 위해 그것만 파 본 것은 처음이었다. 내가 처음 시도한 답안이 그 누구의 답안보다 간결하고 가독성 좋고 아름다울 땐 희열을 느꼈고, 그 재미에 중독돼 문제를 계속 풀어 나갔다. 그러다가 예상치 못한 문제가 나타났다.

고심 끝에 만든 멋진 메소드 체인 답안들이 실행속도 초과로 실패 처리되기 시작했다. 안드로이드 개발자로서 보통 구현이 문제였지 속도가 문제였던 적은 거의 없었다. 앱에서 다루는 데이터는 길어봐야 몇백 안쪽이라서 리스트를 쓰던지 배열을 쓰던지, 어떤 메소드를 쓰던지 실행속도가 유의미하게 다르지 않았다. 그런데 크기가 1만 이상인 데이터들이 입력되는 문제를 풀어보니 실행속도가 느려 실패 처리되는 경우가 많았다. 마침내 리스트 대신 배열과 맵을 쓰니 시간이 수십분의 일로 획기적으로 단축됐다. 사실 그간의 개발자 생활 동안 배열은 문법 배울 때나 배웠지 리스트만 애정해왔는데 새 세상이 열린 기분이었다. 그동안 풀이들을 보면서 심미성(?)과 가독성을 기준으로 판단해왔는데 실행속도라는 안경이 추가되자 답안들이 달리 보였다. ms를 다투는 백엔드의 세상, 자료구조와 알고리즘의 세상이 보이기 시작한 것이었다. 

 3. 방송대 강의를 듣기 시작했다. 채용 제안을 받았고, '치킨 모임'에 나가 다양한 직무에 계신 분들을 만나 IT 분야 근황 토크를 나눴다. 미뤄두었던 캐나다 워홀 신청 프로세스를 시작했다. 가을 날씨를 놓칠 새라 불암산에 다녀왔고, 미국에서 친구가 와서 북한산을 올랐다.