리액트 컴포넌트 스타일링 – CSS Module / Sass / styled-components

리액트에서 컴포넌트 스타일링에 있어서는, 동일화된 방식이 없습니다. 개발자마다, 그리고 회사들마다, 요구하는 스펙이 다르고, 취향도 많이 타기 때문에 정말 다양한 방식으로 컴포넌트를 스타일링을 할 수 있습니다. 가장 기본적인 방식은, CSS 파일을 사용하는 방식입니다. create-react-app 으로 프로젝트를 만들었을때, 위 방식으로 컴포넌트 스타일링을…

리덕스 미들웨어, 그리고 비동기 작업 (외부데이터 연동)

이 문서는 패스트캠퍼스 오프라인 강의를 위해서 준비된 문서이기에, 일부 내용들은 설명이 생략되어있을 수도 있습니다. 이번 강의에서 다룰 주제는 리덕스 미들웨어를 사용하여 외부 데이터를 연동하는 방법을 다뤄보겠습니다. 외부 데이터를 연동하기 위해서 리덕스, 그리고 리덕스 미들웨어들이 꼭 필요한것은 아닙니다. 리액트 컴포넌트와 내부…

Redux 를 통한 React 어플리케이션 상태 관리 :: 5장. 주소록에 Redux 끼얹기

이 튜토리얼은 5개의 포스트로 나뉘어진 이어지는 강좌입니다. 목차를 확인하시려면 여기를 참고하세요. 5장. 주소록에 Redux 끼얹기 이번 장에서는 이전에 우리가 만들었었던 주소록 프로젝트에 Redux 를 적용해보겠습니다. 기존의 코드에선 프로젝트의 모든 로직을 App 컴포넌트에서 관리했었습니다. 사실상, 이 프로젝트는 소규모 프로젝트이기 때문에 App…

Redux 를 통한 React 어플리케이션 상태 관리 :: 4장. Ducks 구조와 redux-actions 사용하기

이 튜토리얼은 5개의 포스트로 나뉘어진 이어지는 강좌입니다. 목차를 확인하시려면 여기를 참고하세요. 4장. Ducks 구조와 redux-actions 사용하기 Redux 공식 문서에서는, ActionType, Action, Reducer 이 3가지를 따로 따로 다룹니다. 그러다보니, 하나의 액션을 추가하려면 3개의 다른 파일들을 수정해야하죠. 가끔씩은, 액션생성자를 하나하나 만들고 또…

Redux 를 통한 React 어플리케이션 상태 관리 :: 3장. Immutable.js 익히기

이 튜토리얼은 5개의 포스트로 나뉘어진 이어지는 강좌입니다. 목차를 확인하시려면 여기를 참고하세요. 3장. Immutable.js 익히기 Immutable.js는 자바스크립트상에서 불변성의 데이터를 다루는것을 도와줍니다. 3장을 진행하기에 앞서, 우선 자바스크립트에서 객체의 불변성에 대해서 알아보겠습니다. 객체의 불변성 이를 이해하려면, 간단한 자바스크립트 코드들을 실행해보아야합니다. 크롬에서 개발자도구를 열고,…

Redux 를 통한 React 어플리케이션 상태 관리 :: 2장. 멀티카운터 만들기

이 튜토리얼은 5개의 포스트로 나뉘어진 이어지는 강좌입니다. 목차를 확인하시려면 여기를 참고하세요. 2장. 멀티카운터 만들기 자, 이제 카운터의 갯수를 늘릴 차례입니다. 그렇게 어려워지진 않습니다. 기존에 우리가 투두리스트를 만들고, 주소록을 만들었던것과 같은 원리로 만들면 됩니다. 각 카운터가 지니고 있는 값을 객체로 만들어서…

Redux 를 통한 React 어플리케이션 상태 관리 :: 1장. 카운터 만들기

  이 튜토리얼은 5개의 포스트로 나뉘어진 이어지는 강좌입니다. 목차를 확인하시려면 여기를 참고하세요. 1장. 카운터 만들기 우리가 1장 2장에 걸쳐 만들 프로젝트를 미리봐볼까요? 주소: https://counter.now.sh/ 상단의 생성, 제거 버튼을 누르면 동그라미가 나타나거나 사라지고, 동그라미를 왼쪽 클릭하면 더하기, 오른쪽 클릭하면 빼기, 더블클릭하면…

Redux 를 통한 React 어플리케이션 상태 관리 :: 목차

이번에 다룰 주제는 Redux 입니다. 리액트를 공부하다보면 한번쯤은 거쳐가야 할 관문이죠. 처음에 공부 할 때는 좀 어렵습니다. 초반엔 왜 사용해야 하나 싶기도 하고 오히려 복잡해지는것 같기도 합니다. 하지만 사용을 하다보면 정말 간단하면서도 편하고, 또 강력한 라이브러리라는것을 깨닫게 됩니다. 이 문서는…

[Video] 리액트 라우터 (react-router v4) 강의 [1/3] : 사용 방법

작년 Pre-release alpha시절에 한번 자료를 만든적이 있지만 올해초에 정식 릴리즈되면서 바뀌어도 너무 많이바뀌어버려서 이렇게 자료를 새로 만들었습니다. 흔히 사용되는 기능들을 대부분 다뤄보려다보니 생각보다 강의가 길어져서 동영상 하단에 타임라인을 추가했으니 참고하세요~ 타임라인 00:00 – 05:25 소개 및 프로젝트 셋업 05:25 –…

[번역] 리액트하다가 막혔을 때 생각해볼 4가지 질문

웹서핑하다가 저와 비슷한 생각을 하고 있는 블로거의 포스트를 읽게되어 좋은 내용인 것 같아 번역해보았어요. 여기에 있는 내용은 꼭 리액트에 국한되어있는것은 아니니 지나가다가 읽어보시면 좋을 것 같습니다.   저는 React 에는, Anti-pattern 은 있어도 Best Practice 는 존재하지 않아야 한다고 생각해요…

[번역] 리액트에 대해서 그 누구도 제대로 설명하기 어려운 것 – 왜 Virtual DOM 인가?

리액트를 지난 2년간 사용하면서도 막상 말끔하게 설명하라고 하면 어려웠던 주제, 원래 번역글은 잘 안쓰지만 글 자체가 구성이 잘 되어있어서 글을 번역해보았습니다. 원본: https://hashnode.com/post/the-one-thing-that-no-one-properly-explains-about-react-why-virtual-dom-cisczhfj41bmssp53mvfwmgrq 글의 자연성 및 더 높은 이해도 및 몰입도를 위해 의역이 많이 포함되어 있습니다 🙂   어느날 내…

[ERROR] React: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

이번에 한번 프로젝트를 create-react-app 으로 시작해서 진행해볼까.. 하고 시작하는데 갑자기 날 멘붕하게 한 이 에러 메시지. Uncaught Invariant Violation: Minified React error #130; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=130&args[]=undefined&args[]= for the full message or use the non-minified dev environment for full errors and additional…