본문 바로가기
생각정리

(2021) 1. 비전공자로 자바 백엔드 개발자 시작하기

by 향로 (기억보단 기록을) 2020. 6. 1.
반응형

저는 개인적으로 이런 이야기를 하는 것을 썩 좋아하진 않습니다.

어떤 사람의 커리어나, 그 사람의 현재 위치는 운이 굉장히 큰 영향을 끼쳤다고 믿기 때문입니다.
그 사람이 했던 방식, 했던 선택들을 그대로 한다고 해서 똑같은 결과물이 나온다는 보장이 없다고 생각합니다.
그래서 누군가의 상황을 듣고, "아! 그런 상황은 이렇게 이렇게 해보세요" 라고 조언할 수가 없습니다.

일단, 저도 모든 선택이 다 처음이여서요.
리셋버튼 누르면서 2~3회차 살아온게 아니라는거죠.

intro

꽃보다 누나에서 윤여정 선생님과 이승기님의 이야기는 꼭 한번 보시면 좋습니다.

질문자분의 상황/성향/학습방법/습관 등이 모든게 다 저와 똑같진 않겠죠?
모두가 똑같은 스탯을 가진 케릭터로 시작하여 똑같은 루트를 고르면 성장속도가 비슷한 게임처럼 공략집이 있을 순 없습니다.
그런데 감히 제가 어떻게 조언을 할 수 있을까요?

그래서 다음과 같은 교육 과정의 홍보 문구를 보면 바로 무시합니다. (가끔은 화도 납니다)

  • 이렇게만 하면 이 직업으로 취업할 수 있다.
  • 이 과정만 거치면 연봉 ~~원의 직업을 구할 수 있다.
  • 이 과정은 취업률 ~~%를 달성했다.

보통 이런 과정은 대부분은 돈과 시간만 낭비할때가 많습니다.

물론 해당 교육 과정을 진행한 학생 중 한 두분이 좋은 결과를 낼 수도 있습니다.
다만 그건 그 학생이라서 그런 것인지, 그 교육과정이 좋아서인지 판단할 수 없습니다.

여튼 그런 이유로 이런 조언에 대해서는 좀 많이 난감합니다.
제가 말씀드린 그대로 100% 혹은 120%를 진행하신다고 해도 질문자분이 원하시는 결과물이 안나오면 어떻겠어요.
오히려 제 조언이 길을 더 막게된 건 아닐까 생각이 드는 것이죠.

다만, 그럼에도 조언을 할 때는 "이 분에게는 꼭 이 말을 해드려야겠다" 싶을때 입니다.

이번 글은 비슷한 질문들이 너무 많이 와서 정리하게 되었습니다.
각자의 상황이 다르지만, 큰 줄기는 거의 똑같았고, 다들 얼마나 절박한지에 대해서도 충분히 공감하기 때문에 한번 정리를 해보자 싶어 작성하게 되었습니다.

저는 이전에 그간 어떤 방식으로 선택을 해왔고, 어떤 방식을 취했는지에 대해서 한번 정리하였는데요.
(3번째 직장에 오기까지)

해당 시리즈가 아무래도 "그 당시에 이런 선택들을 해왔습니다" 이다보니 지금 준비하시는 분들은 "그래서 지금은 어떻게 하면 돼?" 와 같은 의문이 계속 남으셨던것 같습니다.

아래 내용들은 완전히 개발을 처음 하시는 분들이 순차적으로 진행하면 좋지 않을까? 생각에 작성한 내용입니다.

기회가 된다면 매년 새로 작성해보겠습니다.
새로운 교육과정, 새로운 강의들이 계속 나온다면 말이죠.

1. 시작하기

1-1. 고민해보기

일단 먼저 "꼭 자바로 시작해야한다" 라는 말에 대해 본인 스스로 생각해 볼 필요가 있습니다.
자바 외에 다른 언어 (파이썬/노드/루비 등)를 시작 언어로 배우면 큰일나는줄 아시는 분들이 많은데요.

