백엔드 언어 선택에 대한 현직자 조언: 자바, 스프링, 노드, 파이썬

Q&A 큐레이션

1. 백엔드 가려면 자바 스프링은 필수인가요?

웹 백엔드 생각하고 있는 3학년 대학생입니다. 노드와 몽고db로 게시판만들어보고 하면서 js가 저한테 맞다고 생각하고 공부하고 있습니다. 하지만 국내 현실적으로 it분야에서 웹 분야가 1등이고 그 안에서 다시 자바가 압도적으로 1등으로 알고있습니다. 그 다음이 적은 점유율로 노드, 파이썬.. 그리고 노드로 모집하는 곳도 작은 스타트업이 아니면 기업, 프로젝트가 커지면 자바 스프링으로의 변환이 불가피 하다고 하더라구요. 물론 노드로만 취업할수 있는 기업도 있지만 스프링을 해두면 지원할 수 있는 곳이 노드에 비해 엄청 많아 지잖아요. 찾아보니 자바 스프링이 역사가 오래되고 노드는 계속 신기술이 나오고 스프링에 비해서 성숙도나 생태계는 낮기도 하고, 시니어들은 자바가 익숙하니까 자바가 점유율이 높은 거 같습니다. 노드를 하고싶어하면서 자바 스프링의 장점만 얘기하는 저도 이상하긴 한데.. 질문은 자바가 필수인가요? 라고하긴 했지만 현실을 피하고 싶어서, 자바가 하기 싫어서 '필수 아닙니다' 라는 답변을 듣고 싶어 하는 것일수도 있네요. 그래서 하기싫어도 올해 2학기 끝날때쯤부터 스프링을 공부할까 라는 생각도 있는데 스프링은 js에 비해 정이 안갑니다 이러고보니 답정너 질문이고, 질문의 의미가 없어지네요. 그냥 현직자분들의 생각이 궁금합니다. 취업준비를 하는 입장에서 불안해서 쓰다보니 길게 써졌네요


답변

답정너 질문에 공감을 원하신 것 같습니다. ㅎㅎ 저랑 비슷한 고민 중이시네요. 저도 자바 개발이, 아니 좀 더 정확히는 스프링 개발이 싫어서 요리죠리 피해다니고 있습니다. 하지만, 월급쟁이로, 명백히 돈이 더 되는 건 자바 개발입니다. 제딴엔 함수형 프로그래밍 좋다고 클로저, 스칼라, 하스켈 차례대로 해서 월급 받고 있는데요, 적어도 현재 한국 백엔드 개발에서 가장 쉽게(?) 무난한 월급을 잘 받는 건 자바 개발인 점을 부정하기 어렵습니다. 하지만, 너~~~~~~무 재미가 없는 수준을 넘어 괴롭기 때문에, 여러 현실적 조건이 나빠지더라도 감안하고 있습니다. 제일 좋은 건, 그냥 자바 개발이 편하거나, 거부감이 없거나, 아니면 오히려 재밌는 경우지만.... 제가 안 그런 걸 어쩌겠습니까... 괴로워하면서 돈 편히 더 받거나, 좀 재밌으면서, 돈 힘들게 받거나. 둘 중 하나인 것 같습니다. 아니면, 하다하다 자바가 재밌어지면 되는 건데... 그런 일은 일어나지 않더군요. 아쉽게도. 애써 답을 드리자면, 그냥 받아들이면 됩니다. 아 내가 자바가 싫은가보다... 좀 힘든 길을 가보자. 그러면서, 편하게 자바계에서 잘 지내는 사람을 샘부리지 않고, 내 길을 갈 수 있다면 그걸로 된 거죠 뭐. (하지만 가끔 샘이 납니다. 나 이런 원 참 내)

외 4개 답변 보러 가기

2. 백엔드 공부 시작시 취업을 위해 어떤 언어 프레임을 공부하는게 좋을까요?

이제 막 개발 공부를 시작하려고 마음 먹은 입문자입니다. 프론트엔드보다는 백엔드가 제 적성에 맞는 거 같아 백엔드를 준비하려고 했는데 현재 백엔드에서 많이 쓰이는 언어는 java/spring이고 현재는 적지만 앞으로 많이 쓰일 것으로 예상되는 언어는 javascript/node.js라고 들어서 어떤 언어로 공부를 시작해야할지 고민입니다. 취업을 빨리 해야해서 일자리가 많은 java/spring을 공부할까 싶다가도 많이 쓰이는 만큼 잘하는 사람이 넘쳐나 제 자리가 있을까싶고 Javascript/node.js는 현재 일자리가 많지 않지만 또 그만큼 java/spring에 비해서는 백엔드에서 많이 쓰지않아 제 자리가 조금 더 있지 않을까싶고 생각이 많아 결정이 너무 어렵습니다. 요즘같은 시기에 백엔드 공부를 시작해서 취업하고 꾸준히 일하려면 Java/spring, javascript/node.js 중 어떤 언어를 선택해서 커리어를 쌓아가는게 유리할까요?


답변

우선 덜 어려운것부터 해보세요. 자바 스프링이 인기 많다지만 그만큼 난이도 있다보니... 다른것을 추천 드리고 싶어요. nodejs 나 golang, python 중에 선택하시면 될것 같아요. 이게 멀티쓰레드 플랫폼이 적합하는 프로젝트도 있고 싱글 쓰레드 플랫폼이 적합한 프로젝트 가 있다보니.. 장단점이 나눠지구요. restfull api 쪽하면 golang가 좀 쉬월하는것도 있고해서... 어쨌든 nodejs 가 좀 낫지 않을까 생각드네요. 바로바로 결과물도 볼수있구요 막 웹서버가 간소화해서 구축하기 편하고요 그리고나서 프론트엔드도 관심 있으면 같이 공부해도 되구요 주언어가 자바스크립트이기때문에 알아두면 좋죠. 나중에 자바 스프링으로 갈아타셔도 되구요 시작부터 너무 어려운걸로 하면 쉽게 포기 하게 되더라구요. 자신감도 떨어지고요.. 암튼 좋은 결과 있으시길 바래요!

