썸머노트 이야기

1Page


summernote-story-01

안녕하세요. 썸머노트를 개발하고 있는 홍영택이라고 합니다. 반갑습니다. 오늘은 제가 개발하고 있는 썸머노트를 소개하고 오픈소스 프로젝트에 대해 간단하게 이야기하려고 합니다.

2Page


summernote-story-02

썸머노트는 부트스트랩 위에서 돌아가는 WYSIWYG 에디터입니다. WYSIWYG 에디터는 카페나 블로그에서 글을 편집하는 편집기입니다. 라이브러리 파일을 페이지에 추가하고 코드 한 줄만 입력하면 에디터를 생성할 수 있습니다. 홈페이지에서 간단히 보여드릴께요.

3Page


summernote-story-03

썸머노트는 2013년 4월부터 개발했고요. 지금까지 2년반이 넘는 시간동안 꾸준히 작은 패치들을 이어가면서, 릴리즈를 해오고 있습니다.

4Page


summernote-story-04

다양한 분들이 썸머노트를 사용해 주시고 계시고요. IE8을 제대로 지원 못해서 인지 아직은 국내보다는 해외에서 인기가 많은 편입니다.

5Page


summernote-story-05

썸머노트는 사실 부트스트랩 묻어 간거 같습니다. 부트스트랩이라는 큰 바람을 등에 지고 있어서 쉽게 인기를 얻었습니다. 사용자들은 많은 페이지를 부트스트랩으로 만들었고 부트스트랩을 사용하는 사용자들은 에디터가 필요할 때 썸머노트를 사용했습니다.

6Page


summernote-story-06

간단히 썸머노트와 관련된 숫자를 보여드릴께요.

7Page


summernote-story-07

2년 반동안 37번의 릴리즈를 했고요

8Page


summernote-story-08

깃헙에는 107개의 관련 리파지토리가 있습니다.

9Page


summernote-story-09

지금까지 122명의 누적 컨트리뷰터들이 있고요

10Page


summernote-story-10

깃허브에서 371번째로 인기가 많은 자바스크립트 프로젝트입니다.

11Page


summernote-story-11

스택오버플로우에서는 604개의 관련 질문들이 검색되고 있습니다.

12Page


summernote-story-12

현재 저희의 상태는 아이언맨의 마크1에서 마크2로 가는 시점인 것 같습니다. 현재 썸머노트는 v0.7.0을 보름전에 릴리즈했는데요. v1.0.0을 찍는 시점에 마크 2의 모습을 보여줄 수 있을 것 같습니다.

13Page


summernote-story-13

이어서는 왜 썸머노트를 개발할 때, 오픈소스를 선택했는지 말씀드리고 싶습니다.

14Page


summernote-story-14

썸머노트를 개발한 2013년 4월에는 네이버오피스라는 프로젝트를 전 회사에서 4년정도 개발했었는데요. 그 시기쯤 이직 준비를 하면서 그 동안 개발 했던 편집기를 더 못만들것 같다는 생각을 했습니다. 간단한 편집기 개발을 오픈소스로 시작하면, 회사와 상관없이 오래동안 꾸준히 할수 있을 거라고 생각했습니다. 그리고 다행히도 그 생각은 맞았던거 같습니다.

15Page


summernote-story-15

오픈소스 프로젝트를 하면서 좋은 개발자들을 만나보고 싶었습니다. 2013년까지 커뮤니티같은 외부 활동은 전혀 하지 않고 회사에서 일만하는 조용한 개발자였는데요. 뭔가 비슷한 관심사를 갖고 있는 개발자들을 만나보고 싶었고요. 좋은 개발자들을 만나서 개발을 배우고 싶었습니다. 꾸준히 하다보니 2년 반이 지난후에 썸머노트 팀을 꾸리게 되었습니다.

16Page


summernote-story-16

어쩌면 작은 기여라도 할수 있지 않을까? 하는 마음도 있었습니다. 개발자로 살면서 남들이 만든 코드를 많이 사용하고 있었는데, 나도 다른 개발자에게 기여할 수 있지 않을까 했었습니다. 현재는 운좋게도 다른 분들이 조금씩 사용하는 기쁜 경험을 하게 되었습니다.

17Page


summernote-story-17

썸머노트를 운영하며 겪게된 3가지 에피소드 소개드릴께요.

18Page


summernote-story-18

2년전쯤 썸머노트의 첫번째 버전을 막 개발하고 여러 채널들을 돌아다니며, 썸머노트를 홍보했었는데요. reddit이라는 사이트에서 다른 개발자 분이 Y키가 눌러지지 않는다는 제보를 주셨습니다. 그분의 키보드가 고장났나 라는 생각을 잠깐 했다가 Y키를 눌러도 Y 문자가 입력되지 않는 걸 알게되었습니다. 이 댓글이 제가 사용자에게 받은 첫 버그 리포트 였습니다.

19Page


summernote-story-19

그 분은 이슈 게시판에 리포트했고 외부 PR를 날려서 누군가가 수정하고 있었습니다. lqez라는 아이디를 사용하는 한국 분이었고 전 이 풀 리퀘스트를 병합했었습니다. 배포한 에디터의 Y키가 눌러지지 않는 바보 같은 상황이었는데, 어떤 분이 나타나서 돕고 있었습니다. 어디서 이런 상황을 많이 본거 같았는데…

