두번째 기여 후기

·2023년 2월 5일
1

오픈소스

목록 보기
1/3

개요

사이드 프로젝트를 위해서 이런저런 구상을 하는 단계에서 원하는 기능을 구현하기 위해서 어떤 오픈소스를 쓸까 고민을 하고 있었고, 필요한 기능은 바로 에디터였다.

마크다운을 지원하면 좋고, 노션처럼 드래그로 블록을 이동시킬 수 있으면 어떨까 싶었다.
그래서 이런저런 오픈소스를 구경하고 잠깐씩 써보다가 lexcial를 건들게 되었다.

그리고 테스트를 하던 중 버그를 발견하게 되었다.
어차피 사이드 프로젝트는 구상 중에 있었다 보니 그리 급한 건 없어서 해당 repo에 가서 기존에 같은 버그가 있는지 찾아본 뒤 비슷한 거는 있어도 완벽히 같은 버그는 없는 것 같아 issue를 발행했다.
그리고 비슷한 에러를 리포트한 issue에서도 내가 진행해 봐도 되는지 물어보고, 된다고 하길래 진행했다.

해결과정

메인테이너 분에게 중점적으로 봐야 할 코드가 있는지 물어보니 친절하게 잘 답변을 해주셔서
해당 파일 위주로 분석을 시작했다.

다행히 모듈화가 잘 되어있는 것 같아서, 일단 버그를 재현해 보고 해당 버그가 재현되는 코드를 찾기 시작했고 오래 걸리지 않아 찾게 되었다.

그리고 버그를 수정을 했긴 했는데, 2중 if 문에다가 안에 if else까지 있어서 가독성이 안 좋은 것 같아서 얼리 리턴문으로 리팩토링 후 PR를 날렸다. (리젝 안 당하길..)

배운점

tui calendar와 마찬가지로 개발하면서 바로바로 테스트할 수 있는 환경을 제공하는 건 중요한 것 같다.
모듈화가 정말 중요한 것 같다. 제대로 분리하지 않게 되면 내가 고친 코드가 어디서 버그를 터트릴지 알 수가 없다.

근데 재밌는 건 오픈소스를 클론 받아서 테스트를 돌리면 멀쩡하게 테스트를 다 통과하는 게 잘 없는 것 같다. 왜지..

https://github.com/facebook/lexical/pulls 얼른 머지 되면 좋겠다.

0개의 댓글