SlideShare a Scribd company logo
1 of 84
Download to read offline
커뮤니티와 함께한 예비개발자 성장기
조성수 ( nexusz99 @ gmail.com ) 경희대학교
오늘 이야기할 내용
평범한 대학생이 커뮤니티에서 활동하면서
예비 개발자로써 성장하고있는 이야기
오늘 이야기할 내용
• 커뮤니티란 무엇인가?
우리는 왜 모임을 만드는가
• 커뮤니티가 주는 도움?
커뮤니티는 예비개발자에게 무슨 도움을 주나?
• 커뮤니티에서 활동하기
본격! 커뮤니티 활동하기
• 결론
펜과 노트는 잠시 넣어두시고
편안한 마음으로 “감상”해주시면 됩니다.
개발자
커뮤니티
개발자 커뮤니티
개발자들이 공통의 관심분야를
주제로 모여있는 모임
커뮤니티 활동
• 질문 / 응답
• 유용한 정보 공유
• 온라인 상 토론
• 채팅
• 세미나
• 스터디
• 정기모임
• 행사 자원봉사
온라인 오프라인
커뮤니티를 통해 생태계를 만들고, 경험과 지식을
공유하여 다같이 성장하고 공존하는 것이 가장 큰 목표
커뮤니티의 목표
대학생에게도 이런 모임이 존재한다!
“ 동아리 “
D2 Campus Partner (2016년 2월 기준)
동아리 활동
동아리의 주 목적은 학교 정규교과과정을 넘어서서
더 많은 것을 같이 심도있게 공부하고 경험하는데 있다.
대학생들간의 “커뮤니티”인 셈이다.
동아리 활동
• 교육
신입생 대상 프로그래밍 교육
• 스터디
특정 주제에 관심있는 사람끼리 모여 공동 학습
• 세미나
서로 공부한 것을 공유
• 해커톤 & 공모전
실제로 서비스를 만드는 프로젝트를 경험하면서 실무능력 배양
동아리 vs 커뮤니티
동아리는 성장의 발판이 되어주는 공간
하지만 커뮤니티에는 동아리에 없는 한가지가 있다
동아리 vs 커뮤니티
개발자 커뮤니티에는 다양한 사람들의
다양한 경험 이 있다.
동아리 vs 커뮤니티
개발자 커뮤니티가 가지고 있는 다양한 경험이 예비개발자에게 끼치는 영향
능력치
시간
동아리를 통해
성장한 구간
정체기
커뮤니티에
가본 순간
왜 동아리로만 성장하기 어려운가?
• 문제 해결의 방식
• 회피
• 일단 돌아가게만 만들자
• 시연때는 잘 돌아가는 케이스만.
• 견고함 보단 기능 구현을 우선
• 우리의 혁신적인 아이디어를 빨리 만들어야해
• 주먹구구식 개발
• 반복된 맨땅의 해딩으로 심각한 두통
어떤 경험이 예비개발자의 성장을 촉진시키는가?
• 선배 개발자의 풍부한 개발 경험
우리의 고민의 답을 명쾌하게 내려주신다.
구글링보다 더 자세한 답변
• 진로에 대한 이야기
미래를 위해 어떻게 공부해야하는가?
• 현업에 대한 이야기
학생이니까 알려준다. 이게 현업이야.
선배 개발자의 풍부한 개발 경험
대학생들의 개발 경험
과제 해커톤 공모전
• 대부분의 대학생들은 위 3가지로 개발 경험을 쌓게됩니다.
• 과제를 통해 이론을 구현하는 능력을 키울 수 있습니다.
• 해커톤, 공모전을 통해 내손으로 직접 서비스를 만들어 볼 수 있습니다.
• 하지만 대부분 1회성 코드들입니다.
대학생들의 개발 경험 그리고 고민
• 그래도 이왕 코드를 만들어내는거 제대로 만들어보고 싶다.
• 코드 구조를 어떻게 잡아야할까?
OOP를 배웠으니 적용해보고 싶은데..
디자인 패턴도 배웠는데..
• 서비스를 한 이후 버그를 어떻게 잡아낼까?
서비스가 되면 이미 내손을 떠난 자식.
사고치면 어떻게 고치지?
고민 1. 예쁜 코드 만들기
• 분명 내가 짠 코드인데 왜이리 더러울까?
• OOP 도 배웠고, 디자인 패턴도 배웠다.
• 적용해볼까?
• ( 털썩 )
고민 1. 예쁜 코드 만들기
코드를 예쁘게 만들고
싶어요!
오픈소스를 한번
분석해보세요
고민 1. 예쁜 코드 만들기
• 오픈소스는 훌륭한 개발자들이 만든 금덩이 코드
• 그 안에 온갖 프로그래밍 기법이 들어가 있다.
• 이론으로만 배웠던 내용이 실제 눈으로 구성되어 있는
모습을 볼 수 있다.
오픈소스 분석하기
마침 사용하는 오픈소스도 있었고
어떻게 구현되어있는지 궁금하기도 했었다
오픈소스 분석하기
막상 뜯어보니 엄청 복잡한 소스코드
이미지 출처 : http://www.eclipsezone.com/articles/lattix-dsm/?source=archives
오픈소스 분석하기
오픈소스 분석하고
싶은데 너무 복잡해서
뭘 먼저해야할지
모르겠어요
자.. 일단 옆에
앉아보렴
오픈소스 분석 방법에 대한 노하우
디버깅 환경 구축하기
디버깅 환경 구축하기
• 소스코드 정적분석에는 한계가 있다
• 실제 변수에 어떤 값이 들어가고, 변화하는지 알 수
없기 때문
• 코드를 실행시키고, 변수값을 확인하면서 분석하면 좀
더 용이하게 분석할 수 있다.
디버깅 환경 구축하기
• 예제코드에서 build() 함수 내부를 분석하려면
• 정의 따라가기 기능을 이용하거나 -> (정적 분석)
• 디버거의 Step Into 기능을 이용해야한다. -> (동적 분석)
디버깅 환경 구축하기
• 예제코드에서 build() 함수 내부를 분석하려면
• 정의 따라가기 기능을 이용하거나 -> (정적 분석)
• 디버거의 Step Into 기능을 이용해야한다. -> (동적 분석)
디버깅 환경 구축
• 만약 정의된 곳으로 따라가기, Step Into 를 했는데 아래와 같이
뜬다면, 소스코드를 수동으로 attach 해줘야한다.
(소스코드만 가지고 있는 jar 파일)
디버깅 환경 구축
• 일반적인 자바 라이브러리 파일명
• [라이브러리명]—[버전].jar
• 여기에는 바이트코드인 .class 파일만 들어있다.
• 라이브버리의 소스코드를 담고있는 jar 이 있다.
• [라이브버리명]-[버전]-sources.jar
디버깅 환경 구축하기
일반 소스코드
.class과 연동된 소스코드
디버깅 환경 구축 - Eclipse
• maven 을 이용하여 프로젝트를 구축한 경우
• 이클립스에서 자동으로 source code를 attach 시켜준다.
• 만약 자동으로 attach 가 안되면, 아래 사진처럼 pom 설정
디버깅 환경 구축 - eclipse
• 독립적인 시스템일 경우, IDE에서의 디버깅 가이드
문서가 존재한다
참조 : https://wiki.apache.org/cassandra/RunningCassandraInEclipse
디버깅 환경 구축 – 기타 환경
• Python
• pip install 시, 소스코드가 설치되므로 크게 신경쓰지 않아도
된다.
• 리눅스 환경의 C/C++
• gcc –g 로 디버그 심볼을 붙인다.
• gdb로 분석하거나, eclipse 로 원격 디버깅을 설정한다.
• printf 로 로그를 찍는다.
• 윈도우 환경의 C/C++
• 프로젝트 설정에서 참조설정에 dll 의 소스코드 위치 명시
• https://msdn.microsoft.com/library/4c8f14c9.aspx
• 기타 각 언어에 맞는 디버깅 환경을 찾아서 구축
오픈소스 분석 방법에 대한 노하우
API 코드 흐름을 따라가면서 분석
API 코드를 따라가다보면 어떤 파일들이 있고
어떤 용도로 쓰이는지 쉽게 파악할 수 있다
API 코드 흐름 따라가기
• 분석할 라이브러리를 사용하는 예제코드를 만든다.
• 처음에는 “정의 따라가기” 기능을 통해 API 내부
코드를 눈으로 분석한다.
• 눈으로 어느정도 분석이 끝나면, 실제로 실행하면서
변수값을 확인하면서 정확한 동작을 분석한다.
API 코드 흐름 따라가기
• 분석 시 유의할 점은, 모든 내용을 완벽히 이해하려
하지 말자 (나중에 다 알게된다)
‘이런 애들을 초기화하는구나 ‘로넘어가면 마음이 편하다.
오픈소스 분석 방법에 대한 노하우
Diagram 을 그리면서 분석 과정을 메모
Component Diagram
Diagram을 그리면서 분석 과정 메모
• 우리들의 뇌는 기억력이 좋지 않다.
• 먼저 API 함수 자체의 Flow Chart 를 그린다.
• 이 함수가 대략적으로 어떤 동작을 하는지 알 수 있다.
• if/else 를 너무 상세히 그리지 말자
• API 함수에서 다른 모듈을 사용한다면, 각 모듈간
연관관계를 그리자 (Component Diagram)
• 마지막으로 Sequence Diagram 으로 모듈 간 호출
순서를 정리하자
오픈소스 분석 방법에 대한 노하우
개발과정을 역추적
• 내가 지금 보는 코드는 수 많은 고민과 토론을 통해
탄생
• 코드만 봐서는 이해가 안되는 부분이 존재한다.
• 커밋로그, 코드리뷰 기록을 통해 개발 과정을
역추적하여 역사를 되짚어본다.
개발 과정을 역추적
잘 운영되는 오픈소스에는 Commit 메세지가 아주 자세하게 적혀있다.
의미있는 결과물
고민 2. 서비스 중 디버깅
서비스를 운영하다가
발생하면 어떻게 하지?
예기치않은 오류가
고민 2. 서비스 중 디버깅
평화로운 환경에서는 서버는 열심히 로그를 쌓는다
request
log
splunk
log
error
log
[13/Feb/2016:23:25:16] [INFO] 123.123.123 “GET / HTTP/1.1” 200 783 “Mozilla/4.0”
[13/Feb/2016:23:25:16] [ERROR] filesize must over 0
고민 2. 서비스 중 디버깅
예상치 못한 입력, 실수로 예외처리를 안해서 서버가 터지면
원인을 어떻게 찾아야할까?
request
log
splunk
log
error
log
고민 2. 서비스 중 디버깅
어떤 입력이
온거지?
어떻게
재현하지?
뭘
확인해야하지?
고민 2. 서비스 중 디버깅
혹시 현업에서는 이런
상황에서는 어떻게
하나요?
저희는 Sentry 라는
도구를 사용합니다.
고민 2. 서비스 중 디버깅
실시간으로 웹/모바일 앱에서 발생하는 crash를 리포팅해주는 툴
http://getsentry.com
Sentry 모습
Sentry 모습
TraceBack (StackTrace) 도 남겨준다.
Sentry 모습
코드가 실행될 당시의, 변수 상태도 같이 저장해줍니다.
Sentry 사용 방법 - Python
Sentry 에서 발급받는 주소를 이용하여 Client 객체를 생성한다.
예외가 발생하면 captureException() 함수를 호출해준다.
• ELK (ElasticSearch, Logstash, Kibana)
• Splunk
Response를 주기 직전, 예외처리를 수행
어플리케이션에서 정의한 Exception 외, 예외 발생시 상세정보를 로그로 기록
로그 수집 도구 활용
현업에 대한 이야기
너한테만
알려주는거야.
현업에 대한 이야기
• 학생들은 경험할 수 없는 현업의 생생한 이야기
• 원하는 직업의 현실적인 삶의 이야기를 들을 수 있다.
• 현업으로 가기 전, 배우면 좋은 지식들
• Git의 다양한 기능
• Git Branch 전략
• 테스트 코드 작성 (TDD)
• 다양한 개발 방법론
• 등..
커리어에 대한 조언
• 무엇을 좀 더 심화적으로 공부해야하는지?
• 최신의 트랜드는 무엇인지?
• 미래에는 어떻게 될 것인지?
• 이를 위해 나는 무엇을 준비해야하는가?
진로에 대한 이야기
나처럼 살지마
진로에 대한 이야기
기초지식을 확실히 다지세요(OS, Network .. )
눈 앞의 기술보다는 졸업 후를 생각해서 공부해야.
공부하는 것이 돈을 버는 것이다.
커뮤니티 활동의 결과
넓어진 시야 그리고 내면의 성장
본격!
커뮤니티 활동
시작하기
Naver D2 커뮤니티 지원
https://developers.naver.com/d2/community
개발자 커뮤니티
• Python Korea
• 한국 러스트 사용자 그룹
• 라 스칼라 코딩단
• C++ Korea
• Golang Korea
언어
• 인공지능 스터디
• 손고리즘
• 바벨피쉬
• IAMROOT
이론
개발자 커뮤니티
• 한국 스프링 사용자 모임
• Flask Korea
• Django
• OSXDEV
• OpenStack Korea Group
• Korea Docker User Group
• 우분투한국커뮤니티
• 안드로이드 팁!팁!팁
• 한국 MySQL 사용자그룹
프레임
워크
플랫폼
제가 활동하는 커뮤니티
스터디
오프라인 활동을 찾아보자
커뮤니티는 사람을 만나는 곳이므로 오프라인 활동에 적극 참여해보자
뒷풀이에 참석하기
• 세미나, 스터디가 지식을 공유하는 자리라면,
뒷풀이는 네트워킹을 하는 자리
• 처음에는 어른들 사이에서 서먹서먹하지만,
용기를 가지고 대화를 시도하면 됩니다.
행사의 자원봉사로 활동해보기
• 커뮤니티에서 주최하는 컨퍼런스에 자원봉사자로
참가해보자
• 운영진과 친해질 수 있는 기회!
• 발표자와도 친해질 수 있는 기회!
2014 PyCon 자원봉사자 도전
어느날 Python Korea 그룹에서 이런 글을 보았다.
2014 PyCon 자원봉사자 도전
젊음의 패기로 자원봉사자로 신청하였다.
2014 PyCon 자원봉사자 도전
합격! 생애 첫 커뮤니티 활동의 시작
사진 출처 : PyCon
2014 PyCon 자원봉사자
2015 PyCon 자원봉사자
2016 PyCon APAC 준비위원회 도전
2016 Openstack Days Korea 자원봉사자
친목 모임 참석
친목 모임 참석 - PyJog
결론
두려워 하지 말고 참여해보세요
새로운 세계가 기다리고 있습니다.
커뮤니티는 대학생들의 참여를
원하고 있기도 한다고 합니다
커뮤니티를 통해 자신 그리고 다같이
성장하기를 기대합니다
추천 모임
합니다

