Didact: 리액트 원리 학습을 위한 DIY 가이드 시리즈 소개
Source
Evernote/Inbox/번역 Didact 자신만의 리액트를 만드는 DIY 가이드.md
Summary
이 문서는 리액트(React)의 내부 동작 원리를 이해하기 위해 200 줄 이하의 코드로 리액트 호환 라이브러리인 ‘Didact’를 구현하는 튜토리얼 시리즈의 서론입니다. 성능 최적화나 디버깅 기능은 배제하고, DOM 렌더링, JSX, 가상 DOM, 컴포넌트 및 상태 관리 등 리액트의 핵심 기능만 추상화하여 구현하는 과정을 다룹니다. 기존 아키텍처 기반의 초기 구현과 이후 파이버(Fiber) 아키텍처를 적용한 재작성 과정으로 나뉘어 있으며, 학습 목적의 교훈적(Didactic) 구현을 강조합니다.
Key Points
Didact 는 리액트의 핵심 API 와 동작 방식을 학습하기 위해 설계된 교육용 미니 리액트 구현체입니다.
성능, 디버깅, 이식성 등 부가 기능은 제외하고 200 줄 이하의 코드로 핵심 기능만 구현합니다.
시리즈는 DOM 렌더링, JSX 변환, 가상 DOM 및 재조정 (Reconciliation), 컴포넌트와 상태 관리 순으로 진행됩니다.
초기 버전은 구형 리액트 아키텍처를 따르며, 후속 편에서는 파이버 (Fiber) 기반의 점진적 재조정 구현으로 확장됩니다.
함수형 컴포넌트, 컨텍스트, 라이프사이클 메서드, ref, key 기반 재조정 등은 본 시리즈에서 직접 다루지 않습니다.
리액트(React) 및 리액트 네이티브 개요 (2015)
웹 브라우저 동작 원리 (2) - 레이아웃 리플로우 최적화
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
React vs AngularJS 비교 (Quora)
Thinking in React (리액트스럽게 생각하기)
Thinking in React: React 컴포넌트 설계 방법론
Progressive React
DirectX 프로그래밍 학습 조언 (yuchi)
이펙티브 자바스크립트 소개
Python 애플리케이션 단순화를 위한 리팩토링 가이드
자바스크립트 프로그래밍: 프론트엔드 개발자를 위한 (도서 소개)
생활코딩을 위한 프로그래밍 언어 선택 가이드
실시간 투표 애플리케이션 구축 (Node.js, Express, AngularJS, MongoDB)
프로그래머를 위한 유니코드 소개 (Nathan Reed)
자바스크립트 학습 방법론 (2017)
자바스크립트 아키텍처 v0.4
프로그래밍 학습을 위한 초보자용 리소스 (The Next Web)
Three.js 시작 가이드 (Aerotwist)
RTFM: 프로그래머를 위한 문서 읽기 및 자기주도 학습 가이드
Angular 2 대신 Vue.js 선택 및 React 배제 이유
프로그래머를 위한 추천 도서 6 권
프로그래밍 실력 향상을 위한 8 가지 추천 프로젝트
객체지향 프로그래머를 위한 함수형 프로그래밍(F#) 입문
게임 프로그래머를 위한 클래스 설계 (SOLID 원칙)
TI 계산기 프로그래밍 소개 (Instructables)
웹 개발 레시피 (책 소개)
일상 프로그래밍을 위한 기본 패턴 (LakTEK)
React vs Vue 비교 (2019 Edition, React Hooks 기준)
더 나은 네이밍을 위한 가이드라인 (CSS-Tricks)
AngularJS 기초편 (번역서) 리뷰
대학생을 위한 웹 개발 공부 체크리스트
곽철용 짤 생성기 개발 후기 (Vue + HTML Canvas)
WebAssembly (WASM) 개요 및 설계 목표
개발자를 위한 책 추천 및 저자의 인생 책
2013 년 더 나은 프론트엔드 엔지니어가 되기 위한 추천 강연
AngularJS 와 RequireJS 를 활용한 대규모 웹 어플리케이션 개발
웹 개발자를 위한 디버깅 매뉴얼! 『자바스크립트 테스트와 디버깅』
jQuery 애플리케이션 아키텍처 도구 (Addy Osmani)
웹 디자이너 및 개발자를 위한 필수 서적 25선 (.net magazine)
프로그래밍 업적: 개발자 레벨업 가이드
Play Framework 개요
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
2020 프론트엔드 마스터를 위한 10가지 프로젝트 아이디어 (CSS-Tricks)
2013년 자바스크립트 프레임워크 인기 동향 (Caliper Blog)
서평: 폴리글랏 프로그래밍
리팩토링 개요 및 기법 요약
웹사이트의 미래 호환성 유지 가이드 (MDN)
Meteor.js 시작하기 및 아키텍처 개요
PayPal 의 Node.js 전환 사례 요약
PayPal의 Kraken.js 프레임워크 리뷰 및 평가
React Navigation V1 출시 준비 및 프로젝트 관리 방향성 (2017)
JavaScript this 키워드 동작 원리
GPU 동작 원리 및 아키텍처 개요
Velocity 2014: PageSpeed 인사이트 및 QuickBooks Online 클라이언트 사이드 아키텍처
Functional-ish JavaScript: 실용적인 함수형 프로그래밍 접근법
웹 증강을 위한 엔드유저 언어: 생산자와 소비자 모두를 위한 접근
하둡(Hadoop) 성능 향상을 위한 컬럼 기반 파일 포맷 경쟁 (ORC vs Parquet)
빠른 개발을 위한 기술 (번역)
카카오페이지 웹 React 포팅 후기
대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장
운영 분투기
Angular.js 의 핵심 개념 및 장점 요약
Create React Native App (CRNA) 소개
페이스북 스파르탄 프로젝트의 비밀병기 Bolt.JS
Node.js 세션 관리 (Session Management)
Primo: 유아용 블록 프로그래밍 학습 도구
ECMAScript 6 Generator 개요 및 Node.js 활용
야구9단 아키텍처 (NHN, 2011)
웹 개발자를 위한 가상 현실(VR) 가이드 (Smashing Magazine)
Git remote-tracking branch 개념 및 동작 원리
암호 해독(Cryptanalysis) 학습 가이드 및 PHP lcg_value() 취약점 분석
전산학의 재미난 발상들 (개념 목록)
Go Bootcamp Exercises (Legacy)
첫 프로그래밍 언어 추천 (Lifehacker)
JavaScript 의 현대적 활용 분야 (2019)
harp.js: 전처리 기능을 갖춘 정적 웹서버
고성능 가비지 컬렉션 (GC)을 위한 언어 설계 관점
자바스크립트에서의 Continuation-passing style (CPS) 소개
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
비전공자 웹개발자 신입 생존 가이드 (2017 수정판)
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 출간 후기 및 책 소개
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
2014년 기준 주목할 만한 프로그래밍 언어: 하스켈과 줄리아
2014년 기준 주목할 만한 프로그래밍 언어 (Go, Groovy)
2014년 기준 학습 권장 프로그래밍 언어: 스칼라(Scala) 및 다트(Dart)
실용적인 프로그래밍 공부 방법론
데이터 과학 무료 학습 가이드 (10 가지)
자바스크립트 함수형 프로그래밍 (루이스 아텐시오) 독서 후기 및 통찰
High Performance Browser Networking (O’Reilly)
리뷰: 코딩호러의 이펙티브 프로그래밍
HTML5 Canvas 실시간 드로잉 성능 최적화 가이드
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
Node.js 란? (IBM developerWorks)
ETA (프로그래밍 언어)
1985년 KIM-1 기반 라벨링 시스템 프로그래밍 회고
음악 제작 입문 (Ableton Learning Music)
JavaScript 엔진의 동작 원리 (V8 기준)
더 나은 개발자가 되기 위한 8가지 방법
프로그래밍 교육이 학생의 예의와 전문성 의식에 미치는 영향
My SurvivalUrban Keychain
프로그래밍 언어 학습 전략: 단일 언어 집중 vs 다양화
proxyquire: Node.js require 의존성 오버라이드 라이브러리
하루 안에 습득 가능한 유용한 프로그래밍 기술 목록
Coursera Functional Programming Principles in Scala 수료 후기
AJAX 기본 원리 및 XMLHttpRequest 구현
HTML5 기반 프리젠테이션 도구 소개
End-to-End Hypermedia: 미디어 타입 선택 가이드
프런트엔드 개발 면접 질문 가이드 (캡틴판교)
부모님을 위한 공구 선물 가이드 5선
5)
웹 컴포넌트(1): Keep calm and usetheplatform
ACM PLATEAU 2013 워크숍 논문