멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
개발자가 되고 싶은 자여, 가고자 하는 기업과 언어를 선택하라!
한국신용데이터(KCD) · 캐시노트(Backend Engineer)
약 4년 전
💬 멘티의 질문

멘토님, 안녕하세요. 저는 웹 개발 쪽을 생각하고 있는 멘티입니다. 비전공자지만 나름대로 찾아보고 정리해봤는데 정보가 맞는지, 계획이 괜찮은지 멘토링을 받고 싶어 멘토님을 찾게 되었습니다.

 

저는 정보관리와 정보시스템을 전공했습니다. 공대 같은 명칭이지만 경영학 소속이며 문헌관리학과 같은 도서관 정보학에서 발전된 정보학과 IT가 결합된 학문입니다. 한마디로 MIS1)방향의 문헌정보학입니다.

 

그래서 제가 배운 IT는 컴퓨터공학 수준이 아닌 이론 수준 정도입니다. 네트워크, DB, C언어 및 자료구조, 시맨틱웹2), 정보시스템 등을 배웠습니다. 프로그래밍을 배우고 싶은데 단순히 배우는 수준으로 그치지 않고 진로로 확장하고 싶습니다. 언어를 배운 후 동아리나 스터디를 통해 제대로 된 프로젝트를 해보고 싶습니다. 기회가 된다면 인턴도 하고 싶고요.

 

Pressmaster

 

언어를 선택하기 전에 개발자, 기획자, 데이터과학자 등의 SW 분야 중 어느 분야를 먼저 공부해야 할지 생각해봤습니다. 제가 SW 분야에 관심을 두는 이유는 프로그래밍의 논리, 추상, 생산성 그리고 IT기술과 비즈니스 모델의 관계가 흥미롭기 때문입니다. 개인적으로 후자에 더 많은 관심이 가지만 먼저 개발 경험부터 쌓고 전문성을 갖춰야 한다고 생각해서 개발자라는 직무를 택했습니다. 그중에서도 웹 쪽이 시장도 크고 입문하기 쉬울 거라 생각해 백엔드를 택하게 되었습니다.

 

멘토님은 백엔드 개발의 장단점이나 특징을 어떻게 보시는지 궁금합니다. 멘토님께서 백엔드 커리어를 시작하게 된 배경도 궁금합니다. 추가로 백엔드 개발자로 커리어를 시작한 후 통계나 머신러닝의 데이터 분석 쪽으로 학위를 따서 커리어를 전향하는 것을 어떻게 보시는지 알고 싶습니다.

 

백엔드 언어를 조사해보니 파이썬(django), 자바, 자바스크립트(node.js), 루비(레일즈), php 등이 있더라고요. 저는 자바랑 자바스크립트 중에서 고민 중입니다. 두 언어 모두 배우기 좋은 환경 같은데 언어를 둘러싼 환경에 대한 정보가 확실하지 않아 질문드립니다.

 

자바스크립트의 시장성은 어떤가요? 자바가 대기업이나 대규모 프로젝트에만 쓰인다는 이야기를 들었는데 그것이 사실인지 궁금합니다. 자바스크립트의 node.js와 express.js를 활용해서 웹 개발을 할 수 있지만, 실전에서는 자바스크립트보다는 자바와 레일즈 등 기존 서버로 활용한다고 들었습니다. 이 내용은 곧 node.js로 백엔드를 맡기엔 아직 한계가 있다는 뜻인지 궁금합니다.

 

많은 분이 자바를 “못 박는데 망치가 아닌 도끼를 사용한다”라고 표현할 정도로 과한 언어라고 보시던데요. 저는 현재 진로를 고민하는 입장이다 보니 난이도를 떠나서 개발 업무를 경험하고 싶은 마음입니다. 자바가 필요 이상으로 과한 언어로 보시는지 궁금합니다. 개인적으로 자바를 배우고 싶은데 시장성이나 활용성 때문에 자바스크립트가 더 효율적인 선택인 것 같아서 고민 중입니다.

 