More Related Content

What's hot

[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSNAVER D2
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기NAVER D2
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님NAVER D2
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님NAVER D2
 
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)NAVER D2
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기none
 
[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoNNAVER D2
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기NAVER D2
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트NAVER D2
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기DomainDriven DomainDriven
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기sung yong jung
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
[D2 campus seminar]오픈소스로 날아오르다
[D2 campus seminar]오픈소스로 날아오르다[D2 campus seminar]오픈소스로 날아오르다
[D2 campus seminar]오픈소스로 날아오르다NAVER D2
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵NAVER Engineering
 

What's hot (20)

[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
 
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
[D2 fest 2014]개발자와 오픈소스(git기반 협업모델 소개)
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기
 
[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN[D2 CAMPUS] Dodge the Dodge - GoN
[D2 CAMPUS] Dodge the Dodge - GoN
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
[D2 campus seminar]오픈소스로 날아오르다
[D2 campus seminar]오픈소스로 날아오르다[D2 campus seminar]오픈소스로 날아오르다
[D2 campus seminar]오픈소스로 날아오르다
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
 

Similar to 커뮤니티와 함께한 예비개발자 성장기- 조성수님

오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]Yurim Jin
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)NAVER D2
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기Lee WonJae
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)Channy Yun
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기Jay Park
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기Seokjae Lee
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들Lee Geonhee
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드Jay Park
 
