전체 글
-
[ 토스 러너스 하이 2기 ] 성과 및 회고Career/토스 러너스 하이 2기 2026. 1. 14. 09:58
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. 지난 한 달간 토스 러너스 하이 2기 프로그램을 통해, 저는 단순한 기능 구현을 넘어 비즈니스적 가치를 창출하는 엔지니어링이 무엇인지 고민했습니다. 이 글에서는 제가 해결한 문제들이 실제 어떤 수치적 성과로 이어졌는지, 그리고 이 과정을 통해 엔지니어로서 어떻게 성장했는지 회고해보고자 합니다. 프로젝트 초기 저는 "얼굴 영상 데이터 수동 업로드의 비효율" 문제를 가장 시급한 해결 과제(ROI 1.67점)로 선정했습니다. 이 문제를 기술적으로 해결함으로써 얻어낸 정량적인 성과는 다음과 같습니다. 1. 운영 리소스 100% 절감Before: 측정 종료 후 데이터 취합 및 업로드에 회당 평균 180분(3시간)의 수동 리소스가 투..
-
[ 토스 러너스 하이 2기 ] 구현 및 트러블 슈팅 - 2Career/토스 러너스 하이 2기 2026. 1. 9. 14:37
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. 엣지 노드(앱) 구현 순서를 다음 5단계로 수립하였습니다. 메모리 안전 청킹 모듈로컬 DB 스키마 설계 및 구축순차적 업로드에러 핸들링 및 지수 백오프WorkManager [ Why? ] 왜 이 순서로 진행하는가?[ 1 ] 램 제한 문제를 해결할 청킹 모듈이 가장 먼저 구현되어야, 여기에 의존하는 나머지 기능들도 구현 가능하기 때문입니다.[ 2, 3] 업로드 로직을 먼저 짜고 나중에 DB를 붙이면 코드를 수정해야 하는 경우가 많아집니다. 데이터를 담을 DB를 먼저 설계하여 효율적으로 개발하고자 했습니다.[ 4, 5 ] 핵심 기능들을 먼저 구현 및 검증한 뒤 예외 처리와 OS 관리를 추후 구현하는 이유는, 그래야 에러 발생 시 ..
-
[ 토스 러너스 하이 2기 ] 구현 및 트러블 슈팅 - 1Career/토스 러너스 하이 2기 2026. 1. 1. 12:32
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. 본격적인 구현에 앞서, 저는 전체 작업의 순서를 [인프라 → 엣지 노드]의 탑다운 방식으로 수립하였습니다. 이유는 다음과 같습니다. [ Why? ]문제의 격리 : 데이터를 수신하는 인프라를 먼저 구축하고 검증을 마쳐야 합니다. 그래야 추후 엣지 노드 구현 시 발생하는 전송 실패의 원인이 인프라나 권한 문제가 아닌, 엣지 노드의 로직 문제임을 명확히 격리할 수 있기 때문입니다.기존 파이프라인과의 정합성 유지 : 현재 AWS 상에는 영상 파일(.mp4) 업로드를 트리거로 동작하는 데이터 파이프라인이 구축되어 있습니다. 새로운 영상 데이터 수집 방식이 기존 데이터 흐름을 망가뜨리지 않고 정상적으로 연동되는지, 가장 기초 단계인 인프..
-
[ 토스 러너스 하이 2기 ] 기술적 설계Career/토스 러너스 하이 2기 2025. 12. 24. 10:43
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. 지난 글을 통해 저는 얼굴 영상 데이터 수동 업로드의 비효율을 1순위 해결 과제로 선정했습니다. 보통 이 단계에서 많은 개발자가 바로 "어떤 라이브러리를 쓸까?"를 고민하며 솔루션의 단계로 넘어갑니다. 하지만 저는 본격적인 기술 설계에 앞서, 엔지니어링 관정에서 문제를 재정의하는 단계를 선행하고자 합니다. [ Why? ]문제를 재정의하는 이유는 모호한 문제는 모호한 해결책을 낳는다고 생각하기 때문입니다. 단순히 '업로드가 느리다'라는 현상만 보고 접근하면 '속도 개선'이라는 잘못된 방향으로 가기 쉽습니다. 하지만 이를 엔지니어링 관점에서 재해석하여 명확한 기술적 요구사항을 도출해야만, 현재 상황에 맞는 최적의 아키텍처를 설계할..
-
[ 토스 러너스 하이 2기 ] ROI 높은 작업 찾기Career/토스 러너스 하이 2기 2025. 12. 19. 12:50
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. ROI가 높은 작업을 찾기 위해, 먼저 병목사항들을 리스트업 해보았습니다.아주 사소한 코드 스타일 문제부터, 서비스 장애로 이어지는 치명적인 문제까지 최대한 필터링 없이 모든 문제를 리스트업하려 하였습니다. 모든 문제를 꺼내놓아야 ROI가 높은 작업이 무엇인지 객관적으로 판단할 수 있다고 생각했기 때문입니다. 현재 저희 회사는 Insight Flow와 Cinelab를 서비스하고 있습니다. 그래서 각 서비스와 기타 사항으로 분류하여 리스트업 하였습니다. 특히, 문제의 근본 원인까지 깊이 이해하기 위해 Why를 최대한 많이 이용하였습니다. [ Insight Flow ]해당 서비스는 영화, 드라마 같은 컨텐츠 감상 시 유저의 생체..
-
[ 토스 러너스 하이 2기 ] 시작하며Career/토스 러너스 하이 2기 2025. 12. 17. 17:32
토스 러너스 하이 2기 멘토링 프로그램을 진행하며진행 과정을 정리하였습니다. 회사에 취직하여 백엔드 개발자로 일을 하다보니, 어느덧 2,3년차를 바라보고 있네요. 여러 AI 툴들이 발전하며 생산성은 어마어마하게 올라갔지만, 요즘 들어 "내가 정말 올바르게 성장하고 있나?", "나는 개발자로서 경쟁력 있나?" 하는 생각들이 점점 커져갔습니다. 이제는 단순한 기능 구현만 할 줄 아는 개발자보다 전체적인 시스템 아키텍처를 고려하고, 비즈니스 임팩트를 고려하여 의사결정을 할 수 있는 개발자가 되고 싶은데, 스타트업에서 1인 백엔드 개발자로 있다 보니 내가 가고 있는 방향이 맞는지 아닌지 판단하기란 늘 어려웠습니다. 이런 상황에서 동료 개발자가 토스에서 서버 멘토링 프로그램을 진행한다는 소식을 듣고, 토스 러너..
-
Spring MVC - Understanding StructureJava/Spring 2025. 3. 17. 17:00
Spring MVC 패턴의 전체 구조를 이해합니다. 직접 만든 MVC 프레임워크와 스프링 MVC를 비교해 보겠습니다. 직접 만든 MVC 프레임워크 → 스프링 MVC 비교FrontController → DispatcherServlethandlerMappingMap → HandlerMappingMyHandlerAdapter → HandlerAdapterModelView → ModelAndViewviewResolver → ViewResolverMyView → View DispatcherServlet 구조 살펴보기스프링 MVC는 프론트 컨트롤러 패턴으로 구현되어 있으며, 그 핵심이 바로 디스패처 서블릿(DispatcherServlet)입니다.DispatcherServlet은 부모 클래스로부터 HttpSe..
-
Creating an MVC frameworkJava/Spring 2025. 2. 13. 23:22
MVC프레임워크를 만들어보며 프론트 컨트롤러 패턴을 학습합니다. Front Controller 패턴의 특징단일 프론트 컨트롤러: 하나의 프론트 컨트롤러 서블릿으로 클라이언트의 모든 요청을 받습니다.컨트롤러 매핑: 프론트 컨트롤러가 요청에 맞는 개별 컨트롤러를 찾아 호출합니다.공통 처리 용이: 공통 기능(인증, 로깅 등)을 프론트 컨트롤러에서 한 곳에서 처리할 수 있습니다.서블릿 의존성 최소화: 프론트 컨트롤러를 제외한 다른 컨트롤러는 서블릿을 직접 사용하지 않아도 됩니다. 스프링 웹 MVC와 프론트 컨트롤러스프링 MVC의 핵심 구조: 스프링 웹 MVC는 프론트 컨트롤러 패턴이 핵심입니다.DispatcherServlet: 스프링 웹 MVC의 `DispatcherServlet`역시 프론트 컨트롤러 패턴으..