Cienpies Design

 

학습 방법에 대해서도 질문이 있는데요. 크게 사설 학원, 정부 지원 학원, 인강, 독학 등이 있는 것 같습니다. 이 중 정부지원은 조건이 안돼서 사비로 300만 원을 들여서 해야 하는데 사비를 들일만 한 가치가 있는지 걱정입니다. 물론 F캠퍼스, C등의 유명 사설 학원도 6개월에 600만 원 정도의 비용이 들더라고요. 나중에는 학원에 다니더라도 지금 당장은 비용이 부족해서 인강과 책을 통해 공부하고 동아리나 스터디를 통해 프로젝트를 경험해보고자 합니다. 멘토님은 어떤 방법이 가장 효율적인 학습 방법이라고 보시는지 궁금합니다.

 

제 상황을 객관적으로 보자면, 경영정보학이라는 애매한 전공, 아직 부족한 언어 학습, 이론 위주의 경험이라는 핸디캡이 있습니다. 지금부터 공부를 시작하고 프로젝트를 경험해 이를 토대로 인턴을 하고자 합니다. 제 상황을 봤을 때, 이 계획이 가능한지 모르겠습니다. 그나마 사비로 정부 지원 프로그램을 듣고 학원을 통해 인턴을 구하는 루트가 현실적인 것 같은데, 좋은 루트 같지는 않습니다. 혹시 멘토님께서 추천할만한 루트가 있을까요?

 

고민이 많은 만큼 질문이 많네요. 길고 많은 질문을 읽어주셔서 감사합니다. 많은 조언 부탁드립니다.



1) MIS(Management Information System) 경영정보시스템으로 조직의 계획·운영 및 통제를 위한정보를 수집, 저장·검색·처리하여 적절한 시기에 적절한 형태로 적절한 구성원에게 제공함으로써 조직의 목표를 효율적이고 효과적으로 달성할 수 있도록 조직화한 통합적 인간·기계 시스템을 말한다.


2) 시맨틱 웹 : 컴퓨터가 이해할 수 있는 웹. 즉, 사람이 읽고 해석하기에 편리하게 설계되어 있는 현재의 웹 대신에 컴퓨터가 이해할 수 있는 형태의 새로운 언어로 표현해 기계들끼리 서로 의사소통을 할 수 있는 지능형 웹이다.


💬 이종진 멘토의 답변


안녕하세요, 멘티님. 질문이 구체적이라 좋네요. 학과에 대해 자세히 설명해주셔서 답변하기도 쉬울 것 같습니다. 문헌정보학이 데이터분석을 다루니 타전공보다는 IT에 가까운 것 같아요.


백엔드 개발의 장단점은?

저도 멘티님처럼 프런트엔드를 해야 하나, 백엔드를 해야 하나 고민이 많았습니다. 일을 하면 할수록 세분되다 보니 뭔가 하나를 정해야 할 것 같았거든요. 저는 백엔드에서 데이터를 마음대로 만지면서 여러 결과를 만들어내는 것이 매력적으로 느껴졌어요. 그래서 백엔드를 선택했는데 아직도 이 부분이 가장 큰 특징이라 생각합니다. 단점이라 하면 아무래도 서버를 담당하고 있으니 서버가 어떤 이유로든 멈추면 바로 조치를 해야 한다는 점 정도가 있겠네요.


Auxin


문과생이 백엔드 개발을 하게 된 계기는?

저는 프로젝트 위주로 공부했습니다. 친구에게 처음 파이썬을 배웠고 알고리즘 문제를 푸는 것이 즐거워서 진로도 확정하게 되었죠. 그러던 중 ‘멋쟁이 사자처럼’이라는 동아리를 알게 되어 거기서 활동하게 되었습니다. 이때 웹 개발을 처음 접했습니다. Ruby on Rails를 새롭게 공부했고 다른 언어도 배웠습니다. 동아리 활동이 끝나고 파이썬을 다시 하니 이전보다 더 좋더라고요. 그래서 파이썬으로 웹개발을 하고 싶어 Django로 웹을 만들면서 시간을 보냈습니다.


