0. Intro
2024년이 시작되면서 마음먹었던 목표는 매달 회고록을 써보는 것이었습니다. 계획은 거창했지만, 이번 글이 올해의 첫 번째이자 마지막 회고록이 되고 말았습니다.
돌이켜보면, 올해는 정말 다양한 시도를 했던 한 해였습니다. 분야를 가리지 않고 도전했고, 실패도 경험했으며, 성공도 맛볼 수 있었습니다.
회고를 어떻게 써야 할지 잘 몰라, 저는 월별로 한 번 정리해보기로 했습니다. 모든 것을 기억하기는 어렵겠지만, 차근차근 정리하다 보면 자연스럽게 떠오를 것이라고 생각합니다.
계획대로 매달 회고록을 작성했다면 이런 상황은 피할 수 있었겠지만, 결국 게으름을 이겨내지 못한 저의 탓입니다.
자료를 매번 기록해두는 편이 아니라 찾기가 어렵지만 열심히 모아서 기억해 보겠습니다..
사실 회고록은 반성문의 또 다른 이름이라고 생각합니다.
1. Jan.
작년 9월, GDSC DGU 활동을 시작하며 여러 대학들과 함께 연합 해커톤을 진행하게 되었습니다. 예전에 해커톤에 대한 좋지 않은 기억이 있어서 참가자로 나서지는 못하고, 이번에는 운영진으로 참여했습니다. 그것도 무려 홍보팀으로요!
운영진으로 활동하면서 가장 어려웠던 부분은 디자인 작업이었습니다. 사실 디자인은 예전부터 한 번쯤 해보고 싶었던 분야였지만, 차마 용기가 나지 않아 계속 미뤄왔던 일이었습니다. 그런데 이번 기회에 처음으로 피그마라는 툴을 사용하며 디자인에 도전하게 되었습니다.
결론부터 말하자면, 정말 힘들었습니다. 피그마는 저에게 너무 낯설고 어려운 도구였고, “이건 내가 건드릴 분야가 아니구나”라는 생각이 절로 들 정도였습니다. 특히 이번 해커톤의 컨셉이 “눈”과 관련된 주제였고, 메인 디자인 컨셉으로 도트 디자인을 선택하게 되면서 더욱 고생했습니다.
약 2주 동안 도트만 찍어내는 작업을 반복하며, “내가 지금 뭘 하고 있지?“라는 생각과 싸웠던 기억이 납니다. 이 경험을 통해 디자인은 정말 재능과 끈기가 필요한 분야라는 것을 깨달았습니다.
해커톤 운영진 활동 중 가장 후회됐던 점은 직접 참가자로 나서지 못했다는 점입니다. 운영진으로 대기하면서 참가자들이 팀원들과 함께 개발하는 모습을 볼 때마다 너무 부러웠습니다. “내가 저기 있어야 하는데…“라는 생각이 머릿속을 떠나지 않았습니다.
여차저차 해커톤은 잘 마무리되었지만, 아쉬움과 후회가 많이 남았던 활동이었습니다.
작년 4월부터 시작했던 Farm System 동아리 활동도 올해 마무리되었습니다. 돌이켜보면, 이 프로젝트는 정말 용두사미의 끝판왕이 아니었나 싶습니다.
초기에는 모두가 만족할 수 있는 거창한 결과물을 만들고자 큰 목표를 세웠습니다. 하지만 시간이 지나면서 계획은 점차 축소되었고, 프로젝트에 참여하는 인원들도 하나둘씩 줄어들기 시작했습니다.
그래도 이번 프로젝트가 의미 없었던 것은 아닙니다. FastAPI로 감정분석 모델을 서빙하고, Netflix Eureka와 Spring Gateway를 활용해 API를 라우팅하며 Expo를 통해 모바일 환경에서 어플리케이션을 개발했습니다.
물론 중간에 문제가 생겼습니다. 라이브러리 지원 중단이라는 난관이 발생한 것이죠.
결국 지인의 추천으로 Flutter를 시작하게 되었고, 그때 배운 플러터 기술이 한동안 저를 먹고살게 해주었습니다. 지금 돌이켜보면 정말 신의 한 수였다고 생각합니다.
결과적으로 이번 활동으로 상을 하나 받는 데 성공했습니다. 기억이 잘 나진 않지만, 어쨌든 괜찮은 결과였던 것 같아요. 생각해보니 이 상이 제가 학교에서 받은 첫 상이었네요. 학교를 4년이나 다녔는데, 4학년이 되어서야 겨우 상을 받다니... 감회가 새롭습니다.
9월부터 시작했던 활동들, 그리고 1월의 새로운 도전까지… 돌이켜보면 정말 많은 일이 있었던 한 해였습니다. 아쉬움과 배움이 교차하는 시간이었지만, 결국 이 모든 경험이 앞으로 더 나아갈 발판이 될 것이라고 믿습니다.
2. Feb.
2월에는 꽤 많은 일들을 하며 바쁘게 보냈던 것 같습니다. 크게 3개의 프로젝트를 진행했는데, 그 중 하나는 지인의 헬프콜로 참여한 동아리 프로젝트였습니다. 이번에는 웹 프로젝트였네요.
사이드 프로젝트 개념으로 "한 번 해보면 재미있지 않을까?" 싶어서 참가했는데, 평소에 다뤄볼 생각도 없었던 기술 스택들을 사용해보니 나름 재미있었습니다. 이때 배웠떤 웹 기술이 9월부터 12월까지 프론트엔드 개발자로서의 활동에 많은 도움이 되었던 것 같습니다.
사실 2월에는 제가 한국에 없었습니다. 해외학술탐방이라는 프로그램에 지원해서, 2월의 절반을 유럽에서 보냈습니다. 여행의 설렘도 있었지만, 프로그램의 특성상 주어진 퀘스트를 해결해야 했기에 색다른 경험을 할 수 있었습니다.
주제는 환경 보호였고, 이를 기반으로 다양한 활동을 진행했습니다. 예를 들어, 센강에서 플로깅을 하며 환경 보호의 중요성을 느끼기도 했고, 주변 대학교에서 인터뷰를 진행하며, 환경과 관련된 유럽의 시각과 노력을 배우는 기회도 가졌습니다. 물론 여행이 주된 목적이었지만, 이런 퀘스트들이 있어 더 의미 있는 시간이 되었던 것 같습니다.
여행 중에 간단한 브이로그를 촬영해왔습니다. 사실 "조회수가 잘 나오면 여행 유튜버로 데뷔할 수 있지 않을까?"라는 생각도 잠깐 했었습니다.
하지만, 조회수 모으는 게 생각보다 쉽지 않았습니다. 지금 조회수의 절반 정도는 제가 올린 것 같네요. 😂 여행 내내 카메라를 들고 다니는 게 익숙하지 않아서 대부분 찍히는 입장에 머물렀고, 그래서 영상에 제 모습이 자주 등장합니다. 카메라 너머로 보는 여행의 모습도 신선했지만, 저와 함께한 이 순간들이 브이로그로 남아 있어 기쁘기도 합니다.
마침 여행 일정에 GDSC Solution Challenge와 겹치면서, 유럽에서 개발하는 특별한 경험을 하게 되었습니다. 물론 쉬운 일만 있었던 것은 아닙니다. 예를 들어, Gemini API가 유럽에서 지원되지 않는 문제를 겪어, 어쩔 수 없이 VPN을 구매해서 개발해야 했던 해프닝도 있었습니다. 나름 고생스러웠지만, 이 또한 잊지 못할 재미있는 추억이 되었습니다.
2월은 한국이 아닌 유럽에서 새로운 환경과 기술, 그리고 다양한 문화를 경험하며 잊지 못할 시간을 보낸 달이었습니다. 프로젝트와 여행, 그리고 개발까지 모든 것이 어우러져 정말 특별한 한 달이었습니다..!
3. Mar.
3월 네트워크 보안과 관련된 연구 활동을 본격적으로 시작했습니다. 연구의 주제는 악성 패킷을 분류하고 이를 차단한느 시스템을 설계하며, 이를 기반으로 실험과 시뮬레이션을 진행하는 것이었습니다.
기존에 악성 패킷 분류 모델은 이미 만들어진 상태였고, 저는 이를 활용해 실시간으로 패킷을 차단하는 시스템을 설계하고 실험하는 역할을 맡았습니다.
패킷 처리 속도를 향상시키는 것이 연구의 핵심 과제 중 하나였기에, 이를 해결하기 위해 이벤트 기반의 시스템을 구성했습니다. 이벤트 기반 시스템은 비동기적으로 작업을 처리하며, 네트워크 환경에서 효율성을 극대화하는 데 적합했습니다.
패킷 처리 속도를 향상시키는 것이 연구의 핵심 과제 중 하나였기에, 이를 해결하기 위해 이벤트 기반의 시스템을 구성했습니다. 이벤트 기반 시스템은 비동기적으로 작업을 처리하며, 네트워크 환경에서의 효율성을 극대화하는 데 적합했습니다.
또한, 모델을 서빙하기 위한 프레임워크로 FastAPI를 선택했습니다. FastAPI는 경량화된 프레임워크로, 높은 성능과 빠른 응답 속도를 제공하기 때문에 이번 연구의 요구사항에 잘 맞았습니다. 이를 통해 악성 패킷을 실시간으로 감지하고 차단하는 시스템을 구축할 수 있었습니다.
연구 실험을 진행하기 위해, 실제 네트워크 환경을 구축하는 작업도 진행했습니다. 실험 환경을 위해 데스트톱에 리눅스를 설치하고, 이를 연구의 베이스 시스템으로 사용했습니다. 데스트콥과 공유기를 직접 연결하여 실제 네트워크과 유사한 베어메탈 환경도 구성해보고, 설정한 환경에서 실제로 악성 패킷을 네트워크로 전송하며, 시스템의 대응 속도와 효율성을 검증했습니다.
연구의 실험 결과가 만족스러운 수준은 아니었지만, 시뮬레이션 실험 과정 자체는 매우 흥미로운 경험이었습니다. 특히, 시스템 설계부터 네트워크 환경 구성, 그리고 실험을 통해 데이터를 수집하는 모든 과정이 저에게 큰 배움과 영감을 주었습니다.
이번 연구를 통해 얻은 가장 큰 교훈은 이론과 실제의 차이입니다. 설계 단계에서 완벽하다고 생각했던 시스템도 실제 환경에서는 예상치 못한 변수들이 나타나며 원하는 결과를 얻기 어려운 경우가 많았습니다. 이 과정에서 유연하게 문제를 해결하는 능력의 중요성을 다시금 깨달았습니다.
4. Apr.
우연히 외주 작업을 맡게 되었습니다. 외주 업체를 통해 진행한 것이 아니라, 지인의 소개로 프로젝트에 참여하게 된 것이었는데, 그 자체로도 큰 도전이자 새로운 경험이었습니다.
외주의 주요 개발 업무는 기존 프로젝트에 대한 시스템 리엔지니어링과 API 개발이었습니다. 특히, 시스템 구조를 새롭게 설계하고, 데이터베이스부터 API까지 최적화하는 과정이 포함되어 있었습니다.
작업 초반에 가장 큰 과제는 데이터베이스 설계였습니다. 단순히 기존의 데이터베이스를 개선하는 수준이 아니라, 확장성과 유지보수성을 염두에 둔 새로운 구조를 설계해야 했습니다.
확장성을 고려하다 보니 설계가 점점 복잡해졌고, 그 과정에서 여러 번의 고민과 수정을 반복해야 했습니다. 하지만 결국, 많은 고민 끝에 데이터를 효율적으로 처리할 수 있는 구조를 완성할 수 있었습니다. 이과정은 제게 데이터베이스 설계의 중요성과, 단순히 작동하는 수준을 넘어 장기적인 관점에서의 설계가 얼마나 중요한지를 깨닫게 해준 시간이었습니다.
데이터베이스 설계가 끝난 후, 본격적으로 API 개발에 착수했습니다. 이 과정에서 QueryDSL을 도입하고, 이를 활용해 API 성능을 최적화하는 작업까지 진행했습ㄴ디ㅏ. 새로운 기술을 도입할 때마다 느끼는 설렘은 이번에도 예외가 아니었습니다.
QueryDSL을 배우고 적용하는 과정은 생각보다 쉽지 않았지만, 이를 활용해 성능을 개선하고 효율적인 쿼리 처리를 구현해 나가는 과정은 정말 흥미로웠습니다. 특히, 새로운 기술을 배우고, 실제 프로젝트에 적용해 성과를 내는 경험은 언제나 큰 동기부여가 됩니다.
프로젝트가 마무리된 후, 제가 개발한 부분을 되돌아보며 "지금 다시 개발한다면 더 효율적으로 할 수 있지 않을까?"라는 생각이 여러 번 들었습니다. 당시에는 제가 가진 기술과 지식을 최대한 활용한다고 느꼈지만, 시간이 지나며 실력과 경험이 쌓이니 더 나은 방법들이 떠오르게 되었습니다.
이번 외주작업은 단순히 개발을 넘어, 제 실력을 객관적으로 확인할 수 있는 좋은 기회이기도 했습니다. 내가 어느 정도의 수준인지, 또 어떤 부분에서 더 발잔해야 할 지 명확히 알 수 있었습니다.
5. May.
5월은 가정의 달이라 가정에 충실했습니다.
6. Jun.
한 학기 동안 열심히 참여했던 정보통신공학과의 졸업작품(캡스톤디자인)과 지인을 도와 수강했던 컴퓨터공학과의 종합설계를 모두 마무리했던 달이었습니다. 두 프로젝트는 각각의 의미와 도전이 있었지만, 특히 캡스톤디자인에서 제작했던 졸업작품에 대한 애정이 더욱 깊게 느껴지는 시간이었습니다.
사실 캡스톤디자인 과정 자체는 그리 순탄치 않았습니다. 팀원을 모집하는 것부터 주제를 정하는 것까지 매우 어려운 과정을 겪었습니다. 기존에 함께 진행하려던 팀원들과 헤어지게 되면서 새로운 팀원을 구해야 했고, 팀원들의 기술 스택을 고려하며 작업을 분배하려다 보니 많은 시간이 소요되었습니다.
또한, 클라우드 지원을 기대하며 한이음 멘토링에 주제를 제출했지만, 탈락하는 바람에 지원을 받지 못한 상태에서 프로젝트를 시작하게 되었습니다. 이러한 상황은 프로젝트 초반부터 팀의 동력을 약화시켰고, 교수님과의 미팅에서도 다양한 이유로 질타를 받는 일이 빈번했습니다. 프로젝트 규모는 예상보다 점점 커졌고, "과연 이걸 끝낼 수 있을까?"라는 생각이 들기도 했습니다.
그러나 사용자 어플리케이션 개발에 들어서면서, 올해 초에 배웠던 Flutter 기술이 큰 도움이 되었습니다. 온새미로 프로젝트에서는 Flutter로 모바일 어플리케이션을 개발하며 기술적으로 성장할 수 있는 기회가 되었습니다.
프로젝트의 서버 인프라 구축도 쉽지 않았습니다. 다양한 서버 기술을 테스트하기 위해 Express, Django 등 여러 프레임워크를 사용했지만, 금전적인 제약으로 인해 한 서버에 Docker Network를 활용해 네트워크를 구축하고 라우팅하는 방식을 채택했습니다. 당시에는 스스로 기발한 방법이라고 생각했지만, 돌이켜보면 많은 개발자들이 비슷한 방식으로 접근하고 있다는 것을 알게 되었습니다. 이러한 경험은 실제로 비용 효율적이고 유연한 네트워크 설계를 배우는 계기가 되었습니다.
컴퓨터공학과의 종합설계는 정말 하나의 큰 도전이었습니다. 주제가 미리 정해져 있었고, 모든 프로젝트가 AI를 필수 요소로 포함해야 했기 때문에 작업 난이도가 상당히 높았습니다. 특히, 신기술에 대한 호기심이 많은 저로서는 새로운 기술을 도입하고 싶은 욕심이 커졌습니다.
처음에는 기존의 AI 모델을 사용하는 방식으로 접근하려 했지만, 프로젝트 목표를 충족할 만큼 높은 정확도를 가진 모델이 없어 새로운 모델을 직접 설계해야만 했습니다.
논문을 찾아 모델의 기초가 될 수식을 바탕으로 알고리즘을 구현했고, 학습 데이터를 반복적으로 조정하며 모델을 최적화했습니다. 더불어, 지속적인 모델 학습과 배포를 효율적으로 관리하기 위해 MLOps를 적용하고자 했습니다.
이를 위해 BentoML이라는 MLOps 도구를 활용하려 했지만, 약 2개월의 시간을 투자하고도 제대로 활용하지 못했습니다. 서버를 따로 제공받지 않은 상태에서 MLOps 환경을 구축하는 것은 생각보다 훨씬 어려웠고, 결과적으로 모델 학습에만 한 달 이상을 소비하게 되었습니다. 돌이켜보면, 해당 프로젝트에 가장 적합하지 않은 선택이었을 수도 있다는 생각이 듭니다.
결국, 이러한 어려움 속에서도 캡스톤디자인과 종합설계 모두 1등을 차지하며 각각 상을 받을 수 있었습니다. 이 결과는 단순히 기술적 성과를 넘어, 어려운 상황에서도 끝까지 도전하며 해결책을 찾아낸 경험을 통해 얻어진 값진 성과라고 생각합ㄴ디ㅏ.
캡스톤디자인에서는 팀 구성과 프로젝트 기획의 어려움을 극복하며 협업의 중요성을 깨달았고, 종합설계를 통해 새로운 기술과 도구에 도전하는 과정에서의 시행착오를 경험하며 기술 선택의 중요성을 배웠습니다.
이 두 프로젝트는 제게 큰 교훈을 남겼습니다. 프로젝트 초기의 계획과 현실 사이의 괴리를 이해하고, 새로운 기술을 도입할 때는 팀의 상황과 필요에 맞는지 신중히 판단해야 한다는 점을 깊이 깨달았습니다. 이러한 경험을 바탕으로 앞으로 더 나은 개발자가 되기 위해 꾸준히 성장해 나갈 것입니다.
7. Jul.
약 6개월간의 기획과 디자인 작업이 마무리되고, 본격적으로 개발에 돌입했던 시기였습니다. 목표는 8월 출시였고, 이를 맞추기 위해 밤낮없이 개발에 매달렸습니다. 지금 돌아보면 "7월이라는 달이 내게 존재했었나?" 싶을 정도로 정신없이 흘러간 기억뿐입니다.
개발해야 할 API의 수는 약 40개, 그리고 화면은 20개 정도였습니다. 겉보기에는 크지 않은 작업량처럼 보일 수도 있었지만, 이를 한 달 안에 완료해야 한다는 압박감은 상상 이상이었습니다.
특히, 개발팀 상황도 도전적이었습니다. 팀원 한 분은 미국에 계셨고, 또 다른 분은 본가에 내려가 계셔서, 실질적으로 사무실에 홀로 남아 개발을 담당해야 했습니다. 혼자 있는 시간이 많아지니 정신적으로도 힘들었던 것 같습니다.
혼자 사무실에 있다 보니 귀찮아서 밥도 제대로 챙겨 먹지 않고 개발했던 날들이 많았습니다. 주말조차도 쉬지 않고 계속 작업하며, 그야말로 개발에 몰입한 한 달이었습니다.
처음으로 다른 사람들이 사용할 로직을 개발한다는 생각에, 모든 작업을 꼼꼼하게 처리하려고 노력했습니다. 로직이 복잡한 경우도 있었지만, 철저한 검증을 거치려다보니 작업 속도가 느릴 수밖에 없었습니다.
특히, 한 API를 개발하는 데만 5~6 시간이 소요되었고, 하루에 개발할 수 있는 시간이 제한적이었습니다.
시간이 촉박하다 보니 왼쪽 화면에는 Flutter를, 오른쪽 화면에는 Spring을 띄워두고 병렬로 작업했던 기억이 납니다. 이런 작업 환경은 순간적으로는 효율적일 수 있었지만, 개발의 질과 제 개인적은 건강에는 결코 좋은 방식이 아니었다고 생각합니다.
솔직히 말하자면, 다시는 이렇게 개발하고 싶지 않습니다.
물론, 이번 경험을 통해 많은 것을 배웠습니다. 하지만 이러한 성장에도 불구하고, 성과가 충분하지 않았던 점은 개인적으로 아쉬움이 남습니다. 결과적으로 금융치료가 있었더라면 다시 할 의지가 생길지도 모르겠지만, 이번에는 그렇지 않았기에 더욱 그런 생각이 드는 것 같습니다.
이번 경험은 저에게 성장의 기회와 한계의 시험을 동시에 제공한 시간이었습니다. 7월이라는 한 달은 몸도 마음도 힘들었지만, 그 속에서 배운 것들이 앞으로 더 나은 개발자가 되는 밑거름이 될 것이라고 믿습니다.
다만, 다음번에는 더 효율적이고, 팀과의 협업을 통해 혼자가 아닌 함께 할 수 있는 환경에서 개발하고 싶습니다. 또한, 작업 속도와 품질 사이에서 적절한 균형을 찾으며, 건강을 챙기는 방식으로 개발을 진행할 수 있기를 바랍니다.
8. Aug.
학기 초 신청했던 SW 개발자 양성과정을 통해 참가했던 벤처스타트업 아카데미 해커톤에서 뜻깊은 경험을 했던 달이었습니다. 운이 좋게도 1등을 차지하며, 중소벤처기업부 장관상과 함께 상금을 수령하는 영광을 안았습니다.
이번 해커톤의 주제는 학교를 더욱 이롭게 만들기 위한 비즈니스 서비스 기획 및 개발이었습니다. 주제를 접했을 때, 학교라는 공간을 개선하기 위해 기술적으로 어떤 접근을 할 수 있을지 고민하게 되었습니다.
운이 좋게도 팀 내에 Langchain을 공부하고 있는 팀원이 있었고, 이를 기반으로 서비스의 핵심 기술을 설계하기로 했습니다. 해커톤의 주요 기술적 포인트는 다음과 같았습니다.
- STT를 활용한 실시간 답변 기능
- 반복적인 질문에 대해 생성형 AI를 활용하여 대응하는 기능
이 프로젝트는 단순히 챗봇에 의존하지 않고, 생성형 AI를 다양한 방식으로 활용할 수 있는 가능성을 보여주는 사례였습니다. 예전에는 생성형 AI를 활용한 서비스라고 하면 대게 챗봇과의 연계를 떠올렸지만, 이번 프로젝트를 통해 AI 기술의 활용 범위가 훨씬 넓다는 것을 깨달았습니다. 실제로 비슷한 아이디어가 이미 다른 기업에서 구현되고 있다는 사실도 알게 되었고, 이 분야의 무한한 가능성을 실감할 수 있었습니다.
특히, 단순히 Langchain과 생성형 AI를 사용하는 데 그치지 않고, 프롬프트 엔지니어링에 대한 이해를 더욱 심화시켰습니다. 특히, 논문 Prompting Paradigms for Generative AI를 참고하며, 프롬프트 설계와 최적화의 중요성을 배웠습니다.
이번에도 프론트엔드 개발자로 해커톤에 참여했는데, 부족한 점을 많이 느끼며 성장할 수 있는 계기가 되었습니다. 사용자 경험을 극대화하기 위해 UI/UX를 설계하고, 생성형 AI와 연계된 인터페이스를 개발하는 과정에서 기술적으로나 협업 측면에서 많은 것을 배웠습니다. 해커톤이라는 짧은 시간 안에 서비스를 기획하고 개발하는 과정은 언제나 도전적이지만, 그만큼 빠르게 성장할 수 있는 환경이라는 점을 다시 한 번 느꼈습니다.
해커톤이 끝난 후, 해당 프로젝틀르 발전시키기로 결정해서 혜윰-모들이라는 더 큰 프로젝트로 이어졌습니다. 해커톤 당시의 아이디어와 기술을 기반으로, 학교와 관련된 비즈니스 서비스의 실현 가능성을 높이기 위해 추가적인 연구와 개발을 진행했습니다. 이 과정은 단순히 해커톤의 성과를 넘어, 하나의 완성도 높은 프로젝트로 발전시키는 과정이었기에 더욱 뜻깊었습니다.
이번 해커톤은 단순히 수상으로 끝나는 것이 아니라, 기술적으로나 개인적으로 많은 깨달음을 준 시간이었습니다. 특히, 생성형 AI와 Langchain을 활용한 새로운 접근 방식을 통해 기술의 가능성을 다시 한 번 느낄 수 있었고, 팀원들과의 협업 속에서 부족한 점을 보완하며 한층 더 성장할 수 있었습니다.
9. Sep.
시장에서의 경쟁력을 확인하기 위해 여러 회사에 이력서를 만들어 제출해보았습니다. 이름만 들어도 "우와"할 만한 회사에도, 어디서 나왔는지 모를 자신감을 가지고 도전했습니다. 솔직히 말하면, 철저히 준비하지는 못한 상태였지만, 그래도 "지금의 나를 한 번 증명해보자"라는 마음으로 과감히 이력서를 보냈습니다.
결과는 의외로 나쁘지 않았습니다. 스스로 "대충 만들었다"고 생각한 이력서와 포트폴리오로도 서류 합격을 경험할 수 있었습니다. 이는 저에게 예상치 못한 자신감을 심어주기도 했습니다. 하지만 서류 통과가 끝은 아니었습니다. 면접에서는 냉정한 평가와 부족한 점을 깨달으며, 결과적으로 좋은 성과를 얻지는 못했습니다.
그럼에도 불구하고, 면접은 저에게 많은 것을 배우는 계기가 되었습니다. 내가 어떤 부분에서 부족한지, 그리고 앞으로 어떤 방향성을 가지고 준비해야 하는지를 면접 질문을 통해 구체적으로 알게되었습니다.
면접 준비를 하며 가장 많이 부딪혔던 것은 바로 "왜?"라는 질문이었습니다. 이력서에는 "저는 항상 이유를 찾고 깊게 탐구하려 노력한다"고 적었지만, 막상 면접 준비를 하다 보니 "이걸 왜 했지?"라는 질문에 스스로도 명확히 답하지 못하는 경우가 많았습니다.
예를 들어, 특정 기술을 선택한 이유나 프로젝트에서 사용했던 방법론의 의도를 물어보면 순간적으로 머릿속이 하얘지곤 했습니다. 이를 해결하기 위해 제가 해왔던 작업의 목적과 이유를 명확히 정리하고, 구체적인 사례를 기반으로 준비하려 노력했습니다. 제 경험을 논리적으로 정리하고 내면화하는 데 큰 도움이 되었습니다.
이번 경험을 통해 성공적인 결과를 얻는 것도 중요하지만, 실패를 통해 배우는 것이 더 값진 자산이라는 것을 깨달았습니다. 서류 통과나 면접 합격 자체가 목표가 아니라, 그 과정을 통해 부족한 점을 채우고, 저 자신을 성장시키는 것이 더 중요한 일이라는 사실을 배웠습니다.
앞으로는 단순히 이력서를 제출하거나 면접에 응하는 것을 넘어서, 깊이 있는 고민과 준비를 통해 명확한 이유를 가지고 도전하는 개발자가 되고 싶습니다. 또한, 실패를 두려워하지 않고, 도전을 통해 계속해서 배우는 자세를 유지하며 앞으로의 길을 걸어가고자 합니다.
10. Oct.
올해 3월부터 시작했던 SW 개발자 양성과정이 어느덧 마무리 단계에 접어들었습니다. 그 과정을 통해 최우수 수료자로 선정되어, 중소벤처기업부 장관상을 한번 더 수상하려 코엑스를 방문하게 되었습니다.
수상식은 직업 박람회와 함께 진행되었기에, 다양한 기업들이 부스를 운영하며 직업 설명회와 면접 기회를 제공했습니다. 당시에는 이 자리가 단순히 수상식이라고만 생각했지만, 뒤늦게 "이렇게 회사를 나오게 될 줄 알았더라면, 그 자리에서 면접이라도 몇 번 봤더라면 좋았을 텐데"라는 아쉬움이 들었습니다.
하지만 이미 지나간 일이고, 후회해도 소용없다는 걸 잘 알기에, 수상 자체에 더 집중하며 감사한 마음을 가지려 했습니다.
사실 최우수 수료자라는 타이틀을 받을 수 있다는 사실이 아직도 믿기지 않습니다. 제게 특별히 높은 학점이 있었던 것도 아니었고, 추가 가점을 받을 만한 활동은 해커톤에서 우승한 경험뿐이었습니다. 그래서 제가 이 상을 받을 자격이 충분한지 스스로에게 의문이 들기도 했습니다.
하지만 곰곰이 생각해보면, 노력의 결실을 인정받는 순간이라는 사실에 감사하고, 자부심을 가져도 된다고 느꼈습니다. 성적만으로 판단할 수 없는 많은 요소들이 있었고, 그 과정에서 제가 노력한 시간과 열정이 빛을 발했던 것 같습니다.
이번 수상을 계기로, 개발자로서 더 큰 목표를 세우고 성장하기 위해 노력해야겠다는 다짐을 하게 되었습니다. 수상은 단순히 끝이 아니라 새로운 시작이라는 생각으로, 앞으로 더 열심히 나아가고자 합니다.
언젠가 코엑스에서 다시 한 번, 이번에는 더 큰 자리에서 자신 있게 서 있을 날을 기대하며, 지금의 이 순간을 제 커리어의 밑거름으로 삼겠습니다.
11. Nov.
한국창의재단에서 개최한 SW데모데이와 구름톤유니브에서 주최한 단풍톤 해커톤에 멘토로 참여하며 뜻깊은 시간을 보냈습니다. 예전부터 멘토 활동을 한 번쯤 해보고 싶다고 생각했었는데, 좋은 기회가 생겨 두 행사에 참여하게 되었습니다. 이번 경험은 단순히 제가 가진 지식을 나누는 것을 넘어, 새로운 인사이트를 얻고 성장할 수 있는 시간이었습니다.
SW데모데이는 전국의 중학생과 고등학생들이 짧게는 2주, 길게는 3개월 동안 준비한 소프트웨어 및 하드웨어 프로젝트를 전시하는 행사였습니다. 저는 이들의 프로젝트를 보고, 피드백을 제공하며 평가하는 역할을 맡았습니다.
행사를 진행하면서 문득 "내가 중학생이나 고등학생 때 이런 행사가 있었다면 참가했을까?"라는 생각이 들기도 했습니다. 그 나이에 이런 기회를 경험할 수 있는 학생들이 부럽기도 했고, 이들이 보여준 열정과 창의성은 제게도 큰 자극이 되었습니다.
3일간의 데모데이에서는 약 100팀에 가까운 프로젝트를 직접 보고 평가하며, 다양한 시각과 접근 방식을 배울 수 있었습니다. 특히, 학생들이 예상치 못한 방법으로 문제를 해결하려는 모습을 보며 놀랐고, 그들의 해결 방식을 따로 정리해두며 제 개발 여정에도 참고하려 하고 있습니다.
이 경험은 “새로운 문제를 해결하는 방식은 다양할 수 있다”는 사실을 다시금 깨닫게 해준 값진 시간이었습니다.
구름톤 유니브에서는 백엔드 멘토로 참여했습니다. 해커톤 행사 당일에는 참가자들이 겪는 문제 해결을 돕는 역할을 했고, 본선 심사에도 참여하며 다양한 팀의 결과물을 평가했습니다.
행사에서 가장 많이 받았던 질문 중 하나는 CORS 문제에 관한 것이었습니다. 저 역시 처음 프로젝트를 진행할 때 CORS 문제로 인해 헤매던 기억이 있어서, 참가자들의 질문이 더 반갑게 느껴졌습니다. 그때의 저와 같은 고민을 하는 참가자들에게 해결 방법을 알려주며, 더 열심히 도와주고 싶다는 의욕이 생겼습니다.
CORS는 백엔드 개발에서 자주 마주치는 문제 중 하나이지만, 해결 과정을 제대로 이해하지 못하면 큰 벽으로 느껴질 수 있습니다. 참가자들에게 문제의 근본적인 원인과 해결 방법을 설명하며, 단순한 문제 해결을 넘어 개발 과정에서의 사고 방식을 전하려 노력했습니다.
본선 심사에서 가장 큰 화두는 오버엔지니어링이었습니다. 특히, 기본적인 라이브러리로도 충분히 구현 가능한 기능에 대해, 새로운 라이브러리를 추가하며 종속성을 늘리는 것이 과연 적절한 선택인지가 주요 평가 기준이었습니다.
예를 들어, 단순한 데이터 검증을 위해 대규모의 검증 라이브러리를 도입하거나, 간단한 요청 처리에 과도한 아키텍처 설계를 적용하는 사례들이 눈에 띄었습니다. 이를 보며, “어디까지가 필요한 설계이고, 어디서부터가 불필요한 복잡성일까?“라는 고민을 깊게 하게 되었습니다.
오버엔지니어링은 개발자라면 누구나 한 번쯤 직면하는 주제입니다. 이런 고민을 통해 적절한 기술 선택의 중요성과 프로젝트의 본질에 집중하는 법을 다시 한 번 되새길 수 있었습니다.
이번 두 행사는 단순히 멘토로 참가자들을 돕는 활동을 넘어, 저 스스로에게도 많은 배움과 성장의 기회가 되었습니다.
학생들의 문제 해결 방식은 저에게 큰 자극이 되었습니다. 예상치 못한 방법으로 문제를 풀어가는 모습을 보며, 개발자의 본질은 "창의적으로 문제를 해결하는 사람"이라는 점을 다시 깨달았습니다. 또한, 참가자들이 CORS 문제로 어려움을 겪는 모습을 보며, 초보 시절 저의 모습을 떠올릴 수 있었습니다. 단순히 문제를 해결해주는 것을 넘어서, 그 과정을 이해하고 적용할 수 있도록 돕는 것이 멘토의 역할이라는 점을 느꼈습니다. 마지막으로, 오버엔지니어링에 대한 고민을 통해, 기술 선택에서 복잡성과 효율성의 균형을 맞추는 것이 얼마나 중요한지 깨달았습니다. 프로젝트의 본질과 목표를 잃지 않고, 필요한 만큼의 설계를 유지하는 것이 중요한 교훈으로 남았습니다.
12. Dec.
12월은 뷰팜에서의 일정을 마무리하며 바쁘게 달려온 한 해였습니다. 특히 기존에 계획했던 프로덕트를 마무리해야 했기 때문에 정신없이 보냈던 한 달이었습니다. 2개의 SPA 앱과 하나의 Next.js 기반 웹을 주관하여 개발하며 다양한 경험을 쌓았습니다.
그 과정에서 클라이언트 측 데이터 검증의 중요성을 느껴, 이를 개선하기 위해 새로운 라이브러리를 도입하게 되었습니다. zod 라이브러리를 활용해 클라이언트 검증 로직을 효율적으로 개선했으며, 이과정에서 배운 내용을 간단히 블로그에 정리해 공유하기도 했습니다.
지난 11월에 있었던 SW 데모데이 및 따로 진행했던 해커톤에 대한 시상식에 참여했습니다. 이번 행사는 서울이 아닌 대전에서 열렸기에, 본가에 들를 기회도 생겨 잠시 방문하고 왔습니다. 행사에서는 멘토들과 대화할 수 있는 시간이 더 많이 있었고, 다양한 의견을 교환하며 유익한 경험을 쌓았습니다.
특히 이번에도 중학생 및 고등학생들과의 멘토링을 진행했는데, 주된 내용이 진로 상담이었습니다. 이전 멘토링이 프로젝트 위주였다면, 이번에는 학생들의 진로 고민을 듣고 함께 방향성을 고민하는 멘토링을 진행했습니다. 학생들의 질문을 받으며, 저 또한 저의 과거와 현재를 되돌아보게 되는 뜻깊은 시간이었습니다.
학생으로서 받을 수 있는 마지막 상을 수상하며 한 해를 마무리 했습니다. 연계전공에서 진행했던 졸업프로젝트를 발전시켜, SW 개발자 양성과정의 마무리 단계인 산학연계 프로젝트에 출품하였고, 발표회에서 좋은 결과를 얻어 상을 받을 수 있었습니다.
집으로 돌아와 그동안 받은 상장들을 정리하며 혼자만의 시간을 가졌습니다. 생각보다 많은 상장이 모여 있는 것을 보며, "아, 나는 그래도 열심히 살기 위해 노력했구나"라는 생각이 들었습니다.
사실 2023년은 저에게 실패의 해라고 느껴졌습니다. 상 하나를 목표로 공부하고 노력했지만, 결과는 제 기대에 미치지 못했고, 스스로에게 화를 내며 힘든 시간을 보내기도 했습니다. 실패는 괴로웠지만, 그 경험이 있었기에 저는 더욱 성장할 수 있었다고 생각합니다.
2024년에는 이러한 실패를 딛고 노력한 결과로 약 10개의 상을 받을 수 있었습니다. 단순한 성과로 끝나는 것이 아니라, 더 열심히 하라는 의미로 받아들이고 있습니다. 이제는 이 성과를 바탕으로 2025년에는 더 큰 성장을 이루는 한 해를 만들어갈 계획입니다.
2024년은 성장의 해였습니다. 개발자로서의 기술뿐 아니라, 실패를 통해 얻은 교훈, 그리고 이를 바탕으로 이뤄낸 성과를 통해 스스로를 증명할 수 있었습니다. 하지만 여기서 멈추지 않고, 2025년에는 이 경험들을 토대로 더 높은 목표를 세우고, 더 나은 모습으로 발전할 수 있또록 노력할 것 입니다.
2024년은 처음에는 정말 짧은 한 해라고 느꼈지만, 지나온 과정을 하나하나 되돌아보니 참으로 긴 여정이었다는 생각이 듭니다.
올해의 경험들은 하나하나가 소중했으며, 이러한 경험들이 저를 한 단계 더 성장시켰다고 믿습니다. 특히, 올해는 기존에 희망하던 백엔드 개발자나 인프라 개발자로서의 길을 잠시 벗어나, 프론트엔드 개발자로서 더 많은 활동을 했던 해였습니다.
올해는 React, Next, Flutter 등 다양한 프레임워크와 라이브러리를 배우고 다뤄봤습니다.
그 기술이 제가 원해서 배웠든, 혹은 원하지 않았지만 필요에 의애 배웠든 간에, 모든 경험이 소중했습니다. 이러한 경험 하나하나가 앞으로 저에게 어떤 영향을 줄지 지금은 알 수 없지만, 배워서 쓸모없는 기술은 없다고 생각합ㄴ디ㅏ.
2025년에는 또 어떤 성장을 이루게 될지 기대가 됩니다.
현재 몇몇 기업에 이력서를 제출해둔 상태이지만, 큰 기대는 하지 않고 있습니다. 무엇보다 지금은 스스로를 정리할 시간이 필요하다고 느끼고 있습니다. 올해는 정말 바쁘게 달려왔다는 상객이 듭니다.
연구 활동과 사이드 프로젝트를 포함해 약 15개의 프로젝트에 참여했으며, 그 과정에서 여러 상을 받기도 하고, 처음 경험하는 분야에서 활동하기도 했습ㄴ디ㅏ. 너무 앞만 보고 달려온 시간을 돌아보며, 잠시 숨을 고르는 시간을 가지려고 합니다.
쉬는 동안 올해 프로젝트를 통해 배웠던 기술과 경험들을 차분히 정리하며 보낼 계획입니다. 또한, 미뤄두었던 알고리즘 공부와 CS 개념을 다시 복습하며 기본기를 다질 생각입니다.
더 나아가, 2025년에는 한 달에 하나씩 회고록을 작성해볼 계획입니다. 이번에는 개발 관련 내용뿐만 아니라, 일상과 다양한 활동을 포함해 폭넓은 기록을 남기려 합니다. 사실, 2024년에도 이런 계획을 세웠지만 실천하지 못했습니다.
잠시 쉬는 동안 재충전의 시간을 가지며, 더 나은 모습으로 돌아오겠습니다.
다음번에 다시 뵙겠습니다. 감사합니다.