react study #2

리액트를 다음과 같은 문서들로 공부했다. React.js를 이해하다 (1)…(7), 공식 리액트 도큐먼트에 있는 모든 내용, 0.14.x에서 추가된 stateless functional componentsAngular 2 versus React: There Will Be Blood. 특히, 리액트를 이해하다 1은 꼭 읽어보도록 하자. 대부분의 문서에서 뜬금없이 다들 알고있겠거니~ 하면서 설명하는 부분들을 아주 명쾌하게 설명해준다. 원저자와 번역자분 모두에게 감사한다. 사실 아는거 왜 굳이 왜 설명하는 거야? 하면서 넘기려다가, 읽어보고 더 깊은 이해를 하게 됐다. 내가 엄청난 똥멍청이라는 이해를.

 


여기 10분쯤부터 이쁜 누나가 잘 설명해줌.

그리고 MVC의 여러 문제들을 해결하려고 만들어진 신상 아키텍쳐인 Flux는 페이스북 깃허브 무언가의 도큐먼트에서 읽었을 텐데 출처를 못 찾겠다.

대충 정리하자면, 페이스북은 React의 데이따-쁠로를 다루는 데에 Flux라는 아키텍쳐를 사용하기로 했다. MVC가 개념적으로 널리 알려져있고 수 많은 프레임워크에서 서로 다른 구현체가 존재하는데, 이와 유사하게 Flux도 페이스북이 처음에 개념만 소개했었던 것.

후에 페이스북은 자신들의 Flux 구현체인 Relay를 공개한다. 하지만 나는 Redux를 쓰기로 결정했는데, 이유는 다음과 같다. 릴레이는 프론트엔드에서 쿼리언어 (GraphQL)까지 작성하는 것. 관련된 코드의 응집도를 높이겠다는 접근인 것 같은데, 릴레이를 쓰려면 그래프큐엘을 알아야하며, 그것으로 끝나는 것이 아니라 백엔드도 GraphQL을 지원하도록 바꿔야하는 것.

바꿔 말해, 제로베이스에서 시작하는 프로젝트라면 고려해볼 수 있지만, 이미 잘 돌아가고 있는 서비스에 릴레이를 붙이고자 한다면 잃는 것이 많다는 것. 그래서 GraphQL의 부분을 슥-삭 잘라버리고 그곳에 프로미스를 넣은 Transmit이라는 오픈소스도 등장했다. 하지만 아직 신생프로젝트라는 점 + 관련 문서, 질답을 찾기가 힘들다는 점 등으로… 결국 다들 쓴다는 Redux를 쓰기로 결정! ^0^

 


그래서 Redux는 공식 홈페이지의 document를 정독하는 중에 적당한 동영상 강의가 있길래 봤는데 강의질이 넘나 괜찮다. 문서 읽다가 잠깐 멈춰서 동영상 강의를 완탕할 예정. 얼핏 보기엔 유료인 것 같지만, 중간에 메일주소 한 번 입력하면 이후에 재생속도 조절과 같은 일부 편의기능을 사용할 수 없다는 사소한 단점을 안고 공짜로 들을 수 있는 것 같다.

그 외에 주목할 점은 redux는 단지 리액트만 짝짝쿵이 맞는 것이 아니라 다른 프론트엔드 자바스크립트 라이브러리들과 엮어보려는 시도들이 많은 것 같다는 것? 하지만 아직 자세히 읽어보진 않았다. 지금 당장은 동영상 강의 완강이 목표!

 


뱀발로 위 동영상 강의를 보다보면, 자바스크립트가 굉장히 함수형 언어쪽으로 최신 스펙들이 정해지고 있는 느낌. function이라는 키워드가 전혀 쓰이지 않지만, 이보다 더 함수형 언어스러울 수 있을까 싶을정도로 람다범벅이다. 이런 함수 범벅 람다 범벅 코드는 대부분 return으로 시작하게되어 엄청난 압박감을 주지만, 익숙한 사람들은 잘 쓰더라고! 나도 빨리 익숙해져서 거만해지고 싶은 것! ^오^!!

 

Leave a Reply