'일단 돌아가게 해!'에서 '왜?'를 묻는 개발자로 - 2년차 성장 회고
1. 들어가며
개발자가 된 지 벌써 2년이 되었다. 작년 이맘때쯤 썼던 1년차 회고를 다시 읽어보니, 지금의 내가 어떻게 달라졌는지 비교해보면 재미있을 것 같다. 그래서 이번 글에서는 지난 1년 동안 어떤 경험을 했고, 어떤 성장을 했는지, 또 앞으로 무엇을 준비해야 할지를 정리해보려고 한다.
2. 2년차는 무엇이 달라졌을까?
“일단 돌아가게 해!” - 1년차의 나
1년차의 나는 요구사항을 빠르고 정확하게 구현하는 데 집중했다. 자바와 스프링 같은 기본 기술 스택을 익히고, 버그를 줄이기 위해 테스트 코드 학습에도 힘썼다. 처음에는 내가 배포한 기능에서 문제가 생기지 않을까 늘 긴장하곤 했다.
“왜?” - 2년차의 나
🔍 문제의 본질을 파고들기
2년차의 나는 조금 달라졌다. 단순히 기능을 구현하는 데서 벗어나 “왜?”를 먼저 고민하게 되었다.
데드락이 발생했을 때는 단순히 쿼리를 고치는 것으로 끝내지 않고, 왜 이런 상황이 생겼는지, 왜 로깅이 되지 않았는지를 끝까지 추적해 근본적인 개선을 했다. 원격진료 연결이 불안정할 때도 WebRTC 전 구간에 로그를 남겨 원인을 분석했고, 네트워크가 끊겼을 때 자동으로 재연결되는 로직을 도입했으며, 비정상 종료 후에도 다시 연결할 수 있도록 보완책을 마련했다.
🏗️ 복잡함을 단순하게 - 예약현황판 고도화
가장 핵심 업무였던 예약현황판 고도화에서는 객체지향 프로그래밍을 적용해 복잡한 로직을 단순화하고, 진료실이라는 새로운 도메인을 도입했다. 외부 교육과 스터디, 책, 그리고 AI까지 활용해 코드 가독성과 유지보수성을 높였고, 덕분에 버그는 줄었으며 문제가 발생하더라도 원인을 빠르게 파악할 수 있게 되었다.
🤖 AI와 함께 일하기
올해는 AI를 활용한 자동화에도 관심을 가졌다. n8n과 ChatGPT, Slack을 연동해 Merge Request에 AI 코드리뷰를 도입했고, 단순히 대시보드 링크만 던져주던 모니터링 알림은 Top 3 슬로우 쿼리를 바로 확인할 수 있도록 개선했다. 또 사내 개발자들이 최신 기술 트렌드를 쉽게 접할 수 있도록 GeekNews 큐레이션 시스템도 만들었다.
돌아보면 2년차의 나는 단순히 “작동하는 코드”에 만족하지 않았다. “왜 그렇게 해야 하는가”를 끊임없이 묻고, 문제를 발견하면 개선으로 이어가려는 태도를 갖게 된 것이 가장 큰 변화였다.
대외 활동을 통한 시야 확장
👥 크래프톤 정글 - 가르치며 배우기
대외 활동을 통해 시야도 넓혔다. 가장 최근에는 크래프톤 정글 멘토링에 참여해 주니어 개발자들의 프로젝트를 돕는 과정에서, 내가 아는 것을 쉽게 풀어 설명하는 능력이 얼마나 중요한지 배웠다.
멘토링을 통해 알게 된 건 멘토는 정답을 주는 사람이 아니라, 자신의 경험과 생각을 나눠 상대방이 선택할 수 있도록 돕는 사람이라는 점이다. 또 복잡한 내용을 설명할 때 도식화의 중요성을 느꼈고, 어떤 선택이든 근거를 명확히 고민해야 한다는 사실을 다시금 되새길 수 있었다.
💰 토스 Learner’s High - ROI 기반 사고
토스 Learner’s High 프로그램을 통해서는 기술 선택에 ROI라는 기준을 두는 법을 배웠다. 단순히 어떻게 구현했는지가 아니라, 왜 이 방식을 택했는지, 이 선택이 어떤 비즈니스적 가치를 가져오는지를 먼저 고민하게 되었다. 또한 대규모 트래픽을 미리 고려하는 시야와, ‘아는 것’과 ‘설명하는 것’은 다르다는 사실도 체감했다. 이 경험은 실무에서도 선택과 설명을 더 깊이 고민하게 만드는 계기가 되었다.
✍️ 글또 - 문제 해결 중심의 글쓰기
글또 활동을 통해 글쓰기에 대한 인식도 크게 바뀌었다. 예전에는 책이나 강의 내용을 단순히 정리하는 수준이었지만, 지금은 실제 문제 해결 과정을 중심으로 글을 쓰게 되었다. 문제 → 해결 과정 → 배움이라는 구조를 잡고, 독자에게 도움이 될 수 있도록 관련 지식도 깊이 조사해 담았다. 덕분에 글쓰기가 더 많은 시간과 노력을 요구하는 활동이 되었지만, 동시에 더 가치 있고 애정이 생기는 작업으로 발전했다.
💎 NextStep - 테스트가 쉬운 구조 만들기
NextStep TDD/클린 코드 과정에서는 작은 과제를 끝까지 TDD로 밀어붙이는 연습을 했다. 자동차 경주, 사다리, 로또, LMS 과제를 통해 요구사항을 테스트로 번역하고, 빠른 사이클로 구현 → 리팩터링을 반복했다. 그 과정에서 값 객체와 일급 컬렉션으로 도메인을 모델링하고, 불변성과 생성자 유효성 검증으로 오류 지점을 앞단에서 차단하는 습관을 들였다. 랜덤·시간 의존성은 외부로 분리해 테스트 가능성을 높였고, 도메인 로직은 UI/인프라와 분리해 변경 영향도를 줄였다. 이런 연습이 실무에서도 “테스트가 쉬운 구조를 먼저 만든다”는 기준을 단단하게 해주었다.
이런 경험들은 모두 “왜?”라는 질문을 더 깊고 넓게 던질 수 있도록 도와주었고, 결국 실무와 배움이 자연스럽게 연결되는 발판이 되었다.
3. 앞으로의 방향
2년차까지는 “왜?”라는 질문을 던지며 문제를 개선하는 습관을 키웠다면, 이제는 그 경험들을 더 체계적으로 확장해보고 싶다.
1) 코드와 AI
지금까지 배운 객체지향 프로그래밍 원칙과 패턴을 바탕으로, 나만의 AI 마스터 프롬프트를 만들어볼 생각이다. 그동안 AI가 작성한 코드는 종종 품질 면에서 아쉬움이 있었다. 앞으로는 내가 직접 모든 코드를 작성하기보다 AI와 협업하는 비중이 더 커질 것이기에, 1·2년차 동안 쌓은 경험과 지식을 이 프롬프트에 녹여 AI가 일관되고 품질 높은 코드를 얼마나 빠르게 만들어낼 수 있는지 실험해보고자 한다.
2) 대규모 트래픽 대응
Redis를 모듈화했지만 아직은 트래픽이 많지 않아 적극적으로 활용하진 않고 있다. 다만 향후 대규모 트래픽이 몰릴 때 병목이 예상되는 구간에는 Redis 캐시나 분산 락을 도입해 서비스의 안정성과 사용성을 높일 계획이다. 또한 RabbitMQ 같은 메시지 브로커도 적극적으로 검토해, 개선할 수 있는 영역을 넓혀가고자 한다.
대규모 트래픽 환경에서는 무엇보다 빠른 장애 조치가 중요하다. 이번에 경험했던 데드락이나 WebRTC 연결 실패처럼 원인을 파악하는 데 시간이 오래 걸렸던 사례를 통해, 알림과 로그를 더 강화할 필요성을 크게 느꼈다. 앞으로는 부족한 로그를 보완하고, 엘라스틱서치·n8n·Slack을 조합해 단순한 알림이 아닌 의미 있는 알림을 뽑아낼 수 있도록 개선해 나가려 한다.
3) 비즈니스 임팩트
기술 개선뿐만 아니라, 사용자가 느끼는 비즈니스 가치에도 집중해보려 한다. 앞으로는 기술을 선택하거나 개선할 때 단순히 개선 포인트만 보는 데서 그치지 않고, ROI(Return on Investment)를 기준으로 내가 한 선택이 사용자에게 어떤 가치를 얼마나 줄 수 있는지를 함께 고민해 나가고 싶다.
4) 커뮤니케이션
앞으로도 글쓰기를 꾸준히 이어가고, 멘토링이나 북스터디 같은 활동을 통해 다른 개발자들과 경험을 나누며 함께 성장하고 싶다. 우물 안 개구리에 머무르지 않도록 다양한 사람들을 만나 배우고, 내 일에 적용하며, 더 넓은 시야와 다양한 생각을 키워갈 계획이다.
4. 마치며
하루하루 “내가 잘하고 있는 걸까?”를 고민하며 보낸 한 해였다. 하지만 이렇게 모아놓고 돌아보니, 생각보다 잘 해온 것 같다. 물론 여전히 부족한 점도 많다. 그래서 앞으로도 고민하고, 실행하고, 회고하는 과정을 끊임없이 반복하며 3년차도 나만의 방향을 따라 꾸준히 걸어가고자 한다.