Better softwareengineer han
Better softwareengineer hanBetter softwareengineer han
Better softwareengineer hanDaeMyung Kang
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래Sung-tae Ryu
 
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서ServerDevCamp
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션Devrelationswoowahan
 

Similar to 커뮤니티와 함께한 예비개발자 성장기- 조성수님 (20)

오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드
 
Better softwareengineer han
Better softwareengineer hanBetter softwareengineer han
Better softwareengineer han
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
 
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서스마일게이트 서버개발캠프 - HGHSS - 합격하소서
스마일게이트 서버개발캠프 - HGHSS - 합격하소서
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
7월 우아한테크세미나 "주니어개발자로 성장하는 우아한 방법들" 첫번째 세션
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

커뮤니티와 함께한 예비개발자 성장기- 조성수님

  • 1. 커뮤니티와 함께한 예비개발자 성장기 조성수 ( nexusz99 @ gmail.com ) 경희대학교
  • 2. 오늘 이야기할 내용 평범한 대학생이 커뮤니티에서 활동하면서 예비 개발자로써 성장하고있는 이야기
  • 3. 오늘 이야기할 내용 • 커뮤니티란 무엇인가? 우리는 왜 모임을 만드는가 • 커뮤니티가 주는 도움? 커뮤니티는 예비개발자에게 무슨 도움을 주나? • 커뮤니티에서 활동하기 본격! 커뮤니티 활동하기 • 결론
  • 4. 펜과 노트는 잠시 넣어두시고 편안한 마음으로 “감상”해주시면 됩니다.
  • 6. 개발자 커뮤니티 개발자들이 공통의 관심분야를 주제로 모여있는 모임
  • 7. 커뮤니티 활동 • 질문 / 응답 • 유용한 정보 공유 • 온라인 상 토론 • 채팅 • 세미나 • 스터디 • 정기모임 • 행사 자원봉사 온라인 오프라인
  • 8. 커뮤니티를 통해 생태계를 만들고, 경험과 지식을 공유하여 다같이 성장하고 공존하는 것이 가장 큰 목표 커뮤니티의 목표
  • 9. 대학생에게도 이런 모임이 존재한다! “ 동아리 “
  • 10. D2 Campus Partner (2016년 2월 기준)
  • 11. 동아리 활동 동아리의 주 목적은 학교 정규교과과정을 넘어서서 더 많은 것을 같이 심도있게 공부하고 경험하는데 있다. 대학생들간의 “커뮤니티”인 셈이다.
  • 12. 동아리 활동 • 교육 신입생 대상 프로그래밍 교육 • 스터디 특정 주제에 관심있는 사람끼리 모여 공동 학습 • 세미나 서로 공부한 것을 공유 • 해커톤 & 공모전 실제로 서비스를 만드는 프로젝트를 경험하면서 실무능력 배양
  • 13. 동아리 vs 커뮤니티 동아리는 성장의 발판이 되어주는 공간 하지만 커뮤니티에는 동아리에 없는 한가지가 있다
  • 14. 동아리 vs 커뮤니티 개발자 커뮤니티에는 다양한 사람들의 다양한 경험 이 있다.
  • 15. 동아리 vs 커뮤니티 개발자 커뮤니티가 가지고 있는 다양한 경험이 예비개발자에게 끼치는 영향 능력치 시간 동아리를 통해 성장한 구간 정체기 커뮤니티에 가본 순간
  • 16. 왜 동아리로만 성장하기 어려운가? • 문제 해결의 방식 • 회피 • 일단 돌아가게만 만들자 • 시연때는 잘 돌아가는 케이스만. • 견고함 보단 기능 구현을 우선 • 우리의 혁신적인 아이디어를 빨리 만들어야해 • 주먹구구식 개발 • 반복된 맨땅의 해딩으로 심각한 두통
  • 17. 어떤 경험이 예비개발자의 성장을 촉진시키는가? • 선배 개발자의 풍부한 개발 경험 우리의 고민의 답을 명쾌하게 내려주신다. 구글링보다 더 자세한 답변 • 진로에 대한 이야기 미래를 위해 어떻게 공부해야하는가? • 현업에 대한 이야기 학생이니까 알려준다. 이게 현업이야.
  • 19. 대학생들의 개발 경험 과제 해커톤 공모전 • 대부분의 대학생들은 위 3가지로 개발 경험을 쌓게됩니다. • 과제를 통해 이론을 구현하는 능력을 키울 수 있습니다. • 해커톤, 공모전을 통해 내손으로 직접 서비스를 만들어 볼 수 있습니다. • 하지만 대부분 1회성 코드들입니다.
  • 20. 대학생들의 개발 경험 그리고 고민 • 그래도 이왕 코드를 만들어내는거 제대로 만들어보고 싶다. • 코드 구조를 어떻게 잡아야할까? OOP를 배웠으니 적용해보고 싶은데.. 디자인 패턴도 배웠는데.. • 서비스를 한 이후 버그를 어떻게 잡아낼까? 서비스가 되면 이미 내손을 떠난 자식. 사고치면 어떻게 고치지?
  • 21. 고민 1. 예쁜 코드 만들기 • 분명 내가 짠 코드인데 왜이리 더러울까? • OOP 도 배웠고, 디자인 패턴도 배웠다. • 적용해볼까? • ( 털썩 )
  • 22. 고민 1. 예쁜 코드 만들기 코드를 예쁘게 만들고 싶어요! 오픈소스를 한번 분석해보세요
  • 23. 고민 1. 예쁜 코드 만들기 • 오픈소스는 훌륭한 개발자들이 만든 금덩이 코드 • 그 안에 온갖 프로그래밍 기법이 들어가 있다. • 이론으로만 배웠던 내용이 실제 눈으로 구성되어 있는 모습을 볼 수 있다.
  • 24. 오픈소스 분석하기 마침 사용하는 오픈소스도 있었고 어떻게 구현되어있는지 궁금하기도 했었다
  • 25. 오픈소스 분석하기 막상 뜯어보니 엄청 복잡한 소스코드 이미지 출처 : http://www.eclipsezone.com/articles/lattix-dsm/?source=archives
  • 26. 오픈소스 분석하기 오픈소스 분석하고 싶은데 너무 복잡해서 뭘 먼저해야할지 모르겠어요 자.. 일단 옆에 앉아보렴
  • 27. 오픈소스 분석 방법에 대한 노하우 디버깅 환경 구축하기
  • 28. 디버깅 환경 구축하기 • 소스코드 정적분석에는 한계가 있다 • 실제 변수에 어떤 값이 들어가고, 변화하는지 알 수 없기 때문 • 코드를 실행시키고, 변수값을 확인하면서 분석하면 좀 더 용이하게 분석할 수 있다.
  • 29. 디버깅 환경 구축하기 • 예제코드에서 build() 함수 내부를 분석하려면 • 정의 따라가기 기능을 이용하거나 -> (정적 분석) • 디버거의 Step Into 기능을 이용해야한다. -> (동적 분석)
  • 30. 디버깅 환경 구축하기 • 예제코드에서 build() 함수 내부를 분석하려면 • 정의 따라가기 기능을 이용하거나 -> (정적 분석) • 디버거의 Step Into 기능을 이용해야한다. -> (동적 분석)
  • 31. 디버깅 환경 구축 • 만약 정의된 곳으로 따라가기, Step Into 를 했는데 아래와 같이 뜬다면, 소스코드를 수동으로 attach 해줘야한다. (소스코드만 가지고 있는 jar 파일)
  • 32. 디버깅 환경 구축 • 일반적인 자바 라이브러리 파일명 • [라이브러리명]—[버전].jar • 여기에는 바이트코드인 .class 파일만 들어있다. • 라이브버리의 소스코드를 담고있는 jar 이 있다. • [라이브버리명]-[버전]-sources.jar
  • 33. 디버깅 환경 구축하기 일반 소스코드 .class과 연동된 소스코드
  • 34. 디버깅 환경 구축 - Eclipse • maven 을 이용하여 프로젝트를 구축한 경우 • 이클립스에서 자동으로 source code를 attach 시켜준다. • 만약 자동으로 attach 가 안되면, 아래 사진처럼 pom 설정
  • 35. 디버깅 환경 구축 - eclipse • 독립적인 시스템일 경우, IDE에서의 디버깅 가이드 문서가 존재한다 참조 : https://wiki.apache.org/cassandra/RunningCassandraInEclipse
  • 36. 디버깅 환경 구축 – 기타 환경 • Python • pip install 시, 소스코드가 설치되므로 크게 신경쓰지 않아도 된다. • 리눅스 환경의 C/C++ • gcc –g 로 디버그 심볼을 붙인다. • gdb로 분석하거나, eclipse 로 원격 디버깅을 설정한다. • printf 로 로그를 찍는다. • 윈도우 환경의 C/C++ • 프로젝트 설정에서 참조설정에 dll 의 소스코드 위치 명시 • https://msdn.microsoft.com/library/4c8f14c9.aspx • 기타 각 언어에 맞는 디버깅 환경을 찾아서 구축
  • 37. 오픈소스 분석 방법에 대한 노하우 API 코드 흐름을 따라가면서 분석 API 코드를 따라가다보면 어떤 파일들이 있고 어떤 용도로 쓰이는지 쉽게 파악할 수 있다
  • 38. API 코드 흐름 따라가기 • 분석할 라이브러리를 사용하는 예제코드를 만든다. • 처음에는 “정의 따라가기” 기능을 통해 API 내부 코드를 눈으로 분석한다. • 눈으로 어느정도 분석이 끝나면, 실제로 실행하면서 변수값을 확인하면서 정확한 동작을 분석한다.
  • 39. API 코드 흐름 따라가기 • 분석 시 유의할 점은, 모든 내용을 완벽히 이해하려 하지 말자 (나중에 다 알게된다) ‘이런 애들을 초기화하는구나 ‘로넘어가면 마음이 편하다.
  • 40. 오픈소스 분석 방법에 대한 노하우 Diagram 을 그리면서 분석 과정을 메모 Component Diagram
  • 41. Diagram을 그리면서 분석 과정 메모 • 우리들의 뇌는 기억력이 좋지 않다. • 먼저 API 함수 자체의 Flow Chart 를 그린다. • 이 함수가 대략적으로 어떤 동작을 하는지 알 수 있다. • if/else 를 너무 상세히 그리지 말자 • API 함수에서 다른 모듈을 사용한다면, 각 모듈간 연관관계를 그리자 (Component Diagram) • 마지막으로 Sequence Diagram 으로 모듈 간 호출 순서를 정리하자
  • 42. 오픈소스 분석 방법에 대한 노하우 개발과정을 역추적 • 내가 지금 보는 코드는 수 많은 고민과 토론을 통해 탄생 • 코드만 봐서는 이해가 안되는 부분이 존재한다. • 커밋로그, 코드리뷰 기록을 통해 개발 과정을 역추적하여 역사를 되짚어본다.
  • 43. 개발 과정을 역추적 잘 운영되는 오픈소스에는 Commit 메세지가 아주 자세하게 적혀있다.
  • 45. 고민 2. 서비스 중 디버깅 서비스를 운영하다가 발생하면 어떻게 하지? 예기치않은 오류가
  • 46. 고민 2. 서비스 중 디버깅 평화로운 환경에서는 서버는 열심히 로그를 쌓는다 request log splunk log error log [13/Feb/2016:23:25:16] [INFO] 123.123.123 “GET / HTTP/1.1” 200 783 “Mozilla/4.0” [13/Feb/2016:23:25:16] [ERROR] filesize must over 0
  • 47. 고민 2. 서비스 중 디버깅 예상치 못한 입력, 실수로 예외처리를 안해서 서버가 터지면 원인을 어떻게 찾아야할까? request log splunk log error log
  • 48. 고민 2. 서비스 중 디버깅 어떤 입력이 온거지? 어떻게 재현하지? 뭘 확인해야하지?
  • 49. 고민 2. 서비스 중 디버깅 혹시 현업에서는 이런 상황에서는 어떻게 하나요? 저희는 Sentry 라는 도구를 사용합니다.
  • 50. 고민 2. 서비스 중 디버깅 실시간으로 웹/모바일 앱에서 발생하는 crash를 리포팅해주는 툴 http://getsentry.com
  • 53. Sentry 모습 코드가 실행될 당시의, 변수 상태도 같이 저장해줍니다.
  • 54. Sentry 사용 방법 - Python Sentry 에서 발급받는 주소를 이용하여 Client 객체를 생성한다. 예외가 발생하면 captureException() 함수를 호출해준다.
  • 55. • ELK (ElasticSearch, Logstash, Kibana) • Splunk Response를 주기 직전, 예외처리를 수행 어플리케이션에서 정의한 Exception 외, 예외 발생시 상세정보를 로그로 기록 로그 수집 도구 활용
  • 57. 현업에 대한 이야기 • 학생들은 경험할 수 없는 현업의 생생한 이야기 • 원하는 직업의 현실적인 삶의 이야기를 들을 수 있다. • 현업으로 가기 전, 배우면 좋은 지식들 • Git의 다양한 기능 • Git Branch 전략 • 테스트 코드 작성 (TDD) • 다양한 개발 방법론 • 등..
  • 58. 커리어에 대한 조언 • 무엇을 좀 더 심화적으로 공부해야하는지? • 최신의 트랜드는 무엇인지? • 미래에는 어떻게 될 것인지? • 이를 위해 나는 무엇을 준비해야하는가?
  • 60. 진로에 대한 이야기 기초지식을 확실히 다지세요(OS, Network .. ) 눈 앞의 기술보다는 졸업 후를 생각해서 공부해야. 공부하는 것이 돈을 버는 것이다.
  • 61. 커뮤니티 활동의 결과 넓어진 시야 그리고 내면의 성장
  • 63. Naver D2 커뮤니티 지원 https://developers.naver.com/d2/community
  • 64. 개발자 커뮤니티 • Python Korea • 한국 러스트 사용자 그룹 • 라 스칼라 코딩단 • C++ Korea • Golang Korea 언어 • 인공지능 스터디 • 손고리즘 • 바벨피쉬 • IAMROOT 이론
  • 65. 개발자 커뮤니티 • 한국 스프링 사용자 모임 • Flask Korea • Django • OSXDEV • OpenStack Korea Group • Korea Docker User Group • 우분투한국커뮤니티 • 안드로이드 팁!팁!팁 • 한국 MySQL 사용자그룹 프레임 워크 플랫폼
  • 67. 스터디 오프라인 활동을 찾아보자 커뮤니티는 사람을 만나는 곳이므로 오프라인 활동에 적극 참여해보자
  • 68. 뒷풀이에 참석하기 • 세미나, 스터디가 지식을 공유하는 자리라면, 뒷풀이는 네트워킹을 하는 자리 • 처음에는 어른들 사이에서 서먹서먹하지만, 용기를 가지고 대화를 시도하면 됩니다.
  • 69. 행사의 자원봉사로 활동해보기 • 커뮤니티에서 주최하는 컨퍼런스에 자원봉사자로 참가해보자 • 운영진과 친해질 수 있는 기회! • 발표자와도 친해질 수 있는 기회!
  • 70. 2014 PyCon 자원봉사자 도전 어느날 Python Korea 그룹에서 이런 글을 보았다.
  • 71. 2014 PyCon 자원봉사자 도전 젊음의 패기로 자원봉사자로 신청하였다.
  • 72. 2014 PyCon 자원봉사자 도전 합격! 생애 첫 커뮤니티 활동의 시작
  • 73. 사진 출처 : PyCon 2014 PyCon 자원봉사자
  • 75. 2016 PyCon APAC 준비위원회 도전
  • 76. 2016 Openstack Days Korea 자원봉사자
  • 80. 두려워 하지 말고 참여해보세요 새로운 세계가 기다리고 있습니다.
  • 82. 커뮤니티를 통해 자신 그리고 다같이 성장하기를 기대합니다