2018년 8월 16일(목) ~ 10월 31일(수)

ankus-Lite for web data analysis

장동훈 외 멘토

빅데이터

ankus-Lite for web data analysis 프로젝트는 데이터 분석을 위해 크롤러(ankus-Crawler)로 수집된 웹 문서들을 분석하여 새로운 정형 데이터로 생성하는 공개소프트웨어입니다. 웹에는 다양하고 방대한 양의 데이터가 있으며, 접근이 용이합니다. 특히 웹에는 사회적 이슈, 사람들의 관심, 크고 작은 사고내용과 같은 다양한 콘텐츠들이 존재하기 때문에 빅데이터 분석에서는 반드시 고려해야하는 데이터입니다. 따라서 본 프로젝트에서는 ankus Community의 공개소프트웨어인 ankus-Lite의 크롤러(ankus-Crawler)를 가지고 수집된 웹 문서들을 분석하여 정형 데이터로 생성하는 것을 그 목적으로 하고 있습니다.

활용 언어: JAVA, HTML

  • 오픈소스 프로젝트에 관심이 많은 사람 - 웹 문서 구조 분석에 관심이 많은 사람
  • 빅데이터 분석 중 문장과 같은 비정형 데이터 분석에 관심이 많은 사람
  • 빅데이터 분석 기술에 관심이 많은 사람
  • 형태소 분석과 같은 자연어처리에 관심이 많은 사람

난이도

중-상
  • 코스2. 개발 환경 셋팅
    • 자바 Eclipse 개발 환경 설치

CUBRID DBMS를 적용한 CMS

김병욱 멘토

데이터베이스

공개 CMS가 지원하는 MySQL, SQLite, PostgreSQL 등과 같은 기본 DBMS에 CUBRID를 추가하여 CMS에서 좀더 다양한 DBMS를 사용하도록 하여 활용도를 높임과 동시에 CUBRID 응용 분야를 확대하는 것을 목표로 합니다.

활용 언어: PHP, HTML, JavaScript, SQL

PHP를 활용한 CMS 및 데이터베이스, 특히 SQL에 관심이 있는 개발자

난이도

  • 원활한 프로젝트 수행을 위해 기본적인 git 사용법에 대해 미리 숙지
  • SQL에 대해 기본적인 문법 정도는 선행 학습이 필요
  • xdebug를 활용한 Visual Studio Code 실시간 PHP 디버깅 방법

Tizen NN API & Runtime

손기성 멘토

OS, APP

최근 Cloud 기반의 인공지능(AI)이 동작하는 제품들이 출시되고 있습니다. 그러나, 향후에는 AI가 제품에 탑재(On-Device)되어 신제품들이 출시될 것으로 예상되고, On-Device AI를 위해 Google은 최근에 "Tensorflow Lite"를 개발하여 오픈소스로 발표하였습니다. 그러나, Tensorflow Lite를 Android가 아닌 다른 Platform에서 사용하기 위해서는 "Neural Networks(NN) Runtime"이 개발되어야 합니다. 그래서, 이번 프로젝트에서는 Tizen Platform용 "NN Runtime"을 개발하여 오픈소스화 하고, 이를 적용한 간단한 AI 제품(Device)를 개발해 보고자 합니다.

활용 언어: C/C++

  • Embedded System SW 개발 경험이 많은 개발자
  • SW 개발 역량이 높고 난이도가 높은 프로젝트 개발 경험을 해보고 싶은 개발자