열 명이 넘는 친구 무리에서 공대생이 아닌 사람은 저를 포함해서 세 명뿐이었습니다. 함께 자취했던 친구도 공대생이었어요. 컴퓨터 공학과는 없었지만 모든 친구가 프로그램밍을 재밌어했죠. 그래서 같이 이야기를 자주 나누곤 했습니다. 그래서인지 문과생한테 생소할 수 있는 전기/전자 용어, 프로그래밍 용어가 제게는 익숙했습니다. 친구들과 라즈베리파이나 아두이노 가지고 놀기도 하며 각자 잘하는 분야를 살려서 프로젝트까지 했던 기억이 있습니다.


추가로 친구들의 포트폴리오를 모아서 보여주는 사이트를 만들어 저만의 프로젝트로 만들었습니다. 혼자서 이런저런 웹페이지를 만들었는데 쇼핑몰을 만드는 게 가장 큰 도움이 되었습니다. 사이트 디자인까지 신경 쓰기는 힘들어서 자주 이용하는 쇼핑몰의 디자인을 참고해서 만들었습니다. 기능들이 들어갈 때마다 DB 구조를 얼마나 갈아엎었는지 모르겠습니다. 그때는 힘들었지만 돌이켜보니 큰 도움이 됐습니다. 갈아엎는 경험을 자주 하니 DB 구조를 아주 신중하게 결정하고 기능을 구현하게 되더라고요.


프로젝트를 몇 개 진행한 후 이력서를 만들었습니다. 저는 큰 기업에 도전하기보다 작은 기업에서 서비스의 전체적인 부분을 만져보고 싶었습니다. 여러 스타트업에 지원했지만, 면접에서 다 떨어졌습니다. 당연한 결과인 게 저는 컴퓨터공학에 관한 이론을 전혀 모른 채로 갔거든요. 다시 준비해야 할 것 같아서 컴퓨터 공학 이론을 공부하기 시작했습니다.


unsplash


이력서를 손보고 Git hub에 올린 프로젝트를 다듬고 ReadMe에 프로젝트 소개를 작성해 넣었습니다. 다른 사람들의 Git hub의 모습이 깔끔하고 멋있어 보여서 따라 했지만 잘한 행동이라고 생각합니다. 실제로 많은 분이 이걸 칭찬해주셨거든요.


컴퓨터 공학과 관련한 이론은 블로그를 찾아가며 공부했습니다. 공부하다 모르는 걸 인터넷을 통해 찾았죠. 시간은 더 걸렸지만, 머리에는 더 오래 남는 방법이었습니다. 코딩테스트도 함께 준비했습니다. 이전에 테스트를 봤을 때 푼 테스트도 있었지만 풀지 못한 것도 있었습니다. 이때 함수가 기억이 안 나서 못 풀었던 것이 너무 아쉬워서 틈날 때마다 한두 문제씩 풀었습니다. 그런 식으로 준비하다 보니 결국 잇다에 정착하게 되었죠.


데이터분석으로 전향할 계획이라면 대학원 진학을 추천합니다

멘토님이 생각하시는 진로 변경이 나쁘지 않은 계획이라고 생각합니다. 백엔드 개발자는 매일 데이터를 만지며 어떤 기능을 개발하거나 고칠 때 데이터 구조를 생각하고 만들어야 합니다.


만약 멘티님이 수학 공부에 거부감이 없다면 열심히 하셔서 커리어 전향이 가능할 것 같아요. 하지만 궁극적인 목표가 데이터 분석이라면 개발자를 통하지 않고 바로 가는 것도 방법입니다. 데이터 분석 분야는 저도 잘 알지 못하지만, 대부분 대학원 진학을 추천하더라고요. 물론 예외도 있습니다. 제 지인도 데이터 분석을 하고 싶어서 대학원 진학과 스타트업 취업 사이에서 고민하다가 스타트업에 취업했는데요. 현재 대학원에서 진행하는 프로젝트보다 더 많은 프로젝트를 진행하고 있어 만족하더라고요. 즉, 선택은 멘티님의 몫인 것 같습니다.


