멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
웹 백엔드 개발자, 이런 언어와 프로그램을 공부해야 합니다
멘토
IT개발/데이터
약 5년 전
💬 멘티의 질문

멘토님 안녕하세요! 저는 작년 진로 탐색을 목적으로 개발자라는 직무에 대해 질문드렸었던 멘티입니다. 그 당시에는 "하는 일, 커리어, 연봉, 되는 길 & 경쟁력, 도움, 전망" 등 직무 선택 기준에 대해서 질문을 드렸었는데, 당시 멘토님이 답변해주신 내용이 정말 많은 도움이 돼서 감사하다는 말씀 먼저 드리고 싶습니다. 

 

저는 그 이후로 개발자뿐만 아닌 여러 직무에 대해서 탐색과 공부를 해왔습니다. 그리고 제가 얼마 전 전역을 했는데, 개발자 쪽으로 잠정적으로 진로를 정했고 공부를 하고 실제 경험을 해보려고 합니다.

 

©️Nata-Lia

 


1. SW분야(개발자, 기획자, 데이터과학자) 중 어떤 분야로 가야 할까요?

제가 SW분야에 관심이 가는 이유는 프로그래밍의 논리, 추상, 생산성 그리고 여러 IT서비스를 통해 살펴 본 기술 (머신러닝 등)과 비즈니스 모델의 관계입니다. 

 

개인적으로 후자에 좀 더 많은 관심이 있지만, 무엇보다 개발 경험을 먼저 쌓고 전문성을 갖춰야 한다고 생각해서 개발자로 직무를 선택했어요. 그중 웹 쪽이 시장이 가장 크고 입문이 용이하며, 또 프로그래밍을 제대로 경험할 수 있는 백 엔드 쪽에 관심이 갔습니다.

 

1-1. 웹 백 엔드 개발의 장단점/특징을 어떻게 보시나요?

1-2. 멘토님은 어떻게 커리어를 시작하셨는지 궁금합니다.

1-3. 웹 백엔드 개발자로 커리어를 시작하고 데이터 분석(통계, 머신러닝) 쪽으로 학위를 따서 그쪽으로 커리어를 전향하는 것을 어떻게 보시는지 궁금합니다.

 

©️selinofoto

 

2. 어떤 언어를 학습해야 할까요? 

웹 백엔드 쪽 언어를 보니 파이썬(Django), 자바, 자바스크립트(Node. js), 루비(레일즈), PHP 등이 있었습니다. 

 

자바스크립트는 ‘비교적 빨리 배울 수 있다. 프론트와 백엔드 둘 다 가능하다. 현재 규모가 작은 기업에서는 자바를 대체하고 있다. 관련 커뮤니티와 교육 역시 많다. 백엔드 쪽 시장성은 잘 모르겠다.’ 

 

자바는 ‘한국 웹 백엔드에서 가장 많은 점유율을 차지한다. 정부표준 프레임워크도 스프링이다. 백엔드 뿐만 아닌 안드로이드도 가능. 관련 커뮤니티와 교육 많다. 시장성도 좋다. 단지 배우는 것이 오래 걸리고 간단한 웹 개발에 있어서도 손 봐야 할 부분이 "정말" 많다.’ 이런 정보들을 정리해봤는데요. 개인적으로 만약 개발이 잘 맞고 기회가 있다면 인턴을 해보고 싶어서 시장성이 있는 자바와 자바스크립트에서 고민을 하고 있어요.

 

2-1. 자바스크립트의 시장성을 알고 싶습니다. (현재 소규모 회사의 많은 부분에서 자바를 대체한 것이 사실인지, 자바가 대기업이나 대규모 프로젝트에만 쓰이는 것이 맞는지)

2-2. 자바스크립트의 Node.js와 Express.js를 활용해서 웹 개발을 할 수 있다고는 하지만 실전에서는 채팅 서버와 같은 가벼운 서버 구성, 프론트 엔드 서버에 활용되고 백엔드 기반은 아직 자바와 레일즈와 같은 기존 서버로 활용한다고 합니다. 이 내용은 Node.js로 백엔드를 맡기에는 아직 한계가 있다는 말인지 궁금합니다.

2-3. 많은 분들이 자바를 "못 막는데 망치가 아닌 도끼를 사용한다" 라는 식으로 과한 언어라고 보고 먼저 자바스크립트를 추천하시는데 개인적으로 진로를 고민하고 있는 입장이라 난이도를 떠나서 개발업무를 경험해보고 싶은 마음인데 자바가 조금은 과한지 궁금합니다.

 

©Pixel-Shot

 

3. 효율적인 학습 방법이 있을까요?

가능한 방법을 찾아보니 크게 사설 학원, 정부 지원 학원, 인강과 독학 등이 있는 것 같습니다. 이 중 정부 지원은 조건이 안 돼서 사비로(6개월/300만) 해야 하는데 국비로 운영되는 수업이라 사비로 한다면 사설학원 대비 좋은 효능을 보여주지 못할 것 같습니다. 그러나 유명 사설 학원은 6개월에 600만원 정도의 적지 않은 비용이 드는 것 같습니다. (패스트캠퍼스, 코드스테이츠 등)

 

