개발자
안녕하세요. 저는 현재 신입 백엔드 개발자로 취업 준비 중입니다. 사용할 줄 아는 언어는 하나라도 제대로 하자는 마음으로 js/ts만 다뤄왔습니다. 사실 프론트를 먼저 접하고 백엔드의 필요성을 느껴 빠르게 백을 구축하기 위해 nodejs로 백을 시작하게 되었어서 지금까지도 nodejs를 메인으로 expressjs, nestjs 등으로 계속 공부를 하고 있네요. 하지만 휴학 기간 동안 취업 준비를 하기 위해 채용 공고들을 보고 있는데 이름있는 기업들은 거의 대부분 자바 개발자만 뽑더라구요.. 물론 부서마다 언어가 다르다고 하긴 하지만 대부분 자바 아니면 파이썬이 메인이고, 노드는 뒷순위에 경력자들만을 뽑더군요.. 무슨 신입이 처음부터 이름있는 기업에 가려하냐, 눈이 너무 높은거 아니냐 하고 생각하실 수 있지만 제 성격상 목표가 뚜렷해야 집중이 잘 되고, 생각보다 취준 기간이 넉넉하고 네카라쿠배 급 정도에서 요구하는 기술 스택들, 예를 들면 docker, ci/cd, redis, msa, message broker, DDD, TDD, serverless 등을 완벽히 까지는 아니더라도 충분히 시간을 들여 공부하고 이를 사용한 본격적인 프로젝트를 진행하기 전에 언어를 확실히 정하고 가고 싶어서 질문 드립니다. 아직 expressjs, nestjs도 제대로 이해하고 있는 것은 아니며 당연히 배워야할 점들이 수도 없이 많기에, 남은 1년의 기간 동안 노드쪽의 부족한 점을 채워야할지, 자바를 새롭게 배우고 충분히 공부하며 제대로 된 프로젝트를 진행해야 할지 고민입니다. 더불어, 현재 저의 역량을 확인하기 위해 풀스택으로 제대로 된 쇼핑몰을 혼자 전부 구현 및 배포를 하는 프러젝트가 진행 중에 있습니다. 만약 제가 자바를 공부하는 것이 맞다면 현재 진행하고 있는 프로젝트는 잠깐 중단하고, 자바를 충분히 공부한 후 이 프로젝트를 자바로 진행하는 것이 좋을지, 아니면 일단 현재 프로젝트는 완성하고 나중에 자바를 공부한 후 똑같이 만들어보는 것이 나을지 고민입니다. 후자가 맞는거 같지만서도 이 경우에는 시간이 너무 오래 걸릴 것 같아 질문드립니다.. 정리하자면, 배경: 취준 기간 1년이 있고 목표는 대기업 혹은 중견기업 신입이다. expressjs, nestjs를 다룰 줄 알고 현재까지 진행한 토이 프로젝트들을 봤을때 개인적으로 기본적인 부분들은 할 줄 알고 있다고 생각한다. 질문 1. 하지만, 아직 부족한 점이 많은데 남은 1년을 노드쪽을 더 파서 취업을 노릴지, 아니면 이제라도 자바를 공부해서 조금 더 유리하게 가야할지? 질문 2. 내 역량을 확인할 겸 제대로 된 프로젝트를 하고 싶어서 쇼핑몰 구현 중에 있다. 만약 제가 자바를 공부하는 것이 맞다면, 현재 이 프로젝트를 노드로 완성하고, 자바로 옮길지. 아니면, 일단 멈추고 자바를 공부한 후 자바로 처음부터 만들지. (프로젝트는 이제 막 초기 단계라 기본적인 기능만 구현 후 배포 전 ci/cd를 위해 테스트 코드 작성 중에 있습니다.) 충분한 고민을 해보고 질문을 드리는게 맞겠지만 대기업 혹은 중견기업 채용 공고에 노드 백엔드 개발자가 거의 없는걸 보니 조급해져서 이렇게 질문드립니다. 긴 글 읽어주셔서 감사드리고 답변 꼭 부틱드립니다...!
답변 3
인기 답변
안녕하세요. 많은 기업에서 자바/스프링 계열의 기술 스택을 선호하는 이유가 오랜 기간 동안 안정적인 서비스 운영이 있어 왔고, 많은 개발자들을 거치면서 보편화된 아키텍처로 설계되어 있는 경우가 많고, 또한 꾸준한 업데이트가 이뤄져 버그 및 보안 이슈에도 잘 대응이 되며, 무엇보다 널리 알려진 기술 스택으로 인해 보다 많은 개발자 풀을 확보할 수 있다는 것에 그 장점이 있다고 생각합니다. 조직의 규모가 커질수록 안정적인 것을 추구하는 경향이 있습니다. 어떤 곳은 버전 업데이트도 아주 크리티컬 한 이슈가 없는 한 최대한 늦추기도 하죠. 그리고 모든 개발자가 같은 기술 스택을 사용하기도 합니다. 하지만 그 규모가 더 커지면 조직이 나뉘고, 각 조직별로 또 다른 개발 문화를 만들어 갑니다. 네카라쿠배 급 정도의 기업이 되면 전사적으로 어떤 일관화된 기술 스택을 모든 조직에 강제하기 어려워집니다. 따라서 채용공고를 잘 살펴보시면 조직에 따라 자바/스프링이 아닌 nodejs 기반의 웹어플리케이션 개발자를 뽑는 곳도 있습니다. 그러므로 본인의 강점을 최대한 살릴 수 있는 방향으로 전략을 세우시는 것도 하나의 방법입니다. 물론 상대적으로 다양한 기술 스택을 선호하는 스타트업도 선택지 중에 하나가 될 수도 있구요. 다만, 제가 추천드리고 싶은 것은 것은 보다 다양한 경험을 해 보시길 권장 드립니다. 1년이라는 시간은 상당히 긴 시간입니다. 기본적인 웹 어플리케이션을 구축하는데 있어서 자바/스프링은 한 두 달, 아니 몇 주, 이해가 빠르다면 몇 일 이내에도 가능한 기술 스택입니다. 그렇기에 많은 곳에서 채택해서 쓰는 이유이기도 하구요. 처음부터 깊게 들어가려고 하지 말고 가볍게 시작하고 전체적인 흐름을 이해하는 것이 중요합니다. 궁극적으로는 결국 자바/스프링이냐, nodejs 프로젝트냐가 중요한 것이 아니라, 언급하신 것처럼 쇼핑몰을 구현한다면, 이를 어떤 기술 스택으로든 구현하고, 관련된 도메인을 보다 심화적으로 접근하여 도메인을 이해하는 그 과정과 최종 배포, 그리고 일부 운영까지 쌓는 그 경험이 더 값질 것으로 생각합니다. 여유가 된다면 클론 코딩으로 다른 기술 스택으로도 구현해 보기도 하구요.
고지완
작성자
백엔드 취준 • 2023년 09월 10일
답변 너무 감사드립니다. 아직 노드도 제대로 되어있지 않은 상태에서 하고 싶은, 해야할 것들이 많다보니 너무 급하게만 생각했던 것 같네요. 말씀하신 것처럼 여유를 갖고 많은 경험을 해본 후에 선택하는 것이 맞을 것 같습니다. 감사합니다!!
인기 답변
질문 1. 하지만, 아직 부족한 점이 많은데 남은 1년을 노드쪽을 더 파서 취업을 노릴지, 아니면 이제라도 자바를 공부해서 조금 더 유리하게 가야할지? => 1년 정도 공부할 시간이 남았다면 딥다이브하기에 유리한 상황입니다. 자바 쪽이 더 깊이있는 자료들 번역본이 많아 자바가 유리하긴 합니다. 하지만 주로 node를 사용해오셨고 이 쪽으로 밀고 나가실거라면 비동기에 대해 빠삭하게 공부해두시는걸 추천합니다. 질문 2. 내 역량을 확인할 겸 제대로 된 프로젝트를 하고 싶어서 쇼핑몰 구현 중에 있다. 만약 제가 자바를 공부하는 것이 맞다면, 현재 이 프로젝트를 노드로 완성하고, 자바로 옮길지. 아니면, 일단 멈추고 자바를 공부한 후 자바로 처음부터 만들지. (프로젝트는 이제 막 초기 단계라 기본적인 기능만 구현 후 배포 전 ci/cd를 위해 테스트 코드 작성 중에 있습니다.) => 구현만 하시는게 아니라 객체지향적인 설계를 하시고, nGrinder나 Locust 같은 툴로 성능테스트하고 모니터링까지 하시는걸 추천드립니다. 물론 다양한 언어를 사용해보는 것도 매우 좋은 경험이지만, 깊이도 함께 챙기셔야 합니다. 정리 : 대기업에 가실거라면 자바가 포지션이 확실히 많습니다. 레디스나 CI/CD는 자바 노드 전부 사용할 수 있습니다. 자바로 넘어가시더라도 충분히 해보셨던거라 익숙한 개념이 많으실거고요. 프레임워크 학습시간이 좀 걸리긴 할거라 이 부분도 생각해두시는게 좋습니다~
고지완
작성자
백엔드 취준 • 2023년 09월 11일
위 답변 주신 선생님의 말씀듣고 자바 및 스프링을 공부해보기로 마음 먹었습니다. 자연스럽게 객체지향적인 설계에 대한 개념을 접하고 있으며 제가 여태껏 해온 프로젝트가 설계적인 면에서 너무 빈약하다는걸 깨닫게 되었습니다. 말씀하신 것처럼 제대로 된 프로젝트가 되기 위한 객체지향 설계를 위해서는 스프링을 공부하는 것이 나쁘지 않은 선택이라고 확신이 듭니다. 이후에 다시 노드로 돌아가더라도 자바쪽에서 배운 설계를 사용하거나 nestjs로 프로젝트를 진행하면 될 것 같습니다. 다시 한번 저에게 확신을 주셔서 감사합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!