Stay Hungry. Stay Foolish. Don't Be Satisfied.

angular-summernote v0.3.0 릴리즈

지난 릴리즈 후에 당분간 건드리지 않으려고 했는데 AngularJS 1.3.0이 나오면서 오류가 생기는 부분이 있어서 패치를 했다.(1.3.0이 이렇게 금방 나올 줄이야...)

일단 오류를 수정하기 전에 Karma 테스트를 정리해야 할 필요가 있었다. 테스트를 꽤 충실이 작성했는데 AngularJS의 새 버전이 나온 관계로 angular-summernote를 1.2.x와 1.3.x을 모두 테스트해야 했다. 새 버전을 쓰는 사람도 있지만, 기존의 1.2.x를 그대로 사용하는 사람도 당연히 있을 테니까... 어떻게 할까 고민하다가 Angular.js의 Karma 설정을 참고해서 공통부분과 의존성 부분을 따로 분리해서 버전별로 의존성을 관리해서 테스트가 동작하도록 만들었다.

일단 하나로 되어 있던 karma.conf.js파일에서 공통 부분은 karma-shared.conf.js로 분리하고 karma.conf.js에서 karma-shared.conf.js를 불러온 뒤 의존성 파일만 추가로 지정하는 방식을 취했다. 같은 방식으로 karma-angular-1-2.x.conf.js를 만들어서 AngularJS 1.2.x에 대한 의존성을 갖게 만들자 Grunt 명령어만으로 두 가지 버전을 테스트할 수 있었다. 이제 1.3에 맞춰서 개발할 때마다 틈틈이 1.2.x도 한 번씩 확인해 보면 될 것 같다.(귀찮아서 아직 Travis CI에는 연결하지 않았다.)

이번에 발생한 오류error:isecdom Referencing a DOM node in Expression에 관련된 오류인데 보안 문제로 Angular 표현식에서 DOM을 반환하지 못하도록 변경된 부분 때문에 발생했다. summernote의 콜백과 angualr-summernote의 콜백을 연결해 주는 부분이 있는데 이때 summernote에 콜백을 실행하면서 DOM 객체는 인자로 전달하는 부분이 문제가 되었다.
원인은 파악했지만 어떻게 수정해야 할지가 좀 어려웠다. summernote 콜백에서 DOM을 사용해야 하니 넘겨주기는 해야 하는데 어떤 식으로 전달해 주는 것이 좋은지 몰라서 여러 가지를 시도하다가 사용자가 바인딩할 수 있도록 추가하고 이 바인딩 객체에 넘겨주는 방식을 취했다. 전에는 DOM 객체($editable)가 필요한 콜백을 사용하는 경우 인자로 받았지만 0.3.0부터는 editable="bindingObject"같은 식으로 지정해서 이 객체로 전달받게 된다. 구현하고 나서도 좋은 해결책인지 좀 고민되지만 일단 동작은 정상적으로 하므로 사용자가 피드백 주면 그때 다시 고민해 보기로.. ㅎ

수정내용 자체는 많지 않지만 AngularJS 1.3.0을 지원하는 버전이므로 v0.3.0으로 간만에 마이너 버전을 올려서 릴리즈했다.

2014/10/20 23:50 2014/10/20 23:50

한국 웹20주년 국제 콘퍼런스에서 발표한 "Node.js 현재와 미래" 발표자료

한국 웹20주년 국제 콘퍼런스에서 발표를 했다. 처음 Node.js에 대한 주제로 발표해달라는 요청을 다른 분을 통해서 받고 몇일 고민을 했다. 보통은 내가 말하고 싶은 주제가 원래 있지 않은 경우 발표가 망하거나 어려웠던 경험이 있어서 이번에도 딱히 떠오르는 주제가 없어서 처음에는 망설였다. 그리고 그때는 프로그램이 정확히 나오지 않았지만, 기술 얘기를 좀 심도 있게 할 수 있는 콘퍼런스라기 보다는 약간 트랜드를 얘기하는 성격으로 보여서 더 고민했다. 트랜드 같은 얘기는 많이 해본 적도 없었고 그런 부분을 잘할 수 있다고 생각하지도 않아서...

그래도 웹 20주년이라는 의미가 있는 콘퍼런스고 자바스크립트를 만든 Brendan Eich와 CSS를 만든 Håkon Wium Lie가 온다길래 같이 발표자로 서면 이 사람들과 좀 얘기를 해볼 수 있지 않을까 하는 생각도 있었다. Brendan Eich가 사실 다른 언어의 창시자나 자바스크립트에서 날고 기는 사람들에 비해서 포스가 좀 떨어지긴 하지만 그래도 국내에서 쉽게 오는 기회는 아니니까...

고민하고 고민하다가 "Node.js의 현재와 미래"라는 아주 추상적인 제목을 지었지만(난 제목 짓는걸 잘 못한다. 흑흑) 고민하면 할수록 말할 내용이 정말 없었다. 차라리 특정 기술의 활용이나 사용법을 설명하면 할 말이 있을 텐데 "현재와 미래"라니!! 그렇다고 이 시점에서 Node.js의 사용법을 설명하는 것도 이상한 것 같고... 많은 고민을 하다가 나는 기술을 배울 때 그 기술과 관련된 배경지식(왜 만들어졌고 어떻게 가고 있고 등등)을 중요시하기 때문에 계속 주의 깊게 보지 않으면 알기 어려운 프로젝트의 현재 상태와 앞으로의 방향을 포함해서 차후 Node.js를 사용할 때 공부해두면 도움이 될만한 얘기를 해야겠다고 정했지만 역시 줄거리를 잡기가 쉽지 않았다.

발표준비는 스토리가 죽 풀려야 내용 채우기가 좋은데 이번에는 발표가 임박한 순간까지도 그게 잘되지 않았다. 현재 상태에 대해서는 그럭저럭 만들었지만, 미래에 대해서는 무슨 얘기를 하면 도움이 될지 막연하기만 했다.(나도 미래가 어떻게 될지 모르겠는데...) 그렇다고 많이 나오는 그래프 보여주고 이렇게 많이 성장하고 있고 현재 인기 이렇게 좋아서 앞으로도 엄청나게 더 인기 좋아질 것이다. 정도의 얘기는 성격에도 맞지 않고 하고 싶지도 않았다. 30분이라고 좀 쉽게 생각했는데 계속 고민해도 쉽지 않았고 전날까지도 대충의 라인만 잡아놓고 이렇게 저렇게 바꿔보며 고민하다가 답답해서 그냥 자 버렸고 아침에 일어나서야 발표자료를 완성했다.

뒤로 갈수록 색상 꾸미기가 줄어드는 것처럼 느껴진다면 기분 탓... 이라고 말하기는 창피하고 ㅠㅠ 보통은 신택스 하일라이팅을 다 하는 편이고 발표자료의 테마도 웬만한 선에서는 맞추려고 하는 편이지만 이번에는 방향에 대해서 너무 고민하다 보니 뒤로 갈수록 발표자료 꾸미기가 좀 부족했다.(이건 반성. ㅠㅠ) 준비하면서 내내 걱정하긴 했지만, 발표는 무사히 끝나서 다행이다.

2014/10/19 18:02 2014/10/19 18:02