그렇지는 않습니다.

노드 혹은 파이썬으로 웹 개발을 배우신 분이 자바를 메인으로 하는 회사의 교육생 혹은 인턴으로 취업하는 경우도 많습니다.

실제로 컴퓨터 공학 전공자 분들이 학교에서 웹 개발을 배울때도 자바로 익히는 경우는 거의 없습니다.
대부분은 파이썬 혹은 노드로 웹 개발을 익히고 프로젝트를 진행하는 경우가 다수입니다.

대학교에서 스프링 (웹을 포함한 여러 환경에서 사용되는 자바 기반의 통합 프레임워크) 으로 웹 개발 가르친다는 이야기를 들어본적이 없는데, 혹시 있다면 제보 부탁드립니다.

오히려 비전공자 + 국비학원 출신인 분들이 자바 & 스프링만 배워서 SI로 가시는 경우가 대다수였습니다.
(대다수의 코딩 테스트는 언어 제한이 없어서 어느 언어를 사용해도 결과에 지장이 없습니다.)

이 글의 대상은 최소한의 개발팀이 있는 스타트업에서부터 일정 규모 이상의 인터넷 서비스를 하는 IT 기업 (네이버/카카오/라인/배민/쿠팡/토스 등) 으로 취업을 노리시는 분들입니다.
(대형 SI회사는 대상에 없습니다.)

인터넷 서비스 기업으로 한번에 가는 것이 확률상 너무 낮기 때문에 최소한의 개발팀이 구성된 스타트업을 목표로 하시게 되는데요.

여기서 최소한의 개발팀이 구축된 스타트업이라 하면 개발자가 5명 이상, MAU가 10만 ~ 50만 사이인 회사를 이야기 합니다.(제 개인적인 기준입니다.)

해당 스타트업들은 파이썬/노드/PHP가 자바보다 훨씬 더 많이 사용되고 있습니다.
(물론 루비를 쓰는 스타트업도 있으나, 그 수가 상대적으로 적으며 전일제 교육 과정과 커뮤니티가 거의 없어 처음 개발을 시작하시는 분이 학습하시기에 좋은 환경은 아닙니다.)

여기서 자바로 시작하기에 아쉬운 점이 하나 더 있습니다.
NextStep, 부스트캠프, 패스트캠퍼스 등과 같이 오프라인 교육 퀄리티가 좋은 곳에서는 현재 (2021.01.10) 오프라인 초보 자바 풀 패키지 교육 과정이 없습니다.

자바 기초부터 웹 개발까지 전체를 훑는 과정을 이야기합니다.
온라인 과정은 있으나, 초보 단계에서 온라인 강좌는 추천하지 않습니다.

다만 다행인것은 코드스쿼드의 경우 6개월 기간의 자바 웹 백엔드 과정이 있어서 이를 추천합니다만, 1년에 1기수정도로만 진행하고 있어 시기를 놓치면 다음 해를 노릴 수 밖에 없습니다.

물론 위에서 언급한 학원 외에 국비학원도 아니면서 고 비용의 자바 풀 패키지 교육과정을 진행하는 학원도 있으나, 좋지 못한 이야기를 너무 많이 들었습니다.

일례로 페이스북 광고와 유튜브, 네이버카페까지 하는 모 자바 교육 학원은 잡플래닛에서 검색해보시면 (학원명의 앞글자만 입력하시면 됩니다. SI회사도 함께 하는 회사라서요) 평점 1.6에 직원들이 강의 자료를 준비해서 강사님이 읽기만 한다고 합니다.

그래서 잘못된 내용, 전혀 권장하지 않는 방법, 공장 기계와 같은 방법 등을 배울 바에는 오히려 자바 외에 다른 언어로 웹 개발을 배우는게 훨씬 낫습니다.

