Research Institute
  • 오픈소스 이해하기
    2024년 05월 04일 17시 35분 09초에 업로드 된 글입니다.
    작성자: IIIIIIIIIIIIIIIIIIIIl

    보안 전문성을 높이고 코드를 더 잘 짜려면, 숙련된 개발자들이 이미 작성해둔 오픈소스의 코드를 읽고 어떤 문제를 어떤 구조로, 어떻게 해결했는지로 부터 배울 수 있습니다. 하지만, 실제로 오픈소스 코드를 읽는건 숙련된 개발자 에게도 절대 쉽지 않습니다. 현대의 오픈소스 소프트웨어는 코드 규모가 배우 방대하고 복잡하며 아키텍쳐를 한눈에 파악하기 어렵기 때문이죠. 본 교육 과정에서는 오픈소스 동작과 문제해결 방법을 이해하며 보안 취약점 템플릿 개발, 버그수정, 신규기능 개발 등 다양한 기여 활동을 통해 성장하는 것을 목표로 합니다.

    • 오픈소스 선택하기:
      • 순수 지식으로 관심있는 오픈소스
      • 자기 분야에서 활발하게 사용되고 있는 오픈소스
      • 관심있는 회사에서 운영하는 오픈소스
      • 프로젝트 진행 과정에서 활발하게 사용되는 오픈소스
    • 오픈 소스에 기여하는 이유:
      • 신뢰할 수 있는 소프트웨어 개발
        • 사용자가 직접 발견한 버그를 수정함으로써, 오픈 소스 소프트웨어의 신뢰성과 안정성을 향상시킬 수 있습니다. 이 과정에서 자신과 다른 사용자들이 더 나은 소프트웨어 경험을 할 수 있게 됩니다.
      • 역량 향상
        • 다양한 과제를 제공하여 개발, 디자인, 글쓰기, 커뮤니케이션 등의 다양한 영역에서 역량을 향상시킬 수 있는 기회를 제공합니다. 특히 주니어 입장에서 현업에서 요구되는 다양한 역량들을 오픈소스 프로젝트에 기여하면서 배울 수 있습니다.
      • 커뮤니티와의 교류
        • 비슷한 관심사를 가진 사람들을 만날 수 있는 커뮤니티를 제공합니다. 이를 통해 지식을 공유하고, 멘토를 찾거나 다른 사람을 가르치는 등의 활동을 통해 국가를 초월하여 관계를 형성할 수 있습니다.
      • 평판 및 경력 개발
        • 오픈소스 기여는 공개적으로 진행되기 때문에, 공개적으로 포트폴리오로 활용될 수 있습니다. 이는 개인의 평판을 높이고 경력 발전에 도움을 줄 수 있습니다.
      • 리더십 및 관리 기술 배양
        • 오픈소스 프로젝트 참여를 통해 갈등 해결, 팀 구성, 업무 우선순위 결정 등과 같은 리더십과 관리 기술을 연습하고 발전시킬 수 있습니다.
      • 변화를 만드는 능력
        • 오픈 소스 프로젝트에 기여하는 것은 작은 변화가 큰 영향을 미칠 수 있다는 것을 보여줍니다. 간단한 오타 수정에서부터 새로운 기능 추가에 이르기까지, 모든 기여는 자신에게 긍정적인 변화를 가져올 수 있습니다.
    • 목표:
      1. 흥미롭고 유익한, 일반적인 문제를 해결하는 한가지 기능에 집중 합니다
      2. 어떤 문제를 어떤 코드 구조로, 어떻게 해결 했는지를 서로 설명하며 배웁니다
      3. 예시: https://codecatalog.org/articles/zookeeper-trie/
        1. 주키퍼(유명한 오픈소스) 에서 할당량 관리(일반적인 문제, 한가지 기능) 에 Trie 자료구조(해결 방법)가 필요한 이유와 구현한 방법
      4. 프로젝트 진행 기간동안 작은 기여라도 수행하여 오픈소스 컨트리뷰션에 대해서 학습합니다.
    • 진행 방식:
      • 매주 1회 오픈소스 분석과 학습을 수행하고 자유롭게 이야기 합니다.
        • 개인 또는 팀원을 구성하여 오픈소스를 분석하고 내용을 공유합니다.
        • 모임 진행은 서로 자유롭게 진행하고 어려운 점이 있을경우 멘토에게 문의합니다.
        • 본인이 공부한 내용을 PPT 또는 블로그 글 등으로 작성해보는 것을 추천합니다.
    • 기업 오픈소스 저장소:
      1. 네이버 https://github.com/naver
      2. 라인 https://github.com/line
      3. 삼성 https://github.com/Samsunghttps://github.com/jerryscript-project
      4. 카카오 https://github.com/kakao
      5. LG전자 https://github.com/fosslight
      6. NHN https://github.com/nhn
      7. 데브시스터즈 https://github.com/devsisters

    오픈소스를 처음 접해봐서 막막하신 분들에게 드리는 팁!

    참고자료

    https://opensource.guide/

    댓글