어제 프라미스를 쓰면서 정리 해봤는데, 또 파라미터를 넘겨서쓰거나 하려니 제대로 쓸 수가 없어서 정리해봤다. 일단 reject 되는 경우는 생각하지 않고, 그냥 내가 짠 비동기 함수를 동기식으로 실행시키길 원했을 뿐이었다. 지극히 사용 방법 위주로 적었으니 아래 링크들을 참조해서 이해하자. 일단 구현이 먼저인 사람은 코드를 적극 참조하면 될 것 같다.
~~React Router v4가 정식으로 나와서 3은 deprecated 된 거나 마찬가지라고 본다.~~~ 현재 React Router v3은 디프리케잇 되지 않고 React Router v4와 다른 노선을 탔을 뿐, 지원은 계속 해주는 것 같다. 따라서 레거시 환경을 싫어하기도 해서 한 번 마이그레이션을 간단하게 해보았다. 기본적으로 웹팩, 바벨, 리액트 라우터 등등은 안다는 전제 하에 글을 썼다. 웹팩 2에 대한 모르는 부분은 아래 글을 조금씩 참조하면 도움이 될 것이다.
웹팩 2, 웹팩 1, 바벨, 리액트 등등에 대해서 기본적인 부분은 설명하지 않는다. 또한 (Webpack 2) 트리 쉐이킹을 해보자!를 보고 나서 이 포스팅을 읽는 걸 추천한다.
코드를 왜 분할하지?
SPA(Single Page Application)은 한 번에 모든 리소스를 로딩해서 초기 로딩 이후에 페이지 이동이 매우 빠르다는 장점을 가지고 있다. 하지만 앱의 규모가 커지면 모든 리소스를 한 번에 로딩하므로 초기 로딩이 느려져 사용자 이탈을 유발하는 양날의 검을 가지고 있다.
여기선 기본적으로 웹팩 1, 바벨, ES2015(ES6)을 알고 있다는 전제로 진행한다. 리액트 대신에 다른 서드 파티(라이브러리/프레임워크) 가지고 테스트하면서 이 글을 봐도 된다. 또한 이 글을 보고 나서 (Webpack 2) 코드를 분할해보자!도 보는 걸 추천한다.
트리 쉐이킹(Tree Shaking)??
트리 쉐이킹이란 나무를 흔들어서 필요없는 걸 떨어트리는 행위를 말한다. 여기서 우리에게 필요없는 것이란 쓰지 않는 코드를 뜻한다.
인스턴스가 생성될 때 호출되는 인스턴스 초기화 메소드 인스턴스 변수 초기화 작업에 주로 사용된다.
생성자는 인스턴스를 생성하지 못한다!
나는 생성자로 인스턴스를 생성하고 new 연산자가 C언어의 &(주소값 반환) 역할을 하는 줄 알았는데 new 연산자가 있어야 인스턴스를 생성하면서 그 주소값을 반환하게 하는 연산자인 것 같다. 생성자는 인스턴스 변수 초기화이지 그 이상(인스턴스 생성)도 그 이하도 아닌 것 같다.