목차
1. Fullstack 이란?
2. 요구되는 기술
3. 마무리
1. Fullstack 이란?
웹 업계에서 주로 사용되고 있는 말로, Frontend와 Backend 둘 다 개발 가능한 개발자를 「풀스택 개발자」라 부른다.
즉, 사용자 인터페이스부터 서버 및 데이터베이스까지 혼자서 구축할 수 있는 사람을 뜻한다.
물론, 두가지 일을 같이 하기 때문에 프론트엔드 개발자와 백엔드 개발자 처럼 특정 분야를 집중한 전문가에 비하면 개발력이 다소 떨어진다는 평도 많이 있다.
하지만 프론트엔드에 대한 이해도가 있는 백엔드 개발자, 백엔드에 대한 이해도가 있는 프론트엔드 개발자는, 상대 분야에 대한 이해도가 전혀 없는 개발자에 비해 분명한 차이가 난다.
예를 들면 커뮤니케이션이다.
커뮤니케이션은 프로젝트에 있어서 가장 중요한 부분이라 할 수 있다.
프론트엔드에서 백엔드에 특정 데이터 또는 기능이 필요해 API 개발을 요청했을 경우, 서로에 대한 업무 이해도가 없다면 필요한 기능 또는 데이터 외에 불필요한 부분까지 제공하거나 정작 필요한 부분은 제공하지 않는 문제가 발생할 수도 있다.
이는 곧 업무 효율성으로 이어지게 된다.
이러한 이유 때문인지 풀스택 개발자는 전 세계적으로 수요가 가장 많은 개발자라고 불리기도 하며, 기업에서 좀 더 선호하는 경향이 있다고 생각한다.
(물론 2명한테 시킬 거 한명한테 시키려는 악덕기업도 다수 존재하지만..)
프론트엔드와 백엔드 외에도 인프라, Devops 또는 시스템 개발 등 다른 분야에서도 다 분야에 대한 지식과 스킬이 있는 사람을 풀스택 개발자라 부르기도 하지만, 해당 글에서는 일반적인 웹 업계의 풀스택에 대해 말하려 한다.
2. 필요한 기술
그래서 뭘 어떻게 공부하면 되는데?
모든 개발 직군이 그렇지만 특히 풀스택 개발자에게는 매우 방대한 지식과 기술을 요구한다.
당연하게도 프론트엔드와 백엔드 둘 다 할 줄 알아야 하기 때문이다.
그렇다면 각각 어떤 것들을 배워야 할지 알아보자
1) Frontend
- HTML: 사용자 인터페이스의 가장 기본적인 부분으로 웹 페이지의 구조를 제공.
모든 웹 페이지의 기본 요소라고 할 수 있다.
- CSS: HTML: 보다 보기 좋게, 색을 입히고 애니메이션을 추가하는 등의 작업을 제공한다.
HTML로 만든 페이지를 디자인한다고 생각하면 된다.
- JavaScript: 동적 웹 페이지를 만드는데 사용되며 많은 곳에 사용되고 있는 기본적인 언어라고 할 수 있다.
HTML로 만든 웹 페이지에 상호 작용을 추가하여 웹 페이지를 갱신하지 않고 내용을 변경하는 등 다양한 동작을 추가할 수 있다.
- 웹 API: DOM, 파일 API, Drag and Drop 등
- 프레임워크: Vue.js, React.js, Next.js, TypeScript 등
2) Backend
- 프로그래밍 언어: Python, Java, PHP 등
- 프레임워크: Node.js, Django, Spring, Laravel 등
- 데이터베이스: 관계형 데이터베이스(MySQL)와 비관계형 데이터베이스(MongoDB)
3) 그 외
- Git & Github: 개발자의 대표적인 협업 툴이자 버전관리 도구이다. 다양한 기능을 제공하고 있으며, 취업 시 Github를 보는 회사도 다수 존재한다. 협업을 위해서 또는 취업을 위해서라도 배워두고 깃허브를 관리해두면 매우 유용하다. (자신의 발전을 위해서도)
- HTTP
- 웹 보안
- 클라우드 컴퓨팅
- Docker
3. 마무리
지금까지 풀스택 개발자란 무엇인가와 풀스택 개발자가 되기 위해 필요한 스킬에 대해 알아보았다.
물론 이런 기술들은 개발자가 되기 위한 기본적인 것들에 해당하며, 기술한 기술들을 전부 습득한다 해도 이제 겨우 걸음마를 뗀 수준이라 생각한다.
각각 프론트엔드와 백엔드의 기본적인 부분이며, 풀스택은 전술했듯이 양쪽 모두 알아야 하기 때문에 배울 것이 상상 이상으로 많다.
하지만 걱정하긴 이르다. 여기서 나열한 기술들을 전부 배우고 마스터해야 할 필요는 없기 때문이다.
이들 중 특정 한 언어를 익히면 다음 언어는 익히는 속도가 훨씬 빨라진다.
특정 언어 또는 프레임워크를 학습할 때 중요한 점은 단순히 해당 언어의 문법을 익히고 끝내는 것이 아닌, 핵심 개념을 익히는 것이다. ex) 객체지향이란? MVC패턴이란? 동작 흐름은? 등등..
아직 나 또한 실전 경험은 없는 새싹이지만, 대학에서 배우고 프로젝트를 진행하고 직장에서 들은 내용을 바탕으로 간단하게 정리해 보았다.
해당 글에 있는 기술이 전부가 아니며 꼭 이 기술들로 시작해야 하거나 모두 마스터 할 필요는 없기에 너무 막막하게 느끼지 않았으면 한다.
개인적으로 이제 막 개발에 발을 들이고 있다면, 처음부터 풀스택을 노리는건 그닥 추천하지 않는다..
배울게 많은건 둘째치고 하나만 집중해도 될까 말까한데 처음부터 두마리 토끼를 모두 잡겠다고 나섰다가 한마리도 못잡을 수도 있기 때문..
처음은 백과 프론트중에 더 마음에 드는 걸 메인으로 하고, 슬럼프가 오거나 심심할때 다른 분야를 조금씩 접해보는 것을 추천한다.
애매한 개발자가 아닌 진짜 실력있는 풀스택 개발자가 되기란 정말 힘들다고 생각한다..
하지만 매력적인 이름에 찾는 곳도 많은 매력적인 개발직군인 「Fullstack developer」.
도전해 보겠는가?
게시글에 대한 지적 또는 추가 정보 등은 언제나 환영합니다.