웹 풀스택 입문

웹서비스 개발을 중심으로 소프트웨어 개발의 흐름을 깨우칩니다.
웹, 풀스택

알림

본 커리큘럼은 벤젠 워크샵(http://workshop.benzen.io) 커리큘럼의 아카이브입니다.
현재 기존의 커리큘럼을 작은 커리큘럼들로 분리하고, 예제 프로젝트 중심의 새로운 커리큘럼으로 개정하는 중입니다.

이전 벤젠 워크샵 구독자분들은 기존 아이디를 메세지(우하단의 파란 버튼)로 보내주시면 무료 구독 코드를 발급해드립니다.

커리큘럼

1. 기초 이론

컴퓨터 구조, 운영체제, 파일, 프로그램과 프로세스, 네트워크(IP, 소켓, TCP/UDP, 프로토콜), GUI/CLI, Shell에 대해서 배웁니다. 언어는 단순한 도구라는 것을 이해합니다.

2. 프로그래밍 연습

언어에 국한되지 않는 프로그래밍의 기본적인 원리를 배웁니다. Node.js를 통해 기본적인 문법부터 객체 지향(OOP), 함수형 프로그래밍, 모듈화, 추상화 등에 대해서 배웁니다. 이를 통해 사람이 읽고 쓰기 좋은 코드, 재사용성과 확장성이 있는 코드의 구조를 체득합니다.

3. 웹 프론트엔드

웹 브라우저라는 플랫폼에 대해 알아보고, 웹 페이지를 구성하는 HTML, CSS, JavaScript에 대해 배웁니다. 또한 이벤트 시스템, 위임(Delegation)과 같은 소프트웨어의 디자인 패턴에 대해 알아봅니다. 또 Bootstrap, jQuery 같은 웹 프론트엔드 라이브러리에 대해서 알아봅니다.

4. 웹 백엔드

Node.js의 코어 모듈을 이용해 TCP 서버를 만들어 서버-클라이언트 구조에 대해 이해합니다. 이후 HTTP 프로토콜에 대해 공부하고 웹 서버를 만들어 봅니다. 나아가 Express.js라는 웹 서버 프레임워크에 대해 알아봅니다. 나아가서 쿠키, 세션, Ajax, 웹 소켓, REST API, OAuth, JWT, SPA 등 웹의 다양한 요소와 웹 보안에 대해 공부합니다.

5. 데이터베이스

DB와 DBMS, 그리고 RDBMS와 NoSQL에 대해서 알아봅니다. RDBMS의 일종인 MySQL 서버를 설치하고 CLI/GUI MySQL 클라이언트를 이용해 기본적인 SQL을 공부해봅니다. 이후 DB를 모델링하는 원칙과 타 소프트웨어에서 DB를 이용하는 방법을 공부합니다. 나아가서 MVC 패턴과 ORM에 대해 알아봅니다.

6. 개발과 배포

개발에 수반되는 반복적인 작업들을 자동화하는 방법을 배웁니다. 버전 관리 시스템으로 코드를 안전하게 관리하며 협업 하는 방법을 배웁니다. 호스팅이나 클라우드를 통해 서버를 임대하고, 원격 서버에 FTP, SSH 프로토콜을 통해 접속해 서비스를 온라인에 배포합니다. 도메인 네임 서버(DNS)와 메일 서버에 대해 알아보고 SSL, 인증서, 암호화에 대해 공부합니다.

7. 다른 플랫폼으로

새로운 플랫폼을 두려워 할 필요가 없습니다. 이론이 충족된 상태라면 어느 플랫폼에도 빠르게 적응 할 수 있습니다. GUI 아키텍쳐와 SPA에 대해서 공부하고, 스마트폰 플랫폼 및 하이브리드 앱 플랫폼을 알아봅니다. Python, Ruby 또 Apache, Nginx 및 PHP, JSP, ASP 등 다른 서버 플랫폼과 기술 스택들에 대해서 알아봅니다.
엮은이

김동욱

개발 경력 약 10년, 전문 분야는 웹 및 각종 응용 소프트웨어 플랫폼입니다. 서울대학교에서 컴공터공학을 전공하고 온라인 프로그래밍 학습 플랫폼인 Codeflow를 운영하고 있습니다.
저자

김동욱

이 커리큘럼의 엮은이입니다.

04월 16일 업데이트

커리큘럼 평가

sadbut

책으로 프로그래밍을 공부하면 기본적인 것만 보다가 금방 지쳐버리기 쉽습니다. 이 강의의 커리큘럼은 기초적인 내용은 최대한 줄이고 필요한 내용부터 가르칩니다. 빠른 시간 내에 자기 눈으로 결과물을 볼 수 있게 해줍니다. 그러면서 이 과정에서 항상 좋은 코드를 강조합니다. 처음에는 깊은 고민 없이 코드를 만들어 보게하고, 반복적으로 수정해 나가면서 좋은 구조를 만들 수 있도록 도와줍니다. 수업을 들은 후에는 혼자 코딩을 할 때도 많은 고민을 하게 됩니다. (migrated)

db_fly

학교의 교수님들보다도 개념에 대해 명확하게 설명해주십니다. 덕분에 생소했던 웹의 백엔드부터 프론트까지의 전반적인 흐름을 알 수 있었습니다. 이론적인 부분에서부터 실용적인 기술들까지 모두 커버해주는 명강의였습니다. (migrated)

ilovetjs91

가장 좋았던 점은 깊게 생각해야하는 모델링을 하는 시간이었던 것 같습니다. 처음에는 프로그래밍에 접근 할 때 생각 없이 구현(날코딩)부터 하던 저였지만 수업을 듣고 나서는 구조와 설계에 대해 많은 고민을 하게 됩니다. 짧은 시간에 많은 지식을 소화하기엔 쉽지 않았지만 궁극적으로 프로그래밍 언어란 도구에 불과하다는 생각이 들었고, 웹을 제외한 다른 플랫폼에서도 적절한 언어와 프레임워크를 활용하여 코딩 할 수 있을거라는 자신감을 얻었습니다. (migrated)

depunks

컴퓨터 구조와 프로세스와 같은 로우레벨부터 추상화된 Node.js까지 심도있게 차근차근 배울 수 있었습니다. 단순하게 문법만 배우는 것이 아니라 실습과 과제를 통해 수업을 관통하는 핵심적인 두가지 개념 '추상화'와 '의존성 분리'를 중심으로, 어떻게 하면 좋은 코드를 짤 수 있을지에 대한 철학 또한 배울 수 있는 강의였습니다. (migrated)

ilovejesus

'웹이 무엇인가?'에 대해서 전반적인 지식을 쌓을 수 있었습니다. 추상적인 개념들을 점점 구체화하면서 Node.js 등 구체적인 기술을 배울 수 있었습니다. (migrated)
평가 요약

9이 평가한 점수는 5.00/5점이며, 100%가 긍정적으로 평가하였습니다.

지원되지 않는 웹 브라우저거나 예기치 않은 오류가 발생했습니다.