웹 개발에 필요한 여러 지식을 익히시게 되면 그때 자바 기반의 웹 개발을 익히셔도 됩니다.

이런 말씀을 미리 드리는 이유는, 앞으로 제가 소개드리는 과정들 중에는 자바 외에 다른 언어 기반이 많기 때문입니다.

자 그럼 순서대로 이야기해보겠습니다.

1-2. 온라인으로 맛보기

일단은 시작부터 오프라인 수업을 하기는 어렵습니다.

  • 원하는 오프라인 과정이 아직 개설전이거나
  • 실제로 개발자란 직업이 적성에 안맞을 수도 있거나

같은 이유들 때문입니다.
그래서 일단은 본인이 실제 웹 개발의 전반적인 내용을 쉽고/재미있게 익혀보는게 중요합니다.

이 단계에서 가장 추천하는 강의는 생활코딩의 웹 개발 과정입니다.

위에서 길게 자바 외에 다른 언어로 웹 개발을 시작해도 된다고 말씀드린게 이것 때문인데요.
현존하는 초보자를 위한 웹 개발 전체 과정을 훑는 강의 중 생활코딩의 웹 개발 과정 보다 좋은건 없습니다.
무료라서 그런게 아니라, 유료 강의까지 포함하여도 초보자의 마음을 가장 잘 이해하고 있는 강의는 생활코딩 강좌들입니다.
40대 어머님부터 시작하여 정말 많은 개발을 모르는 분들이 이 강의를 통해 시작을 하였습니다.
그 사이에 계속해서 강의 내용 역시 점점 개선되고 있어, 충분히 혼자서 학습 가능한 레벨의 완성도가 된 강의 입니다.

해당 강좌에서는 웹 전반의 지식을 전달하면서 백엔드 언어로 3가지 선택지를 제시하는데요.

저는 여기서 NodeJS를 선택하시길 추천합니다.

opentutorials1
  • 웹 전반을 훑어야하는데, 백엔드/프론트엔드 언어가 분리되어있으면 혼란만 가중
    • 백엔드/프론트엔드 언어 외에도 HTTP/HTML/DB/쿠키/캐시 등 익혀야할 것이 많음
  • 이후 진행할 오프라인 수업 혹은 교육 중 NodeJS 기반이 생각보다 많이 존재

프로그래밍 자체가 처음이신 분들은 문법 위주가 아닌 실제로 뭐든 만들어보는 과정이 중요하다고 생각합니다.

그래서 위 생활 코딩 강좌를 한달안에 끝내시는걸 목표로 진행해보시길 추천드립니다.

꼭 한달안에 해야되서 잘 몰라도 그냥 빨리 빨리 진도 빼시기 보다는 최대한 이해하시면서 넘어가시면 좋습니다.

2. 오프라인 교육 (혹은 코드리뷰가 있는 온라인 교육)

생활 코딩을 통해 기본적인 웹 개발을 배웠다면, 이젠 그 다음을 배워볼 차례입니다.
아직까지 여러분은 초보자입니다.
그리고 초보자일때는 온라인 교육 보다는 오프라인 교육이 훨씬 좋습니다.

다른걸 떠나서 같이 교육 받는 열정 있는 동기들, 자발적인 학습 분위기, 질문에 대답해주실 선생님이 구성되어 있다는건 초보때 정말 중요합니다.

아무래도 코로나 때문에 오프라인 교육이 활성화되기는 쉽지 않으니 온라인 캠프도 한번쯤 고민해볼만한데요.
코드 리뷰가 있고, 상시로 Slack 이나 화상서비스 (ZOOM 혹은 Google Meet 등)로 지속적으로 소통이 가능한 온라인 교육도 괜찮습니다.

물론 오프라인이 무조건 최고이긴합니다.
온라인은 어쩔수없이 초보자분들에겐 한계가 있습니다.
PT를 온라인으로 받는다고 생각해보시면 쉽게 감이 오실것 같습니다.

