프로젝트 기반 학습
야심찬 소프트웨어 개발자가 처음부터 애플리케이션을 구축하는 방법을 배우는 프로그래밍 튜토리얼 목록입니다. 이 튜토리얼은 다양한 기본 프로그래밍 언어로 구분되어 있습니다. 튜토리얼에는 여러 기술과 언어가 포함될 수 있습니다.
시작하려면 이 저장소를 포크하면 됩니다. 기여 지침은 CONTRIBUTING.md를 참조하세요.
목차:
- 기음#
- C/C++
- 클로저
- 다트
- 엘릭서
- 얼랭
- 에프#
- 가다
- 하스켈
- HTML/CSS
- 자바
- 자바스크립트
- 코틀린
- 루아
- OCaml
- PHP
- 파이썬
- 아르 자형
- 루비
- 녹
- 스칼라
- 스위프트
- 추가 리소스
C/C++:
- 인터프리터 구축(14장은 C로 작성됨)
- 메모리 할당자 101 - 간단한 메모리 할당자 작성
- C로 쉘 작성
- FUSE 파일 시스템 작성
- 나만의 텍스트 편집기 만들기
- 나만의 Lisp 만들기
- C에서 NES 게임을 프로그래밍하는 방법
- 처음부터 OS 작성
- 처음부터 OS를 만드는 방법
- CHIP-8 에뮬레이터 구축
- C++ 및 SDL로 게임 프로그래밍 시작하기
- 키-값 저장소 구현
- 작은 3D 그래픽 프로젝트
- Tiny Renderer 또는 OpenGL 작동 방식: 500줄의 코드로 소프트웨어 렌더링
- 256줄의 베어 C++에서 이해 가능한 RayTracing
- 카붐! 180줄의 순수 C++로
- 486줄의 C++: 주말의 구식 FPS
- C++로 최소 x86-64 JIT 컴파일러 작성
- C++용 라이브 코드 리로더 라이브러리 구축
- C로 해시 테이블 작성
- 간단한 데이터베이스를 구축해보자
- 커널을 작성해보자
- C로 부트로더 작성
- 500줄의 코드로 구성된 Linux 컨테이너
- 나만의 가상 머신 작성
- KVM 학습 - 자신만의 Linux 커널 구현
- C/C++를 사용하여 나만의 Redis 구축
- C 컴파일러 작성
- 1부: 정수, 렉싱 및 코드 생성
- 2부: 단항 연산자
- 3부: 이진 연산자
- 4부: 더 많은 이진 연산자
- 5부: 지역 변수
- 6부: 조건부
- 파트 7: 복합문
- 8부: 루프
- 9부: 기능
- 10부: 전역 변수
- LLVM으로 언어 구현
- Meta Crush Saga: C++17 컴파일 타임 게임
- 고성능 행렬 곱셈
- 처음부터 스페이스 인베이더
- C++ 플랫폼 독립적인 테트리스 튜토리얼
- Linux 디버거 작성
- 파트 1: 설정
- 2부: 중단점
- 3부: 레지스터와 메모리
- 4부: 엘프와 드워프
- 5부: 소스 및 신호
- 6부: 소스 수준 단계별 실행
- 7부: 소스 수준 중단점
- 8부: 스택 풀기
- 9부: 변수 처리
- 파트 10: 고급 주제
- 컴파일러를 작성해보자
- 1부: 소개, 언어 선택 및 계획 수립
- 2부: 어휘분석기
- 3부: 파서
- 파트 4: 테스트
- 5부: 코드 생성기
- 6부: 입력 및 출력
- 7부: 배열
- 8부: 문자열, 전방 참조 및 결론
네트워크 프로그래밍
TCP/IP 스택을 코딩해보자
- 1부: 이더넷 및 ARP
- 2부: IPv4 및 ICMPv4
- 3부: TCP 기본 및 핸드셰이크
- 4부: TCP 데이터 흐름 및 소켓 API
- 5부: TCP 재전송
동시 서버 프로그래밍
- 1부 - 소개
- 2부 - 스레드
- 3부 - 이벤트 중심
- 4부 - libuv
- 5부 - Redis 사례 연구
- 6부 - 콜백, 약속, 비동기/대기
처음부터 MQTT 브로커
- 파트 1 - 프로토콜
- 2부 - 네트워킹
- 3부 - 서버
- 4부 - 데이터 구조
- 5부 - 주제 추상화
- 6부 - 핸들러
- 보너스 - 멀티스레딩
오픈GL:
- OpenGL을 사용하여 C++로 2D Breakout 게임 복제본 만들기
- 브레이크아웃
- 설정 중
- 렌더링 스프라이트
- 레벨
- 충돌
- 입자
- 후처리
- 파워업
- 오디오
- 텍스트 렌더링
- 최종 생각
- 수제 영웅
- C++/OpenGL로 Minecraft를 만드는 방법(비디오)
기음#:
- 간단한 RPG 게임을 구축하여 C# 배우기
- C#으로 로그라이크 게임 만들기
- C# 및 Xamarin을 사용하여 빈 앱 만들기(작업 진행 중)
- Xamarin 및 Visual Studio를 사용하여 iOS 사진 라이브러리 앱 빌드
- CoreWiki 빌드 이는 ASP.NET Core 및 Razor Pages를 사용하여 C#으로 완전히 작성된 Wiki 스타일 콘텐츠 관리 시스템입니다. 여기에서 소스 코드를 찾을 수 있습니다.
클로저:
- Clojure로 트위터 봇 구축하기
- 맞춤법 검사기 만들기
- Clojure 및 Atlassian Connect를 사용하여 JIRA 통합 구축
- Clojure로 프로토타이핑하기
- ClojureScript의 테트리스
다트:
설레다:
- 관리자 패널이 있는 Amazon 복제
- 음식 배달 앱
- Google 문서 클론
- 인스타그램 클론
- 멀티플레이어 TicTacToe 게임
- 틱톡 클론
- 티켓 예약 앱
- 여행 앱
- 트위치 클론
- WhatsApp 클론
- 워드클론
- 줌 클론
- 넷플릭스 클론
엘릭서
- Elixir와 Phoenix를 사용하여 간단한 채팅 앱 구축
- Elixir, Phoenix 및 Mnesia를 사용하여 초고속 링크 단축기를 작성하는 방법
얼랭
- ChatBus: Erlang/OTP를 사용하여 최초의 다중 사용자 채팅방 앱 구축
- Erlang, Rebar, Cowboy 및 Bullet을 사용하여 채팅 앱 만들기
에프#:
자바:
- 인터프리터 구축(4-13장은 Java로 작성됨)
- Java를 사용하여 간단한 HTTP 서버 구축
- Android 손전등 앱 구축(비디오)
- 사용자 인증을 사용하여 Spring Boot 앱 구축
자바스크립트:
- 30개의 튜토리얼을 통해 30일 안에 30가지 물건 만들기
- Pure JS에서 앱 구축
- Jupyter 노트북 확장 빌드
- JavaScript로 TicTacToe 게임 만들기
- 바닐라 JavaScript로 간단한 날씨 앱 구축
- JavaScript로 Todo 목록 앱 구축
HTML과 CSS:
- 로딩 화면 구축
- JS로 HTML 계산기 만들기
- JavaScript, HTML, CSS만 사용하여 Snake 구축
모바일 애플리케이션:
- React Native Todo 애플리케이션 구축
- Redux Thunk를 사용하여 React 네이티브 애플리케이션 구축
웹 애플리케이션:
반응하다:
- 서버리스 React.js 앱 만들기
- Trello 클론 생성
- React, Node, MongoDB 및 SocketIO를 사용하여 캐릭터 투표 앱 만들기
- React 튜토리얼: Yelp 복제하기
- Mocha, React, Redux 및 Immutable을 사용한 테스트 우선 개발로 풀 스택 영화 투표 앱 구축
- React와 Node를 사용하여 Twitter 스트림 구축
- React.js 및 Node.js를 사용하여 간단한 중간 클론 구축
- JS에 MailChimp 통합
- React + Parcel을 사용하여 Chrome 확장 프로그램 구축
- React Native로 ToDo 앱 구축
- 채팅 애플리케이션 만들기
- React Native로 뉴스 앱 만들기
- React용 Webpack 배우기
- Puppeteer와 Jest를 사용하여 React 앱 테스트하기
- 나만의 React 상용구 만들기
- React로 인생 게임을 코딩하세요
- 기본 React+Redux 입문 튜토리얼
- 약속 스케줄러 구축
- 감정 분석으로 채팅 앱 구축
- 풀스택 웹 애플리케이션 설정 구축
- React와 Firebase로 Todoist 클론 생성
- 무작위 견적 기계 구축
- React Phone 전자상거래 프로젝트(영상)
모난:
Angular 1.x를 사용하여 Instagram 클론 구축
Angular 2+를 사용하여 오프라인 지원 Hacker News 클라이언트 구축
Django 및 AngularJS(Angular 1.x)를 사용하여 Google+ 복제본 빌드
Angular 8을 사용하여 아름다운 현실 세계 앱 구축:
BootStrap 4 및 Angular 6을 사용하여 반응형 레이아웃 구축
Angular 5를 사용한 ToDo 앱
마디:
- NodeJS로 실시간 마크다운 편집기 구축
- Node, Postgres 및 Knex를 사용한 테스트 중심 개발
- Node.js로 트위터 봇 작성하기
- 30분 안에 간단한 검색 봇 구축
- 작업 스크래핑 웹 앱 구축
- GitHub 앱 구축
- JavaScript, Node.JS, MongoDB 및 웹 소켓을 사용하여 자신만의 Uber-for-X 앱을 구축하는 방법
뷰
- Vue 2 + Firebase: 15분 만에 Firebase 인증 시스템으로 Vue 앱을 구축하는 방법
- Vue.js 애플리케이션 튜토리얼 – Vue로 간단한 예산 앱 만들기
- Vue, GraphQL 및 Apollo를 사용하여 블로그 구축
- MEVN(MongoDB, Express, Vue, Node) 스택을 사용하여 전체 스택 웹 애플리케이션 구축
- Vue.js 할 일 목록 튜토리얼(영상)
- Vue 2 + Pub/Sub: 게임용 P2P 다중 사용자 플랫폼 구축
기타(Hapi, Express...):
- 프로그레시브 웹 애플리케이션(PWA) 구축
- JS로 네이티브 데스크톱 앱 구축
- NodeJs, GraphQL 및 Hapi를 사용하여 강력한 API 구축
D3.js
- 예제를 사용하여 D3 배우기
- 꺾은선형 차트를 만드는 방법 배우기
게임 개발:
- Phaser를 사용하여 2D 브레이크아웃 게임 만들기
- Phaser를 사용하여 HTML5 및 JavaScript로 Flappy Bird 만들기
데스크탑 애플리케이션:
- React와 Electron을 사용하여 데스크톱 채팅 앱 구축
여러 가지 잡다한:
- 20줄 미만의 코드로 웹 프레임워크를 구축하는 방법
- 스스로 Redux를 구축해 보세요
- 자신만의 가상 DOM을 작성하는 방법
- AWS에서 WebSocket을 사용하여 실시간 서버리스 GraphQL API 구축
코틀린:
- Keddit - Android 애플리케이션을 개발하면서 Kotlin 배우기
루아:
사랑:
- BYTEPATH: Lua 및 LÖVE를 사용하여 완전한 게임 만들기
- 파트 0: 소개
- 1부: 게임 루프
- 2부: 라이브러리
- 3부: 방과 면적
- 4부: 연습
- 5부: 게임 기본 사항
- 6부: 플레이어 기본 사항
- 7부: 플레이어 통계 및 공격
- 8부: 적
- 9부: 디렉터 및 게임플레이 루프
- 10부: 코딩 실습
- 11부: 수동태
- 12부: 추가 패시브
- 파트 13: 스킬 트리
- 14부: 콘솔
- 파트 15: 최종
파이썬:
웹 스크래핑:
- Python을 사용하여 Twitter 데이터 마이닝
- Scrapy와 MongoDB로 웹사이트 스크랩하기
- Python 및 Selenium WebDriver를 사용하여 스크랩하는 방법
- BeautifulSoup을 사용하여 어떤 영화를 봐야 할까요?
웹 애플리케이션:
- Flask로 마이크로블로그 구축
- Django에서 블로그 웹 앱 만들기
- 나만의 모험 프레젠테이션을 선택하세요
- Flask와 RethinkDB를 사용하여 할 일 목록 작성
- Django와 테스트 기반 개발을 사용하여 Todo 목록 구축
- Python으로 RESTful 마이크로서비스 구축
- Docker, Flask, React를 사용한 마이크로서비스
- Flask로 간단한 웹 앱 구축
- 20분 안에 Django API 만들기
- Django, Postgres 및 JavaScript를 사용하여 커뮤니티 기반 전달 애플리케이션 구축
- Vue, django-notifs, RabbitMQ 및 uWSGI를 사용한 실시간 채팅 애플리케이션
봇:
- Reddit 봇 구축
- Reddit 봇을 만드는 방법 - YouTube(동영상)
- Facebook 메신저 봇 구축
- Reddit + Facebook 메신저 봇 만들기
- Python을 사용하여 전보 봇을 만드는 방법
- Python으로 트위터 봇 만들기
데이터 과학:
- 여러 프로젝트를 수행하여 데이터 과학을 위한 Python 배우기(비디오):
- 1부: 소개
- 2부: 트위터 감정 분석
- 3부: 추천 시스템
- 4부: 주가 예측
- 5부: TensorFlow의 Deep Dream
- 6부: 유전 알고리즘
기계 학습:
- Python에서 처음부터 선형 회귀 작성(비디오)
- Python의 단계별 기계 학습
- 와인의 품질 예측
- 과일 분류 문제 해결
- Python으로 비지도 학습 배우기
- Python으로 처음부터 자신만의 신경망 구축
- sklearn 없이 Python의 선형 회귀
- sklearn을 사용하지 않는 다변량 선형 회귀
- KNN을 이용한 음악 추천기
- 비슷한 Quora 질문 찾기 -
- BOW, TFIDF 및 Xgboost 사용
- Word2Vec 및 Xgboost 사용
- Python과 머신러닝으로 가짜 뉴스 탐지
오픈CV:
- 문서 스캐너 구축
- OpenCV와 딥러닝을 사용하여 얼굴 감지기 구축
- YOLOv3(비디오 재생 목록)을 사용하여 가장 빠른 사용자 정의 개체 감지 시스템 구축
- OpenCV, Python 및 딥러닝을 사용하여 얼굴 인식 시스템 구축
- 이미지에서 두드러진 특징 감지
- 바코드 스캐너 구축
- Python으로 얼굴 클러스터링 알아보기
- Camshift를 이용한 객체 추적
- OpenCV 및 딥러닝을 사용한 의미론적 분할
- 이미지 및 비디오의 텍스트 감지
- OpenCV를 사용한 인원 계수기
- OpenCV로 여러 객체 추적하기
- OpenCV를 사용한 신경 스타일 전송
- OpenCV OCR 및 텍스트 인식
- 텍스트 기울어짐 수정 튜토리얼
- 얼굴 랜드마크 감지 튜토리얼
- Mask-R-CNN을 이용한 객체 검출
- 자동 타겟 탐지 튜토리얼
- OpenCV를 사용하는 EigenFaces
- 더욱 빨라진(5포인트) 얼굴 특징점 감지 튜토리얼
- 손 키포인트 감지
- Dlib 상관관계 객체 추적 -
- OpenCV와 Python을 사용한 이미지 스티칭
- OpenCV를 사용한 인스턴스 분할
- 안면 마스크 감지기
딥러닝:
- 컨볼루셔널 신경망을 사용하여 얼굴 키포인트 감지
- Python과 OpenCV를 사용하여 평균 얼굴 생성
- CNN을 사용하여 보안 문자 시스템을 깨세요
- 사전 학습된 Inception 모델을 사용하여 이미지 예측 제공
- 첫 번째 CNN 만들기
- 얼굴 인식 파이프라인 구축
- 이미지 캡션 생성기 구축
- 나만의 얼굴 인식 시스템 만들기
- 20분 만에 언어 감지 AI 훈련
- 신경망을 이용한 객체 감지
- 트위터 감정 분석 알아보기 -
- 1부 - 데이터 정리
- 2부 - EDA, 데이터 시각화
- 3부 - Zipf의 법칙, 데이터 시각화
- 4부 - 특징 추출(카운트 벡터화기)
- 파트 V - 특징 추출(Tfidf 벡터화기)
- 파트 VI - Doc2Vec
- 파트 VII - 구문 모델링 + Doc2Vec
- 8부 - 차원 축소
- 9부 - Tfdif 벡터를 사용한 신경망
- 1부 - word2vec/doc2vec를 사용한 신경망
- 11부 - Word2Vec을 사용한 CNN
- 맞춤형 이미지 분류를 위해 전이 학습 사용
- 11줄의 Python으로 간단한 신경망을 코딩하는 방법 배우기
- 경사하강법을 사용하여 신경망 구축
- 색상을 생성하도록 Keras 모델 훈련하기
- 커스텀 데이터세트에서 Keras 시작하기
- Faces94 데이터 세트에서 EigenFaces 및 FisherFaces 사용
- Kaggle MNIST 숫자 인식기 튜토리얼
- tf.keras를 사용한 패션 MNIST 튜토리얼
- Keras를 사용하여 루트 상태를 자동으로 분류하는 CNN
- 케라스 vs 텐서플로우
- 말라리아 탐지를 위한 딥러닝 및 의료 영상 분석
- Keras를 사용한 이미지 분류를 위한 전이 학습
- Python에서 CNNS를 사용하여 미소 분류기 코딩
- scikit-learn을 사용한 자연어 처리
- Taylor Swift 가사 생성기 코드
- PyTorch Lightning을 사용한 마스크 감지
여러 가지 잡다한:
- 간단한 인터프리터 구축
- Python으로 간단한 블록체인 구축
- Python으로 NoSQL 데이터베이스 작성
- OpenCV/Python/iOS를 사용하여 가스 펌프 스캐너 구축
- Python과 Kafka를 사용하여 분산 스트리밍 시스템 구축
- 기본 Python으로 처음부터 기본 x86-64 JIT 컴파일러 작성
- 낮은 수준(Linux) 디버거 만들기
- 검색 엔진 구현
- 인생의 게임을 구축하세요
- 터미널 ASCII 아트 만들기
- Tic-Tac-Toe AI 작성
- 포토 모자이크 아트 만들기
- 터미널에서 게임 "Snake"를 빌드하세요.
- Git을 직접 작성해 보세요
- Python 바이트코드 실행기의 Python 구현
- Python을 사용하여 음성 도우미 만들기
가다:
- Golang, Angular 2 및 WebSocket을 사용하여 실시간 채팅 앱 만들기
- Gin을 사용하여 Go 웹 애플리케이션 및 마이크로서비스 구축
- Go에서 행동 중심 개발을 위해 Godog를 사용하는 방법
- Go로 블록체인 구축하기
- 1부: 기본 프로토타입
- 2부: 작업 증명
- 3부: 지속성과 CLI
- 4부: 거래 1
- 파트 5: 주소
- 6부: 거래 2
- 파트 7: 네트워크
- Go에서 처음부터 컨테이너 만들기 - Liz Rice(마이크로 스케일링 시스템)(비디오)
- GoLang으로 웹 애플리케이션 구축
- ReactJS를 사용하여 Go에서 채팅 애플리케이션 구축
- 파트 1: 초기 설정
- 2부: 간단한 의사소통
- 3부: 프런트엔드 설계
- 4부: 여러 클라이언트 처리
- 5부: 프런트엔드 개선
- 6부: 백엔드 Docker화
- Go WebAssembly 튜토리얼 - 계산기 튜토리얼 만들기
- Go의 REST 서버
- 파트 1 - 표준 라이브러리
- 2부 - 라우터 패키지 사용
- 3부 - 웹 프레임워크 사용
- 4부 - OpenAPI 및 Swagger 사용
- 5부 - 미들웨어
- 파트 6 - 인증
- 7부 - GraphQL
- Gin 및 Redis를 사용하여 Go에서 URL 단축기를 만들어 보겠습니다.
- 1부 - 프로젝트 설정
- 2부 - 스토리지 계층
- 3부 - 짧은 링크 생성기
- 4부 - 전달
- Go에서 TCP 채팅 구축(동영상)
- Go에서 처음부터 BitTorrent 클라이언트 구축
- Go, PostgreSQL 및 Docker를 사용한 REST API 마스터클래스(동영상 재생 목록)
in progress
PHP:
- Laravel로 블로그를 구축하는 방법(영상)
- 나만의 블로그 만들기(순수 PHP)
- SilverStripe를 사용하여 부동산 웹사이트 예시 구축
- Laravel 5.4 및 VueJS를 사용하여 실시간 채팅 앱 구축(비디오)
- 소셜 네트워크 구축: Laravel 5 - Youtube (비디오)
- Laravel을 사용하여 모든 기능을 갖춘 다중 테넌트 앱 구축
- 파트 0: 소개
- 파트 1: 설정
- 2부: 역할 및 권한
- 3부: 초대
- 파트 4: 인증
- 파트 5: 테스트
- 파트 6: 사용자 프로필
- 7부: 배포
- 처음부터 Laravel CRUD 애플리케이션 구축
OCaml:
- OCaml에서 LLVM을 사용하여 언어 구현
- OCaml로 게임보이 에뮬레이터 작성하기
루비:
- Ruby로 네트워크 스택 구축
- 나만의 Redis 구축
- 파트 0: 소개
- 1부: 베어본 TCP 서버
- 2부: 핑 <-> 퐁
- 3부: 동시 클라이언트
- 4부: 에코
- Ruby에서 Git 재구축
루비 온 레일즈:
- Ruby on Rails 튜토리얼
- Ruby on Rails를 사용하여 처음부터 Instagram 구축
- Rails를 사용하여 소셜 네트워크 구축
- Ruby on Rails 애플리케이션을 구축하는 방법
하스켈:
- Haskell 작성 - 현대적인 함수형 컴파일러 구축
- 48시간 안에 계획을 직접 작성해보세요
- 계획 작성, 버전 2
- 자신만의 IRC 봇을 굴려보세요
- 영화 모나드 만들기
- Haskell로 웹사이트 만들기 (구식)
아르 자형:
- Shiny로 웹 앱 구축
- 암호화폐 봇 구축
- R에서 연관 규칙 마이닝 알아보기
녹:
- Rust의 간단한 웹 앱
- 순수 Rust로 OS 작성
- Rust에서 브라우저 엔진 구축
- Rust로 마이크로서비스 작성
- 너무 많은 연결 목록으로 Rust 배우기
- Rust 자세히 알아보기: 확장 가능한 채팅 서비스를 처음부터 작성하기
- 1부: WebSocket 구현. 소개.
- 2부: 메시지 보내기 및 받기
- 데스크탑과 웹용 Rust Roguelike 작성
- Rust를 사용하는 단일 페이지 애플리케이션
- Rust로 NES 에뮬레이터 작성
- 신경망과 유전 알고리즘을 사용하여 진화 시뮬레이션을 생성하고 애플리케이션을 WebAssembly로 컴파일합니다.
스칼라:
- 간단한 행위자 기반 블록체인
- 마법 없음: 정규 표현식
스위프트:
- Swift를 이용한 해킹 - 39개 프로젝트를 수행하여 Swift를 배우세요
- 처음부터 다시 시작하는 복고풍 1인칭 슈팅 게임
추가 리소스
- React Redux 링크
- Udemy.com
- 풀스택 파이썬
- 노드 스쿨
- 스카치IO
- 운동
- Egghead.io
- 마이클 허먼의 블로그
- Thinkster.io
- 계몽
- 해킹 클럽 워크숍
- 코드크래프터