아직 시도해보는 입장이라 비용 부담이 되기도 해서 인강과 책으로 언어를 빨리 떼고 관련 동아리아 스터디와 커뮤니티로 프로젝트를 경험해보려고 합니다. 멘토님이 보시기에 추천하시는 효율적인 학습 방법이 있을까요?

 

제 상황을 객관적으로 바라보면 경영정보학이라는 IT기술에 살짝 발을 얹은 학과, C와 Python 등의 언어를 문법수준으로만 익힘, 네트워크, 데이터 베이스 등 내용을 이론 수준으로 학습하는 등 아직 제대로 된 경험이 하나도 없는 상태에요.

 

지금 4월부터 공부를 시작해서 9월 전까지 프로젝트를 해보고 이를 토대로 인턴을 구해보고 싶은데 제 상황을 보면 어떤 로드맵으로 가야 가능할 지 잘 모르겠습니다. 최대한 정리를 해보았으나 조금 번잡하고 내용이 많은 부분 정말 죄송합니다. 양해 부탁 드립니다. 이렇게 질문할 기회 주셔서 다시 한번 감사합니다!


💬 멘토의 답변

안녕하세요 멘티님, 반갑습니다. 이전에 질문하셨던 내용이 기억에 남아있어요!

 

©LightField Studios

 

백엔드 분야 - 웹 백엔드의 장단점과 특징

1-1. 웹 백엔드 개발의 장단점/특징

백엔드 중에서도 웹을 얘기하셨습니다만, 웹과 백엔드는 교집합이 크지는 않을 거에요.

웹이 사용자가 직접 사용하는 프론트엔드 부분이기 때문에, 백엔드와는 좀 거리가 먼 부분이거든요.

 

웹서버 구축을 염두에 두신 것 같습니다만, (저도 이 분야가 정확히 제 직무는 아니라 확실하지 않습니다) 일반 백엔드라 볼 수 있는 느낌입니다. “웹”서버 구축이라는 타이틀보다는 일반적인 백엔드나 혹은 웹 프론트엔드로 넓혀서 생각하시는 것이 더 좋을 수 있을 것 같습니다.

 

1-2. 멘토의 커리어

저의 커리어 시작에 대해 간단히 말씀드리면, 저는 원래 백엔드 개발자가 되고 싶었어요. 정확히는 “대용량 분산 처리” 같은 분야가 뭔가 멋있어 보여서 막연히 이쪽으로 하면 좋겠다는 생각이었습니다. 하지만 인턴 지망 순위에서 1지망은 떨어지고 2지망에 썼던 “검색” 분야로 오게 되었어요. 커리어 첫발을 검색으로 내딛어서 그런지, 정규직도 익숙한 검색 쪽으로 자의로 가게 되더라고요. 뭐든지 첫 시작이 중요한 것 같아요. 마치 전공을 정하는 것처럼, 처음 정하면 옮길 수는 있지만 많은 노력이 필요한 느낌이에요.

 

©Focus and Blur

 

1-3. 웹 백엔드 개발자 → 기술 분야 석사 전향, 의지가 중요

웹 백엔드 개발자로 시작하고 데이터 기술 쪽으로 석사를 따서 커리어를 전향하는 것

불가능한 것은 전혀 아닙니다. 다만 문제는 위에서 말씀드린 것처럼, 자기가 익숙한 그리고 잘할 수 있는 환경에서 얼마나 새로운 분야로 도전할 의지가 있는지가 중요합니다.

 

보통 커리어의 최소 기간으로 잡는 3년 동안 웹 백엔드를 하다가 새로운 분야로 바꾸는 것도 어렵고, 석사학위를 따기 위해 자기의 돈과 시간을 투자하는 것도 힘들고, 또 거기서 커리어 전향이 잘 될 거란 보장이 크게 있지는 않기 때문에 또 까다롭습니다. 이런 장애물들이 사실상 넘을 수는 있지만 넘고 나면 본인이 너덜너덜해지기 때문에, 과연 자신의 젊음을 바쳐서 할만한 가치가 있는지는 스스로 판단하시기 바래요.

 

개인적인 의견을 추가하자면, 저는 앞으로의 고생할만한 지점을 미리 말씀드리는 역할이지만 지금 멀리 보고 걱정하기보다 지금 할 수 있는 걸 하고 3년 후에 석사를 할건지 그때 고민해보셔도 충분히 늦지 않을 거에요. 그때 석사를 안 가신다면 분명 웹 백엔드에서 잘하고 계시기 때문일 테니 성공한 삶이고, 석사를 가신다면 자신을 업그레이드하고 더 원하는 분야를 가기 위한 개척해나가는 성공한 삶이죠. 그러니 지금 하실 수 있는 것을 하시면 나중 길은 자연스럽게 열릴 거에요!

 

