이번 회고를 작성하는 이유는, 개발자로서 가장 큰 변화가 있던 시기여서 기록을 남기기 위해서다.
가장 먼저 대학교 시절부터 백엔드 개발에 대한 관심을 바탕으로 백엔드 개발을 준비했었다. 하지만 대학 졸업과 동시에 진행한 인턴에서 생각했던 것과 다른 일을 하게 되었고, 결국 전환을 결정하지 않은 채 인턴 기간 만료와 함께 퇴사를 결정했다.
이후 2026년 새해부터 새로운 기업에서 개발자로 일을 시작했다. 방산과 항공 일을 동시에 진행하는 팀에서 프로젝트를 진행했고, 소위 말하면 방산 SI라고 볼 수 있었다. 보통 SI의 경우 성능을 거의 고려하지 않아서 개발자에게는 무덤이 될 수 있다고들 했다. 하지만 되게 좋았던 점은, 고객사가 성능에 굉장히 민감하다는 점이었다. 그래서 사실 정말 재밌었다.
단순한 웹 개발이 아닌, 실시간 통신 중에서도 최근 시작하는 단계인 프로토콜을 기반으로 데이터 통신이 이루어졌다. 인터넷에 레퍼런스가 거의 없어서 공부할 때 최근 논문들을 정말 많이 찾아봤고, 영어 논문을 해석하느라 애를 먹긴 했다. 그래도 인턴 기간 동안 문서로만 분석했던 미디어 서버를 직접 구축해 보는 과정이 있었는데, 눈으로 분석했을 때의 시야와 직접 구축했을 때의 시야는 정말 다른 것 같다.
가장 많이 배웠던 점은 성능 측정적인 측면이다.
이전까지 백엔드 성능은 그저 프로메테우스(Prometheus), 그라파나(Grafana), Node Exporter를 통해서 서버 부하 정도만 측정했었다. 혼자 개인 프로젝트로 배치를 돌릴 때도 단순히 서버 부하만 확인하는 수준이었다.
하지만 실제 미디어 서버와 초고속 통신을 경험했을 때는 데이터가 들어오는 FPS나 성능 모니터를 통해 인터셉터 호출 빈도수 등을 측정하고, 이를 바탕으로 보고서를 추출해 보는 경험까지 할 수 있었다.
기능 구현과 성능을 위해 PoC(Proof of Concept)도 정말 많이 진행했다.
예를 들어 통신이 끊겼을 때를 대비하는 PoC를 진행하며, 어떤 방식이 가장 좋은 성능을 낼 수 있는지 수없이 비교했다. 이게 단순히 백엔드 성능만 생각해야 하는 것이 아니라, 서버에서 처리할 경우 서버 사양이 얼마나 증가하는지, 반대로 웹 클라이언트의 GPU로 처리할 경우 화면상에서 FPS 감소가 일어나 버벅임은 없는지 등 여러 트레이드오프를 고려해야 했다.
특히 실시간 항공기 관제 특성상 통신은 끊길 수밖에 없다고 한다. 즉, 가장 부정적인 최악의 상황을 기반으로 모든 것을 고려하여 구축이 들어가야 했다. 이때 유의미한 수치 이상으로 측정이 되어야 서버 증설이 필요하지 않을까 하는 측면에서 데이터를 정리해 나가는 과정이 되게 재미있었다.
회사에서 새로운 도메인과 일을 배우는 것과 별개로, 퇴근 후나 주말에는 집에서 개인적인 공부와 실험들을 계속 진행했다.
트래픽을 유발해 보고, JVM 내부 구조나 운영체제 등 근본적인 본질을 파악하기 위해 나름대로 정말 많이 노력했던 시간이었다.
이렇게 6개월을 보내면서 회사 일과 개인 공부를 병행했고, 자바, 웹, 스프링, 리액트 등 일반적인 웹 개발자로 준비해 온 대학 생활과 실무 과정을 이번 7월을 기점으로 종료하게 되었다.
사실 정말 많은 고민을 했었다. 그나마 일반적인 웹 개발이 아닌 서버의 깊은 측면과 PowerShell을 통한 개발 등 방산 도메인이라 높은 성능과 최신 기술들을 기반으로 개발을 진행했었기에, AI에 대한 위협을 덜 느꼈을 수도 있다. 하지만 속으로는 되게 많이 불안했다.
결국 '이 AI가 작성한 코드를 검증하는 과정을 아직 사회초년생인 내가 할 수는 없다'는 결론을 내렸다.
흔히들 AI가 짠 코드는 오버 엔지니어링스럽다, 불필요한 로직이 많다, 클린 코드가 아니다 등등의 말을 한다. 하지만 내가 그 코드를 정확히 판단할 수 있는 실력을 갖추고 있다면, 나는 AI를 도구 삼아 상황에 맞게 오버 엔지니어링이 아닌 클린 코드로 판단하고 다듬을 수 있었을 것이다. 아이러니하게도 나는 그 판단력을 기르는 과정조차 AI를 통해서 배우고 있었다.
기술 스택을 넓히기 위해 여러 기술을 써보고, AOP 파악을 위해 내부 함수나 스프링 부트의 트랜잭션을 하나하나 디버깅해 보며 정말 많이 노력했다. 하지만 AI가 지속적으로 발전하는 상황에서, 이제 실무 경력이 반년밖에 안 된 개발자인 나의 성장 속도가 AI의 성장 속도보다 빠를 수 있을까? 라는 생각을 수없이 했다.
어느 정도 공부하고 경험하면서, 이제는 대충 어떤 오류가 났을 때 어디가 문제인지 보일 수 있는 정도는 되었다. 물론 클린 코드는 아직 잘 모른다. (개인적으로 클린 코드는 각 회사의 코드 스타일이나 도메인에 따라 다르다고 생각하기도 하고, 아직 내 식견으로 코드의 깊은 구조까지 다 볼 수 있는 수준은 아니기 때문에 그냥 모른다고 보는 게 맞다.)
그렇다고 개발을 포기하는 건 절대 아니다. 그냥 "AI가 할 수 없는 일을 하자!"라는 생각을 하게 되었다. 이제 대학을 졸업한 지 곧 1년이 되어가는 시점에 직무 전환을 결정했다.
그래도 지난 1년 동안 디지털 포렌식, 방산 SW 등 일반적이지 않고 새로운 일들을 많이 경험한 것 같다. 배운 것도 정말 많고 기술적인 시야가 되게 넓어진 느낌이다. 포렌식을 하면서 윈도우나 OS에 자료가 어떻게 저장이 되는지를 배우고, 방산 관제 SW를 하면서 가장 최신 프로토콜을 배우고 성능을 측정하면서 서버 내부 구조나 웹 브라우저의 성능을 뜯어보고 비교해 보며 정말 많이 배웠다.
돌이켜보면 정석적인 웹 백엔드 개발만 한 적은 없었다. 그래서 아직 졸업한 지 1년이 되지 않은 시점에, 정통 웹 백엔드 개발자에서 과감하게 3D 업종으로 전환을 결정하게 되었다.
정말 좋은 기회로 한 중견기업의 차량 전장 신사업부 SW 연구원으로 이직을 하게 되었다.
지금까지는 웹 기반 기술에 대한 기술 블로그를 썼었지만, 이제 2년 반 동안의 웹 개발 준비와 기록에 마침표를 찍고 앞으로는 차량 전장 임베디드 엔지니어로서 기술 블로그를 작성하려고 한다.
지금까지 해왔던 것들과 매우 다르고, 양산화를 위한 연구와 직접 해외 공장에서의 양산 과정도 확인해야 하는 등 그동안 배워온 것들과는 정말 다른 일이다. 입사하게 되면 처음부터 정말 많이 공부해야 하는 상황이고, 기반 언어도 자바가 아닌 C와 C++이고 사용하는 툴도 완전히 다르기 때문에 사실 좀 설렌다.
무엇보다 직접 하드웨어 회로랑 같이 분석하는 건 사실 AI가 절대로 할 수 없는 영역이다. 가장 좋은 점은 드디어 AI에 대한 고민과 압박으로부터 벗어났다는 점이다. 그래서 앞으로 공부할 것들이 더 기대가 되고, 더 많이 공부해서 엔지니어로서 인정받고 싶다.
이번 이직의 또 다른 아주 큰 장점은 이전 회사보다 집에서 매우 가까워졌다는 점이다. 그리고 회사 근처가 굉장히 쾌적하고 사옥이 있다는 거! 드디어 사옥에서 일하게 되어서 너무 좋다.
앞으로는 체력 관리 더 잘하고 스스로 케어도 더 잘하면서, 엔지니어로서 더 성장하고 열심히 공부해야겠다. 앞으로 블로그에는 C언어와 임베디드 시스템에 대해 배우고 경험한 점들을 정리하는 글들을 올릴 예정이다.
이로써 2026년 상반기 회고 마침!