회사에서 사정상 php를 메인개발언어로 사용하고 있다. 처음엔 익숙하게 사용하던 Apache friends의 XAMPP를 사용했었는데 docker 능력자가 나타나서 모든 것을 docker로 바꿔주었다. 첨엔 어리둥절했지만 사용하면 사용할 수록 docker가 참 좋다. docker허브에 등록된 php docker 같은 것을 사용하면 간단하게 php 웹서버를 돌려볼수도 있다. 물론 옵션을 조정하기 시작하면 직접 docker를 등록하기도 하고 해야하는데 어쨌든 머신이 바뀔때마다 새로 서버환경을 세팅할 필요가 없어서 참 좋다. 에디터에도 많은 변화가 있었다. 특출난 php 에디터가 없어서 sublime text, atom, emacs 같은 에디터를 사용했는데 PHPStorm의 존재를 알았다. 구매해야하긴 하는데..
Tistory Editor는 처음엔 단순히 markdown editor가 있었으면 해서 만들었다가 조금씩 욕심이 생겨 에디터가 무려 3종류나 붙어있는 app이 되었다. markdown하나와 wysiwyg에디터 2개다. 그러고보니 Quill을 붙였을때 앱 버전이 0.2가 되었다. 그리고 Tinymce가 붙어 0.3이 되었다. tinymce는 처음 시작할 때는 문서도 엉망이고 불친절해서 욕도 좀 하곤 했는데 에디터 자체의 구조가 너무 좋아 참고 참아 하나하나 알아가보니 꽤나 괜찮은 결과물이 나온다. Quill은 시작이 아주 쉽고 몇몇 기능은 아주 뛰어나지만 확장성이 그리 좋진 못하고 delta라는 놈이 나의 발목을 잡았다. delta to html 이라는 모듈도 만들어서 해결해보려 노력했지만 완벽히 변환되지..
tinymce의 plugin을 또 하나 만들고 있다. 이전에 codeblock plugin을 만들땐 layer를 직접 만들었는데 이번엔 tinymce의 모듈을 써서 만들어보고 싶었다. 그래서 WindowManager.open의 파라미터를 확인해봤다. 내가 헛것을 보는건 아니겠지라는 생각이 들만큼 단촐한 설명이다. 'width/height/url etc' 이라고? 잠시, 아니 한참을 멍하니 있다가 소스코드를 보기로 했다. WindowManager니까 Window의 생성자 파라미터겠지 라고 생각했는데 그게 맞았다. 근데 단순히 넘겨주는 건 아니고 조금 조작을 한다. 그러니까 Window의 생성자와 다른 값을 파라미터로 받는다. 그럼 문서에 그걸 써줘야하는거 아냐? 부글부글. 조금 짜증이 났지만 아쉬운건 나니..
tinymce는 요새 프리미엄 구독으로 돈을 벌려고 해서 그런지 모르겠지만 좋은 플러그인들은 유료버전에만 제공한다. 물론 그들이 흙파먹고 살 순 없으니 당연한 일이라 생각이 들긴하지만 조금 아쉽긴하다. 필요한 기능이 있는데 그것만을 위해서 돈을 내기에는 좀 아까워서 직접 플러그인을 만들어보기로 했다. 플러그인 제작 공식 문서에는 아주 심플하게 써 있다. plugins에 등록하는 방법, 플러그인 코드를 로드하는 방법, 그리고 플러그인 매니저에 플러그인 코드를 등록하는 방법 이렇게 세가지를 적어뒀다. 앞의 두가지 방법은 사용법이니 결국 필요한 부분은 다음이다. tinymce.PluginManager.add('example', function(editor, url) { // Add a butto..
지난 번에 vue.js와 react로 comment sample을 만들었는데 이번엔 angular로 만들어보기로 했다. AppModule platform-browser-dynamic를 사용해서 AppModule을 로드하는 main.ts는 건너뛰고 바로 AppModule로 들어간다. angular의 특징은 필요한 component, provider들을 미리 NgModule에 다 적어주고 시작을 해야한다는 거다. 개발을 하면서 component가 하나씩 늘어나고 service도 하나씩 늘어날텐데 그때마다 이 파일을 수정해줘야 한다. 중간에 구조를 바꾸면서 CommentFormComponent, CommentService를 추가했는데 여기다가 추가해주는 것은 조금 번거로웠다. import { NgModule ..