깊이 있는 커리큘럼

제대로 배우고 싶은 당신을 위해 준비했습니다.

  • 프로그래밍에 처음 입문하면서 웹에 관심이 많은 분
  • 프로그래밍에 어느 정도 능숙하지만 웹이 처음이신 분
  • 웹 프론트엔드 개발을 해보시다가 백엔드가 궁금해지신 분
  • 이해 할 수 없는 라이브러리들을 쓰면서 주먹구구식 코드를 짜는데 지치신 분
  • HTML, CSS, Javascript, HTTP, TCP/IP, Node.js, Express, MySQL, Git 등을 접해보고 싶으신 분
2 프로그래밍 연습

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

2.1 프로그래밍 언어
공개
완료
학습중
기초

프로그래밍 언어의 종류에 대해서 알아보고, JavaScript와 Node.js를 소개합니다.

2.2 Node.js 설치
공개
완료
학습중
기초

Node.js와 NPM을 설치하고 IDE를 설치해 개발환경을 구성합니다.

2.3 기본 부품과 조합
공개
완료
학습중
기초

변수, 연산자, 값, 타입과 같은 프로그래밍 언어의 공통적 부품들과 이를 조합하는 방법에 대해 알아봅니다.

2.4 제어와 반복, 함수와 재귀, 에러
공개
완료
학습중
기초

프로그램의 논리적인 흐름을 제어하는 제어문과 반복문, 함수와 재귀에 대해서 알아봅니다.

2.5 명령형 프로그래밍, 스코프와 콜 스택
공개
완료
학습중
일반

스코프와 콜 스택에 대해서 알아보고, 가계부 프로그램을 만들며 명령형 프로그래밍에 대해 알아봅니다.

2.6 객체지향 프로그래밍, 복사와 참조
공개
완료
학습중
일반

객체지향 프로그래밍과 모델링에 대해 알아봅니다. 또한 값의 복사와 참조를 배우고, 언제 복사와 참조가 일어나는지 구분 할 수 있도록 합니다.

2.7 타입과 유추, 명명 규칙
공개
완료
학습중
일반

타입을 유추해 코드를 파악하는 연습을 해봅니다. 이름을 짓는 관습에 대해 알아봅니다.

2.8 함수형 프로그래밍, 콜백과 클로저
공개
완료
학습중
심화

함수를 값처럼 사용하고 함수의 응용을 강조하는 프로그래밍 패러다임에 대해 알아보고, 콜백(Callback), 클로저(Closure)에 대해서 알아봅니다.

3 웹 프론트엔드

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

3.1 웹 브라우저
공개
완료
학습중
기초

클라이언트 프로그램인 웹 브라우저의 역할에 대해서 알아봅니다.

3.2 HTML
공개
완료
학습중
기초

웹 문서를 구성하는 HTML을 이해하고, 주요 태그와 특성들에 대해 알아봅니다.

3.3 CSS
공개
완료
학습중
일반

HTML 문서의 스타일을 정의하는 CSS를 이해하고, 그 문법에 대해서 알아봅니다.

3.4 JavaScript
공개
완료
학습중
일반

HTML 문서를 동적으로 조작하는 JavaScript를 이해하고, 그 문법에 대해서 알아봅니다. 브라우저 객체 모델과 문서 객체 모델을 학습합니다.

3.5 모델링
공개
완료
학습중
심화

JavaScript의 프로토타입 체이닝에 대해서 알아보고, 게시판 흉내내기, 상자 안에서 튕기는 공들을 모델링합니다.

3.6 이벤트 시스템
공개
완료
학습중
심화

JavaScript의 이벤트 시스템과 위임(Delegation)에 대해서 알아봅니다. 코드간의 의존성을 줄이는 소프트웨어 개발 원리에 대해서 배웁니다. 또 크로스 브라우징 문제에 대해 알아봅니다.

3.7 jQuery
공개
완료
학습중
일반

JavaScript 라이브러리인 jQuery에 대해서 알아봅니다.

3.8 확장성있는 코드짜기
공개
완료
학습중
심화

할일 리스트을 관리하는 프로그램을 만들어봅니다. 확장성을 높히는 소프트웨어 개발 원리에 대해서 배웁니다.

4 웹 백엔드

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

4.1 모듈, NPM
공개
완료
학습중
일반

