본문 바로가기

소프트웨어 교육

풀스택 개발자가 되기 위한 공부 순서 - Udemy

반응형

 

 

최근 서비스를 만들고자 하시는 분들이 많아지고 있고요. 또 개발자가 되고자 하시는 분들도 많아지고 있습니다. 하지만 하나의 서비스는 백엔드 프런트 엔드 서버 구축과 같은 다양한 세부 분야로 나뉩니다. 간단히 프런트 엔드는 화면을 구성하는 기능, 백엔드는 로그인이나 검색 결과를 제공하는 등의 기능이고, 서버 구축은 관련 서비스가 구동하는 환경을 만드는 기능이라고 보시면 됩니다. 각 분야는 전문 지식을 요구하기 때문에 일반적으로 하나의 세부 분야를 깊게 익히고 개발자로 출발하는 경우가 많죠. 그럼에도 전체 서비스의 구조를 파악하려면 각 분야의 핵심을 알아야 하고, 서비스를 직접 구축하려면 각 분야의 핵심 기술을 활용할 줄 알아야 합니다. 그래야 주니어급에서 시니어급으로 성장할 수 도 있는 것이고요. 또 원하는 서비스도 만들 수 있으니까요.

 

 

 

그래서 각 분야 기술을 활용해서 온전한 서비스를 개발할 수 있는 개발자를 풀스텍 개발자라고 합니다. 하지만 하나의 분야도 익히기 힘들기 때문에 모든 분야를 단기간에 익히려면 전략이 필요합니다. 가장 중요한 점은 각 분야의 핵심을 이해하고 빠르게 활용할 수 있는 기술을 전략적으로 선택해야 한다는 것입니다. 사실 제 경험도 이와 비슷해요. 저는 본래 시스템 소프트웨어 개발부터 시작을 했는데요. 이는 운영체제와 같은 프로그램을 개발하는 분야죠. 시스템 소프트웨어는 기술적 난도가 높기 때문에 어떤 프로그램이든 구현할 수 있다는 자신감이 있었는데 어느 날 자체 홈페이지 개발을 시도했을 때 예상보다 어렵더라고요. 그때쯤 웹이나 앱 비즈니스가 활발해지는 추세였고 이를 쉽게 배울 수 있다고 생각했지만 예상과는 달랐던 거죠. 문득 내가 무얼 하고 있나 싶더라고요. 기술 난도가 높냐 낮냐 보다는 시장과 비즈니스가 요구하는 기술을 익혀야겠다.

 

그때부터 이 생각을 가지고 팀도 옮겨서 삼성페이도 개발해보고 나중에는 직장도 관련 분야를 개발하는 쿠팡으로 회사도 옮겼습니다. 그렇게 8년 동안 웹과 앱 그리고 데이터 관련 기술을 처음부터 새로 싹 익히고 현업에도 적용해 봤습니다. 그런데 관련 분야에 새로운 기술을 새로 익히다 보니까 각 분야의 기술을 잘못 선택해서 고생을 많이 했습니다. 또 관련 기술을 잘 설명하는 유용한 콘텐츠도 찾기 어렵더라고요. 그래서 익히는 데에도 2년이나 걸렸고 고생도 많이 했습니다. 이 부분만 알려줬다면 고생하지 않았을 텐데 이런 케이스도 많았고요. 그래서 이러한 경험을 바탕으로 이 문자도 쉽게 따라가며 배울 수 있는 풀스택 로드맵을 만들고 온라인 강의로 수년간 운영해 왔습니다. 다음 과정대로만 익힌다면 단기간에 풀 스택이 되고 전체 서비스도 이해할 수 있습니다. 주니어급을 넘어서 시니어급이 되어 다른 팀과의 커뮤니케이션이나 아키텍처링이 가능하고요.

 

 

 

 

