제 2회 NAVER OpenSource Seminar 참석 후기
안녕하세요 여러분~ JAY입니다:D
오늘은 제가 지난 23일에 진행한 "제2회 NAVER OpenSource Seminar"에 참석하여 보고 들은 후기를 같이 공유하고자 이렇게 글을 쓰게 되었습니다. 오픈소스 개발 활동에 관심있는 대학생 및 초급 개발자를 대상으로 한 이번 세미나에서는 정말 좋은 이야기를 많이 들었습니다.
세미나는 성남시 분당구 정자동에 있는 'NAVER 그린팩토리'에서 진행되었습니다. 네이버에는 처음 방문인데(사실 방문할 일이 없네요 ㅎㅎ) 정말 깜짝 놀랐습니다. 역시 네이버는 네이버다! 건물이 으리으리 하더군요 ㅠㅠ(나도 꼭 언젠가는 이 건물에서 일하고 말거다!!!)
세미나 시간에 맞춰서 2층 커넥트 홀에 들어갔습니다. 입구에서 네이버 오픈소스 스티커 및 간식을 받았습니다:D 사실 저는 네이버 지도, 블로그 오픈 API 등은 사용해봤지만, 네이버에서 오픈소스 활동을 한다는걸 처음알았습니다.
네이버 오픈소스 링크 : http://naver.github.io/
사실 제가 현재 일하고 있는 회사는 웹분야 쪽은 아니라 네이버 오픈소스를 사용할 일이 거의(99%)없지만, 또 제가 웹 백엔드 및 이런 활동에 관심이 많기 때문에 흥미를 갖고 세미나를 들었습니다.(하지만 평소에 다양한 오픈소스를 사용하긴 합니다^^)
자, 이제 세미나 내용에 대해서 제가 기억나는데로(죄송해요..모든내용이 기억나진 않지만..열심히 기억을 더듬어 볼게요ㅎㅎ) 적어 보겠습니다.
1. 개발자의 흔한 취미 : 오픈소스 개발
첫번째 세션은 선데이토즈의 권민재님 께서 발표해주셨습니다. 권민재님께서 말씀해주신 내용은 제가 정말 평소에 알고 싶고 궁금했던 내용입니다.
- 오픈소스에 기여하는 방법
권민재님께서 처음 오픈소스 커뮤니티에서 기여했던 내용은 Readme에 오타가 있어서 PR(Pull Request)을 보냈던 것이라고 하셨습니다. 평소에 오픈소스에 기여한다는 의미가 코드를 수정하고 추가한다는 의미로만 알고있었던 저에게는 신선한 충격이었습니다. 사실 그래서 오픈소스 커뮤니티 혹은 오픈소스 개발 활동에 어려움을 가지고 있었고, 잘 접근을 못했었습니다.
권민재님께서는 오픈소스에 기여하는 방법이 코드를 수정하는 것 뿐만이 아닌 다양한 아래와같은 여러방법이 있다고 말씀해 주셨습니다.
a) 기능/추가 개선 : 자신이 사용하는 라이브러리에 원하는 기능이 없을때, 개선방향이나 추가기능 직접 추가해서 PR 보내기
b) 이슈보고 및 해결 : 발견된 버그나 이슈를 프로젝트에 알린다.
c) 번역 : 문서 번역
d) 직접운영 : 프로젝트, 커뮤니티를 직접운영(프로젝트 관리, 커밋관리, 코드 퀄리티, ReadMe 등 신경쓸게 많음)
사실 저같은 초급개발자 및 오픈소스활동을 처음 시작하는 개발자라면 b) 이슈보고 및 해결 부터 시작하는게 좋을 것 같습니다. 민재님께서 해주신 말씀 중 "오타 수정도 오픈소스에 기여이고, 이런것 부터 차근차근 시작하면 된다" 라는 말이 인상깊었습니다. 또한, "오픈소스 프로젝트를 억지로 선택하지 말고 본인이 사용하거나 관심있는 프로젝트, 개발이 활발한 프로젝트/커뮤니티가 장기적으로 좋다. 무엇보다 오픈소스 개발에 대한 흥미와 의지가 중요!" 라고 해주시며 발표를 마무리 해주셨습니다.
2. egjs-view360 개발기
두번째 세션은 NAVER에서 일하고 계신 김희재님의 발표였습니다. 첫번째 세션의 권민재님의 발표가 오픈소스 활동에 처음 접근하는 방법들에 대한 내용이었다면, 김희재님 세션의 내용은 실제 김희재님께서 egjs-view360 오픈소스를 개발하면서 있었던 에피소드 등을 이야기 해주신 내용이었던것 같습니다(중간에 질문 생각하느라 잘 못들은 내용이,,,ㅎㅎㅎ)
희재님게서 혼자 개발을 시작해서 처음 서비스 부서에 라이브러리 부서에 전달했을때, 생각지도 못한곳에서 버그들이 생겨서 애를 먹었다는 이야기를 해주셨습니다.(이 때, 저 곰돌이 들의 짤이 너무 공감되었다지요 ㅋㅋ 왼쪽 다리를 두드리면 오른쪽 다리가 올라가고 ㅋㅋㅋㅋㅋ) 그래서 결국 프로젝트를 다른 시니어 개발자 분과 같이 처음부터 시작했다고 말씀해주셨습니다.
그리고 기억나는 내용은...
a) 커밋 메세지 잘쓰기
b) PR 단위 줄이기 : 리뷰를 의미있게 하기위한 조건, 되도록이면 1이슈 1PR이 좋음
c) 테스트의 중요성
죄송합니다... 하지만 발표는 정말 재밌게 들었습니다. 그리고 view360 은 파노라마로 찍은 사진을 웹에서 VR화면처럼 볼수 있도록 만들어 주는 오픈소스입니다.(짱신기!) 현재 NAVER 부동산 등 여러군데에서 사용되고 있습니다. 아래 링크에 접속하셔서 직접 보시는걸 추천드립니다:D
3. 오픈소스 생태계 일원으로서의 개발자
마지막 세션은 변정훈 aka Outsider 님의 발표였습니다. 변정훈님의 첫 이미지는 세션 타이틀 때문인지는 모르겠지만 오픈소스 정글에서 자유롭게 살아가고 있는 타잔같은 이미지였습니다.(뭔가 분위기가 자유로워 보이고, 장인느낌이 나셔서..그만큼 분위기 부터 포스가 있으셨습니다:D)
(비유가 기분나쁘셨으면 죄송합니다.ㅠㅠ 정말 멋있으셨다는 의미니까 오해하지 말아주세염)
개인적으로 느낀 변정훈님의 세션은 개발자로 오픈소스를 대하는 자세, 철학 에 대한 내용이었다고 생각합니다. 몇가지 요약하자면 이렇습니다.
a) 오픈소스가 없는 개발은 상상하기 어렵다.
b) 개발자라면 오픈소스 생태계가 더 잘 돌아가도록 만들 책임이 있다.
개발을 하면서 우리는 많은 오픈소스를 사용하고 있습니다. 저도 그렇고 많은 개발자 분들이 그럴거라고 생각합니다. 오픈소스는 그만큼 개발시간을 엄청 단축시켜주는 아주 좋은 친구입니다:D 변정훈님께서는 우리가 오픈소스의 도움을 받은만큼 다시 오픈소스에 기여하고 오픈소스 생태계가 잘 돌아가도록 만들 책임이 있다고 하셨습니다. 이 말을 듣고 정말 전적으로 공감하였고, 앞으로 저도 제가가진 기술(아직은 비루한 실력이지만유,,,ㅎ)이나 다른 분들에게 조금이라도 도움이 될 수 있는 오픈소스를 공유하고 기여해야겠다는 다짐을 하였습니다.
4. Q&A
질문은 각 세션별로 받지 않고 마지막에 발표하신 세분이 앞으로 나오셔서 같이 질문을 받고 답변하는 방식으로 진행하였습니다. 사람들이 많고 이런 공개된 자리에서 질문을 한다는게 쉽지않은?(저에게는..ㅎㅎ)일이라고 생각합니다. 하지만, 이런 유익하고 재밌는 자리에서 질문을 안하고 돌아간다면 후회할 것 같아서...도저저저저언 해봤습니다.ㅎㅎ
질문1. 제가다니는 회사는 분야가 조금 폐쇄적인 분위기라 개발관련된 기술들을 공개하지 않는다. 회사입장에서 기술들을 오픈소스로 공개해야하는게 당연한가?
답변 : 회사에서 안된다는데 개인(개발자)이 그냥 회사의 기술을 오픈소스로 공개하는건 안된다. 다만, 개발자로서 오픈소스 생태계에 기여할 필요가 있고, 고민해야할 필요가 있다.
질문2. NAVER에서 모든기술들을 오픈소스로 공개하지 않는 것 같은데, 오프소스로 공개하는 기술들의 기준이 있는건가?
답변1 : 딱히 기준이 있는건 아니다. 회사입장에서도 기술들을 오픈소스로 공개하는 것 이 좋다. 다른 개발자들이 오프소스를 사용해보고 피드백을 받아 서비스의 퀄리티가 올라갈 수 있다. 하지만, 오픈소스를 공개하는게 쉬운일은 아니다. 이미 기존에 개발되어 있는 기술들을 오픈소스화 시키기 위해서는 문서 등 다른 여러가지 시간이 들어가는 일들이 많다. 이것들은 개발자들에게 부담이 되는 일이다.
답변2 : 오픈소스를 공개한다는건 구인구직 + 마케팅 의 의미도 있다. 개발자를 구할때 회사의 오픈소스에 관심이 있고 사용해본 개발자라면 많은 이점이 된다. 또한, 회사의 기술은 이렇다! 관심있으면 사용하고, 지원해라! 라는 의미도 있다.
네.. ㅎㅎ 제가 질문한 내용은 이렇습니다. 추가로 다른 학생, 개발자 분들이 질문했던 내용도 적어보겠습니다.
질문3. 오픈소스 문서나 코드를 분석하는데 어려움이 많은데, 어떤식으로 분석하나?
답변1 : 처음과 끝을 본다. 모듈이 나뉘어진 구조의 흐름을 그려서 본 뒤, 내부의 세부적인 부분을 본다.
답변2 : 다른사람들의 코드를 잘 분석하는 능력은 많이 어렵지만, 잘하게 되면 다른 개발자들에 비해 독보적인 강점이 될 수 있다.
질문4. 프로젝트에서 오픈소스의 의존성이 높다. Star수가 적은 오픈소스나 사용하는 오픈소스의 메인테이너가 프로젝트를 놔버리면 어떡하나?
답변1 : 어쩔수 없이 fork한 뒤, 자신이 개발하면서 의존성을 줄여야 한다. (이런 부분을 고민하는것은 개발하는 과정에서 좋은 경험이 될 수 있다.)
답변2 : 애초에 오픈소스를 선택할 때, 리스크를 관리해야한다. 또한 처음 오픈소스를 선택할 때부터 활동이 활발한 오픈소스를 사용한다. 또는 담당을 정해서 커밋권한을 얻어서 컨트리뷰터가 되라.(정말 중요한 프로젝트에서)
질문5. 오픈소스를 조금 수정해서 사용하거나, 프로젝트를 출시하게 되면 라이센스 위반인가?
답변 : 라이센스는 조금 복잡한 일이다. 오픈소스도 오픈소스나름의 저작권이 있다. Readme나 문서를 보게되면 이 오픈소스의 사용범위, 어디까지 사용가능하느냐를 알 수 있다. 만약 아무것도 안적혀 있다면 사용하면 안된다.(라이센스 위반) MIT, Apache는 상관없음. 다만, 오픈소스를 사용하게 되면, 개발자에 대한 리스펙으로 출처 및 링크를 주석으로 남긴다. 정확한건 개발자에게 e-mail을 보내거나 연락하는게 좋다.
생각나는 질문은 이정도 까지네요 ㅎㅎ 세미나가 끝난 뒤, 질문을 한 사람들에게는 네이버 오픈소스 로고가 그려진 티셔츠를 선물로 주셨습니다 ㅋㅋ(개이득)
(역시 사진은 화장실이죠..ㅎㅎ 눈갱이라면 죄송합니다.
티셔츠가 몸에 촥촥 감기는게 코딩할때 코딩이 잘 될것 같은 느낌적인 느낌이네여:D)
<참고사항>
Q&A 정리는 bactoria님께서 저보다 더 잘 정리해 놓으셨습니다. 아래링크에서 참고하시면 더 도움이 될 것 같습니다:D
http://bactoria.tistory.com/category/Semina
5. 마치며...
이번 네이버 오픈소스 세미나를 참석하고 청강하면서 느낀점은 정말 열정이 많고 열심히 사는 개발자, 학생분들이 많고 실력자 분들도 많다는 것 을 느꼈다. 무엇보다도 더 열심히 해야겠다는 동기부여도 얻었다.
그리고 세미나의 주제인 '오픈소스'에 대해 어떤식으로 접근하고 개발자로 어떻게 오픈소를 대해야 하는지에 생각할 수 있었던 시간이었다.
이렇게 좋은 세미나를 열어주신 NAVER관계자 분들, 발표해주신 선데이토즈 의 권민재님, NAVER의 김희재님, 변정훈님(aka Outsider)께 정말 감사의 말씀을 드립니다.
이상으로 오늘의 포스팅을 마치겠습니다. 즐거운 코드 생산하세요:D
※ 이 글은 제 생각을 적은 내용입니다. 혹시나 제가 잘못 적었거나 잘못 전달해서 오해의 소지가 있는 내용이라면 수정하도록 하겠습니다. 감사합니다.