모듈의 개념과 Node.js의 모듈에 대해서 알아보고, NPM에 대해서 알아봅니다.

4.2 스트림, 표준입출력, 소켓
공개
완료
학습중
심화

스트림(Stream), 표준입출력(Standard I/O), 소켓(Socket)에 대해 이해하고, TCP 통신을 이용해서 CLI 채팅 서비스와 Non-SSH를 만들어봅니다.

4.3 HTTP 프로토콜
공개
완료
학습중
일반

HTTP 프로토콜을 이해하고, HTTP 요청과 응답의 구조를 배웁니다. 또 MIME 타입에 대해서 알아봅니다.

4.4 웹 브라우저의 Request
공개
완료
학습중
일반

웹 브라우저에서 서버에 HTTP 요청을 보내는 방법들에 대해서 알아봅니다.

4.5 정적 웹 서버의 Response
공개
완료
학습중
일반

Node.js의 HTTP 모듈을 사용해서 웹 서버를 구현합니다. 라우팅이라는 개념과 웹 서버의 HTTP 응답에 대해서 알아봅니다.

4.6 동적 웹 서버
공개
완료
학습중
일반

Flickr에 올라온 사진들을 보여주는 동적인 웹 서버를 만듭니다. 동적인 데이터와 뷰를 분리하기 위해 템플릿이라는 개념에 대해 알아봅니다.

4.7 Express.js
공개
완료
학습중
일반

Node.js의 웹 서버 프레임워크인 Express에 대해서 공부하고, Express를 기반으로 Flickr 갤러리를 리팩토링합니다.

4.8 쿠키와 세션, 인증
공개
완료
학습중
일반

웹 브라우저의 쿠키에 대해서 배우고, 쿠키를 기반으로 사용자를 인증하는 데 쓰이는 세션을 공부합니다. 로그인 기능이 있는 할일 리스트 서비스를 만듭니다.

4.9 동기와 비동기, Thread
공개
완료
학습중
심화

쓰레드(Thread)에 대해서 알아보고, 동기와 비동기의 개념을 익힙니다. 또한 Javascript의 콜백 지옥을 해결하는 데 쓰이는 Promise에 대해서 공부합니다.

4.10 Ajax, WebSocket
공개
완료
학습중
심화

JavaScript로 비동기 HTTP 요청을 보내는 Ajax에 대해서 공부합니다. 또한 웹 브라우저 상에서 게임, 채팅 등 양방향 통신에 사용되는 웹 소켓 기술과 Socket.io에 대해서 알아봅니다.

4.11 보안, Same Origin Policy
공개
완료
학습중
심화

브라우저의 보안 정책인 SOP에 대해서 알아보고, CSRF라는 공격 방법에 대해 알아봅니다. 또한 다른 출처로 Ajax 요청을 보내기 위한 JSONP와 SOP을 제어할 수 있는 CORS에 대해서 알아봅니다.

4.12 REST API, OAuth, SPA
공개
완료
학습중
심화

일반적인 웹 서버 외에 범용 API 서버를 구축 할 때 쓰이는 REST 아키텍쳐에 대해 공부합니다. 또한 API 서버의 사용자 인증에 쓰이는 OAuth 프로토콜에 대해 알아봅니다. 이후 간단한 REST API 서버와 SPA를 작성해봅니다.

6 개발과 배포

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

6.1 패키지 매니저, 자동화 도구
공개
완료
학습중
일반

패키지 매니저, 자동화 도구(Transpiler, Task Runner, Module Bundler) 등 생산성을 높히는 도구들에 대해서 배웁니다.

6.2 버전 관리, Git, GitHub
공개
완료
학습중
일반

버전 관리 시스템의 개념과 Git, GitHub에 대해서 배웁니다. 또 오픈소스에 대해서 알아봅니다.

6.3 호스팅, SSH, FTP
공개
완료
학습중
일반

IDC의 서버를 임대하는 방법에 대해 알아봅니다. 또 원격 서버에 SSH와 FTP 및 RSYNC, SCP 등 여러 프로토콜로 연결해 필요한 작업을 수행해봅니다.

6.4 DNS, 메일 서버
공개
완료
학습중
일반

DNS에 대해 공부하고, 도메인에 IP를 연결하는 방법을 알아봅니다. 또한 메일 서버와 SMTP, POP3, IMAP에 대해 알아봅니다.

