Insight
home
News
home

다양한 문제를 해결하는 범용적인 개발자가 되고 싶어요.

인터뷰
Backend Engineer / 김영준
날짜
2025/10/21
간단한 자기소개 부탁드립니다.
안녕하세요. 프리윌린 풀리팀에서 백엔드 개발자로 근무하고 있는 김영준입니다.
이 자리에 어떻게 나오게 되셨나요?
이전에 고마워 릴레이 촬영하셨던 영상쌤께서 저를 지목해주셔서 나오게 되었습니다.
현재 하고 있는 일을 자세히 소개해주실 수 있나요?
저는 지금 풀리팀에서 학생별 개인 맞춤 학습을 지원하는 서비스 풀리수학과, 기초 진단평가부터 시작하여 전공 수업, 보완 학습까지 대학 교육 사이클 전반에서 활용할 수 있는 AI 코스웨어 서비스인 풀리캠퍼스의 백엔드를 개발하고, 유지 보수하고 있습니다.
어떤 분야를 전공하셨나요?
저는 개발과 직접적인 관련은 없는 영어영문학과를 전공했어요. 전공 공부도 흥미로웠지만, 인문학 특성상 정답이 명확하지 않고 실력을 수치화하기 어려운 점이 저와는 잘 맞지 않았던 것 같아요. 반면 개발은 다양한 기술을 배우면서 내가 해결할 수 있는 문제의 범위가 점점 넓어지는 게 눈에 보이는 직무라 매력적으로 느껴졌어요. ‘내가 어떤 기술을 다루고, 어떤 문제를 해결할 수 있는지’가 명확하게 드러난다는 점이 저와 잘 맞아서, 자연스럽게 개발자의 길을 선택하게 되었습니다.
백엔드 개발을 시작하게 된 계기는 무엇인가요?
개발에 처음 흥미를 느낀 건 대학교 시절, 컴활 자격증 공부를 하면서 엑셀의 VBA를 접했을 때였어요. 당시 영어 단어장을 자동으로 만들어주는 시트를 밤새 구현할 만큼 몰입했죠. 그 경험이 제 첫 “개발의 재미”였어요. 그 후로 파이썬을 시작으로 JS, Java 등 다양한 언어와 프레임워크를 다뤄보며 자연스럽게 개발의 세계에 빠져들었습니다. 단순히 화면을 구성하는 것보다,도메인과 비즈니스 로직을 설계하고 시스템 간 상호작용을 코드로 표현하는 과정이 훨씬 흥미로웠어요. 또 저는 평소에도 효율을 중요하게 생각하는 편이라, 데이터를 효율적으로 적재하고 조회하거나, 코드를 최적화해 성능을 높이는 일이 매력적으로 느껴졌습니다. 이런 부분에서 백엔드 개발이 제 성향과 잘 맞는다고 생각해 본격적으로 시작하게 되었어요.
이전 커리어에서는 어떤 경험을 쌓았고, 지금 일에 어떤 영향을 주었나요?
풀리에 합류하기 전에는 Seed~Pre-A 단계의 초기 스타트업에서 근무했어요. 소규모 조직이다 보니 적은 인원으로 빠르게 의사결정하고, 짧은 시간 안에 많은 기능을 구현해야 하는 환경이었죠. 당시 백엔드 개발자가 저 혼자였기 때문에, 기획부터 배포까지 전 과정을 직접 경험하며 속도감 있게 개발을 진행하는 법을 자연스럽게 익혔습니다. 또, 투자 유치를 위해 회사의 기술 경쟁력을 보여줘야 하는 상황도 많았어요. 그래서 고도화된 서버 아키텍처를 직접 설계하거나, AI 서비스에 대한 레퍼런스가 전혀 없던 시절에도 현재의 RAG라고 불리는 방법론을 고안해내서 AI 서비스를 만들기도 했어요. 이 시기에“모르는 기술이라도 직접 부딪쳐서 해결한다”는 태도가 확실히 자리 잡은 것 같아요.
지금의 풀리팀 역시 신사업을 담당하는 작은 팀이기 때문에, 당시의 경험이 큰 도움이 되고 있습니다.사용자 피드백을 기반으로 끊임없이 새로운 요구사항이 들어오는 상황에서도, 짧은 시간 안에 많은 기능을 안정적으로 구현하고, 예상치 못한 문제도 주도적으로 해결할 수 있었던 건 그때의 경험 덕분이라고 생각해요.
기술 스택은 어떻게 구성되어 있나요? 그 중에서 선택한 이유가 있나요?
풀리팀 백엔드는 생산성이 높은 Kotlin을 주 언어로 사용하고, Spring 생태계를 기반으로 웹 애플리케이션과 배치 등의 여러 시스템을 구성하고 있어요. 인프라는 거진 AWS 관리형으로 구축되어 있고요.
이렇게 구성한 이유는, 스타트업은 처음부터 완벽하게 만들어내기보다, 일단 실행하여, 사용자에게 가설을 빠르게 검증하고, 고도화 시켜나가는 것이 중요한데, 풀리팀은 신사업 팀이다 보니, 이런 모습이 좀 도드라지게 중요한 거 같아요. 그래서 복잡한 시스템을 구축하기보단, 최대한 생산성이 높고, 관리 포인트가 적은 방식으로 개발을 진행하기 위해서 이렇게 구축하게 되었습니다.
코드 리뷰할 때 가장 중요하게 보는 부분은 무엇인가요?
가장 중요하게 보는 부분은, 팀 내 컨벤션을 잘 지키고 있는지, 또는 컨벤션이 없는 새로운 경우에는, 누가 봐도 이해하기 쉬운지를 보는 거 같아요. 우리 팀이 규모가 크진 않아서, 개인이 전담하는 업무 범위가 넓어요. 그래서 전담한 사람이 부재면, 본인이 개발하지 않았더라도, 그 내용을 알고 개발하고 유지 보수할 수 있어야 하는 게 중요한데요. 그래서 아무래도 리뷰 시에 성능 최적화할 수 있는 부분이 더 있는지 등의 여러 가지 사항을 보긴 하지만, 가장 중요한 건 결국 컨벤션을 잘 지키고 있는지 인 거 같아요.
팀에서 지향하는 아키텍처 원칙이나 코드 스타일이 있다면 무엇인가요?
앞에서 말했던 것과 연장선에 있는 거 같은데, 최대한 간단하고, 이미 널리 알려진 아키텍처를 사용하고 있어요. 모든 애플리케이션은 클린 아키텍처를 기반으로 구성되어 있고, 코드 스타일 역시 사전에 어떤 도메인에 대해 유비쿼터스 언어를 정의하고, 이를 준수하여, 남이 읽더라도 이해하기 쉽게 작성하는 것을 지향하고 있어요.
요즘 가장 집중하고 있는 프로젝트나 업무는 무엇인가요?
요즘은 AI-CAT이라고, 응시자의 수준에 맞춰서 문항 난이도를 조정해 가면서 적응형으로 학생의 수준을 진단하고, 그 결과를 AI로 분석해서 영역별 성취도를 평가해 주고 인증서까지 발급해 주는 서비스를 개발하는 데 집중하고 있어요.
최근에 학교나 교육 기관에서 ‘학생 개개인의 강점이나 약점을 객관적으로 파악해서 맞춤형 수업을 하고 싶다’라는 요구가 많아지고 있거든요. 단순히 점수만 나오는 시험보다는, 어떤 영역이 강점이고 어떤 부분을 보완해야 할지 진단해주고, 그걸 공식적으로 인증할 수 있는 도구가 있어야 하는 거죠. 그래서 이런 요구에 빠르게 대응하기 위해 이 프로젝트를 개발하는 데 가장 집중하고 있습니다.
서비스 특성상 트래픽이나 데이터 규모가 어떤 편인가요? 거기에 맞춰 백엔드에서 특히 고려하는 점이 있나요?
서비스 트래픽의 경우에는 저희가 비즈니스 특성상 트래픽이 많거나 몰리는 건 없어서, 트래픽을 분산하고 고가용성을 보장하기 위한 그런 인프라 측면의 아키텍처에 집중하기보단, 수백만 건의 학생 학습 데이터를 집계하고 통계 내야 한다든지, 수십만 건의 콘텐츠 내에서 사용자에게 적합한 컨텐츠만을 조회한다든지 이런 대용량 데이터를 기반으로 사용자에게 보여줄 때의 성능을 더 많이 고려하는 거 같아요. 그래서 캐시를 적극 활용한다든지, 코루틴을 가상스레드 위에서 실행시키도록 하여 다중 블로킹 IO 작업의 효율성을 높인다던지, 이벤트 기반 통신을 활용해서 미리 집계된 데이터를 만들어 놓아 조회 성능을 올리는 등의 그런 응답성과 관련된 최적화에 집중하고 있어요.
좋은 백엔드 개발자는 어떤 개발자라고 생각하시나요?
어떤 기술과 이론을 능숙하게 알고 다룬다든지, 성능 최적화를 잘한다든지, 백엔드 개발자한테 중요한 역량은 참 많아서 뭘 잘하는 게 좋은 개발자인지 딱 정해서 말하긴 어려운 거 같아요. 그런데, 개발자도 결국 회사에 속한 직원이잖아요? 회사가 직원을 필요로 하는 이유를 생각해 보면, 결국 비즈니스 문제를 해결하고 새로운 가치를 만들어내기 위해서죠. 개발자도 이 점에서 다르지 않다고 생각해요. 자신이 속한 조직이 어떤 비즈니스 가치를 만들고자 하는지를 이해하고, 그 방향에 잘 녹아들 수 있는 사람이 좋은 개발자라고 봅니다.
저희 조직을 예로 들면, 교육기관에서 요구하는 니즈를 빠르게 해소하고, 더 많은 교육기관이 우리 서비스를 쓰게 하는 게 중요한 목표거든요. 그래서 완벽한 정합성보다는, 생산성을 높여서 빠르게 요구사항을 반영하고, 제품을 고도화하는 게 더 큰 가치가 있어요. 이런 조직에서는 간단하게 말해 개발 생산성이 높을수록 더 좋은 개발자일 거 같아요. 요즘에는 정말 실력 있는 개발자분들이 많아서, 오히려 조직에 필요한 사람이 될 수 있는 개발자가 더 좋은 개발자라고 생각합니다.
풀리팀만 가지고 있는 문화나 분위기가 있다면 소개해주세요.
저희 풀리팀 쌤들 성격이 되게 동글동글하셔서… 약간 대학교 동아리 같은 분위기가 있어요. 서로 장난도 많이 치고, 소통도 재미있게 하고, 뭘 하든 다 같이 우르르 가서 하거든요. 점심도 가끔 밖에 나가서 먹는데 꼭 다 같이 나가고, 점심시간에도 매일 다 같이 옹기종기 모여 보드게임하는 그런 문화가 있어요. 그래서 전반적으로 되게 귀엽고 편안한 분위기인 것 같아요.
어떤 분들이 풀리팀과 잘 어울릴까요?
저희 팀은 되게 린하게 움직이는 조직이라, 큰 프로세스나 복잡한 절차에 따라 정해진대로 움직인다기 보단, 그때 그때 필요한 걸 빠르게 시도하고 바로 실행해 보는 스타일이에요. 그래서 주어진 일만 딱 하는 것보다 목적 지향적으로, 주도적으로 움직이고 의견을 내는 분이 잘 맞을 거 같아요. 그리고 앞에서 되게 편안한 분위기라고 했는데, 그래서 세일즈든 기획이든 디자인이든 직무 구분 없이 다 같이 소통하는 경우가 많아요. 그래서 다른 직무, 다른 사람에 대한 이해와 배려를 기반으로 한 커뮤니케이션을 자연스럽게 하시는 분이 잘 맞을 거 같아요.
앞으로 풀리팀에서 함께 이루고 싶은 목표가 있다면요?
모든 대학이 저희 풀리캠퍼스를 도입하는게 목표에요. 대학교 커뮤니티 하면 에브리타임이 떠오르고, 직장인 커뮤니티 하면 블라인드가 떠오르듯, 그 분야에서 가장 지배력 있는 프로덕트는 거진 모든 사람들이 다 알고 공유가 되잖아요? 그런 거처럼 대학교 교육 하면 풀리 캠퍼스가 떠오르게끔, 이름만 말해도 다 아는 서비스가 되었으면 좋겠어요. 지금도 70개 넘는 대학이 저희 풀리 캠퍼스를 사용하고 있고, 모 대학들은 저희 풀리 캠퍼스 덕분에 평가에서 최우수 등급을 받는 일도 있었는데, 앞으로도 이렇게 영향력 있는 제품으로 고도화시켜 나가서 자리를 잡아가고 싶습니다.
회사에서 가장 좋아하는 복지나 문화가 있다면?
식대나 24일 연차가 가장 좋긴 하지만 이미 잘 알려져 있는 프리윌린의 복지라서, 저는 선택적 근로시간제와 연차를 2시간 단위로 사용할 수 있는 걸 선택하겠습니다. 이외에도 슬랙퀴즈쇼, 계절별 인테리어 이벤트 등도 일에 치일 때 힐링이 돼서 말을 안할 수 없는 너무 좋아하는 문화예요.
앞으로 어떤 개발자로 성장하고 싶나요?
어떤 조직을 가더라도, 조직의 상황이 어떻게 바뀌든, 그에 맞춰 조직에서 필요로 하는 개발자가 될 수 있도록 성장하고 싶어요. 트래픽이 급증해서 부하를 분산하고, 고가용성을 보장해야 한다든지, 레거시의 기술 부채가 쌓여 개발 생산성이 떨어지고 노이즈가 많이 발생하는 상황을 해결해야 한다든지, 개발자로서 현재 조직이 집중하고, 해결해야 할 문제들을 모두 처리할 수 있는 범용적인 개발자로 성장을 하고 싶어요. 그러려면 결국 부딪혀보고 직접적인 경험을 쌓는 게 제일 중요하다고 생각해서, 앞으로도 다양한 상황들을 직접 겪으면서 성장해 나가려고 합니다.
백엔드 개발을 막 시작하는 분들에게 조언 해주실 게 있나요?
요즘에는 다양한 기술에 대해 교육을 접할 수 있는 환경이 잘 마련되어 있기도 하고, AI를 통해 아이디어나 방법도 얻을 수 있고, 레퍼런스가 없어서 막막하고 그러진 않아서 참 좋은 거 같아요. 그런데, 그런 지식을 상대적으로 쉽게 얻을 수 있다 보니, 혼자 생각해보고, 원리를 깊이 있게 학습하려는 경향은 조금 떨어지게 되는 거 같아요. 그렇게 되면, 문제 상황에서 여러 적합한 방법들을 생각해 내어 최적의 방법으로 해결한다기보단, 한 가지 상황에서만, 내가 따라 해본 상황에서만 그런 기술들을 사용할 수밖에 없게 된다고 생각해요. 이 기술이 어떤 한계를 극복하기 위해 나왔고, 어떤 원리가 녹아있는지, 다른 연관되는 원리가 무엇인지 꼬리를 물어가며 깊게 학습하다 보면, 범용적으로 기술 지식이 늘고, 어떤 문제 상황이 오더라도 최적의 방법으로 해결 가능하게 돼서, 조직에서 필요로 하는 개발자가 되는 밑거름이 될 거라고 생각합니다.