대신, 테스트 코드/OOP 에 대한 내용이 무조건 포함되어야만 합니다.
교육과정마다의 퀄리티를 보면 테스트코드가 있냐 없냐로 쉽게 판별이 됩니다.

아래는 제가 겪었던 혹은 지인을 통해 들었던 좋은 오프라인 교육들입니다.

모집기간은 매일 사이트를 들어가서 확인해보셔야 합니다.
매년 달라질 수 있습니다.

비교항목 우아한테크코스 코드스쿼드 부스트캠프
모집기간 10월경 12월~1월 6~7월
교육기간 10개월 6개월 5개월
가격 전체 수료시 무료
(중도 하차시 지불)
월 약 66만원 무료
입과 난이도 최상 - 테스트 후기 상 - 테스트 회고 중 - 자가진단문제
베이스 언어 Java Java NodeJS
공식 사이트 Github블로그 공식사이트 네이버블로그
취업현황 자바 기반의 메이저 IT 서비스 기업 자바 기반의 메이저 IT 서비스 기업 네이버 계열사 (60%정도)
후기 우아한테크코스 1기 후기 코드스쿼드 2020 마스터즈 코스 회고 부스트캠프 2019 후기

삼성에서 진행하는 SSAFY 도 있으나, 제 주위에 해당 과정을 수료하신 분이 없어서 정확히 말씀드릴 수는 없습니다.

여기서 당연히 갈 수 있다면 우아한테크코스 과정을 밟으시는게 가장 좋습니다.
자바 백엔드 개발자로서 정말 최고의 커리큘럼이고, 수료하신 분들은 대부분 메이저 IT 기업으로 취업을 합니다.

다만, 그만큼 경쟁율이 정말 높습니다.
실제로 과정 합격하신 분들의 코딩 실력만 보더라도 높은편이였고, 다들 학생시절부터 개발을 좋아했던 분들이라 성장속도도 빨랐습니다.

그래서 당장은 이 과정을 노리시기 보다는 다른 3과정 중 하나를 노리시는 것을 추천드립니다.

추천드리는 순서는 우아한 테크코스 -> 코드스쿼드 -> 부스트캠프의 교육입니다.

Java 기반의 서비스 기업을 노리신다면 사실상 우아한테크코스와 코드스쿼드가 가장 확률이 높습니다.

추천드린 순서를 보시면 아시겠지만, 입과 난이도와 취업한 회사들의 퀄리티 순으로 추천 드렸습니다.
입과 난이도도 추천에 들어간 이유는 여러분들과 함께 할 동료들의 열정을 평가할 수 있는 요소이기 때문입니다.

열정 있는 동료들이 있고/없고가 학습에 정말 중요한데, 입과 난이도가 높으면 높을수록 열정있는 동료들이 많습니다.

이건 어쩔 수 없습니다.
난이도가 낮으면 낮을수록 개발에 관심 없는 분들, 학습에 관심없는 분들이 올 확률이 굉장히 높습니다.
이런 점 때문에 아무나 들을 수 있는 국비학원을 (웬만해서는) 추천하지 않는 이유이기도 합니다.

가능하다면 입과 난이도가 높은 순으로 준비를 하시길 추천드립니다.

무작정 무료라고 선택하지마시고, 여유가 된다면 가격에 관계 없이 (비싸더라도) 좋다고 소문난 부트 캠프를 조사해보시는것도 좋습니다.
무조건적으로 무료만 찾는 분들이 계시는데, 전체 커리어가 달린 일이라는거 꼭 기억하세요.

2-1. 추천하는 국비교육은 없나요?

만약 위에서 언급한 3개 과정이 모두 시기가 안맞다면, 결국 남은 선택지는 국비교육인데요.
제가 실제로 수강한 것은 아니지만, 여러 후기를 통해서 좋은 이야기를 들은 선생님들을 남깁니다.

일단 첫번째는 쌍용교육센터의 박용우 선생님입니다.