6.5 암호화, 전자서명, 인증서와 SSL
공개
완료
학습중
심화

암호화의 필요성, 전자서명, 인증서와 SSL에 대해서 알아봅니다. 또한 무료 인증서(Let's Encrypt)를 발급 받는 과정을 안내합니다.

6.6 비밀번호 해싱
공개
완료
학습중
일반

고객의 개인정보를 보호하기 위해서 비밀번호를 해싱하는 방법을 알아봅니다.

7 다른 플랫폼으로

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

7.1 클라이언트 플랫폼
공개
완료
학습중
심화

GUI 아키텍처, MVC 패턴에 대해 알아보고, .NET, JAVA, macOS, iOS, Android 등의 플랫폼, 웹의 SPA 프레임워크, 크로스플랫폼 및 하이브리드 앱에 대해서 알아봅니다.

7.2 서버 플랫폼 / 맺음말
공개
완료
학습중
심화

Node.js 외에 Python, Ruby 또 Apache, Nginx 및 PHP, JSP, ASP 등 다른 플랫폼들과 그 차이에 대해서 알아봅니다. 그리고 웹 서버를 구성하는 다양한 기술 스택에 대해서 소개합니다.

색인
A AMD (Asynchronous Module Definition) Asynchronous Module Definition 610
ANSI American National Standards Institute 120
API Application Programming Interface 130
API KEY 490
ASCII American Standard Code for Information Interchange 120
Ajax Asynchronous JavaScript And XML 485
Anti-CSRF Token 487
Apache License 620
Apache httpd 720
Arrow Function 280
Asynchronous 480
Authoritative DNS 640
Auxiliary Memory 120
await/async 720
B BIOS Basic Input Output System 130
BOM Browser Object Model 340
BSD License Berkeley Software Distribution License 620
Babel 340
Bare Repository 620
Base 64 490
Beerware License 620
Blocking 480
Bluetooth 150
Boot Loader 130
Brute Force 660
Bubbling 360
Buffering 510
Bundling 610
Business Logic 520
bcrypt 660
C CA Certification Authority 650
CDN Content Delivery Network 370
CLI Command Line Interface 140
CORS Cross Origin Resource Sharing 487
CPU Central Processing Unit 120
CRUD Create, Read, Update, Delete 530
CRUD(Create, Read, Update, Delete) Create, Read, Update, Delete 490
CSS Cascading Style Sheets 330
CSS Preprocessor 330
CSS Transpiler 610
Callback 280
Capturing 360
Certificate 650
Class 260
Comet 485
CommonJS 610
Compile 130
Compile time error 240
Conflict 620
Content-Type 310
Context Switch 480
Controller 710
Cookie 470
Copy by reference 260
Copy by value 260
Cron 650
Cross Browsing 360
Cross Origin 487
Cross-Platform 210
Cross-site Request Forgery 487
camelCase 270
D DB Database 520
DBMS Database Management System 520
DCL Data Control Language 530
DDL Data Definition Language 530
DML Data Manipulation Language 530
DNS Spoofing 650
DNS(Domain Name System) Domain Name System 640
DOM Document Object Model 340
Data Binding 710
Data Modeling 520
Datagram 150
Delegation 360
Dependency 405
Deployment 630
Digest 660
Django 720
Domain 640
Domain Integrity Constraint 530
Domain Registrar 640
E ECMAScript 340
EJS Embedded JavaScript 460
Encoding 650
Encryption 650
End User 140
Entry Point 250
Ethernet 150
Event Listener 360
Event-Driven Architecture 710
Event-driven programming 360
Execution Context 250
F FTP File Transfer Protocol 630
FTPS FTP over SSL 630
File Permission 140
File Pointer 410
Foreign Key 520
Frame 150
Framework 710
Function 240
G GNU GPL GNU General Public License 620
GNU LGPL GNU Lesser General Public License 620
GUI Graphical User Interface 140
Git 620
Git Hosting Service 620
Grunt 610
Gulp 610
H HTML Hypertext Markup Language 320
HTTP Hyper Text Transfer Protocol 420
HTTPS Hypertext Transfer Protocol over Secure Socket Layer 420
Hashing 650
Hosting 630
Hybrid Mobile App 710
I I/O Redirection 620
ICANN Internet Corporation for Assigned Names and Numbers 150
IDC Internet Data Center 630
IDE Integrated Development Environment 220
IIS Internet Information Server 720
IMAP Internet Message Access Protocol 640
IO Input Output 120
IP Internet Protocol 150
IPC Inter Process Communication 120
ISP Internet Service Provider 150
Immutable 280
Index 520
Inheritance 260
Instance 260
Interface 350
Internet 150
Interpreter 210
Intranet 150
IoC Inversion of Control 710
J JSON JavaScript Object Notation 405
JSONP JSON with Padding 487
JWT JSON Web Token 490
K Key Stretching 660
L LAMP 720
LAN Local Area Network 150
LESS 610
Let's Encrypt 650
Lint 610
Loading 510
M MAC Address Media Access Control Address 150
MIME Multipurpose Internet Mail Extensions 420
MIT License 620
MVC Model, View, Controller 350
MarkDown 620
Merge 620
Message 150
Method 260
Method Chaining 270
Micro Service Architecture 490
Minification 610
Model 710
Module 405
Module Bundler 610
Monolithic Architecture 490
Multi-processing 480
Multi-tasking 480
Multi-threading 480
N NAT Network Address Translation 150
NPKI National Public Key Infrastructure 650
NPM Node Package Manager 405
Naming Convention 270
Nginx 720
NoSQL Not-Only-SQL 520
Node 340
Non-blocking 480
O OAuth Open Authentication 490
OOP Object Oriented Programming 260
ORM Object Relational Mapping 540
OS Operating System 130
OSI Open Systems Interconnection 150
Observer Pattern 360
One-Way Binding 710
Open Source 620
P P2P Network Peer-to-Peer Network 150
PKI Public Key Infrastructure 650
POP3 Post Office Protocol 640
Package Manager 610
Packet 150
Packet Sniffing 650
PascalCase 270
Peripheral Device 120
Pivot Table 520
Platform 710
Polyfill 340
Polymorphism 260
PostCSS 610
PowerShell 630
Primary Key 520
Private Key 650
Procedure 530
Process 130
Promise 480
Protocol 150
Prototype Chaining 350
Public Key 650
Publish-Subscribe Pattern 360
Python 720
Q QueryString 430
R RAM Random Access Memory 120
RDBMS Relational DBMS 520
RDP Remote Desktop Protocol 630
REST Representational State Transfer 490
RSYNC Remote Sync 630
Rainbow Table 660
Recursion 240
Recursive DNS 640
Repository 620
Revert 620
Revision Control 620
Routing 150
Ruby 720
Run time error 240
Runtime 130
S SCM Source Code Management 620
SCP Secure Copy 630
SEO Search Engine Optimization 710
SFTP Secure FTP 630
SMTP Simple Mail Transfer Protocol 640
SMTP Relay 640
SPA Single Page Application 490
SQL Injection 540
SSH Secure Shell 630
SSL Secure Sockets Layer 650
SSO Single Sign On 490
STDERR 410
STDIN 410
STDOUT 410
Salting 660
Same Origin Policy 487
Scheduling 130
Scope 250
Scope Chaining 250
Segment 150
Server-Client Network 150
Server-Side Rendering 710
Service Consumer 490
Service Provider 490
Session 470
Shell 140
Shell Script 630
Shim 340
Snapshot 620
Socket 410
Socket.io 485
Source-to-Source Compiler 610
Stack Frame 250
Stream 410
Synchronous 480
snake_case 270
sudo substitute user do 140
T TCP Transmission Control Protocol 150
TLD; Top-Level Domain Top-Level Domain 640
TLS Transfer Layer Security 650
Target 360
Task Runner 610
Template 450
Template String 450
Thread 480
Thread Switch 480
Transaction 520
Transcompiler 610
Transpiler 340
Trigger 530
Two-Way Binding 710
Type 270
Type Casting 230
TypeScript 610
U UDP User Datagram Protocol 150
UMD Universal Module Definition 610
URI Uniform Resource Identifier 310
Uglification 610
Unicode 120
Unit Test 610
V VCS 620
Version Control 620
View 530
vim 630
W W3C World Wide Web Consortium 610
WAN Wide Area Network 150
WWW World Wide Web 310
WebSocket 485
Webpack 610
Well-known Port 150
WiFi 150
Working Directory 620
X X.509 650

지금 바로 시작하세요!