또 매우 생산성이 높은 기술을 기반으로 했기 때문에 혼자서도 서비스 개발이 가능합니다. 심지어 최신 기술을 선택했기 때문에 문법도 간결해서 학습 속도도 높습니다. 해당 로드맵의 첫 단계부터 각 단계에 어떤 기술을 익히는지 간략히 설명드리겠습니다.

 

처음 it를 익히는 데 가장 적합한 언어가 파이썬입니다. 무엇보다 입문자에게 그러면서 최신 기술을 모두 구현할 수 있습니다. 심지어 최신 기술인 딥러닝도 파이썬으로 보통 구현을 합니다. 자바는 어떠냐 자바스크립트는 어떠냐 이런 언어별 비교만 해도 영상이 따로 필요할 정도로 구체적으로 가면 이야기할 내용이 많은데요. 간단히 말하면 파이썬으로 할 수 있는 일이 가장 넓고요. 이에 반해 문법은 최신이면서 단순하다는 점입니다. 사실 결국 it 분야는 프로그래밍이 핵심입니다.

 

프로그래밍인 변수, 조건문, 반복문, 그리고 함수 이 네 가지를 딱 조합해서 코드를 작성하는 일입니다. 이러한 작업은 문법보다는 문제 해결 능력과 조합하는 사고가 필요하며 이는 연습을 통해 얻어집니다. 그래서 본 강의는 파이썬의 간결한 문법을 이용해서 효과적으로 프로그래밍을 연습할 수 있도록 전반부에는 70개 작은 문제를 함께 풀어보도록 합니다.

 

그리고 최근에는 웹과 앱에 대한 배경 지식도 중요하기 때문에 강의 후반부에는 웹에서스는 크롤링이라는 데이터 자동 수집 기술을 익히며 웹에 대한 기본 지식을 얻고 파이썬과 it에도 익숙해질 수 있도록 꾸몄습니다.

 

최근 서비스는 결국 데이터를 사용하는데요. 이런 데이터는 데이터베이스라는 특별한 프로그램에 저장이 됩니다. 즉 모든 it 분야에서 데이터 처리가 필요할 때마다 해당 데이터베이스를 사용하게 된다는 의미입니다. 그래서 데이터베이스를 다루는 기술은 데이터 분야를 포함한 모든 it 분야에서 기본 기술이 됩니다. 이 데이터베이스를 다루기 위한 핵심 기술이 SQL입니다. 여기에 최근에는 빅데이터를 처리하는 NoSQL이라는 데이터베이스도 많이 활용되고 있습니다. 이 둘은 NoSQL 기술의 주요 기능들이 SQL과 유사한 개념을 사용하고 있기 때문에 SQL을 먼저 익히고 나서 NoSQL 기술을 익히면 빠르게 두 기술을 이해할 수 있습니다.

 

그래서 이 단계에서는 이 두 기술에 중점을 두어 구성을 하였습니다. 파이썬으로 백엔드 프로그램도 빠르게 만들 수 있습니다. 이 중에서도 가장 빠르고 쉽게 백엔드 기능을 익히고 구현할 수 있는 프레임워크가 플래스크. 프레임워크는 특정 프로그램을 개발하기 위해 필요한 기본 기능들을 제공합니다. 각 프레임워크마다 제공하는 기능과 사용 문법이 다르기 때문에 해당 문법을 숙지하면 더욱 빠르게 기본 기능까지 구현하지 않고도 프로그램을 만들 수가 있죠.

 