megaflopp


기업의 성격에 따라 필요한 언어는 다릅니다

기본적으로 자바와 자바스크립트는 다른 언어입니다. 소규모 회사는 자바보다 자바스크립트를 이용해 개발할 확률이 높습니다. 기업마다 어울리는 프로그래밍 언어는 다르거든요. 빠르게 서비스를 만들고 싶다면, 앞서 말한 node.js와 express.js로 만들 수 있습니다.


서비스를 사용하는 사용자가 늘어나면 더 많은 기능이 필요하고 이에 따라 서비스 구조를 변경하게 되는데요. 그땐 자바스크립트 프레임워크(리액트, 뷰 등)를 사용하게 됩니다. 추가로 자바와 같은 서버사이드 언어를 선택해 서버 응답이 편한 서비스를 구상할 수 있죠. 즉, 어떤 프로그래밍 언어를 쓰냐는 질문에 답은 ‘정답은 없다’입니다. 기업의 상황에 따라, 기업의 다음 목표에 따라, 주력하는 기능이 무엇인지에 따라 어울리는 언어나 도구가 다르니까요.


정리하자면, 기업의 성격에 따라 필요한 언어는 다릅니다. 빠르게 성장해야 하는 스타트업은 자바를 사용하지 않겠지만 큰 기업은 안정성이 중요하기 때문에 자바를 활용합니다. 멘티님께서 어느 기업에 가고 싶은지 먼저 정하고 기업에 맞는 언어를 준비하는 등 성장하는 것이 취업 준비의 첫걸음이라 생각합니다.


unsplash


node.js로 백엔드를 맡기에는 한계가 있다?

사실 큰 기업에서도 node.js를 꽤 사용합니다. 페이팔, 링크드인, 우버 등 이름만 들어도 알만한 기업에서 사용 중이죠. 자바스크립트가 인기를 끌게 되면서 이제 웹사이트에 자바스크립트가 들어가지 않는 서비스가 없을 정도입니다.


반면 파이썬이나 루비와 같은 언어는 인간에게 더 친화적이라고 할 수 있습니다. 그만큼 에러가 발생할 확률이 낮고 발생하더라도 발견하기 편하기 때문에 많은 이들이 파이썬이나 루비를 찾는 게 아닐까요? 완벽한 언어는 없습니다. 모든 언어는 각자의 목적과 철학으로 만들어졌습니다. 상황에 맞는 언어를 활용할 때 가장 큰 성과를 낼 수 있습니다. 따라서 node.js로 백엔드를 맡기에는 한계가 있다는 말은 어찌 보면 편견일 수 있습니다.


자바는 필요 이상으로 어려운 언어다?

자바를 배울지 고민이시군요. 앞서 누차 말씀드렸듯 어느 기업을 택하는지에 따라 답이 달라질 것 같습니다. 멘티님도 알고 계시듯, 큰 기업은 자바와 같은 언어를 사용하고 작은 기업은 빠르게 개발할 수 있는 언어를 사용합니다. 즉, 멘티님이 어느 기업을 택하느냐에 따라 공부 방향이 달라지겠죠. 


기업은 서비스에 사용하는 언어나 기술을 친절하게 공개합니다. 관련 블로그를 운영하는 기업도 많고 세미나나 콘퍼런스를 여는 기업도 많습니다. 기업들이 어떤 언어를 사용하는지 공부해보세요. 또 어떤 기술들로 서비스를 구성하는지 찾아보세요. 좋은 공부 방법이 될 것입니다.


rawpixel


정부 교육, 사설 학원, 인강, 독학 중 가장 효율적인 학습 방법은?

