목록

2026.09.03 15:09
조회 120
1

Round Editor를 가지고 놀아보고 있는 개발자입니다.

 

최근에 AI 성능이 좋아지면서, 많은 서드파티 에디터가 나오고 있더군요.

 

에디터 하나에 기능을 전부 집어넣은 All-In-One 에디터에 대한 수요도 분명하겠지만,

저는 Minimal한 에디터의 수요도 있을 것이라 생각해 필수 기능만 넣어서 만들어 보았습니다.

 

처음에는 수많은 서드파티가 아까워서 CKEditor 4를 기반으로 만들어진 컴포넌트를 수정없이 지원하는 것을 목표로 잡았었는데요.

기본 엔진 구조 자체가 다르다보니, 한도없이 지원하다보면 사실상 CKEditor를 쓰는게 나은 수준까지 들어가더군요.

 

차라리 CKEditor 호환은 적절히 지원하는 대신, Round Editor 자체의 API를 설계하고, 그 쪽으로 새로운 연동방식을 제공하는게 장기적으로 좋아보였습니다.

 

따라서 기존 CKEditor 4에서 지원하던 단순 html 입력을 넘어서, 에디터 입력 자체를 제어하고, 상단에 원하는 버튼, 단축키, 액션을 자유롭게 추가하는 범용 API를 설계하게 되었습니다.

+) 요샌 AI가 좋으니, 대충 설계문서 던지고 연동해달라고 하면 잘 연동해주리라는 기대로 시작했습니다.

 


 

개발 문서

https://github.com/Waterticket/rx-editor-roundeditor/tree/main/docs

 

기본적으로 제가 설계한 API는 크게 통합 API, 확장 API로 구분됩니다.

 

통합 API는 기존에 CKEditor 4에서 지원했던 것처럼, 단순히 값을 읽고, 넣는정도의 작업을 진행하는 경우 사용할 수 있는 간단한 API입니다.

 

대부분의 현재 구현된 에디터 컴포넌트나, 간단히 치환이 필요한 모듈 같은 곳에서 사용할 수 있을겁니다.

 

확장 API는 에디터에 직접적으로 연동해서, 툴바, 단축키, 문자/파일 붙여넣기 등 트리거에 맞춰서 원하는 액션을 진행하게 할 수 있습니다.

 

대표적인 예시로 스티커 모듈이 있습니다.

https://github.com/Waterticket/rx-module-sticker/tree/master/assets/roundeditor

 

전용 라이믹스 트리거를 통해서 js를 로드하면, js에서 에디터에 액션을 등록하는 형태입니다.

https://github.com/Waterticket/rx-module-sticker/blob/e152d401e6459061b1a4606d7faed01c21e57a29/controllers/EventHandlers.php#L34

 

 

아마 기존에 있는 모듈/에디터 컴포넌트도 개발 문서와 함께 API를 추가해달라고 요청하면 잘 추가해주지 않을까 싶습니다.

 

흥미있으신분들은 사용해보시고, 개선 후기가 있다면 알려주세요!

 

아직 릴리즈는 만들지 않았으며, github 최신 버전으로 받아보실 수 있습니다.

 

 

+) 한가지 흠이라면, 에디터 최초 로드시에 약간의 딜레이가 보인다는 점인데..

한번 로드되면 불편함은 없으니 차차 개선해봐야할 것 같네요.

리버스 Lv. 8
모듈만드는 대학생입니다.
https://potatosoft.kr

댓글 4

  • 초기 로드 문제는 Prosemirror의 구조문제일 가능성이 커서, 번들 사이즈를 줄이거나 문제를 어느정도 해결해도 쉽지 않을거에요.

    코드사이즈가 더 커지기 전에 위지윅 에디터의 정확한 방향을 잡아보시는게 좋을것같습니다

    에디터 내 컨텐츠가 완벽하게 구조화된 형태가 아니여도 괜찮다면 contenteditable 형태의 가벼운 에디터들로 충분히 대체하실 수 있을거에요.

  • @에카

    이거죠. 외산 에디터는 구조화된 컨텐츠에 대한 집착 때문에 지나치게 무거워지는 경우가 많은데, 전문적으로 글을 쓰거나 디자인하는 용도라면 몰라도, "커뮤니티, 일상용"을 표방하는 에디터에서는 그런 구조 의미없습니다.

     

    커뮤니티에서 일상적으로 댓글을 쓰는 에디터, 자기 블로그를 관리할 때 쓰는 에디터, 웹페이지 자체를 디자인하는 데 쓰는 에디터는 애초에 설계가 다를 수밖에 없으니 방향성을 잘 잡아야 합니다.

  • @기진곰

    조언들 감사합니다.

     

    간단함을 표방하면서, CKEditor같은 확장성을 챙겨보고 싶었는데, 어쩌다보니 메인 주제를 넘어서는 개발건이 된 것 같습니다.

     

    어떻게 보면 지금 필요한건 하나의 베이스를 기본으로 덕지덕지 붙이는 것보단, 한 분야에 특화된 에디터를 여러개 만드는게 더 좋은 선택이 될 수도 있다고 생각이 되네요.

    ex) 블로그 에디터나 칼럼용 에디터 등

     

    말씀해주신대로 일상용 에디터는 최대한 덜어내고, 방향성을 잘 정해서 이어나가보겠습니다~

  • 개발은 잘 모르지만, 이렇게 수고해 주시는 분들 있어 늘 고마운 마음입니다.

    말씀대로 복잡하지 않은 심플한 에디터 수요도 있으리라 생각합니다.

    다만, 기존에 사용하던 것을 사용하지 못하는 불편을 어느 선까지 감당할 것인가 하는 물음은 남는 것 같습니다. 새로운 환경에 적응할 지, 아니면 기존 환경을 어떻게 하든 새로운 환경에 전환할 것인지...

    선택의 문제겠지요. ^^;;