백엔드 프레임워크는 언어별로 다양하며 동일한 언어 내에서도 여러 선택지가 있습니다. 이중에서 가장 쉬운 백엔드 프레임워크가 플래스크입니다. 프레임워크는 기본 기능이 풍부하면 그만큼 각 문법을 익히느라 상당한 시간이 걸립니다. 플래스크는 파이썬의 기본만 안다면 3일 만에도 구현이 가능합니다. 또한 플래스크도 파이썬 기반이므로 파이썬이 제공하는 방대한 기능들을 바로 활용할 수 있습니다. 심지어 플래스크를 익히면 유사한 문법으로 성능이 보다 빠른 패스트 API라는 프레임워크를 사용할 수 있어서 상용 서비스 구현도 가능합니다. 프런트 엔드는 프로그램 화면을 구성하는 분야인데요. 웹과 앱 등 다양한 화면 형태가 있지 웹이 가장 기본적인 형태입니다. 웹을 구성하는 핵심은 HTML, CSS 그리고 자바스크립트입니다.

 

이 세 가지 기술을 숙지하면 다양한 화면을 원하는 대로 구성할 수 있습니다. 더불어 다양한 프론트 엔드 기술도 결국 화면을 구성하기 때문에 배경 지식이나 용어가 서로 유사합니다. 따라서 이 새의 기본 기술을 숙지하면 향후 어떤 프레임워크 기술을 익히더라도 빠르게 익히고 활용할 수 있습니다. 물론 기본 기술만으로는 복잡한 기능을 구현하기에는 한계가 있을 수 있습니다. 그래서 프런트 엔드도 다양한 프레임워크가 존재하는데요. 예를 들면 많이 사용되는 리액트와 최신 기술인 플러터 같은 기술이 있습니다. 본 로드맵에서는 최신 프런트엔드 기술인 플로터 프레임워크 기술을 익히는데 관련 기술을 선택한 이유는 해당 단계에서 보다 구체적으로 설명을 드리겠습니다. 서비스를 제공하기 위해서는 서버에서 실행되어야 합니다. 서버는 24시간 동작하며 고정된 인터넷 주소를 가져야 하기 때문에 서비스 프로그램은 보통 노트북 같은 개인 PC가 아닌 서버라는 특별한 컴퓨터에서 구동됩니다. 그런데 최근 관련 기술이 매우 복잡해졌어요.

 

이 중 핵심이 클라우드 컴퓨팅, 웹서버, 리눅스 도커 기술입니다. 관련 기술만 잘 정리하면 최신 서버 기술을 사용해서 빠르게 서비스 운영이 가능합니다. 사실 관련 기술들은 각기 다른 기술이지만 한 번에 모두 정리할 수 있도록 강의를 꾸몄습니다. 프론트프런트 엔드 분야는 화려하고 다양한 화면을 제작해야 하기 때문에 단 하나의 프런트 앤 프레임웍만으로는 모든 요구사항을 만족시키기가 어렵습니다. 그 결과 프런트 앤 레임워크에 추가로 익혀야 할 보조 기술도 많고 심지어 또 다른 프레임워크로 유행하는 기술이 변경되는 경우도 많습니다. 이 때문에 프런트 분야는 수시로 새로운 기술을 학습해야 합니다. 최근 많이 사용되는 리액트도 사실 많이 쓰인 지는 3년이 채 안 되었고요. 리액트를 보완해 줄 보조 기술도 여러 개입니다. 즉 리액트를 익힌다면 여러 보조 기술까지 익혀야 해서 상당한 시간이 걸릴 수 있습니다. 더군다나 리액트 기술 자체가 언제 다른 기술로 대체될지 알 수 없습니다.

 

그중에서도 플로터가 글로벌 사용자 수가 늘어나며 최근 주목을 받고 있습니다. 실무에서 프런트 엔드의 가장 큰 도전은 웹 앱, 윈도우, PC, 맥, PC, 아이패드 등 다양한 플랫폼에 대응해야 한다는 것인데요. 보통 각 플랫폼용 프레임워크가 별도로 있는 경우가 많습니다. 예를 들어 앱은 안드로이드 프레임워크로 안드로이드폰용 화면만 만들 수 있고 스프트 언어로는 아이폰용 화면만 만들 수 있습니다. 각 환경에 맞게 프로그램을 개발하려면 각 기술 전문가가 필요하고 각각 많은 노력이 필요합니다. 플로터는 이 문제를 해결하여 하나의 코드로 다양한 플랫폼용 화면을 자동으로 만들어줍니다. 구글이 만들었기 때문에 신뢰성도 높습니다. 플러터는 수년간 빠르게 발전해 왔고 이제는 현업에서도 많이 사용되 시작했습니다. 특히 혼자서 하나의 서비스를 개발한다면 의외로 가장 문제가 되는 부분이 바로 화면 디자인인데요.

 

