track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

61
지적 프로그래밍을 위한 넓고 얕은 습관 줄여서 지프넓얕지금 시작합니다

Upload: hanbit-media

Post on 13-Feb-2017

67 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

줄여서 “지프넓얕” 지금 시작합니다

Page 2: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

발표자

서지연

▸ 혹은 치즈

▸ 쑥쑥 자라나는 꼬꼬마 개발자.

▸ 지적 프로그래밍을 하고 싶은 개발자.

▸ 장래희망 : 초고수

▸ twitter.com/seojeee

Page 3: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

지적 프로그래밍이란?

글로벌 초고수 코드?! 잘나가는 오픈소스?!

Page 4: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

지적 프로그래밍

출처 : https://ko.wikipedia.org/wiki/컴퓨터_프로그래밍

知的컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그람 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다.

Page 5: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

지적 프로그래밍이란?

▸ 글로벌 초고수 코드?!

▸ 잘나가는 오픈소스?!

▸ 내가 생각하는 지적 프로그래밍

▸ 아름다운 코드를 작성하고

▸ 스스로 검증 작업을 하며

▸ 성장하는 프로그래밍

▸ 글로벌 초고수 코드?!

▸ 잘나가는 오픈소스?!

Page 6: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

당신이 반복하는 일은 당신을 규정한다.

위대함은 하나의 행위가 아니라 습관에서 온다.

Aristoteles

지적 프로그래밍을 위한 넓고 얕은 습관

지적 프로그래밍

습관

Page 7: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

발표내용

발표 내용

▸ 대상자

▸ 스마트하게 개발하고 싶은 개발자.

▸ 개발 과정을 더 탄탄히 다지고 싶은 개발자.

▸ 이번 발표에서는

▸ 정해진 시간, 제한된 환경…

▸ Git과 GitHub을 이용.

Page 8: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

발표내용

오늘의 진짜 발표 내용

#1 아름다운 코드 작성 습관!#2 자동 검증 습관!#3 성장하는 습관!

Page 9: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관

Page 10: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

아름다운 코드 작성 방법☝룰을 정하자!

Page 11: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

Page 12: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

Page 13: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

상황

바뀐 부분 관련해서 파일 몇 줄 고쳤어요~ 코드 리뷰 해주세요!

넵! 바로 확인해 보겠습니다!!

몇 줄이요..? 몇 백 줄이 아니고요? 어디 고친 거예요?

Page 14: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

가독성👎

유지보수👎

코드 확장👎

Page 16: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

룰의 종류▸ Google Style Guides

▸ https://github.com/google/styleguide

▸ Scala Style Guide

▸ http://docs.scala-lang.org/style/

▸ NASA C Style Guide

▸ http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

▸ Groovy Style Guide

▸ http://groovy-lang.org/style-guide.html

▸ Oracle - Code Conventions for the Java Programming Language

▸ http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

▸ JavaScript Style Guide

▸ https://github.com/airbnb/javascript

▸ Linux kernel coding style

▸ https://www.kernel.org/doc/Documentation/CodingStyle

▸ Google's R Style Guide

▸ http://web.stanford.edu/class/cs109l/unrestricted/resources/google-style.html

▸ w3schools - HTML5 Style Guide and Coding Conventions

▸ http://www.w3schools.com/html/html5_syntax.asp

▸ GNU Coding Standards

▸ https://www.gnu.org/prep/standards/standards.html

▸ Haskell Programming guidelines

▸ https://wiki.haskell.org/Programming_guidelines

▸ Mozilla - Coding Style

▸ https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style

Page 17: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

Page 18: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

룰의 장점

▸ 변경된 로직 집중

▸ 코드 이해 속도 증가

▸ 코드 확장 대한 고민 단축

Readability👍Maintainability👍Expandability👍

Page 19: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 룰

최고의 룰 🙅

그때는 맞고 지금은 틀리다 💁

한 코드 베이스 = 하나의 룰 🙆

Page 20: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

코드리뷰를 하자!아름다운 코드 작성 방법✌

Page 21: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

1. 자동화된 코드 리뷰 💻2. 사람 냄새나는 수동 코드 리뷰)

Page 22: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

1. 자동화된 코드리뷰 - SONAR QUBE

▸ 정적 코드 분석 툴

▸ 7가지 기준을 통해 코드 품질시각화

▸ 웹페이지로 대시보드 및 코드 분석 결과 제공 https://github.com/integrations/sonarqube

Page 23: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

Page 24: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

Page 25: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

Page 26: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

2. 사람 냄새 나는 수동 코드리뷰

1. 옆 사람과 나란히 앉아 바뀐 부분 설명하기

Page 27: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

2. 사람 냄새 나는 수동 코드리뷰

2. 화면을 보며 다같이 하기

Page 28: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

2. 사람 냄새 나는 수동 코드리뷰3. GitHub의 pull request 이용하기

