소프트웨어 개발의 원리를 배우세요.

소프트웨어를 설계하고 구축해나가는 근본적인 사고방식과 배경지식을 배웁니다.
또는 당신의 Git 저장소의 코드를 이용해 강의를 작성하고 수익을 올릴 수 있습니다.

권장 커리큘럼

웹 풀스택 입문저자 김동욱, 엮은이 김동욱, 745

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

웹 어플리케이션엮은이 김동욱, 60

컴퓨터와 네트워크, 웹의 배경지식과 GUI 프로그램의 구조를 이해하고 JavaScript와 React.js, Node.js로 채팅 서버와 프론트 어플리케이션을 만들어 봅니다.

김동욱저자 김동욱, 엮은이 김동욱, 39

개인 회고록 및 블로그입니다.

주제별 강의

김동욱 (2)

이직, 조직과 시스템저자 김동욱, 주제 김동욱

STRIX로 이직한 뒤 인프라 구축 및 아키텍트, 코더로서의 생활에서 받은 영감들

대학 생활, 입대저자 김동욱, 주제 김동욱

짧은 대학 생활과 군 입대

JavaScript (3)

채팅 서버와 웹 어플리케이션 데모저자 김동욱, 주제 웹, JavaScript, Node.js

차후 본 커리큘럼에서 진행 할 프로젝트를 먼저 데모로 작성해봅니다.

JavaScript저자 김동욱, 주제 JavaScript, 브라우저 객체 모델, 문서 객체 모델, DOM, BOM

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

프로그래밍 언어저자 김동욱, 주제 JavaScript, Node, 프로그래밍 언어

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

의존성 분리 (2)

확장성있는 코드짜기저자 김동욱, 주제 의존성 분리

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

이벤트 시스템저자 김동욱, 주제 이벤트 시스템, 위임, 의존성 분리, 크로스 브라우징

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

웹 서버 (2)

정적 웹 서버의 Response저자 김동욱, 주제 웹 서버, 라우팅, HTTP Response

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

동적 웹 서버저자 김동욱, 주제 웹 서버, 템플릿, 모델과 뷰

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

프로그래밍 언어 (1)

프로그래밍 언어저자 김동욱, 주제 JavaScript, Node, 프로그래밍 언어

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

파일 (1)

컴퓨터 구조와 파일저자 김동욱, 주제 파일, 프로그램, 컴퓨터 구조, 인코딩

컴퓨터의 구조와 텍스트 파일과 인코딩, 실행 파일(프로그램)에 대해서 알아봅니다.

프로그램 (1)

컴퓨터 구조와 파일저자 김동욱, 주제 파일, 프로그램, 컴퓨터 구조, 인코딩

컴퓨터의 구조와 텍스트 파일과 인코딩, 실행 파일(프로그램)에 대해서 알아봅니다.

프로토콜 (2)

네트워크저자 김동욱, 주제 네트워크, Ethernet, WiFi, IP, 프로토콜, 포트, 공인망, 사설망, NAT, TCP, UDP

네트워크 계층, Ethernet, WiFi, IP, TCP,UDP, 프로토콜, 포트, 공인망과 사설망, NAT 등 네트워크 이론에 대해서 알아봅니다.

HTTP 프로토콜저자 김동욱, 주제 HTTP, MIME 타입, 프로토콜

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

TCP (2)

스트림, 표준입출력, 소켓저자 김동욱, 주제 스트림, 표준입출력, TCP, 소켓, 채팅

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

네트워크저자 김동욱, 주제 네트워크, Ethernet, WiFi, IP, 프로토콜, 포트, 공인망, 사설망, NAT, TCP, UDP

네트워크 계층, Ethernet, WiFi, IP, TCP,UDP, 프로토콜, 포트, 공인망과 사설망, NAT 등 네트워크 이론에 대해서 알아봅니다.

Node.js (2)

Node.js 설치저자 김동욱, 주제 Node.js

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

채팅 서버와 웹 어플리케이션 데모저자 김동욱, 주제 웹, JavaScript, Node.js

차후 본 커리큘럼에서 진행 할 프로젝트를 먼저 데모로 작성해봅니다.

타입 (2)

타입과 유추, 명명 규칙저자 김동욱, 주제 타입, 명명 규칙

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

기본 부품과 조합저자 김동욱, 주제 변수, 연산자, 값, 프로그래밍 언어, 타입

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

모델링 (2)

객체지향 프로그래밍, 복사와 참조저자 김동욱, 주제 복사와 참조, 객체지향 프로그래밍, 모델링

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

객체 모델링저자 김동욱, 주제 JavaScript, prototype, 의존성 분리, 모델링

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

웹 브라우저 (1)

웹 브라우저저자 김동욱, 주제 웹 브라우저

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

패키지 매니저 (2)

모듈, NPM저자 김동욱, 주제 모듈, NPM, 패키지 매니저

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

패키지 매니저, 자동화 도구저자 김동욱, 주제 모듈 번들러, 패키지 매니저, 자동화 도구, 트랜스파일러, 태스크 러너, 생산성 도구, 웹팩, Webpack

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

DB (2)

DB와 DBMS저자 김동욱, 주제 DB, DBMS, NoSQL, 데이터 모델링, RDBMS

DB와 DBMS에 대해서 알아봅니다. RDBMS의 주요 개념과 NoSQL, DB를 모델링을 하는 원칙을 알아봅니다.

MySQL과 SQL저자 김동욱, 주제 MySQL, SQL, DB, 무결성, CRUD, JOIN, Index

MySQL 서버를 설치하고 CLI/GUI 클라이언트 사용법을 익힙니다. MySQL의 주요 개념들에 대해 공부하고 실제 모델링을 해봅니다.

기타 (43)

암호화, 전자서명, 인증서와 SSL저자 김동욱, 주제 암호화, 인증서, 전자서명, SSL, 공인 인증서, Lets Encrypt, 무료 인증서

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

웹 브라우저의 Request저자 김동욱, 주제 HTTP Request, 웹 브라우저

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

함수형 프로그래밍, 콜백과 클로저저자 김동욱, 주제 콜백, 클로저, 함수형 프로그래밍

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

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