본문 바로가기
개발 고민

자바스크립트 서버를 자바로 재작성 해야 하나

by 냉동만두 2023. 11. 19.

요약

javascript 로 된 백엔드 서버를 java로 재작성 해야 하나 의식의 흐름.

 


 

왜 자바 안써?

내가 주변에서 백엔드 개발 javascript nodejs 돌린다 하면 가장 많이 듣는 말은 "왜 자바 안써?" "자바스크립트는 프론트 아님?" 이었다. 지금은 주변도 어느정도 연차가 있으니, "오 재밌겠다 요즘 많이 쓴다던데" "너 이직 어케하냐" 이다.

 

국내 대부분 백엔드 서버는 java spring 이지만, 우리 api 서버는 javascript 로 작성 되어 nodejs 로 돌고 있다. api 주된 기능은 단순한 db 데이터 입출력이고, 이는 async / nio 잘 맞는 컨셉이다. api서버를 구현 하기 위해, 필요한 기능을 직접 구현 하거나 라이브러리를 직접 선택하고, 내 로직에 잘 녹여야 한다. 물론 비동기 컨셉도 잘 이해 해야 한다. 대신 정말 필요한 기능만 알면 되고 만들 수 있고, 의존성이 적으니 러닝커브도 선형적이다. 백오피스 프론트엔드 개발도 병행 하는데, 같은 언어를 사용하니 진입이 수월한 면이 있다. 구현이 잘 안되면, "내가 뭘 잘못 했으니 이렇게 바꿔야지"라는 생각이 든다.

 

java spring은 거대한 생태계를 갖고있는 프레임워크이고, 복잡한 비즈니스 로직을 구현 위해 대부분의 기능은 구현 되어 있고, 잘 가져다 사용 하면 된다. 정말 크고 복잡한 서비스가 아닌 이상, 내가 필요한걸 고민 하는 시간보다, 프레임워크에 맞게 만들어야 하는 고민이 더 크다. 내가 주도적으로 구현 하는 것 보다는, 내가 필요한 기능을 잘 정리해서 spring에게 부탁 하는 느낌이다. 구현이 잘 안되면, "내가 뭘 잘못 했나요? 어떻게 맞춰 드리면 될까요?"라는 생각이 든다. 잘 찾던 빈을 왜 못찾고 ㅈ.

 

 

두개 비교는 뭐가 좋다, 나쁘다가 아닌 단순 컨셉과 용도에 대한 비교이다.

 

 

왜 바꾸지?

지금 시점에서 우리 서비스는 javascript nodejs 리팩토링 하면서 충분히 유지 가능 하다. 반대로 java spring 구현 한다면,  필요 한 서버 지원과 공부는 가능 한 상태다. 둘다 가능 한 상태라서 고민이 드는 것 같다.

지속적으로 추가 및 변경되는 요구 사항을 반영 하다 보면, 비즈니스 로직 구현에 대한 일관성이 떨어 질 수 있고(물론 내가 게으르기 때문), 리팩토링에 한계가 온다던가, 새로운 프레임크에서 개발 하고 싶은 생각이 든다. 하는김에 나도 java spring으로 넘어갈까? 라는 비주류에서 주류로 한눈을 팔게 된다.

 

대량 트래픽 처리, 일관된 비즈니스 로직, 확장성은 개발 방법론과 개발자의 성실함에 달려있다고 생각한다. 그렇지만 국내에서 비주류 스택으로 개발 한다는건 개발 외적인 이유도 무시 할 수 없는 것 같다.

야 자바 ㅈ도 아닌거 같지. 여기 자바공화국이야.

 

자바공화국, 자바민국

국내 개발 문화와 인력 시장, 그리고 대세를 거스를때의 불편함이 있다. 연차가 쌓이면서 인력 교체도 보게 되는데, 백엔드에서 자바스크립트 스택은 생각보다 인력 시장이 작다. 인원을 충원 할 때 도, 반대로 인원이 나갈 때도 서로 불편 해 보인다. 그만큼 구직, 구인 시장에서 아무래도 자바가 인기가 많고, 자바 프로젝트가 유지보수가 쉬운건 사실이다. 그러다보니 주변에 같은 스택으로 개발 하는 사람이 적다면, 조언을 구하거나 프로젝트 수행 경험을 듣고 흰트를 얻는것도 제한 적일 수 있다. 

 

예를들어, 회사에서 지금 서비스를 종료하니 나가라 한다면, 난 자바스크립트 베이스로 백엔드와 프론트엔드를 하는 비주류 풀스택 경력으로 인력 시장에 나가 이직이 생각처럼 쉽지 않을 것이다(물론 잘하는 사람은 네이버 카카오). 반대로 내가 나간다면, 신규 개발도 아닌 기존에 있던 자바스크립트 백엔드 프로젝트를 유지 보수 할 수 있는 사람을 구해야 한다.

 

결론

프로젝트가 초기 단계느 지났고, 종료되거나 더이상 못바꿀만큼 거대해 지기 전, 지금 이 시점에서 자바로 재작성 할 필요성이 느껴진다. 요구 사항이 더 늘어나고, 인력 충원이 된다면 대세를 따르는게 맞는 것 같다.