©Africa Studio

 

개발 언어 - 자바스크립트의 현 상황과 자바의 포지션

저는 N사(IT)에만 다녀봤기 때문에 중소기업들이 어떤 언어를 주 사용 언어로 채택하는지는 잘 모르겠네요. 다만 웹서버 언어를 자바스크립트로 대체할 수 있다? 이건 좀 어렵다고 봅니다.

 

2-1. 자바 스크립트는 주로 프론트엔드를 다루기 위한 언어이고, 자바는 주로프론트엔드와는 한걸음 떨어진 포지션이기 때문에, 요즘 둘과의 경계가 섞이고 있다고 하더라도 무엇이 무엇을 쉽게 대체하기는 어려울 겁니다. 자바에 대해서는 알고 계신 게 맞아요. 대규모 프로젝트에 주로 등장하고 있고, 속도나 효율성을 늘리기 위해서는 자체 웹서버 도입이 필요하기 때문에 대기업들은 자바로 웹서버를 만들고 엔지니어링을 직접 합니다.

 

2-2. Node.js의 한계가 있습니다.  

node.js는 말씀하신 대로 백엔드 아키텍쳐 구상을 하기 위해서는 다른 언어에 비해 강점이 떨어지는 것이 사실입니다. 혹여 효율적인 데이터 처리가 가능할진 몰라도, 다른 언어들이 더 대중적이라고 할 수 있겠네요.

 

2-3. 자바는 과하다?

자바는 대표적인 객체지향 언어입니다. 그리고 다른 많은 언어들이 복잡도 감소를 위해 객체 지향적 프로그래밍을 좋은 아키텍처로 꼽고 있습니다. 객체지향 언어를 가지고도 비객체지향 프로그래밍을 할 수 있습니다. 객체지향을 얼마나 잘 살리느냐는 좋은 개발자의 중요한 척도 중 하나입니다. 다른 언어로 구축해야 한다고 하더라도, 구글링과 객체지향의 개념만 가지고 있으면 충분히 좋은 프로그래밍을 할 수 있습니다. 

 

저도 처음엔 자바스크립트나 PHP에 대해서 하나도 모르고 입사했습니다만, 어쩔수 없이 해야 될 때가 오면 다 하더라고요. 주변의 다른사람들도 그렇고요. 그렇기 때문에, 자바로 잘 기반을 닦아 놓는 것이 중요합니다. 더더욱이 백엔드 쪽 업무를 원하시면 자바를 하시는 것을 추천합니다. 자바스크립트는 남들이 잘 배우고 오지 않는 언어인 만큼 자바스크립트를 주언어로 쓰는 직군에서의 경쟁력은 있겠지만 프론트엔드로 빠질 확률이 굉장히 높습니다.

 

©Alex Brylov

 

효율적인 학습 방법

저는 사설 학원을 한 번밖에 안 다녀봐서 잘 모르겠습니다. 경험이나 주위 얘기를 듣고 판단하건대 가장 좋아 보이는 학습 방법은 실제 회사처럼 팀을 짜줘서 프로젝트를 진행하게 하는 학원이 있다고 들었는데 그런 형태가 제일 좋은 것 같습니다.

 

그런 학원은 자신의 시간을 마치 출퇴근하는 직장인처럼 하루에 주기적으로 많은 시간을 할애해야 하는데, 이걸 감당하실 수 있다면 이 방법이 제일 좋아 보입니다. 만약 사정상 인강을 선택하시거나 다른 것을 선택하신다면, 배운 건 꼭 실습하여 손에 익혀두세요. 눈으로 보고 머리로만 이해하는 코딩은 쓸 수 없는 코딩이에요.

 

사실, 멘티님께 시간이 많이 없는 것이 사실이네요. 일단 컴퓨터 전공에서 프로그램 언어 (되도록이면 본인이 주 사용 언어로 하고 싶은 언어) 과목, 알고리즘, 그리고 자료구조까지 세개는 꼭 수업에서 쓰는 책으로 공부하시고 수업자료를 얻어서 공부해보세요. 그리고 자신의 프로젝트를 하나 완성시킨다음 마지막으로 4학년 때 S사 소프트웨어 멤버쉽에 들어가신다면 빡세지만 가장 이상적인 루트가 될 거 같습니다.

 

꼭 팀을 짜서 프로젝트 진행해 보세요. 

 

질문이 구체적이셔서 많은 준비를 해오셨다는 것이 바로 느껴지네요. 분명히 멘티님은 잘 해내실 수 있을 것 같은 느낌이 옵니다. 방향은 얼마든지 제가 아는 한에서 잡아드릴테니, 열심히 뛰셔서 좋은 결과 얻으실 수 있길 바랄게요! 언제든지 다시 오셔서 질문 남겨주세요!


같은 직무를 다룬 글
인기 있는 글
연구/설계
약 6년 전