SlideShare a Scribd company logo
1 of 25
Download to read offline
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

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
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션QooJuice
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁KWANGIL KIM
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요Chris Ohk
 
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdfMinGeun Park
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo Koo
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 [NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 Jungsoo Lee
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다Lee Dustin
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅DongMin Choi
 

What's hot (20)

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 .
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요프로그래머가 되고 싶으세요
프로그래머가 되고 싶으세요
 
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 [NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
 

Viewers also liked

[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정
[프로그램 설명서] 회의 잘 하는 법 타운미팅 협업 스킬 과정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
 

Viewers also liked (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]자신있는개발자에서훌륭한개발자로
 
초급 개발자 탈출
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출
 
손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.손코딩뇌컴파일눈디버깅을 소개합니다.
손코딩뇌컴파일눈디버깅을 소개합니다.
 

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

(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략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
 
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
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇민건 주
 

Similar to 훌륭한 프로그래머 되는 법 (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년... 지그재그 손연미, 백서영
 
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)
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇
 

Recently uploaded

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Recently uploaded (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

훌륭한 프로그래머 되는 법

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