슬러터는 기본적으로 디자인이 된 위젯이라는 기능으로 화면을 구성하는 방식이기 때문에 그럴듯한 화면을 보다 빠르게 만들 수 있고요. 작성된 하나의 코드로 바로 웹 PC 프로그램을 만들 수 있기 때문에 생산성이 매우 좋습니다. it를 익히는 가장 어려운 단계는 바로 첫 단계입니다. 이를 파이썬 기반으로 간단한 문제 수십 개를 풀어 프로그래밍을 연습하며 크롤링 기술과 it 전반의 배경 지식을 함께 정리합니다. 이후에는 데이터베이스를 문제 풀이를 통해 정리하고 백엔드를 굉장히 쉬운 클래스 클 학습합니다. 그다음 프런트 엔드의 기본인 HTML, CSS, 자바스크립트를 탄탄히 다지고 서버 관련 꼭 필요한 기술을 싹 정리합니다. 그런 후 다양한 장점을 가진 최신 프런트 핸드 프레임워크인 플러터를 익히면 하나의 코드로 그럴듯하게 디자인된 웹 앱, 윈도 맥용 프로그램까지 한 번에 만들 수가 있습니다. 본 영상에서 다루는 기술은 모두 생산성이 좋고 최신 기술입니다.

 

그래서 혼자서도 웬만한 서비스 개발은 가능하고요. 학습 속도도 높기 때문에 서비스 전반에 대한 이해도가 높아져서 백엔드나 프렌트핸드팀과의 협업 시 효율적인 커뮤니케이션과 서비스 아키 고민이 가능합니다. 이를 통해 시니어급 레벨의 개발자도 될 수 있습니다. 관련 로드맵은 it에 익숙하지 않은 분들도 차근차근 따라오실 수 있도록 각 단계를 온라인 강의로 만들어 풀 스택 로드맵으로 제공하고 있습니다. 특히 단계별로 난이도를 조금씩 높여가고 각 강의에서 기존 단계에서 익힌 기술까지 활용할 수 있도록 꾸몄고요. 이미 수년간 온 오프라인 2만 분께 검증된 강의입니다. 관심 있으신 분들은 본 영상의 아래 댓글창에 고정 댓글을 확인하시면 됩니다. 꼭 관련 온라인 강의가 아니더라도 이러한 기술과 순서대로 익혀보면 짧은 시간 안에 풀 스택 개발자가 되어 원하는 서비스도 만들고 주니어급을 넘어서 시니어급으로도 의 성장이 가능할 것이라 믿습니다.  

 

유데미
https://bit.ly/3YO3hoN

1. 조코딩의 코딩 기초와 웹 프로그래밍
https://bit.ly/3WMkA7Z
2. 【한글자막】 100일 코딩 챌린지 - 2022 Web Development 부트캠프
https://bit.ly/3YNdFNx
3. 【한글자막】 React 완벽 가이드 with Redux, Next.js, TypeScript
https://bit.ly/3HYVA99
4. NestJS: The Complete Developer's Guide
https://bit.ly/3WNe68R
5. 【한글자막】 소프트웨어 아키텍처 및 대규모 시스템 설계
https://bit.ly/3vesT0z
6. 【한글자막】 MBA 마스터하기: 스타트업부터 IPO까지 비즈니스의 모든 것
https://bit.ly/3vivNBg
7. 트렌드코리아 2023
https://bit.ly/3YMrSua

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^