그리고 비트교육센터의 강요천 선생님과 엄진영 선생님 두분에 대한 추천을 많이 받았습니다.
두분은 좋은 책도 쓰셨으니 책을 한번씩 보고 판단하시는 것도 좋습니다.

저도 강요천 강사님께 자바 기초를 배웠지만, 잘배웠던 기억이 있습니다.

위 모든 과정에 대해 일정이 맞지 않으신다면 한번 해당 교육센터에 각 선생님들의 강의가 언제 개설되는지 문의 해보시는것도 추천드립니다.

다만, 교육과 별개로 취업은 혼자서 준비하세요.
국비 학원에서 추천하는 회사는 정말 다 인력파견 or SI 회사입니다.
취업준비는 별개입니다.

2-2. 자바 수업을 준비한다면

어느 강좌가 되었건 자바 교육의 센터를 가신다면 아래 영상은 꼭 한번 수강하고 가시길 추천합니다.

인프런 - 만들어 가면서 배우는 JAVA 플레이그라운드

커리큘럼은 다음과 같은데요.

  • 윈도우/맥에서 Java & Git 설치
  • Github과 프로젝트 연동 및 마크다운 익히기
  • 자바의 기본적인 문법을 배우면서 자바 애플리케이션 만들기

맨 위에서도 언급했지만, 초보자 분들은 무조건 책에 있는 문법 공부를 하기 보다는 뭐가 됐든 만들면서 배우는게 가장 효율이 좋다고 생각합니다.

제가 들었던 기초 자바 교육 중에서 가장 재밌었던 내용이였으며, 좋은 코드가 무엇인지 알수 있게 해주는 좋은 교육입니다.

자바를 시작하시는 분들이라면 필수록 수강하셔야 된다고 생각합니다.

2-3. OOP & Test Code 배우기

기본적인 자바 문법과 단순 애플리케이션을 만들어보셨다면 테스트코드/OOP/클린코드를 배워보면 좋은데요.
아마 여기서 SQL과 HTML을 배워야하는게 아닌가? 라고 생각하시는분이 계실겁니다.
저는 자바로 진행하는 OOP와 테스트코드를 먼저 배우고 가는것이 낫고 바로 SQL / HTML를 안배워도 좋다고 생각합니다.

너무 빨리 SQL과 HTML로 넘어가면 OOP를 전혀 모르는 개발자가 될 확률이 높습니다.
Service 메소드에 모든 비지니스 로직을 담고, 테스트라곤 매번 브라우저에서 직접 기능을 테스트하는것밖에 모르는 그런 개발자가 될 확률이 높습니다.

그래서 SQL과 HTML은 후순위로 미루고, 자바만 알고 있는 상태에서 테스트코드/OOP/클린코드를 배워보면 좋은데요.

개인적으로는 이 단계에서는 NextStep자바 플레이그라운드 with TDD, 클린코드 2021 과정을 추천드립니다.

100% 온라인이긴 하지만, 저렴한 비용으로 피드백 문화와 TDD / 클린코드 / OOP등을 배워볼 수 있습니다.
특히 강사님이 저 개인적으로 굉장히 추천하는 자바지기 박재성님이시기 때문에 교육에 대한 신뢰도는 확실합니다.

저 역시 TDD를 박재성님을 통해 처음으로 배웠습니다.

마무리

이미 교육과정에 들어서면, 사실 이때부터는 교육 과정을 열심히 수강하는게 가장 좋습니다.
그래서 이후의 조언이 필요할까 싶은데요.
Velog나 Github, Tistory 등에서 개발자 취업 후기만 검색해보셔도 충분히 많은 후기들이 나오니 이들을 참고해보셔도 좋습니다.

제가 생각하기에 이런 내용들이 더 추가되어야겠다 싶은게 생각난다면, 2탄을 이어서 진행하겠습니다.

긴 글 끝까지 읽어주셔서 감사합니다.

반응형