▸ 온라인

▸ 시간, 공간의 제약 X

▸ 넘나 소중한 코멘트

▸ Work In Progress - 확인과 수정을 함께

▸ Issue & PR Templates - 가이드 라인 제공.

▸ https://github.com/blog/2111-issue-and-pull-request-templates

- PULL REQUEST

Page 29: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

Page 30: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

무플 .. 넘나 외로운 것

Page 31: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

👍

👎

Page 32: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

http://docs.pullapprove.com/

Page 33: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

X

Page 34: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#1 아름다운 코드 작성 습관 - 코드리뷰

장점

잔소리가 아닌 코드 커뮤니케이션 😘

▸ 전체적인 코드 퀄리티 상승

▸ 막 코딩 방지

▸ 실전! 좋은 코드

▸ 생각지 못했던 좋은 방법 발견

▸ 장애 요소 미리 발견

▸ (팀) 코드 베이스 공감

▸ 코드를 다시 한번 검증

▸ Clean Code 역량 향상

▸ 더 예쁜 코딩 스타일 학습

▸ 기본 구조를 망가트리는 코드 방지

▸ 내 능력 자랑 가능

▸ 코드 & 로직 공유

▸ 등등등

▸ 넘나 많은 것!

Page 35: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

#1 아름다운 코드 작성 습관!

#2 자동 검증 습관!#3 성장하는 습관!

룰�&�코드리뷰

Page 36: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

Page 37: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

상황

코드 리뷰 CLOSE 합니다. 헤헤

넵! 👍 이제 나도 작업해야징ㅋ GIT PULL!!

(고치다가…) 엇 빌드 에러가 나네? 내가 그런건가? 아님 원래 나던 에러인가?

…언제 부터나던거야?!!!

Page 38: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

https://jenkins.io/ https://www.go.cd/

CONTINUOUS INTEGRATION

Page 39: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

TRAVIS-CI

▸ 오픈 소스 무료

▸ 다양한 플랫폼들과 Integration

▸ 다양한 언어 Support

▸ 29가지 : JAVA, JAVASCRIPT, RUST, SMALLTALK …

Page 40: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

Page 41: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

무플도 혼자서도 괜찮아

Page 42: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

https://github.com/integrations/codacy

https://github.com/integrations/codecov

https://github.com/integrations

Page 43: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

Page 44: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#2 자동 검증 습관

장점

코드에 대한 확신 ✌

코드 퀄리티 상승 👏

테스트 실패, 빌드 실패를 미리 미리 ☝

Page 45: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

#1 아름다운 코드 작성 습관!#2 자동 검증 습관!

#3 성장하는 습관!Continuous�Integration�&�Code�Quality

Page 46: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

Page 47: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

1. Follow! 👂2. Follow Me! ✋

Page 48: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 1. Github, Twitter 에서 user follow!

Page 49: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 1. Github, Twitter 에서 user follow!

한국 깃헙 랭킹 : http://rankedin.kr/

Page 50: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 1. Github, Twitter 에서 user follow!

전세계 깃헙 랭킹 : https://github-ranking.com/

Page 51: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 1. Github, Twitter 에서 user follow!

Page 52: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 2. 최신 트랜드 글들을 follow!

devnews: http://devnews.kr/

Page 53: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW! 방법 3. 컨퍼런스, 커뮤니티 활동들을 follow!

Page 54: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

FOLLOW ME! 방법 1. SNS

#나중에봐야징ㅋ

Page 55: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

▸ 배운 것을 스스로 정리. 나의 것으로.

▸ 누군가보다 한 걸음만 앞서도 뒤 따라오는 사람을 도울 수 있다.

▸ 큰 컨퍼런스, 사내 강연, 팀 내 스터디, 온라인 발표,옆사람에게 알려주기.

▸ 잘 못해도.. 이불킥해도.. 나 빼고 다들 기억 못한다.

FOLLOW ME! 방법 2. 발표하기

Don’t be afraid to look like an idiot 😎

Page 56: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

#3 성장하는 습관

Page 57: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

#1 아름다운 코드 작성 습관!#2 자동 검증 습관!#3 성장하는 습관!많이�듣고�내것으로�만들어�공유하기

Page 58: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

#1 아름다운 코드 작성 습관!

#2 자동 검증 습관!

#3 성장하는 습관!

코드 스타일 가이드 / 코드 리뷰

Continuous Integration / Code Quality Monitoring / Code Coverage

지식 경험 습득 / 지식 경험 공유

Page 59: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

Page 60: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

지적 프로그래밍을 위한 넓고 얕은 습관

▸ 자신과 맞지 않은 환경이라면 직접 찾아보기!

▸ 너무 얕았다면…

#지프넓얕 #나프다 #IAMPROGRAMMER

미션 💪

Page 61: Track1 03. 지적 프로그래밍을 위한 넓고 얇은 습관 카카오 서지연

THANK YOU