20Page


이 분은 First follower 였습니다. 잠시 영상 보고 갈께요.

21Page


summernote-story-21

두 번째 에피소드는 영어에 대한 이야기 입니다. 외국 개발자들과 함께 쓰고 싶어서 되도록 썸머노트는 커밋과 주석 문서들을 영어로 작성했습니다. 그런데 한국분이 얼마전에 이슈를 한국어로 올렸는데, 까칠한 구글러 출신 아저씨가 영어로 쓰라고 말했습니다. 아까 말씀드린 퍼스트 팔로워 lqez님은 이 질문을 영어로 번역해서 다시 올렸고요.

22Page


summernote-story-22

저 또한 영어를 정말 못합니다. 초창기에는 지금보다 더 못해서 정말 엄지척만 날렸습니다. 질문에 댓글도 못다는 경우가 많았습니다. 지금도 잘하는 건 아니지만 노력은 열심히 하고 있습니다. 회사출근 전 아침에 영어 학원을 다니고 있고요. 점심에 영어선생님께 회화 수업을 받고 있습니다. 그래도 결국 구글 번역기 돌려서 질문하고 답변하고 있습니다. 그래도 이전보다는 나아진거 같아서 뿌듯합니다.

23Page


summernote-story-23

올해 8월에 썸머노트가 해커뉴스에 랭크된 적이 있었습니다. 저도 몰랐는데, 전직장에서 같이 일하던 친구가 알려줘서 알게 되었습니다. 그 뒤로 몇달 뒤에 스타가 1000개 넘게 증가하고 트위터등의 여러 채널을 통해 퍼지는 경험을 했습니다. 이때 이슈도 많이 쌓였습니다.

24Page


summernote-story-24

그날 깃허브 트랜딩 리포트를 보니 자바스크립트 2위에 올랐었고요. 살다보면 이렇게 운좋은 날도 있는 것 같습니다.

25Page


summernote-story-25

이어서 오픈소스 프로젝트를 어떻게 시작하면 좋을지 이야기 해볼께요.

26Page


summernote-story-26

먼저 주제를 찾아야 합니다. 다른 사람들이나 내가 필요한 것부터 시작하는게 좋다고 생각합니다. 혹시 그런게 생각 나지 않는다면, 그냥 만들고 싶은 것을 만드는 것도 좋습니다. 모든 걸 다 만들 필요는 없다고 생각합니다. 작더라도 가치가 있으면, 좋은 프로젝트라고 생각합니다.

27Page


summernote-story-27

오픈소스는 회사 일처럼 강제성이 있는 건 아니라서 완성하는게 어렵습니다. 이 단계에는 깔끔하지는 않더라도 돌아하게 만드는 게 중요하다고 생각합니다.

28Page


summernote-story-28

그냥 소스를 공개한다고 오픈소스는 아닌 것 같습니다. 깃허브에 좋은 프로젝트가 많은데, 설명을 하지 않아서 그냥 소스코드만 공개되어 있는 경우를 종종 봤습니다. 구현한 서비스나 라이브러리를 누군가와 같이 쓰게되고 공유하게 될때, 더 많은 가치가 생긴다고 생각합니다. 내가 만든 제품이나 서비스는 무엇인지 설명하고 왜 만들었는지도 설명하면 좋습니다. 썸머노트의 경우에는 에디터를 어떻게 설치하고 어떻게 기능을 사용하는지 설명했습니다. 새로운 버전을 릴리즈할 때 마다 Twitter나 Facebook를 통해서 소식을 알렸고 주요 기능들은 예제 파일을 만들었습니다.

29Page


summernote-story-29

초기 아이디어를 구현하는데에는 개인이 빠른 경우도 있습니다. 토론할 시간에 자신이 생각한 아이디어를 그대로 구현할 수도 있습니다. 하지만 결국 오래 하려면, 혼자하는 건 어려운 일인 것 같습니다. 저 같은 경우는 운이 좋게 프로젝트를 할 수록 좋은 분들을 만날 수 있는 기회가 생겼습니다. 저보다 더 훌륭한 분들과 함께 썸머노트를 만들고 있는 것 같습니다.

30Page


summernote-story-30

특별히 신경을 쓰지 않으면 코드와 제품은 복잡도가 증가해서 점점 엉망이 됩니다. 새로운 기능을 추가할 때마다 버그는 계속 생기고 이전에 해결하지 않은 코드들이 나중에 발목을 잡습니다. 정원을 가꾸 듯이 제품과 코드도 지속적으로 관리하고 정리해야 계속쓸 수 있는 코드 제품이 됩니다. 썸머노트 개발중에 큰 변화가 있는 경우에는 코드를 지속적으로 개선하려고 노력했습니다.

31Page


summernote-story-31

사용자와 얘기하고 새로운 기능을 추가하고 버그를 계속 고치고 제품의 품질을 올리는 것 등등 사실 제가 썸머노트를 개발하면 경험한 건 제품을 만드는 일이었습니다. 결국 오픈소스는 제품에 대해 알리고 소통하는 하나의 좋은 방법 중 하나라는 생각합니다.

32Page


summernote-story-32

제가 좋아하는 문구인데요. 안도 다다오의 물건만들기에 대한 문구로 발표를 끝마치겠습니다.