외 1개 답변 보러 가기

3. 자바 스프링 대신 노드

다들 왜 노드를 안 하고 스프링을 하는 걸까요?


답변

저는 신입부터 2021년까지 쭉 스프링 기반 웹개발을 했었고 작년부터 백엔드가 노드인 환경에서 개발을 하고 있습니다. 아직 남들에게 이론적으로 납득가는 설명은 드릴 수 없는 개발자라서 느낌점만 말씀드리겠습니다. 결론 노드 - 라이브러리 vs 스프링 - 프레임워크 라고 느껴집니다. 라이브러리만 가지고 서비스를 만들수 있는 개발자라면 노드의 장점을 극대화 할 수 있을겁니다. 그게 아닌 주니어 레벨의 개발자라면 프레임워크의 강제성 아래에서 개발하는게 오히려 편할겁니다. -노드 개발구현이 빠릅니다. 이렇게 개발해도 되나 싶을정도로 빠르게 서버구성이 가능합니다. 대신 아무것도 해주지않습니다. 필요한 기능들을 라이브러리의 힘을 빌려서 개발하고 구성해야합니다. -스프링 프레임워크에 대한 이해도에 따라 구현속도가 달라집니다. 노드에 비해 빡빡한 기준을 맞춰가면서 개발해야합니다. 이해도가 낮아도 클론코딩으로 극복가능합니다. 필요한 기능은 이미 프레임워크가 제공해줍니다. 주니어 레벨의 개발자는 프레임워크의 환경설정에 관한 숙지가 필요합니다. 개인적으로 처음 개발공부를 한다면 노드로 구성해서 개발해보고 그 이후에 스프링 프레임워크를 개발해보면서 프레임워크에 대한 이해도를 높이면 좋을 것 같습니다.

외 1개 답변 보러 가기

4. 요즘 백엔드에서는!!

요즘 백엔드에서는 주로 어떤 프로그램이나 언어를 사용하나요?? 저는 인공지능 관련된 쪽으로 공부를 했었는데 백엔드에도 관심이 가서요!! 현직에서 주로 사용하시는 것들이 무엇이 있는지 궁금합니다. 추가 질문입니다ㅜㅜ 백엔드와 프론트엔드 공부를 같이 한다면 많이 무리일까요??


답변

우리나라는 아직 스프링 기반 자바가 많습니다. 백, 프론트 하나를 하시는 것보다는 일단 전반적인 흐름을 알아야 좋은 설계를 할 수 있고 개발자 간 커뮤니케이션에도 도움이 됩니다. 간단한 사이트를 직접 구축해 보시면 도움이 될 거에요. 그리고 나서 백엔드와 프론트 중에 선택하셔서 집중하시는 게 좋을것 같습니다.

외 2개 답변 보러 가기

5. 질문 있습니다

현재 군 전역후 복학전 일하면서 조금씩 공부하는 중입니다 Python 으로 백준 문제 꾸준히 풀고 있고 백앤드 공부를 시작할까 하여 코틀린기초 강으와 코틀린 spring 강의를 들으며 공부를 할까 하는데 코틀린 배우는 것 괜찮나요?


답변

안녕하세요? 서진호입니다. 하시고자 하는 목표가 어디 쪽 입니까? 그게 더 중요하지 않을까요? 만일 백엔드 엔지니어로 하려면, 파이썬과 관련된 flask 나 django 같은 백엔드 프레임워크를 다루고 여러가지 데이타베이스 서버를 연결해야 하므로 관련된 앱과 데이타베이스 이론과 실용 사례를 익혀야 할 것 같습니다. 더 나가아서 클라우드 컴퓨팅과 서버리스, 모놀리식과 마이크로서비스 아키텍처에 대해 어떻게 설계하고 파이썬으로 구현하는 것을 해야 하지 않을까 싶습니다. 참고로 코틀린은 프런트엔드의 안드로이드 플랫폼을 개발하기 위한 것이고, 만일 모바일 앱을 개발하는 데 목표를 두시면 맞습니다. 스프링은 자바 언어로 되어 있어서 파이썬 보다는 자바 언어를 배우셔야 합니다. 국내에는 스프링 프레임워크로 많이 구축되어 있으나 스타트업이나 IT 서비스 기업은 내부 백엔드에 그렇지 않습니다. 먼저 하고자 하는 목표가 어디인지를 세우시고 그것과 관련된 분야를 집중으로 하시는 것이 초보 시절에는 중요합니다. 도움이 되었으면 좋겠습니다.

이 질문 바로 가기

6. 백엔드 개발자분들 질문있습니다!

근무한 지 약 1년된 초보 백엔드 개발자입니다. php랑 js만 쓰고 있는데 공부해두면 좋을만한 개발언어 하나씩 추천해주고 가시면 감사하겠습니당


답변

자바 Spring 이랑 Typescript가 많이 사용되고 있는것 같습니다 :) 그리고 제 개인적인 생각이지만 백엔드는 특정 언어에 투자하시기 보다는, DB 설계나 아키텍처링, API 등등 백엔드 전반에 걸친 다양한 기술과 개념들을 경험하고 익히는 것이 더 중요하다고 생각 됩니다!

외 3개 답변 보러 가기