풀스택 닷넷 웹 개발자로 취업하기
소개
이번 아티클에서는 풀스택 닷넷 웹 개발자(Full Stack .NET Web Developer)로 취업하기 주제로 글을 이어가도록 하겠습니다.
여기에 한가지 덧붙이면, 제 목소리로 되어 있는 데브렉(http://www.devlec.com)과 비주얼아카데미 유튜브 채널(https://youtube.com/VisualAcademy)의 강좌를 기준으로 말씀을 드립니다.
그리고, 이 내용은 제 경험 기반이지, 완벽한 하나의 가이드는 아닐 수 있습니다.
(참고로, 오래전 이야기지만, 12년 전에는 KOSTA와 같은 직업 교육 기관을 통해서 저 혼자 1인 강사로 비전공 대상자 30명의 학생을 6개월간 교육시켜 닷넷 개발자로 95%(물론, 대기업도 있지만, 주로 SI/SM 업체가 대부분이었지만, 1~2명은 더 공부)를 취업을 시킨 경험이 여러 번 있습니다.
다시 한번 말씀드리지만, 오래 전에는 95%의 취업률이 되었습니다. 하지만, 요즘은 제가 오프라인 교육시장에서 활동을 하지 않으니, 이 부분은 말 그대로 예전 제 경험입니다. 그 때 커리큘럼 작성하고, 업체에서 필요한 기술을 선정하고 가르치는 작업에 대한 경험으로 최근에는 온라인 교육에만 집중하고 있습니다.)
(또한, 이 아티클의 내용을 기본으로 하되, 각각의 한 단계를 끝낸 후에 다음에 뭘 들을지 궁금하면 추가로 Q&A 게시판을 통해서 문의를 주시면 좋습니다. )
결론
우선, 결론부터 말하자만, 하나의 웹 앱을 처음부터 만들고, 호스팅 업체에 게시하여 도메인을 입혀서 실행할 수 있는 능력을 가지면, 닷넷 웹 개발자(또는 다른 기반)로 취업할 수 있는 최소한의 능력이 됩니다.
이 때, 회원 가입부터 CRUD가 포함된 기본형 게시판을 만들 수 있어야 합니다.
만약, 한 줄로 정의한다면, "아무것도 안 보고 기본형 게시판을 4시간동안에 처음부터 끝까지 다 만들어낼 수 있는 능력"이 있으면 됩니다.
좀 더 노력한다면, "CRUD 즉, 입력, 출력, 상세보기, 수정, 삭제에 포함하여, 검색, 페이징, 정렬, 편집, 차트 그리기, 파일업로드/다운로드, 엑셀 변환 업로드/다운로드, 지도 표현(구글, 네이버, 카카오 등), 채팅(실시간 앱), 메일 전송" 까지의 경험은 있어야 합니다.
(추가로, 보고서 기능(PDF, Word로 출판)까지 겸비한다면, 이 능력을 가지면, 회사를 운영해도 됩니다^^)
자, 이러한 내용에 대한 전체 가이드는 아래에 이어집니다.
주요 과목 목록
아래 단어들은 제 목소리로 되어 있는 여러 과목들을 생각나는대로 나열해 본 것입니다. 이를 순서대로 학습하는게 중요합니다.
C#, SQL Server, ASP.NET, ASP.NET Core, Blazor, ADO.NET, Windows Forms, WCF, WPF, Dapper, Entity Framework Core, ...
HTML, CSS, JavaScript, jQuery, Ajax, Bootstrap, Angular, React.js, Vue.js, ...
Java, Spring Boot, JPA, ...
Azure, Azure DevOps, Windows Server, ...
풀스택 닷넷 웹 개발자에게 필요한 필수 기술 목록
최근에는 웹 개발자에게 필요한 기술들이 너무 많아지고 복잡해졌습니다. 그러면, 20년 전 또는 10년 전으로 돌아가서 생각해보면 지금까지도 필수적으로 학습해야하는 기술 목록을 쉽게 정리할 수 있습니다. 다음 리스트는 제가 생각하는 닷넷 웹 개발자에게 필요한 최소 과목입니다.
나중에 프론트엔드와 백엔드 개발자로 나누더라도, 적어도 강의 레벨은 풀스택으로 학습을 해두어야 합니다.
위 목록에서 jQuery는 굳이 넣지 않아도 상관없지만, 아직까지 대한민국에서는 웬만한 기존 웹 사이트에 다 포함되어 있기에 필수 기술 목록으로 넣어 두었습니다. 또한, ASP.NET은 ASP.NET Web Forms, ASP.NET Core를 모두 포함합니다. 나머지 기술은 기본 입문서 수준으로 보면 됩니다.
최신 웹 개발 환경에서는 다음과 같은 SPA(Single Page Application) 기술을 필수적으로 많이 요구하고 있습니다.
또한, 모든 강의 배경에는 Git/GitHub 그리고, Azure와 Azure DevOps 기술이 배경 강의로 함께 진행됩니다.
마지막으로, 제 강의는 요즘 용어로 풀스택(프런트엔드 + 밴엔드) 기반입니다. 학생 개발자가 아닌 현업 개발자에게는 이 둘을 나눌수도 있겠지만, 적어도 제 강의 레벨에서는 프런트엔드가 되었든, 백엔드가 되었든 모두 소화를 해야 합니다. 그런 후에 본인의 의지에 따라서 프런트엔드와 백엔드를 나눠서 개발할 수 있어야 합니다.
다시 말씀드리지만, 회사 수준이 아닌 제 강의와 책의 수준은 적어도 알아야 한다고 생각합니다. 풀스택을 알아야지 백엔드도 프런트엔드도 모두 이해할 수 있습니다.
다시 강조하지만, 강의 레벨에서는 풀스택으로 모두 학습하셔야 합니다. 시간 충분합니다.
프로그래머가 되기 위한 권장 도서 첫 번째
2020년 정보처리기사 필기/실기 기본 입문서: https://www.gilbut.co.kr/book/view?bookcode=BN002613
우선, 뜸금없이 권장 도서를 하나 추천해드립니다.
정보처리기사 자격증의 필기 및 실기 기본 입문서입니다.
기능사도 산업기사도 아닌 기사 자격증입니다. 물론, 기사 자격증을 취득하려면 최소 자격이 주어져야하기에 자격증 취득 목적이 아닌, 컴퓨터 공학의 맛보기 자료로 활용하시라는 의미로 추천해 드립니다.
특히, 비전공자라면 반드시 정보처리기사 필기 및 실기 기본서의 내용을 어느정도 알고 있어야 합니다.
IT 개발자들이 누구나 사용하는 용어를 가장 요약해서 잘 설명해 놓은 책이 바로 정보처리기사 입문서입니다.
IT 계의 상식 책으로 사서 두고두고 보시면 됩니다.
저는 자격증도 있고, 예전에 영진출판사에서 정보처리기능사 책도 집필한 경험이 있지만, 지금도 가끔 정보처리 책을 사는 편입니다. 물론, 내용은 안 봅니다만... 가끔 흐름을 이해하고 내용을 참조하기 위해서 삽니다.
제가 집필한 책
제가 집필한 다음 두 권의 책은 닷넷 개발에 첫 시작을 함께하면 좋습니다.
시작하기
우선, 최근에 촬영해서 유튜브에 올려 둔 아래 경로의 2개의 동영상을 먼저 보세요. 물론, 데브렉 강좌를 보신다면, C# 기초 입문 또는 HTML 강좌부터 순서대로 따라하시면 됩니다.
1. HTML 코딩 시작하기 - Visual Studio Code 설치하기
https://youtu.be/BDwSKg_o99E
2. C# 8.0 - 1강. [갤럭시 노트 10+]로 만든 C# 프로그래밍 입문 과정 소개 강의
https://youtu.be/cyeaXKS9Kkk
3. 개발 환경 구축 관련해서 2020년에 촬영해 둔 아래 리스트도 시간되실 때 보시면 좋습니다. 물론, 각각의 과목에서 따로 소개를 하니 이런 것도 있구나로 참고 목록으로 잡아둡니다.
https://www.youtube.com/playlist?list=PLO56HZSjrPTD5kc9jzJ--cylU2qFYh1Pq
데브렉 강좌 학습하기
데브렉의 제 강좌는 하나를 다 완성하고 그 다음으로 진행하는 것을 원칙으로 하지 않고 하나 이상을 병행해서 학습하는것을 권장합니다.
많은 강좌들이 오래 전에 촬영되어, 최근의 제 강의 스타일과 다를 수 있습니다. 2020년 이후로 새롭게 업데이트되는 강좌들은 강좌명에 볼드체로 표기를 하겠습니다.
1단계 학습: 프로그래밍 시작하기
C#을 제일 먼저 학습하는 것을 권장하나, 그럴 경우에는 너무 시간이 오래 걸리니
C# 기초 문법을 공부할 때 웹 프로그래밍 기술인 HTML, CSS, JavaScript 기초를 함께 공부하는 것을 권장합니다.
다음 표의 과목을 함께 우선적으로 들으세요. 현재(2020년 4월) C# 8.0 기초 입문 강좌가 60시간 분량으로 최종 편집중에 있습니다. 아쉽지만, 우선, C# 6.0 기초 입문 강좌를 먼저 들어보세요.
또한 HTML, CSS, JavaScript 강좌는 아래 표에 제시하지만, 데브렉에는 다른 강사님 목소리로 되어 있는 강좌들이 최근 새롭게 업데이트 되었기에 이를 활용하셔도 됩니다.
[표] 닷넷 웹 개발자 시작하기 - 첫 번째 과목들
첫 번째 과목은 개발 환경이 구축된 상태(위에서 소개한 2020년 개발 환경 구축: https://www.youtube.com/playlist?list=PLO56HZSjrPTCnImIgt_2NI2gcw-fR59Cg 강좌 중 필요한 부분만 설치)에서 C#과 Web(HTML, CSS, JavaScript)를 함께 병행해가면 됩니다. 다음 표를 참고하세요.
여기까지가 1단계입니다. 잘 끝내셨나요?
다음 2단계로 넘어가시면 됩니다.
2단계 학습: 웹 프로그래밍 시작과 데이터베이스 프로그래밍
순서 |
웹 프로그래밍 |
데이터베이스 프로그래밍 |
1 |
ASP.NET 프로그래밍 입문
다음 경로의 ASP.NET 강좌 중 1강부터 22강까지는 ASP.NET 웹 폼에 대한 내용을 다룹니다. 물론, 이곳에서는 ADO.NET과 Dapper 그리고 SQL Server 데이터베이스 프로젝트도 다룹니다.
http://www.devlec.com/?_pageVariable=CSHARP-ASPNET
아쉽지만, 제 강의는 ASP.NET Web Forms 파트에서 여러가지 기능들(데이터베이스 프로그래밍, 등등)을 먼저 다루기에 ASP.NET Core부터 시작하는 강좌는 2020년 6월 현재까지는 없습니다.
물론, ASP.NET Core를 바로 사용해야하는 환경이라면 아래 2번에서 진행하는 23강 부터 학습해 나가셔도 큰 무리는 없습니다. 대신 언제든 ADO.NET과 Database는 함께 공부해두어야 합니다.
(만약, 나중에 WPF라던가 Windows Forms 또는 Xamarin과 같은 기반으로 프로그래밍을 한다면 ASP.NET Web Forms의 컨트롤과 이벤트 기반 프로그래밍의 개념이 그대로 적용되어 도움이 됩니다.)
|
SQL Server 데이터베이스 프로그래밍
다음 경로에서 SQL Server에 대한 강의를 단계별로 진행합니다.
http://www.devlec.com/?_pageVariable=MAIN_S&_courseName=SQLServer
최근에는 데브렉의 다른 강사님께서 SQL Server 데이터베이스에 대한 방대한 양의 강좌를 제공하고 있습니다. 아무거나 들어도 될 듯 합니다.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1297
|
2 |
ASP.NET Core 프로그래밍 입문
다음 경로의 ASP.NET 강좌 중 23강부터 나머지까지는 ASP.NET Core에 대한 내용을 다룹니다. ASP.NET Core와 Web API 등의 중요한 내용을 다룹니다. 나중에 Blazor를 학습하고자 한다면, 이 과정의 내용이 필수 과목이기도 합니다.
http://www.devlec.com/?_pageVariable=CSHARP-ASPNET
|
ADO.NET Database Programming
SQL Server와 C# 또는 ASP.NET Core를 학습했다면, 이를 사용하여 데이터베이스 프로그래밍을 진행할 수 있는데, 이 때 ADO.NET 기술이 필수로 사용됩니다. ADO.NET은 각각의 과정에서 모두 강의가 진행되지만, 다음 경로는 특별히 ADO.NET만 전문으로 정리한 강좌입니다.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1179&_pageMenu=
|
3 |
[보충] Micro ORM: Dapper
Micro ORM인 Dapper에 대한 추가적인 강좌는 아래 2개 링크를 참고하셔도 됩니다. 만약, ASP.NET 파트에서 사용되는 Dapper에 대한 이해를 하셨다면, 이 둘을 안 봐도 무관합니다.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1070&_pageMenu=
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1095&_pageMenu=
|
ORM: Entity Framework Core
최근에 제작되는 강좌는 대부분 데이터베이스 처리를 Entity Framework Core를 사용합니다. 물론, 각각의 강좌에서 여러 번 반복하지만, EF Core만 설명하는 강좌는 다음 링크를 참고하세요.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1268
|
2단계는 데이터베이스 기반의 웹 프로그래밍이 핵심 주제입니다.
3단계 학습: Web API
이번 단계에서는 모든 웹/모바일 프로그래밍에서 공통적으로 사용할 수 있는 API를 만드는 Web API 또는 REST API 또는 RESTful Service로 불리는 내용을 ASP.NET Core 3.1 기술을 사용하여 구현하는 내용을 다룹니다. 만약, React, Angular, Vue.js와 같은 프런트엔드 기반 기술을 학습하고자할 때에는 이 강좌가 필수입니다.
4단계 학습: Blazor 기초 -> Blazor 게시판 프로젝트
닷넷 개발 환경에서는 ASP.NET Core의 확장판인 블레이저(Blazor)가 유용하게 사용될 것입니다. 다음 블레이저 강좌를 참고해서 SPA(Single Page Application) 기반으로 프로그래밍을 완성해보세요.
순서 |
웹 프로그래밍(Blazor) |
1 |
Blazor Part 1. 기초 2020
ASP.NET Core 기반의 블레이저(Blazor)를 사용하여 SPA(단일 페이지 응용 프로그램)를 제작하는 기본적인 내용읃 다룹니다.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1291
|
2 |
Blazor Part 2. 게시판 프로젝트
Blazor를 사용하여 게시판 프로젝트의 여러 가지 기능을 구현합니다. 입력, 출력, 수정, 삭제, 검색, 페이징, 정렬, 엑셀 업로드 및 다운로드, 차트 표현 등을 다룹니다.
http://www.devlec.com/?_pageVariable=SPECIALCOURSE&cIdx=1316
|
3 |
Blazor Part 3. 회사 홈페이지(솔루션) 만들기
이 강좌의 최종 목적은 닷넷 웹 개발자를 회사에서 신입으로 뽑는데, 이 강의에서 진행한 내용을 소화한 학생 개발자를 뽑지 않는다면, 이는 해당 회사가 욕심이 엄청 과한 회사라고 판단을 할 수 있습니다.
하나의 완성된 웹앱을 만들어 보는 내용을 ASP.NET Core MVC와 Blazor를 사용하여 사용자 모드와 관리자 모드를 만들고 운영해 나가는 전체 내용을 긴 시간을 투자해서 완성합니다.
이 부분은 완성되는데 시간이 오래 걸리기에 현재는 유튜브의 다음 재생 목록에 올려두고 동영상을 제작하고 있습니다. 관심있으신 분들은 다음 링크를 참고하세요.
https://www.youtube.com/playlist?list=PLO56HZSjrPTA-EJxyqiN8HzItM7nDEb11
|
사실, 이번 단계의 Blazor 파트 2 정도의 계층형 게시판을 만들 수 있는 능력을 키워 놓으면 신입 개발자로 어디든 갈 수 있습니다. 제 강의는 현업에 계신 닷넷 개발자분들도 듣는 강의입니다.
5단계: 미니 프로젝트
미니 프로젝트는 각각의 개별 기술로 하나의 완성도 있는 기능을 만들어 보는 내용입니다. 아래 리스트는 필수 과목은 아니지만, 참고해 보세요.
사실, C# 기반으로 ASP.NET 웹 폼 게시판/쇼핑몰 프로젝트 또는 ASP.NET Core 게시판 프로젝트 정도를 만들 수 있는 수준이라면, 업체에서는 닷넷 개발자로는 충분한 시작 실력입니다. 하지만, 많은 업체들이 그 이상을 요구하고 있는게 현실입니다. 하지만, 기본 기술은 그정도로 습득 후 회사에서 추가적인 현업 능력을 키우는게 좋아보입니다. 같은 닷넷 프로젝트라도 회사마다 서로 다른 기술과 경험이 있기에 [학습]은 제가 제시한 5단계까지를 순서대로 학습하고 그 다음에는 닷넷 웹개발자로 취업의 문을 두드려 보시면 됩니다.
6단계: 취업 후 분야별 내용 보충
6단계로는 취업 또는 신입 개발자로 일을 하면서 강의 또는 책에서 배운 내용과 다른 환경일 경우에 대한 내용을 소개합니다. 다음 표는 닷넷 기반 회사에서 프런트엔드 기술이 서로 다를 때에 대한 빠른 준비를 위한 내용을 적어봅니다.
7단계: 회사 레벨
7단계는 회사 레벨에서 들어볼만한 내용을 작성합니다.
강의 레벨(학습 레벨)과 회사 레벨은 그 간격이 많이 큽니다.
회사마다, 제 강의 수준의 내용이 필요한 부분이 있고, 그 이상의 수준을 요구하는 부분도 있습니다. 하지만, 앞서 말씀드렸듯이, 위 1단계에서 5단계의 제 강의를 모두 소화할 실력이 있는데, 뽑지 않는다면, 이는 신입 개발자가 아닌 경력 개발자를 원하는 수준으로 보면 됩니다.
우선, 여기까지 먼저 기록으로 남깁니다.
추가적으로 생각나는 글이 생기면 보충해 놓겠습니다.
감사합니다.