이번 게임 운영툴에 사용할 웹 개발환경을 확정지었다.
저번 게임에는 웹프레임워크를 다루는 것도 처음이고 해서 대충 go
의 템플릿 기능과 jQuery
, AngularJS
를 어떻게 버무려서 만들어 놨었다. 대충 만들다보니 코딩 표준도 엉망이고 데이터 모양새나 통신 방법도 페이지마다 다르기 일쑤였다. 심지어 AngularJS
는 중첩된 반복문의 경우 심각하게 느려진다는 단점이 존재했다. 때문에 앵귤러를 힘주어 만든 페이지의 경우 엄청나게 느리게 동작했다.
이번에는 제대로 하리라 다짐하고 앵귤러는 과감히 버리고 최근 힙했다는(?) ReactJS
를 한번 넣어보았다(Angular 역시 새 버전이 계속 나오고 있지만 사실 새로운 것을 쓰고싶었…). 전에 앵귤러를 붙여봤으니 비슷하게 적용할 수 있지 않을까 했던 내 생각은 틀렸다. 물론 JSX나 ES6으로 짠 코드를 직접 웹서버에 올려 브라우저에서 런타임에 변환하는 방법도 있으나 웹브라우저에서 좀 더 빠르게 동작시키려면 babel
이니 webpack의 css-loader
같은 것들을 이용하여 미리 컴파일/변환시켜주는 과정이 있어야 했다. 확실히 이전 AngularJS때보다는 개발과정도 명확해졌다. 하지만 학습곡선은 분명히 있다.
예전에 봤던 2016년에 자바스크립트를 배우는 기분이 다시금 생각난다. 처음 읽을 때는 거의 읽을 수가 없었는데 이제는 1/4은 뭐가 뭔지 알 수 있을 것 같다;;
이제서야 빌드 과정 정립이 끝났다. 뭐 노드 진영의 어마무시한 툴들을 파다보면 더 발전시킬 여지는 있겠지만 일단은 웹앱 빌드하고 서버 빌드하는 두단계로 정리가 됐으니 일단은 만족.
덧
여담으로 go언어로 자바스크립트를 구현한 goja라는 것을 이용하면 지금 만들어져있는 go서버에서 React 페이지를 렌더링해주는 것도 가능하다. 하지만 라이브러리 이름이 영 좋지 않기도 하고 어차피 운영툴인데 그것까지 해서 뭐하나 싶기도 해서 일단은 패스.
'Diary' 카테고리의 다른 글
170924 - 블로그 개편 중 (0) | 2017.09.24 |
---|