SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
you.write(code);
훌륭한 프로그래머 되는 법
프로젝트와 팀을 성공으로 이끄는
선배 개발자의 노하우
Q: 좋은 코드를 작성하고 싶은가?
그렇다면 좋은 프로그래머가 되고 싶다는 뜻이다.
당신은 희망이 있다는 뜻으로 이해해도 좋다.
어떤 코딩 환경에서는
‘단지 작동하는 것’ 처럼 보이는
코딩을 거부하라
프로그래머는 혼자 일하지 않는다.
작성자 자신이 똑똑해 보이기만을 원해서는
안 된다는 뜻이다.
어떤 코드든 만지기 전보다 더 나은 구조,
더 나은 테스트, 더 나은 이해를 포함해
좋게 만들어야 한다.
코드에 대한 감정적 반응은
잘못된 것이 아니다.
훌륭한 결과물을
자랑스러워 하거나
더러운 코드에
혐오감을 느끼는 것은
자신이 건전하다는 증거다.
구들리프의 법칙:
코드의 레이아웃에
대한 논쟁이 증가할
수록 의미 없는 논쟁
으로 빠질 확률이
100%에 가까워진다.
출처: http://www.hanbit.co.kr/book/look.html?isbn=978-89-7914-514-4
고드윈의 법칙:
인터넷에서 논쟁이 길어질수록
상대방을 나치나 히틀러에 비교할
확률이 100%에 가까워진다.
출처: https://en.wikipedia.org/wiki/Godwin%27s_Law
코드 레이아웃에 대해 싸우는 것을 멈추고,
자신만의 코드 레이아웃을 만드는
올바른 방법을 익히자.
이미지 출처: http://www.hanbit.co.kr/book/look.html?isbn=978-89-7914-514-4
“이중 switch문은 라파엘 문파의
멋진 액자 구조를 떠올리게 해.”
“이 기법이 주는 가슴 저미는
숨은 이유를 느껴봐”
좋은 표현 기법은 아름다움을 위해서가 아니라
실수를 줄이기 위해서 중요하다.
보기 좋은 코드는 의도를 드러낸다.
그것은 예술이 아니다.
출처: 타라 아트(TAHRA ART), 김경환, 한빛미디어 2013
맙소사!!
다른 사람을 위해 코딩하는 것을 잊지 말자!
코드 에러를 줄이려면 좋은 모습을 갖추어야 한다.
유지하기 어려운 예쁜 아스키 아트를 만들지 말아야 한다는 뜻이다.
오른쪽의 *까지 수동으로 다시 입력하게 만드는 것은 가학적이다.
동료들의 시간이나 마음을 중요하게 생각하지 않는다.
혹은 수정하기 짜증나게 만들어 아무도 고칠 수 없게 만드는 것일 수 있다.
아스키 아트(ASCII art):
주로 고정폭 문자나 기호를 사용하여 그림을 표현하는 방식, 이모티콘도 간단한 아스키 아트의 일종이다.
자신의 코드 레이아웃에 대해
리뷰 해보자.
관용어법을 사용하고 있으며,
일반적이고 명백하며 일관성이
있는가?
어떻게 더 발전시킬 것인가?
코드 외관에 동료들과 의견
충돌이 있지는 않은가?
이러한 의견차이를 어떻게 극복
할 것인가?
코드를 신경쓰면서도
즐거운 프로그래밍을
잊어서는 안 된다.
자랑할 만한
소프트웨어를 만들어
내라.
오늘 당장 코드에 대한 유닛 테스트를 작성해보자.
이미 테스트 이용 중이라면 테스트를 통해 어떻게 문제점을
알리고 코드 설계를 개선할지 생각해보라.
최근 코드에 불필요하게 복잡도를 높였던
방법은 없었는가? 이를 어떻게 파악할까?
예외 코드를
이렇게
만들지 말
자!
시간이 지났다고………………………
문제가 저절로 해결되지는 않는다.
소프트웨어 개발 작업은 재미도 없고 매력적이지도 않다.
프로젝트 완료를 위해 거쳐야 하는 단조롭고 고된 일이다.
하지만!
효율적인 프로그래머가 되려면 집안일을 두려워해서는 안 된다!
모호하게 구두로 전해지는 팀의 규칙은
위험하다. 자신만의 팀 규칙을 만들고,
개발실 벽에 붙여라.
코드란 원래 이런 것이다.
최근에 나쁜 습관이 생기지는 않았나?
어떻게 교정할 수 있을까?
‘끝’ 의 의미가 여러 가지임을 잊지 말자.
> 태도가 핵심이다.
> 시작하라.
> 코드를 작성하라.
> 나아짐을 즐겨라.
자신의 사례를 들며 프로그래머의 미래가 어둡다고
넋두리하는 것을 귀담아 듣지 마세요.
그 같은 상황을 만들지 않기 위한 ‘타산지석’으로만
삼아야 합니다. 포기하기 위한, 또는 시도조차 하지
않기 위한 핑계로 삼아서는 안 됩니다.
‘일’을 하기 위해 새로 나타난 도구를 조작하는
기술이 앞으로 더 중요할 것이고,
프로그래머는 점점 더 필요해 질 것이 때문입니다.
염산악(염재현), 구글 엔지니어
한빛미디어에서 2015년 12월 출간한
‘훌륭한 프로그래머 되는 법’를
참고 및 발췌하였음을 밝힙니다.

