풀스택 개발자가 되고 싶습니다.
풀스택 웹개발자가 되고싶은데
어떻게 준비를 할지 막막하네요.
추천 코스알려주시면 감사하겠습니다.
안녕하세요.
풀스택 웹개발자가 되고 싶으시군요.
질문자님께서 웹개발에 대한 지식이 전무하다는 전제를 두고 알려드리겠습니다.
우선은 웹사이트를 보여주는 역할을 하는 HTML, CSS를 익히시되
태그같은 것들을 모두 외우려고 하지마시고 어떨 때 어떤 것을 써야하는지 이해를 하시면 됩니다.
다음은 웹의 인터랙티브한 부분을 구현해줄 자바스크립트를 어느 정도 익히시고
백엔드는 nodeJS나 어떤 언어든 본인이 원하는 언어로 CRUD를 구현할 수 있도록 합니다.
이 기능들만 능숙하게 구현하셔도 사실상 혼자서 필요한 것들을 찾아가면서
원하는 것을 만드실 수 있는 단계까지 오신 것입니다.
저도 지금 풀스택 개발자가 되기 위해서 공부를 하고 있어서 조언을 드리기 좋을 것 같네요.
풀스택 개발자가 되기 위해서는 프론트와 백엔드 둘 다 해야해서 어떤 언어로 공부를 시작할지 정하는 것이 중요합니다.
보통 JAVA 나 JavaScript 두 개로 나뉘는데요.
자바쪽을 가시면 java 를 배우고 jsp 를 배우고 servlet, spring 을 배워서 풀스택 개발자로 나아갑니다.
그리고 자바 스크립트를 하시면 javascript , nodejs, express 를 배워서 풀스택 개발자로 나아갑니다.
(둘 다 HTML 과 CSS 는 기본이라는 가정하에)
저는 개인적으로 어떤 것이 좋을지 몰라서 java 와 javascript 둘 다 기본적인 것을 배워보았는데,
javascript 쪽이 처음 하기에는 좋은 것 같습니다. 만약에 전공으로 컴퓨터 공학쪽으로 나오셔서 java 에 대한 기본 지식이 있으시면 java쪽 테크를 타시는 것이 좋을 것 같고, 저처럼 비전공자가 풀스택 개발자가 되려면 javascript 쪽을 하시는 것이 쉽고 복잡함이 덜 합니다.
저의 기준에서 풀스택이라면 최소 1가지 이상의 프론트엔드 + 백엔드 + 데이터베이스 의 조합으로 개발할 수 있는 개발자를 의미합니다.
아무것도 할 줄 모르는 분이 풀스택으로 가시려면 가장 좋은 방법은 개발언어를 통일하는 겁니다. 얘를 들어 nodejs + (reactjs/vuejs/angularjs)를 하시거나 spring(java/kotlin) + android(java/kotlin)을 하시면 개발언어를 덜 많이 알고도 풀스택 개발을 하실 수 있습니다. 데이터베이스는 어쩔 수 없이 따로 배워야 하구요.
풀스택 웹개발자라면 전자인 nodejs + (reactjs/vuejs/angularjs) + rdbms 의 스택을 쌓으시는 게 가장 쉬운 방법입니다. 다만 풀스택 웹개발자를 선호하는 곳은 인력이 부족한 스타트업 또는 프리랜서와 같은 환경입니다. 풀스택이기에 업무강도는 어느정도 예상하셔야 하고, 언제든 회사의 요구사항에 맞게 개발스택이 변경될 수 있음을 인식하고 있어야 합니다.스타트업에서의 개발커리어를 원하신다면 백엔드에서는 nodejs + python(django) + java(spring) 정도의 프레임워크는 어느정도 다룰 수 있을 만큼 지속적으로 계발하셔야 합니다. 프론트엔드에서도 reactjs와 vuejs 를 능숙하게 다루실 수 있게 계발을 꾸준히 하셔야 합니다. 요즘은 트렌드가 너무 빠르게 변화하기 때문에 풀스택개발자는 이 빠른 흐름에 신속하게 적응할 수 있는 능력이 아주 절실합니다. ㅠㅠ
결론으로 말씀드리자면 javascript 계열의 프레임워크로 시작하는 것이 가장 빠릅니다.(좋다는 건 아닙니다.) 먼저 es6 스펙의 자바스크립트를 학습하시고 => nodejs => reactjs or vuejs 로 시작하시는 것이 가장 빠른 학습방법입니다. 더 좋은 방법은 내가 가고 싶은 회사를 정하고 그 회사가 사용하는 개발스택을 확인하셔서 공부하시는 것이 더 좋습니다. 꼭 유념하셔야 할 부분은 풀스택 개발자는 요구사항에 맞춰 자기의 스택을 신속하게 재구성할 수 있어야 합니다. 즉 학습속도가 중요합니다. 그렇기 위해서는 아주 기초적인 부분(운영체제, 네트워크, 자료구조 등)을 깊숙히 이해하시면서 공부하시는 것이 좋습니다.
왜 풀스택이 되려하시는진 모르겠는데, 풀스택을 준비해서 풀스택이 되는 경우는 많이 없습니다. 필연적으로 풀스택이 되는 경우는 많죠.
웹 풀스택 기준으로 현재는 프론트에는 HTML, CSS , Javascript가 필요하고, 백엔드는 개발자 성향에 따라 다르지만 주로 Node.js(Javascript) 정도가 기본으로 필요합니다. 뭐 백엔드에 PHP, Java(Spring)같은 선택지도 존재합니다만 최소한의 경로로 풀스택을 지향한다는 가정하의 이야기입니다.
한국 기준으로 보면 운영체제, db설계까지 다 가능해야합니다만, DB는 MongoDB와 같은 NoSQL 조합등으로 허들을 낮출 수 있습니다. OS는 뭐 윈도우 서버를 사용하실건지 리눅스 서버를 사용하실건지 따라 다르며 리눅스의 경우 배포판에서도 사용하는 기준이 약간씩 다르기때문에 특정 배포판을 잡아서 공부하시는걸 권장드립니다.
일단 백엔드든 프론트엔드든 한 파트를 선택해, 주도적으로 개발할 수 있는 회사에 입사하는 쪽을 추천드립니다.
경력도 없는 신입을 풀스택이라고 뽑아주는 회사는 존재하지 않고 존재하더라도 좋은 선임이 없는 회사일 가능성이 높습니다.
한 쪽 파트를 선택해 실무 코드를 경험하면서 그 파트에 어느정도 익숙해 졌을 때 사이드프로젝트 등으로 다른 파트도 공부하는 것을 추천드립니다.
추천하는 언어는 자바스크립트인데, 이유는 한 언어로 백, 프론트 전부 커버가능하기 때문입니다.
서버는 node / 프론트는 js + react / vue / angular
일단 HTML과 CSS 그 이후에는 Javascript 를 배우시는 걸 추천 드립니다.
그 이후에는 아래 링크를 참고해서, 필요한 내용들을 배워가시면 됩니다.
혹시 몰라서 온라인 강의 두군데를 추천 드릴께요. 둘 다 무료 입니다.
특히 부스트코스는 코스 중간에 프로젝트 실습이 있고, 완성된 프로젝트를 현업 개발자들에게 리뷰 받을 수 있는 과정이 있습니다.
도움 되었기를 바랍니다.
안녕하세요.
본의아니게 저도 현재는 현업에서 웹 풀스택으로 일하고 있는데 처음 그 막막하던 때가 생각이 나네요. ㅎㅎ일단 프로그래밍 언어는 자바스크립트를 강력히 추천드립니다. 웹 풀스택하는데 자바스크립트만 알아도 전부 가능하고, 이후 다른 분야에서도 범용적으로 사용할 수 있으며 엄청난 커뮤니티 생태계가 분명 도움이 되실겁니다.
웹은 크게 프론트엔드, 백엔드로 나누어서 시작할 수 있는데요, 개인 성향차가 있겠지만 일단 접근성이 프론트엔드가 훨씬 좋다고 생각합니다. 접근성이라는 건 흥미를 느끼기 쉽다고 이해하시면 될 것 같습니다. 이유는 개인적인 생각이지만 웹 프론트는 입문하기 정말 쉽고, 화면에 UI를 직접 설계하고 그리는 작업이라 백엔드 처럼 코드, 숫자, 문자열만 보는 것 보다는 재미를 느끼기 쉽다고 생각합니다.
어떤 언어를 선택하시더라도 웹 프론트를 시작할 때 생활코딩 웹 사이트의 HTML, CSS, JS 강의부터 보시는 걸 강력 추천드리구요, (무료입니다) React.js나 Vue.js를 시작하시는 걸 추천드리는데, 개인적으로 저는 React는 자바스크립트가 익숙하지 않으면 좀 어려웠습니다.
그리고 백엔드는 프론트보다는 분야가 조금 더 나뉘는데요, 서버는 Node.js를 추천드립니다. 자바스크립트에선 압도적으로 사용 비율이 높고 굉장히 빠른 속도로 작동합니다. 데이터베이스는 자바스크립트로 제어하는 MongoDB를 해보시면 좋을 것 같습니다. (물론 저는 다른 언어를 익힐 여력이 있다면 MySQL을 배우는 걸 추천합니다)
이후 단계는 클라우드 컴퓨팅 서비스(AWS, Azure, GCP)를 활용해서 직접 만든 프론트, 백엔드 앱을 호스팅하는 방법을 익히시는 게 풀스택의 꽃이라고 할 수 있을 것 같습니다. 클라우드 컴퓨팅이랑은 조금 다른 얘기지만 완전 나중에 여건이 된다면 Docker라는 기술도 꼭 공부해보시기 바랍니다. 정말 엄청난 기술입니다.
크게 4 가지 분야로 나누어서 말씀드렸는데요, (프론트, 백엔드, 데이터베이스, 클라우드 컴퓨팅) 사실 각 분야를 동시 다발적으로 공부하시게 될 겁니다. 그리고 무작정 강의만 보는 것도 공부가 많이 되지만, 작은 프로젝트 (공공 데이터를 사용한 날씨 앱, 버스 배차 확인 앱 등..)을 만들어보시는 게 경험상 가장 빠르게 성장하는 지름길 아닌 지름길이라고 생각합니다.
답변이 도움이 되셨으면 좋겠습니다.
https://github.com/kamranahmedse/developer-roadmap (영어)
https://github.com/devJang/developer-roadmap (한글)
풀스택 웹 개발자가 되기 위한 코스가 잘 정리된 링크입니다.
※ 참고만 해 주세요!