2021 공개SW 페스티벌 후기

온오프믹스를 떠돌다가 사전 신청해두었던 페스티벌이 11/30일 오후 2시부터 리누스 토발즈의 축사를 시작으로 다양한 세션들이 준비되어 있었다. 오픈소스 생태계에서 모두 한가닥 하시는 분들이였고 끌리는 제목의 세션의 발표를 들은 후기를 작성한다.


유명하신 한국인 개발자 권순선님이 인터뷰 형태로 리누스 토발즈와 대화를 이어나갔고, 자신이 어떤 작업을 하고 있는지 + 리눅스에 정말 많은 할 일이 널려있다는 점과 함께하자는 마무리 인사로 축사는 끝났다. 잘 모르는 사람이 그랬다면 약팔이라고 생각했겠지만, 컴퓨터 개론에 나오는 위인이 말씀하시니 '오? 나도?' 하며 리눅스 재단의 그렉 크로아 하트먼의 세션을 이어서 들었다.


그렉 크로아 하트먼 - 리눅스 커널 구루

워낙 짧은 시간임에도 중요한 팁을 알려주셨는데 아래와 같다

  • 올바른 코딩 스타일을 따르는가? 감사 툴이 보내는 지시에 따라보자.
  • 코드 자체를 이해하기 쉬워야 한다.
  • 변경 로그 코멘트를 작성하는 것이 더 어려운 경우가 많은데, 왜 이걸 하고 있는 지 설명하려고 하자. 'Obvious'
  • 변경사항을 작게 나누고, 하지 말아야 할 이유를 만들지 말라
  • 오픈소스 생태계에 참여하면 어떻게 기여했는지 비판에 대한 대응하고 비판과 비평을 제공할 수 있다.

마지막으로 더나은 개발자가 되기 위해 리눅스 커널에 기여하면 직업을 얻을 수 있다 ^오^


오픈소스 관리 서비스와 기업의 역할 - 카카오 황은경님

카카오에서 오픈소스를 어떻게 관리하고 있는지, 베타 출시한 '올리브 플랫폼'에 대한 설명이 이어졌다. 오픈소스를 사용하는 것 자체는 문제가 없다고 생각해왔지만, 아무렇게 쓰는 것은 문제가 된다고 알고 있었다.

 

실제로 C 고객사에 납품한 SW가 리버스 엔지니어링 툴(?)을 통해 취약점이 발견되었고, 이를 해결하고자 취약점이 해결된 버전으로 업그레이드 한다 혹은 해당 소스를 떼버리고 새로 개발한다. 논의를 주고받았던 경험이 있다. 그리고 국내에선 큰 문제가 발생된 사례가 적어 저작권에 대한 인식 자체가 낮은 편이지만 해외에선 법적 책임과 비용이 굉장히 크다는 걸 알 수 있었다. 불법 다운로드에 죄의식 없던 나란 놈..

 

발표를 들은 후 오픈소스 관리 도구에 대한 관심이 생겼고, 이는 별도의 포스팅을 할 예정이다!


오픈소스 개발 참여할 때 필요한 git 스킬 - 리얼리눅스 송태웅님

생태계에 기여하려면 첫 걸음은 히스토리를 보는 것이지 않을까 싶다. 그러기 위해선 git을 토대로 이력을 보고 수정하여 PR을 날리게 될텐데 이때 꿀팁을 알려주는 시간이 되었다. 알려주신 내용 외에도 추가로 찾아봤던 커맨드와 팁을 작성하였다.

 

--oneline 옵션은 많은 히스토리를 볼 때 각 커밋을 한 라인으로 보여준다.

git log --oneline --no-merges //머지된 내용은 제외
git log --oneline --graph --all --decorate //이쁘게 보기
git log --oneline --after=2021-06-01 --before=2021-06-3 —{directory} //기간에 해당 디렉토리 보기
git log --since=2.weeks //현재 이전의 시점 이력 보기
git log —stat 각 커밋의 통계 정보 조회

 

팁은 다음과 같다.

  • 커밋 알맹이를 보면서 메시지를 어떻게 적는지 보자.
  • 메시지 작성 시 동사를 써야하는데 fix는 버그를 고쳤을 때, 없던 기능을 추가했을 때 관점에서 add, 잘되던 기능을 추가할 때 improve. 소소하지만 오픈소스 참여했을 때 중요하다.
  • 메시지 적을 때 영어가 모국어가 아니고, 최대한 명확하고 간결하게 적는 것이 중요한데 잘 정리된 글이 있어 추가로 공유한다. https://blog.ull.im/engineering/2019/03/10/logs-on-git.html

흔히 실수하는 것이 단순히 'update' 라고 적는 것이다. 어떻게 적는 것이 올바른 방법일까 싶어 추가로 찾아보니 가독성, 협업, 추적성, 유지보수를 위해 중요함을 알 수 있었고, 권장하는 메시지 방식은 다음과 같다.

style($location): add couple of missing semi colons

 

커밋 메시지 유형(새 기능, 버그 수정, 문서 수정, 스타일, 리팩토링, 테스트 코드, 빌드 관련)와 같이 구분을 해야 한다.

subject와 body 간 행 구분, 글자 수 제한 등 잘 정리된 링크를 통해 학습하자! 절대 귀찮은 것 아님

https://chris.beams.io/posts/git-commit/

 

더 듣고 싶었지만 왔다 갔다 하면서 듣다 보니 어느새 끝나있었고, 너튜브 링크는 비공개되어있었다.ㅠㅠ1년에 2번해주세요.


마치며

요새 직접 코딩을 하진 않지만 개인git을 꾸미며 git을 익히고 있었고, github에 재밌는 프로젝트의 오픈 소스가 있다면 참여해보고 싶은 유용한 페스티벌이였다!