티스토리 에디터를 업데이트했다. 변경 사항은 몇개 안되지만 조금은 큰 변화라서 마이너 버전도 하나 올렸다. 이제 0.4.0 이다. 자잘한 변경은 넘어가고 큰 변경만 정리해보려고 한다.
React 16 적용
react 16이 나왔다. 어마어마한 것들이 변경되었는데 사실 사용자로서 신경쓸 건 별로 없다. 거의 같기 때문이다. 문제는 deprecated된 것들이 정말 삭제가 된 것이다. deprecated 되어도 얼마간은 유지해 줄 줄 알았는데 이렇게 바로 삭제할 줄이야... ㄷㄷㄷ 그간 변경을 잘 따라온 앱이야 문제없겠지만 그렇지 않았다면 많이 당황스러울 수밖에 없다. 가장 타격이 큰 삭제는 PropTypes와 createClass다.
PropTypes는 deprecated됐지만 prop-types를 통해서 여전히 많은 사람들이 사용 중이다. 뭐랄까 Component의 인터페이스 정의같은 느낌으로 사용하기 때문이라고 생각한다. createClass같은 경우엔 ES2015 스타일이 대세가 된 후 거의 사용을 안하고 있는데 이따금씩 옛 스타일로 라이브러리가 작성되는 경우가 있다.
바로 react-tinymce가 이 둘 모두를 사용하는 라이브러리다. (하아... ㅠ 하필이면...) pull request를 날려두었지만 언제 승인되고 언제 머지되고 언제 npm에 배포될지는 알수가 없다. 그래서 어쩔 수 없이 수정한 소스코드를 앱내부로 복사해서 사용 중이다. 어차피 업데이트가 잘 안되는 거 같으니 잘 된 것 같기도 하다.
Google Analytics 적용
electron의 UI는 모두 웹브라우저이긴 하지만 로컬 리소스를 사용하는 형태이기 때문에 url 같은 건 사실 없다. file 프로토콜도 url이긴 하지만 GA는 그런 용도로 만들어진 것이 아니다. 그리고 모바일 앱도 아니기 때문에 적용하기 애매하다. 그래서 직접 호출을 해줘야 한다. 이걸 해주는 라이브러리가 있나 찾아보니 있다. electron-google-analytics 다.
사용방법도 비교적 간단하게 정리되어 있어서 바로 적용했다. 지금은 pageview만 넣은 상태이고 테스트가 필요한 곳에 이벤트도 넣어볼 예정이다. analytics에 실시간 기능이 있어서 테스트할 때 참 좋았다.
기타
배포할 때마다 사용하는 라이브러리들을 가장 최신버전으로 업데이트한다. tinymce가 4.7로 업데이트되면서 UI가 조금 바뀐 부분이 있어서 살짝 수정해야했지만 나머지는 뭐가 바뀐 건지 사실 잘 모른다. 테스트 해보고 이상없으면 배포하고 있다. 이건 좀 위험한 일이라 업데이트되는 라이브러리를 하나하나 살펴봐야하는데 그게 쉽지가 않다. 테스트를 만들어둬야 그걸 자동으로 할 텐데 테스트를 만드는게 또 쉽지가 않다.
하려고만 한다면 할 일이 태산이다. 오늘은 안식휴가 2일째이다.