1. 기존 자바스크립트와는 다른 구조
기존에 바닐라 자바스크립트나 jquery 등은 html 안에서 보조적인 역할을 수행했다. html이 자바스크립트를 품는 구조인데 react는 완전 반대다. react가 html을 품고 있다. 그러니 생각하는 방식이나 작업하는 방식이 정반대로 달라져야 한다.
2. 자바스크립트의 자유로움
자바스크립트는 너무 자유롭다. 이게 장점일 수도 있지만 초보자에게는 단점이다. 참고할 만한 소스 스타일들이 전부 다르니 힘들다. ctrl C+V 하다보면 같은 소스에서도 스타일이 천차만별이 되버린다. 그래서 어느 정도 제약을 걸 수 있는 typescript 같은 것들이 각광을 받고 있는 것 같다.
3. SPA(Single Page Application)의 난해함
spa의 구조와 개념이 처음에는 머릿속에 전혀 들어오질 않았다. 그래서 리액트로 개발을 하면서도 어떻게 해야하는지 감을 잡지 못했다. 감을 못잡으니 기존에 자바스크립트로 연동하는 것처럼 html 소스에 리액트를 합치려고만 했다. html이 리액트를 품을 수 있도록 말이다. 그게 아니라 리액트 혼자 웹서버에 단독으로 올라가면 되는 것인데. 이 개념을 잡고나니 눈이 확 떠지고 개발에 속도가 붙었다.
4. node, webpack, babel… 생태계의 난해함
반드시 알아야 하는 부분인데 아직도 잘 모른다. CRA(Create React App) 없으면 시작도 못한다.
5. 자바스크립트 자체를 잘 모름
자바스크립트를 꾸준히 써 왔으니 잘 안다고 생각했는데 리액트를 본격적으로 하면서 뼈저리게 깨달았다. 난 자바스크립트를 잘 모른다는것을. jquery 로 대표되는 구식 스킬은 익숙한데 es6 와 같은 최신 자바스크립트에 대한 이해는 아예 없었고 백엔드 프로그래밍의 보조적인 용도로만 사용했지 메인으로 쓰려니 실력의 민낯이 드러나 버렸다.