Contenu connexe

Tendances

고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양Jubok Kim
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013Esun Kim
 
슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기용태 이
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴MinGeun Park
 

Tendances (20)

고대특강 게임 프로그래머의 소양
고대특강   게임 프로그래머의 소양고대특강   게임 프로그래머의 소양
고대특강 게임 프로그래머의 소양
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
 
슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기슈팅 게임에서 레벨 디자인 하기
슈팅 게임에서 레벨 디자인 하기
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴
 

En vedette

[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정SB Consulting
 
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가[0319 박민근] 게임 개발자는 왜 공부해야만 하는가
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가MinGeun Park
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
 
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013영욱 오
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다wonmin lee
 
[1127 박민근] 일 잘하는 게임프로그래머 되기
[1127 박민근] 일 잘하는 게임프로그래머 되기[1127 박민근] 일 잘하는 게임프로그래머 되기
[1127 박민근] 일 잘하는 게임프로그래머 되기MinGeun Park
 
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인승명 양
 
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해종빈 오
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기JeongHun Byeon
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로NAVER D2
 
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출JeongHun Byeon
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.Kwangsung Ha
 

En vedette (13)

[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
 
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가[0319 박민근] 게임 개발자는 왜 공부해야만 하는가
[0319 박민근] 게임 개발자는 왜 공부해야만 하는가
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
 
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
 
읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다읽기 좋은 코드가 좋은코드다
읽기 좋은 코드가 좋은코드다
 
[1127 박민근] 일 잘하는 게임프로그래머 되기
[1127 박민근] 일 잘하는 게임프로그래머 되기[1127 박민근] 일 잘하는 게임프로그래머 되기
[1127 박민근] 일 잘하는 게임프로그래머 되기
 
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인
[NDC14] 모바일 게임의 다음 혁신 - 야생의 땅 듀랑고의 계산 프로세스 중심 게임 디자인
 
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로
 
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
 

Similaire à 훌륭한 프로그래머 되는 법

(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략Jay Park
 
SWDeveloprStory201601
SWDeveloprStory201601SWDeveloprStory201601
SWDeveloprStory201601Suho Kwon
 
Clean code chapter1
Clean code chapter1Clean code chapter1
Clean code chapter1ukjinkwoun
 
(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌Jay Park
 
2022 01-okky-코드리뷰
2022 01-okky-코드리뷰2022 01-okky-코드리뷰
2022 01-okky-코드리뷰Myeongseok Baek
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기Sehun Kim
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013호정 이
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할Hoyoung Choi
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기Ahreum Kim
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
코드리뷰 공감하기
코드리뷰 공감하기코드리뷰 공감하기
코드리뷰 공감하기Sungmin Oh
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)Kiyoung Moon
 
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩 - 스타트업 코딩 개요
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩  - 스타트업 코딩 개요[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩  - 스타트업 코딩 개요
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩 - 스타트업 코딩 개요Startup Coding
 
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영ZIGZAG
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)NAVER Engineering
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회ChangHyun Won
 

Similaire à 훌륭한 프로그래머 되는 법 (20)

(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략
 
SWDeveloprStory201601
SWDeveloprStory201601SWDeveloprStory201601
SWDeveloprStory201601
 
Clean code chapter1
Clean code chapter1Clean code chapter1
Clean code chapter1
 
(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌
 
Chean code chapter 1
Chean code chapter 1Chean code chapter 1
Chean code chapter 1
 
2022 01-okky-코드리뷰
2022 01-okky-코드리뷰2022 01-okky-코드리뷰
2022 01-okky-코드리뷰
 
초보개발자의 TDD 체험기
초보개발자의 TDD 체험기초보개발자의 TDD 체험기
초보개발자의 TDD 체험기
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
코드리뷰 공감하기
코드리뷰 공감하기코드리뷰 공감하기
코드리뷰 공감하기
 
2019 11-code review
2019 11-code review2019 11-code review
2019 11-code review
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩 - 스타트업 코딩 개요
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩  - 스타트업 코딩 개요[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩  - 스타트업 코딩 개요
[모두의 스타트업 코딩 2주차-Part3] 나의 미래 경쟁력 도구, 스타트업 코딩 - 스타트업 코딩 개요
 
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
 

훌륭한 프로그래머 되는 법

  • 2. 훌륭한 프로그래머 되는 법 프로젝트와 팀을 성공으로 이끄는 선배 개발자의 노하우
  • 3. Q: 좋은 코드를 작성하고 싶은가? 그렇다면 좋은 프로그래머가 되고 싶다는 뜻이다. 당신은 희망이 있다는 뜻으로 이해해도 좋다.
  • 4. 어떤 코딩 환경에서는 ‘단지 작동하는 것’ 처럼 보이는 코딩을 거부하라
  • 5. 프로그래머는 혼자 일하지 않는다. 작성자 자신이 똑똑해 보이기만을 원해서는 안 된다는 뜻이다.
  • 6. 어떤 코드든 만지기 전보다 더 나은 구조, 더 나은 테스트, 더 나은 이해를 포함해 좋게 만들어야 한다.
  • 7. 코드에 대한 감정적 반응은 잘못된 것이 아니다. 훌륭한 결과물을 자랑스러워 하거나 더러운 코드에 혐오감을 느끼는 것은 자신이 건전하다는 증거다.
  • 8. 구들리프의 법칙: 코드의 레이아웃에 대한 논쟁이 증가할 수록 의미 없는 논쟁 으로 빠질 확률이 100%에 가까워진다. 출처: http://www.hanbit.co.kr/book/look.html?isbn=978-89-7914-514-4
  • 9. 고드윈의 법칙: 인터넷에서 논쟁이 길어질수록 상대방을 나치나 히틀러에 비교할 확률이 100%에 가까워진다. 출처: https://en.wikipedia.org/wiki/Godwin%27s_Law
  • 10. 코드 레이아웃에 대해 싸우는 것을 멈추고, 자신만의 코드 레이아웃을 만드는 올바른 방법을 익히자. 이미지 출처: http://www.hanbit.co.kr/book/look.html?isbn=978-89-7914-514-4
  • 11. “이중 switch문은 라파엘 문파의 멋진 액자 구조를 떠올리게 해.” “이 기법이 주는 가슴 저미는 숨은 이유를 느껴봐” 좋은 표현 기법은 아름다움을 위해서가 아니라 실수를 줄이기 위해서 중요하다. 보기 좋은 코드는 의도를 드러낸다. 그것은 예술이 아니다. 출처: 타라 아트(TAHRA ART), 김경환, 한빛미디어 2013 맙소사!!
  • 12. 다른 사람을 위해 코딩하는 것을 잊지 말자! 코드 에러를 줄이려면 좋은 모습을 갖추어야 한다. 유지하기 어려운 예쁜 아스키 아트를 만들지 말아야 한다는 뜻이다. 오른쪽의 *까지 수동으로 다시 입력하게 만드는 것은 가학적이다. 동료들의 시간이나 마음을 중요하게 생각하지 않는다. 혹은 수정하기 짜증나게 만들어 아무도 고칠 수 없게 만드는 것일 수 있다. 아스키 아트(ASCII art): 주로 고정폭 문자나 기호를 사용하여 그림을 표현하는 방식, 이모티콘도 간단한 아스키 아트의 일종이다.
  • 13. 자신의 코드 레이아웃에 대해 리뷰 해보자. 관용어법을 사용하고 있으며, 일반적이고 명백하며 일관성이 있는가? 어떻게 더 발전시킬 것인가? 코드 외관에 동료들과 의견 충돌이 있지는 않은가? 이러한 의견차이를 어떻게 극복 할 것인가?
  • 14. 코드를 신경쓰면서도 즐거운 프로그래밍을 잊어서는 안 된다. 자랑할 만한 소프트웨어를 만들어 내라.
  • 15. 오늘 당장 코드에 대한 유닛 테스트를 작성해보자. 이미 테스트 이용 중이라면 테스트를 통해 어떻게 문제점을 알리고 코드 설계를 개선할지 생각해보라.
  • 16. 최근 코드에 불필요하게 복잡도를 높였던 방법은 없었는가? 이를 어떻게 파악할까?
  • 19. 소프트웨어 개발 작업은 재미도 없고 매력적이지도 않다. 프로젝트 완료를 위해 거쳐야 하는 단조롭고 고된 일이다. 하지만! 효율적인 프로그래머가 되려면 집안일을 두려워해서는 안 된다!
  • 20. 모호하게 구두로 전해지는 팀의 규칙은 위험하다. 자신만의 팀 규칙을 만들고, 개발실 벽에 붙여라.
  • 21. 코드란 원래 이런 것이다. 최근에 나쁜 습관이 생기지는 않았나? 어떻게 교정할 수 있을까?
  • 22. ‘끝’ 의 의미가 여러 가지임을 잊지 말자.
  • 23. > 태도가 핵심이다. > 시작하라. > 코드를 작성하라. > 나아짐을 즐겨라.
  • 24. 자신의 사례를 들며 프로그래머의 미래가 어둡다고 넋두리하는 것을 귀담아 듣지 마세요. 그 같은 상황을 만들지 않기 위한 ‘타산지석’으로만 삼아야 합니다. 포기하기 위한, 또는 시도조차 하지 않기 위한 핑계로 삼아서는 안 됩니다. ‘일’을 하기 위해 새로 나타난 도구를 조작하는 기술이 앞으로 더 중요할 것이고, 프로그래머는 점점 더 필요해 질 것이 때문입니다. 염산악(염재현), 구글 엔지니어
  • 25. 한빛미디어에서 2015년 12월 출간한 ‘훌륭한 프로그래머 되는 법’를 참고 및 발췌하였음을 밝힙니다.