사실 저는 의지에 따라 다르다고 생각합니다. 멘티님이 프로그래밍을 정말 좋아한다면 관심을 가지고 이것저것 공부할 것입니다. 학원의 도움 없이도 여러 프로젝트를 만들 수도 있고요. 


저도 예전에 학원 등록을 고민했습니다. 학원 커리큘럼도 꼼꼼히 뒤져봤고요. 그러다 학원의 커리큘럼에 ‘쇼핑몰 만들기’가 있길래 혼자 만들어보기도 했습니다. 혼자 만들면 시간은 오래 걸리지만, 주도적으로 프로젝트를 해냈다는 경험을 얻을 수 있습니다. 주도적으로 했기에 각 기능을 누군가에게 설명할 때 훨씬 잘할 수 있습니다. 


물론 학원 수업도 열심히 듣고 학원이 끝나고도 열심히 공부한다면 좋은 성과를 얻을 수 있습니다. 하지만 그 정도로 열심히 할 수 있는 사람이라면 굳이 학원에 다니지 않아도 잘할 수 있다고 생각합니다. 학원을 가는 이유가 ‘인턴을 구하는 목적’이라면 더욱더 가지 않는 것이 좋다고 생각합니다.


동아리나 스터디를 활용하는 것도 좋은 방법입니다. 같이 공부하고 공부한 내용을 나누는 사람이 있다는 것은 중요합니다. 또 협업 프로젝트에 익숙하기 위해선 동아리나 스터디에 들어가는 것이 꼭 필요한 과정이라고 생각합니다.


학원 수강이 고민이시라면 먼저 무료 튜토리얼 강의를 들어보시고 결정하세요. 지금 멘티님은 고민을 많이 하시지만, 선택하지 않았기에 앞길이 막막하게 느껴지는 것 같아요. 어떤 기업을 갈지, 어떤 언어를 공부할지 결정하면 그때부턴 의외로 길이 쉽게 풀릴 수 있습니다. 적당한 고민이 끝나면 주저 말고 시도하는 것이 중요합니다. 멘티님은 충분히 잘하실 수 있어요. 멘티님의 앞날을 응원합니다.


이종진 멘토
한국신용데이터(KCD) · 캐시노트(Backend Engineer)
IT개발/데이터
가천대학교 국어국문학과를 재학 중에 코딩에 관심이 생겨서 공부를 시작했습니다.
호기심 많고 기계를 다루거나 만드는 것을 좋아했기 때문인지는 모르겠으나 코딩을 처음 보고, 별것 아닌 계산기를 만드는 것이 제 눈에는 너무 신기했습니다. 그동안 아무 생각 없이 사용해 온 기계들이 어떻게 작동하는 것인지 조금씩 이해가 되기 시작했습니다.
처음 시작이 '웹 개발자가 되어야겠다!'와 같은 생각은 아니었습니다.
알고리즘 문제를 푸는 시간을 좋아했고, 제가 만든 알고리즘에 값을 넣으면 예상한 정답이 튀어나올 때 기분이 좋았습니다. 그렇게 알고리즘 문제만 풀고 아무것도 하지 않고 있을 때 이 분야의 사람들을 만나고 싶었습니다. 그렇게 선택한 것이 동아리였고, 동아리에서 배운 것이 웹 개발이었습니다.
이후 많은 사람들의 도움과 노력 끝에 취업에 성공하였고 좋은 서비스를 운영하는 팀에 들어와서 개발 업무를 하고 있습니다. 저는 다른 사람들의 이야기를 듣는 것을 좋아합니다. 멘티님의 경험을 들려주세요! 언제든지 제 경험을 토대로 힘이 되어 드리고 싶습니다! 🙂
같은 직무를 다룬 글
인기 있는 글
연구/설계
약 5년 전
잇다의 멤버가 되어주세요 🚀
직무, 취업 콘텐츠를 담은   뉴스레터를 받아볼 수 있어요.
멘토에게 직접   질문할 수 있어요.
현직자 클래스를 무료로 수강할 수 있어요.