ݺߣ

ݺߣShare a Scribd company logo
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월 출간한
‘훌륭한 프로그래머 되는 법’를
참고 및 발췌하였음을 밝힙니다.

More Related Content

What's hot (20)

게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
MinGeun Park
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
NAVER D2
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
YEONG-CHEON YOU
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
devCAT Studio, NEXON
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
QooJuice
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
YEONG-CHEON YOU
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Esun Kim
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
devCAT Studio, NEXON
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
ChangKyu Song
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
Ki Hyunwoo
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
Seungmo Koo
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
Bongseok Cho
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
[0410 박민근] 기술 면접시 자주 나오는 문제들
[0410 박민근] 기술 면접시 자주 나오는 문제들[0410 박민근] 기술 면접시 자주 나오는 문제들
[0410 박민근] 기술 면접시 자주 나오는 문제들
MinGeun Park
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
MinGeun Park
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
NAVER D2
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
YEONG-CHEON YOU
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
devCAT Studio, NEXON
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
QooJuice
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
YEONG-CHEON YOU
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Esun Kim
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
devCAT Studio, NEXON
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
ChangKyu Song
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
Ki Hyunwoo
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
Seungmo Koo
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
Bongseok Cho
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
devCAT Studio, NEXON
[0410 박민근] 기술 면접시 자주 나오는 문제들
[0410 박민근] 기술 면접시 자주 나오는 문제들[0410 박민근] 기술 면접시 자주 나오는 문제들
[0410 박민근] 기술 면접시 자주 나오는 문제들
MinGeun Park

Viewers also liked (13)

[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
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
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
NAVER D2
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출
JeongHun Byeon
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
Kwangsung Ha
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
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
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
12ᅡᅵᆫᄋƵᆻᅳᆫᄀƢᄇơᆯᅡᅦᅥᅮᆯᄅƲᆼᅡᆫᄀƢᄇơᆯᅡᅩ
NAVER D2
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
Kwangsung Ha

Similar to 훌륭한 프로그래머 되는 법 (20)

선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
Hanbit Media
(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략
Jay Park
Clean code chapter1
Clean code chapter1Clean code chapter1
Clean code chapter1
ukjinkwoun
(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌
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++ 코드 품질 관리 비법
선협 이
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
Daeyoung Hwang
코드리뷰 공감하기
코드리뷰 공감하기코드리뷰 공감하기
코드리뷰 공감하기
Sungmin Oh
2019 11-code review
2019 11-code review2019 11-code review
2019 11-code review
Myeongseok Baek
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
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
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
Eastar Jeong
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
ZIGZAG
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON
선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
선배 개발자가 이야기하는 <더 나은 프로그래머>가 되기 위한 20가지 방법
Hanbit Media
(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략
Jay Park
(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌(독서광) 프로그래머의 뇌
(독서광) 프로그래머의 뇌
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++ 코드 품질 관리 비법
선협 이
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
게임프로그래머_실력향상법_ver3.0.pdf 2024년 7월 14일 Korean
Daeyoung Hwang
코드리뷰 공감하기
코드리뷰 공감하기코드리뷰 공감하기
코드리뷰 공감하기
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
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
시니어와 주니어의 협업 다리 온라인 및 오프라인 Pair Coding의 통찰, Pair Programming Be...
Eastar Jeong
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
ZIGZAG
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON

훌륭한 프로그래머 되는 법

  • 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월 출간한 ‘훌륭한 프로그래머 되는 법’를 참고 및 발췌하였음을 밝힙니다.