진행 중이던 프로젝트에서 백엔드 개발자가 탈주(ㅜㅜ)하게 되었다. 팀원이 빠질 때마다 새로운 사람을 구하고, 다시 인수인계를 하며 프로젝트가 지연되는 상황을 지켜보는 것은 큰 스트레스였다. 결국 결단을 내렸다.

“기다리느니, 내가 직접 백엔드까지 만들어서 빠르게 출시하자.”

하지만 고민이 시작되었다. 기존에 작성된 백엔드 코드는 Java(Spring)였고, 나는 Python이 주력인 AI 개발자였기 때문이다. Java를 공부해서 ‘풀스택 개발자’가 될 것인가, 아니면 내가 할 수 있는 Python으로 마이그레이션할 것인가?

Java vs Python

  옵션 A: Python(FastAPI) 마이그레이션 옵션 B: Java(Spring) 공부해서 이어받기
개발 속도 매우 빠름 (익숙한 언어) 매우 느림 (기초부터 공부 필요)
디버깅 가능 (직접 해결 가능) 불가능 (설정 오류 시 프로젝트 중단 위험)
커리어 연관성 높음 (AI 모델 서빙 및 Python 서버 경험) 낮음 (일반적인 웹 백엔드 역량)
최종 리스크 백엔드 업무량 증가 학습 부담으로 인한 프로젝트 드랍

내가 Python(FastAPI)을 선택한 3가지 이유

1. AI개발자에게는 Java보다 FastAPI

AI 개발자(ML/LLM Engineer) 채용 공고의 90% 이상은 Python 경험을 요구한다. 한국 시장에서 Java의 위상은 높지만, AI 도메인에서는 “AI 모델을 어떻게 효율적으로 서빙(Serving)하는가”가 훨씬 중요하다. Python 기반의 FastAPI로 서버를 구축/운영해 본 경험이 나에게는 더 도움이 될 것이라 판단했다.

2. ‘남이 짠 Java 코드’라는 높은 벽

Java를 전혀 모르는 상태에서 기존 Spring Security나 JPA 코드를 유지보수하는 것은 ‘수직 절벽’을 오르는 것과 같았다. 특히 설정 오류가 발생했을 때 해결하지 못하면 프로젝트 전체가 멈출 리스크가 컸다. 반면, Python은 에러가 터져도 내 힘으로 고칠 수 있다는 확신이 있었다.

3. 완성(Release)이 최우선이다

공부도 중요하지만, 지금 이 프로젝트의 가장 큰 목표는 “앱 출시”다. 프론트엔드와 백엔드의 데이터 형식(Snake Case vs Camel Case) 차이 같은 문제는 설정 한 줄이면 해결될 아주 작은 문제였다. 이 10분짜리 수정을 피하려고 한 달 넘게 Java를 공부하는 것은 주객전도라고 생각했다.

결론: 일단 출시하고보자

결국 Python으로의 마이그레이션을 결정했다. 팀원들에게도 “내가 가장 자신 있는 언어로 빠르게 기능을 찍어내는 것이 프로젝트의 성공 확률을 높이는 길”이라고 설득했다.

비록 백엔드까지 책임져야 하는 부담은 늘었지만, 내가 짠 코드로 프론트엔드와 통신이 성공하는 것을 보니 이 길이 맞다는 확신이 든다. 이제 남은 건 빠른 출시뿐이다.