난이도

  • 이 프로젝트를 진행하기 위해서는 참여자가 Tizen Platform 개발 및 Tensorflow Lite, ARM CL(Open CL) 등에 대해 깊이 있는 공부가 선행되어야 하고, 이와 같은 기반 지식 을 가지고 NN Framework(Runtime, API)을 개발해야 합니다. 개발된 NN Framework는 Tizen Platform이 설치된 Odroid-XU4에 올린 후에 정상적인 동작 여부를 확인할 수 있을 것 입니다. 여기까지 개발이 된다면, 간단한 AI Service app을 개발하여 AI 제품을 만들어 볼 수 있을 것 입니다.
  • 1. Tizen Platform
    - Tizen 구조 파악 및 빌드
    - Odroid-XU4 보드 파악
    - Tizen Platform image와 u-boot를 이용하여 Odroid-XU4부팅
    - UART-cable을 통해 Shell에 root 권한으로 접속
  • 2. Tensorflow-lite
    - GBS를 이용하여 Tensorflow-lite 빌드
    - Tizen OS에서 Tensorflow-lite library를 이용하는 Sample Code작성 및 컴파일
    - 간단한 예제를 통해 동작 원리를 세세하게 파악한다.
  • 3. NNAPI 개발
    - 참고 소스 코드 분석
    . Android NNAPI (https://developer.android.com/ndk/guides/neuralnetworks)
    . ARM Compute Library (https://github.com/ARM-software/ComputeLibrary)
    . ARM Android NN driver (https://github.com/Arm-software/android-nn-driver)
    - 간단한 AI Service App을 구현 후, 해당 App이 구현한 API들을 호출하도록 한다.

Tizen C#/Xamarin Sample App 개발

손기성 멘토

OS, APP

현재 Tizen Platform은 삼성전자 제품(TV, Gear, Mobile, 냉장고 등)에 탑재되어 판매되고 있고, Tizen Platform은 C#/Xamarin으로 App을 개발할 수 있어서 C#/Xamarin 개발자는 TV, Gear, Mobile, 냉장고 같은 제품에 들어가는 App을 쉽게 개발할 수 있습니다. 그리고, Tizen App 개발자가 C#/Xamarin으로 App을 개발하고자 할 때, Tizen 공식 샘플 App의 소스코드를 참고하여 본인의 App을 개발할 것 입니다. 이렇게 Tizen C#/Xamarin 공식 샘플 App을 개발하여 전세계 개발자들에게 공개함으로써 SW 개발자로써의 실력과 경력 및 자긍심을 높일 수 있을 것 입니다.

활용 언어: C#

C#/Xamarin 개발자 중에서, 전세계 개발자들이 참고할 수 있는 Tizen 공식 샘플 App을 개발해 보고 싶은 개발자(Tizen TV, Gear, Mobile, IoT 등)

난이도

  • 1. Tizen C#/Xamarin App 프로젝트 선정 (TV, Gear, Mobile, IoT)
    - 기존 샘플 App 분석 (https://github.com/Samsung/Tizen-CSharp-Samples)
    - App 주제 선정 및 요구사항 분석
    - Architecture 설계
  • 2. 프로젝트 개발
    - Visual Studio를 사용하여 Tizen C#/Xamarin App 개발 (https://developer.tizen.org/development/visual-studio-tools-tizen/installing-visual-studio-tools-tizen)
  • 3. Tizen 오픈소스에 Contribution
    - Tizen Community에 이슈 제안
    - 소스코드 commit/review/patch
    - Tizen C#/Xamarin 공식 샘플 App으로 등록

webOS Open Source Edition

배창혁 / 김민재 / 강성재 / 고석하 멘토

OS, APP

webOS OSE(Open Source Edition)는 webOS의 오픈 소스 버전으로 다양한 제품의 기반으로 사용할 수 있도록 구성되어 있는 리눅스 기반의 개방형 OS 입니다. 현재는 라즈베리파이3와 QEMUX86 에뮬레이터를 지원합니다. 개방형 OS 로 Kernel, BSP 분야부터 C, C++,NodeJS를 이용한 서비스, 프레임워크 개발 및 QT, HTML, Javascript등을 이용한 애플리케이션 개발까지 소프트웨어 개발의 거의 모든 분야를 포함하고 있습니다.

활용 언어: C, C++, JavaScript, HTML

아래 사항 중 어느 하나만 관심이 있어도 지원 가능합니다.
- 오픈소스에 관심이 많은 사람
- 개방형 OS에 관심이 많은 사람
- 임베디드 리눅스에 관심이 많은 사람
- Web (HTML, Javascript, Enact 등) 개발에 관심이 많은 사람
- 소프트웨어 개발에 관심이 많은 사람
- 라즈베리파이에 관심이 많은 사람
- Yocto 프로젝트에 관심이 많은 사람

난이도

코스1. webOS 아키텍처 설명

  • 개방형 OS로 소프트웨어 개발 영역 전체를 커버하기 때문에 전체 아키텍처 및 핵심이 되는 컴포넌트의 기본지식을 알아야 합니다. (개발자의 개발 영역에 따라 달라질 수 있음)
  • http://webosose.org/develop/architecture/ 참고

코스2. 개발 환경 설정

코스 3. 컨트리뷰션 가이드

코스 4. 컨트리뷰션 할 것들 찾기

  • 기존 컨트리뷰션 한 내용 스터디
  • 난이도 높지 않은 버그 개선

Chromium / Blink

방진호 / 고병권 멘토

Web Platform / Browser Engine

Chromium / Blink 프로젝트는 Open Web Platform을 지향하는 Global Open Source 프로젝트 입니다. Chromium은 Chrome Browser 뿐 아니라 Samsung Browser, Whale Browser 등 세계 여러 브라우저에서 사용하고 있습니다. Chromium에서 사용하는 렌더링 엔진인 Blink는 WebKit에서 파생한 프로젝트로 렌더링 외에도 HTML5의 여러 새로운 Web Platform 기능들을 포함하고 있습니다.

활용 언어: C++, Java, Javascript, Python

  • 규모가 큰 글로벌 오픈소스에 기여를 하고 싶으신 분
  • PWA(Progressive Web App)과 같은 최신 웹 표준을 직접 구현해보고 싶으신 분
  • 웹 브라우저 내부 구동 원리에 관심이 많으신 분
  • 오픈소스에 대한 열정이 가득하신 분
  • (웹 개발을 해보신 경험 / GIT을 다뤄본 경험이 있으시면 큰 도움이 됩니다)

난이도

  • Chromium Development Process 이해하기
    • Make a patch (AUTHOR file)
    • Code review
  • 무작정 첫 패치 만들어보기
    • Good First Bug
    • 오타(Typo) 수정
    • 코딩 스타일 가이드(Coding Style Guide)
    • 번역하기
    • FIXME 또는 TODO 찾기
    • Rename or Replace
  • Web Platform 기능 버그 찾기
    • 웹 표준 읽고 분석하기
    • 알려진 웹 표준 버그 분석 및 토론에 참여하기
  • Web Platform 기능 수정 하기
    • 웹 표준에 따라 버그 수정 및 기능 구현
    • 필요에 따라 “Web Platform 기능 구현 제안서” 제출

GitShare

김동우 / 장기영 멘토

Web, Social

개발자가 Code를 공유할 때 또는 Code에 대해 질문할 때, Facebook에 Code를 평문으로 붙여 넣는 일은 너무 끔찍하죠. 그렇다고 Gist나 Codepen등의 서비스를 이용하는 것은 복잡합니다. 이 문제를 다양한 Open-source 기술과 Github Gist를 이용하여 멋지게 해킹해 봅시다. 개발자들의 Code Share와 토론이 가능하고, 원하는 Code 검색을 도와주는 Static Web service를 Open-source로 개발합니다.

활용 언어: JavaScript & TypeScript

적극적으로 참가할 수 있는 JavaScript Lover

난이도

  • 1. 멘토-멘티 모두가 참여하는 Ideation을 거쳐 개발 방향과 범위를 결정합니다.
  • 2. 자신의 수준을 감안한 개발 목표를 구상합니다.
  • 3. NodeJS를 개발하기 위한 개발환경을 셋팅합니다.
  • 4. Github.com의 사용법과 컨트리뷰션하는 일련의 과정을 조사합니다.
  • 5. 코드 품질 관리, 자동 테스트, 자동 배포, 웹 UI 구현에 대한 방법을 탐구합니다.

Guider

이평화 멘토

System Profiler

Guider는 Android, webOS, Tizen 등과 같은 Linux Kernel 기반의 모든 Platform에서 시스템 성능을 측정하고 분석하기 위해 사용될 수 있는 통합 성능 분석 툴이다. 현재도 다양한 시스템 성능 분석 툴들이 존재하지만 일일이 학습하고 설치하고 익숙해져야 하는 문제가 있다. 하지만 Guider는 쉽고 빠르고 효과적인 시스템 성능 분석 기능을 제공하며 실용적인 기능이 많기 때문에 현업에서도 널리 사용되고 있다.
Project의 Repository 주소는 https://github.com/iipeace/guider이다

활용 언어: Python, C, Shell Script

  • OS 및 Kernel에 관심이 많은 사람
  • 시스템 성능 최적화에 관심이 많은 사람
  • PyQt 프로그래밍에 관심있는 사람
  • Linux에 관심 있는 사람
  • 실무에서 사용되는 디버깅 기술에 관심이 많은 사람
  • Python 코드 최적화에 관심이 많은 사람
  • 기술 문서 작성에 관심이 많은 사람

난이도

  • 코스1. Guider 기능 및 사용법 이해하기
    • Guider는 Thread, Process, Function, File, Systemcall 등 다양한 관점에서 시스템 성능을 분석할 수 있는 기능을 제공
    • 각 기능과 통계정보(stat)를 세미나를 통해 이해하고 보고서 혹은 블로그에 정리
  • 코스2. Guider 설치 및 실행
    • Target 시스템에 Guider 설치 및 실행
    • 시스템 성능이 느린 케이스에서 Guider 실행하여 성능 분석 (부팅, 앱실행, …)
    • 성능의 병목이 되는 부분을 분석 혹은 개선하여 보고서나 블로그에 정리
  • 코스3. Guider 개발
    • PyQt를 이용한 Guider GUI 기능 개발 (완료 시 폭넓은 사용자 층 확보 가능)
    • Guider의 Python code 개선 (성능, 가독성, 호환성 등)
    • Guider 문서화 (한글 + 가능하면 영어까지)
    • Guider의 신규기능 개발 (사용자 입장에서 필요한 기능을 제안하고 직접 구현)
  • 코스4. 논문 작성 및 투고
    • Guider 소개, 신규 기능구현, 활용사례 등을 논문으로 작성하여 투고

it-chain

이준범 / 안휘 멘토

Blockchain

기존 블록체인은 그 규모가 방대하고 지나치게 복잡하여 지역사회, 소규모 상인연합과 같은 비IT 중소규모 커뮤니티에서 사용하기에 높은 진입장벽을 갖고 있다. It-chain은 이러한 중소규모 커뮤니티에서 유연하게 수정하여 자신들의 목적에 맞게 활용할 수 있는 경량 맞춤형 블록체인을 위한 오픈소스 프로젝트 입니다.

중소규모 커뮤니티에서 유연하고 자유롭게 이용 가능한 '경량 맞춤형 블록체인 엔진' 개발

활용 언어: Go

  • 블록체인에 관심이 많은 사람
  • 같이 협업하는 프로그래밍을 경험하고 싶은 사람
  • 소프트웨어 공학, 아키텍처 작성에 관심이 많은 사람
  • Event Driven architecture에 관심이 많은 사람
  • 블록체인 엔진을 직접 구현해 보고 싶은 사람(Go lang, Docker)

난이도

코스 1. 블록체인 이해하기

블록체인 엔진의 경우 다양한 분야를 포함하고 있기 때문에 다음과 같은 핵심 기술들에 대한 기본적인 공부가 필요합니다.

코스2. 개발 환경 셋팅

Golang >= 1.9
Docker >= 17.12.0

코스3. 코딩 가이드

https://github.com/it-chain/it-chain-Engine/blob/develop/CONTRIBUTION.md

코스 4. 이슈 확인

https://github.com/it-chain 프로젝트의 issue에서 진행되거나 필요한 작업들을 확인 할 수 있고, 코드를 살펴보다 이슈에 올라오지 않은 기능 추가, 버그 fix, 테스트 추가, 리팩토링, 문서작성을 issue를 올려 작업을 시작 할 수 있습니다.

Netfilter

유태희 멘토

네트워크

Netfilter는 Linux kernel의 Network Stack에서 수행되는 패킷 필터링 프레임워크입니다. iptables, conntrack등의 명령어를 통해 네트워크 보안설정을 합니다. 본 프로젝트는 Netfilter의 user-space application 및 kernel-space의 코드 및 문서 수정을 시도합니다.

활용 언어: C

리눅스에 관심이 있는 사람
네트워크에 관심이 있는 사람
리눅스 네트워크 스택에 관심이 있는 사람
리눅스 방화벽에 관심이 있는 사람

난이도

  • 코스1 Netfilter 소개
    Netfilter 소개
  • 코스2 Netfilter 구조 이해
    Netfilter의 기본적인 구조 및 동작 원리를 살펴봅니다.
  • 코스3 Netfilter 모듈 파악
    Netfilter의 여러 모듈의 구조와 원리를 파악합니다.
  • 코스4 Netfilter 운용 및 분석
    Netfilter 코드는 iptables, conntrack등의 명령어를 통해서 더 빨리 이해할 수 있습니다.
    코드분석과 동시에 Netfilter 운용을 하면서 Netfilter를 이해합니다.
    Netfilter 운용 방법을 소개합니다.
    Code 분석 방법을 소개합니다.
  • 코스5 할만한 패치 소개
    시작하기 좋은 패치들을 소개합니다.

Presto Music

소현섭 멘토

웹 애플리케이션

Presto Music 프로젝트는 모듈 시스템을 통한 확장이 가능한 음악 플레이어 코어를 개발하는 프로젝트입니다. 크로미움 임베디드 프레임워크를 사용하여 웹 기술 기반의 스킨을 만들고, ASP.NET Core 기반의 스트리밍 서버와 연동하여 음악 스트리밍과 차트 시스템까지 지원하는 수준 높은 음악 플레이어를 개발하는 것이 본 프로젝트의 목표입니다.

활용 언어: JavaScript, C#

  • 음악을 좋아하는 사람
  • 웹 기술을 활용하여 플레이어를 만들어보고 싶은 사람
  • 모듈화 기능이 있는 플레이어 코어를 개발해보고 싶은 사람
  • 직접 음악 스트리밍 서비스를 개발해보고 싶은 사람
  • 스킨 디자인 또는 문서 작업이 가능한 사람

난이도

  • 1. 프로젝트 구조 이해 Presto Music 프로젝트의 자세한 스킨 구조와 모듈 시스템을 이해하고, 팀원들과 회의를 통해 자신이 개발에 참여할 분야를 결정합니다.
  • 2. 개발 환경 구성하기 자신이 참여한 분야에 해당하는 개발 환경을 구성합니다. 각 분야별로 필요한 기본 개발 환경은 다음과 같습니다.
    • A. 웹 스킨 개발
      ① VS Code, Notepad++ 등의 에디터
      ② Presto Music Web SDK
    • B. 일반 스킨 개발
      ① Visual Studio 2017 + .NET Framework 4.6.1
      ② Presto Music .NET SDK
    • C. 스트리밍 서버 개발
      ① Visual Studio 2017 + ASP.NET Core 2.0
  • 3. 아이디어 회의 기존의 플레이어를 사용하면서 불편하거나 개선하고 싶었던 부분, 디자인이나 인터페이스에 대한 아이디어 회의를 진행합니다.
  • 4. 프로그램 개발 아이디어 회의를 통해 나온 이슈들을 GitHub 저장소에 정리하고 협업을 통한 실질적인 오픈소스 개발과 개선 작업을 수행합니다.
  • 5. 결과물 공개 개발 결과물을 GitHub 저장소의 Release 페이지에 공개하고 문서화를 통해 더 많은 개발자들과 함께할 수 있도록 합니다.

uftrace

송태웅 / 박한범 / 김재중 멘토

Function Tracing (user+lib+kernel)

C/C++ 프로그램 실행 도중의 함수호출 과정을 살펴볼 수 있는 Tracing 도구입니다. (유저함수 뿐만 아니라 라이브러리 함수 커널 함수도 실행 흐름에 맞춰 함께 추적하는 도구)
- http://github.com/namhyung/uftrace

활용 언어: C, Python

- 오픈소스 개발에 참여하고 싶지만 진입 장벽에 부딪힌 분
- Linux 기반 C/C++프로그램 Tracing 도구 개발 관심있는 분
- User + Kernel 함수를 함께 추적하는 사례에 관심 있으신분 (예시: usb driver 관련)

난이도

  • 1. Git/Github 협업방식 훈련
    • Git/Github 의 기본실습
    • 협업 시 사용하는 명령 및 이슈 해결법 이해 (rebase 등)
    • 오픈소스 개발방식 이해
  • 2. uftrace 프로젝트 이해와 정리
    • 프로젝트 명
    • 분야 및 한 줄 정의
    • 사용언어
    • 주요 feature 에 대한 시나리오 1 개
    • 총 라인 수, 폴더 나뉜 구조(depth 2-3)
    • 소스 → ( 컴파일 / 세팅 ) → 실행 과정
  • 3. 선정된 프로젝트 개발환경구성
    • 개발 및 테스트 환경 구성 : IDE 및 편집기와 debugging 툴 세팅
    • 컴파일 / 실행 테스트 : “hello world” 및 임의 내용 포함 테스트
    • Git 개발 환경 구성 : local, remote repo, upstream 구조 잡기
  • 4. Linux 기반 Tracing 도구 개발을 위한 스터디
    • ELF, PLT/GOT, x86 calling convention 등 background knowledge
    • uftrace 주요 기능에 대한 소스리딩(분석)
  • 5. 시나리오 기반 소스 분석
    • 하나의 기능을 선정해서 그것이 실행되는 과정을 분석
    • 그와 관련된 class, data structure, function, call-graph 등을 분석
  • 6. 프로젝트에 기여하기 (Contribution)
    • 버그/리팩토링/minor feature PATCH 거리 수색하기
    • 분석한 시나리오를 바탕으로 다각도로 프로그램을 실행하며 분석적으로 사용한다.
    • 분석한 시나리오를 바탕으로 소스의 리팩토링 가능여부를 살펴보며 분석한다.
    • 이외의 다각도 시나리오로 이용하며 부족하거나 필요한 기능에 대해서 고민하고 구현해 본다.
    • pull-request 전송
    • pull-request 전에 코드컨벤션 확인 및 테스트를 필수적으로 한다.
    • 완성한 다양한 수정사항(commit)을 해당 프로젝트에 pull-request 한다.

구름입력기

정윤원 멘토

macOS 한글 입력기

macOS에 설치해 내장 입력기 대신 사용할 수 있는 서드파티 한글 입력기입니다. libhangul 기반으로 모아치기 등의 향상된 기능을 제공합니다.

활용 언어: Swift/Objective-C

  • Swift/Objective-C 에 관심이 있는 사람
  • macOS/iOS/한글 입력기의 개발에 관심이 있는 사람
  • 주의: macOS 개발환경(맥과 xcode)을 스스로 마련할 수 있어야 합니다. Swift 또는 Objective-C 가운데 한 가지는 기초 수준 이상 알고 있어야 합니다.

난이도

  • 각 참가자는 자율적으로 원하는 주제를 선정하거나, 선정할 주제가 없을 경우 Objective-C를 Swift로 재작성하는 작업을 할 수 있습니다.
  • 언어를 바꾸어 재작성하는 과정은 다소 기계적인 과정으로서, 코드보다는 오픈소스 프로젝트의 흐름에 보다 집중할 수 있으므로 오픈소스 경험이 적은 사람들에게 추천합니다.

OpenStack

최영락 / 신호철 / 조성수 / 공용준 멘토

클라우드 컴퓨팅

오픈스택 (OpenStack)은 클라우드 관리 플랫폼을 구축하기 위한 오픈 소스 소프트웨어 프로젝트로, 개별적으로 설치하는 6개의 코어 및 여러 선택 컴포넌트들을 서로 유기적으로 연동하여 직접 클라우드를 구성 가능한 공개 SW입니다. 여러 개 프로젝트 팀들이 유기적으로 서로 협력하면서 매 6개월마다 릴리즈를 하여, 2010년 Austin을 시작으로, 가장 최근인 2018년 2월에는 Queens 릴리즈를 출시하였습니다. OpenStack 번역팀은 OpenStack을 유비쿼터스하게 접근 가능하도록 번역 작업뿐만 아니라, 각 OpenStack 프로젝트에 번역 결과물이 잘 반영될 수 있도록 하는 번역 플랫폼에 대한 관리 및 향상, 그리고 번역 테스트를 목표로 하고 있습니다. 또한 문서팀은 각 OpenStack 프로젝트 저장소에 위치한 문서 작업을 원활하게 수행할 수 있도록 도구, 스타일링과 관련한 컨트리뷰션을 하여 OpenStack 공개 소프트웨어가 발전하는데 많은 기여를 하고 있습니다.

활용 언어: Python, Shell Script

- 클라우드 컴퓨팅 / 오픈 인프라 분야에 관심이 많은 사람
- 규모가 큰 글로벌 오픈소스 프로젝트에 관심이 많은 사람: 공동 참여를 통한 글로벌 오픈소스 프로젝트 거버넌스 및 커뮤니케이션, 문화를 학습
- GNU PO 파일을 기반으로 한 오픈소스 번역 작업 및 번역 연동 작업에 직접 참여해 보고 싶은 사람
- 대규모 프로젝트 문서화 / 번역에 참여해 보고 싶은 사람: RST (Restructured Text)를 사용한 contextual 문서 작성, Sphinx (http://www.sphinx-doc.org)를 사용한 문서 빌드, 프로젝트/문서 번역 연동 과정
- Python 및 Shell Script를 통한 번역 연동 작업 및 API 활용 프로그램 개발 기여

난이도

  • 코스1. 오픈스택 개발 및 컨트리뷰션 이해하기
    OpenStack은 공식 프로젝트가 65개 (2018년 6월 기준)인데다, 저장소 개수가 1,400여개 이상인 클라우드 컴퓨팅 분야에서 매우 큰 프로젝트입니다. 이러한 오픈스택이 무엇이고 어떻게 개발이 이루어지는지에 대해 파악을 해야 컨트리뷰션에 참여할 수 있습니다.
    - OpenStack Upstream Institute: https://docs.openstack.org/ko_KR/upstream-training
    - OpenStack contributor guide: https://docs.openstack.org/contributors
  • 코스2. 개발 환경 셋팅
    기본적으로 git 프로토콜을 사용합니다. Git에 대한 기본 사용 방법 (특히, 명령어 기반 인터렉션)을 숙지해야 합니다.
    OpenStack은 컨트리뷰션을 위해 Gerrit (http://review.openstack.org) 을 사용하며, “git review”라는 추가 플러그인을 설치하여 사용합니다.
    자세한 내용은 contributor guide에 설명되어 있으며, Linux-based 환경에서 직접 셋업을 하여 개발 환경을 구성해 봅니다 (가상 머신으로도 가능합니다).
  • 코스3. 프로젝트 개발, 문서화, 번역 가이드 및 문화 숙지하기
    커밋 메시지 작성법, Gerrit에서 개발자과 의사소통하는 방법 등을 살펴볼 것입니다.
    문서화 기여 가이드 (영문): https://docs.openstack.org/doc-contrib-guide/index.html
    I18n 국제화 기여 가이드 (한글 문서 확인 가능): https://docs.openstack.org/i18n/latest/
  • 코스4. Sandbox 저장소 기반 작업, 컨트리뷰션을 위한 패치 / 개발 항목 찾기
    Sandbox 저장소 (http://git.openstack.org/cgit/openstack-dev/sandbox )에서 첫 번째 패치를 작성하여 Gerrit에 업로드를 해 봅니다.
    https://launchpad.net/openstack, https://launchpad.net/openstack-manuals, https://launchpad.net/openstack-i18n, https://storyboard.openstack.org 등 다양한 Task tracker에서 컨트리뷰션을 위한 패치 또는 개발 항목을 찾아볼 예정입니다.
  • 코스5. 실제 개발/문서화/번역 작업에 참여
    실제 블루프린트/스펙/Etherpad 등 하고자 하는 항목을 명시한 후, 커뮤니티 내 동의를 얻어 컨트리뷰션에 기여합니다.

Contribute to Keras

김태영 / 이상훈 멘토

딥러닝

딥러닝 열풍 덕분에 Keras(+Tensorflow) 관련 한글 입문서는 많이 나오고있지만 실전코드나 모델에 대한 주석과 설명에 대한 documetation이 많이 부족합니다. 이러한 간극을 메꾸고자 한글 딥러닝 documentation을 프로젝트를 기획하였습니다.

활용 언어: Python

최소한의 딥러닝 지식과 영어

난이도

  • 멘토가 사전에 중요한 모델이나 튜토리얼, 문서를 선정하고 참가 학생의 보유 역량에 따라 과제를 선정합니다. 그 이후 간단한 documentation부터 복잡한 모델구현 혹은 해설까지 진행하여 딥러닝에 대한 대중의 정보 간극을 줄이고, 개인으로써는 코드를 자세히이해하고 협업을 경험하도록 합니다.

캐글 속 커널 한글화 작업을 통한 데이터 사이언스 대중화

이유한 / 강천성 / 김준태 멘토

인공지능, Data Science

캐글은 기업이나, 정부 또는 개인이 구축한 데이터를 가지고 데이터 과학자(또는 데이터 과학을 배우고 싶은 사람)들이 최상의 해법을 제시하기 위해 경쟁하는 빅데이터 플랫폼입니다. 캐글은 하나의 데이터 과학자 온라인 커뮤니티 기능을 하여, 캐글에 가입한 전 세계에서 온 데이터 과학자(캐글러라 명칭)들이 서로 브레인스토밍 및 지식 토론하는 장을 마련하였습니다. 캐글러들은 자신들의 분석 노하우를 소스코드 및 그에 따른 상세한 해설을 포함하여 공유하였으며(커널이라고 명칭),본 프로젝트에서는 위 커널을 한글화시켜서 전 세계 유능한 캐글러들의 노하우를 한국에 보급하려고 합니다.

활용 언어: Python, R

파이썬 또는 R 사용에 어려움이 없는 사람.
머신 러닝, 데이터 분석 공부를 해본 사람.
캐글 컴퍼티션 경험이 한번이라도 있는 사람.

난이도

  • image recognition, classification, regression, time series data analysis 등으로 큰 주제를 나눈 뒤 팀을 배정.
    팀별로 주제에 맞는 캐글 내 컴퍼티션 또는 데이터셋을 정한 뒤 커널 스티디 진행.
    적합한 커널을 선정하여 한글화 작업 진행.
    팀별로 자신들만의 커널을 직접 작성할 수도 있음.
    작업한 커널은 캐글코리아 블로그에 게제.