SlideShare a Scribd company logo
1 of 28
Download to read offline
2020년 6월 20일
개발 이야기 특집(클린코드)
박재호(jrogue@gmail.com)
참고 자료
• <컴퓨터 vs 책> 블로그
• http://jhrogue.blogspot.com/
• OKdevTV 유튜브 방송
• 오늘자 방송
• #1 변수와 함수 편
https://www.youtube.com/watch?v=tz3eC9JbxQA&list=PLdntWJk2tJPKvRB0mSqC5ty
KUv7HFtcqg&index=3
• #2 SOLID 편
https://www.youtube.com/watch?v=tw1ch51fonY&list=PLdntWJk2tJPKvRB0mSqC5ty
KUv7HFtcqg&index=1
• 재미있는 개발 이야기 리스트:
https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFt
cqg
• 슬라이드 셰어
• https://www.slideshare.net/jrogue/presentations
클린코드 특집 방송
• 일정: 2020년 6월 20일(토) 17시 15분부터 45분 동안 진행
• 주제: 자바스크립트 세상의 클린코드
• 이벤트: 인사이트 출판사에서 책 5권을 제공 → 방송에 참여해
서 응모하신 분들 중 추첨으로 선물 증정 예정
X2
이벤트 설문 URL
• okdevtv.com
• https://forms.gle/hLFLDJhY1Zt6FM9Z6
https://xkcd.com/844/https://github.com/qkraudghgh/clean-code-javascript-ko
일반적인 원칙
• 프로그램은 공예다
• 방망이 깎던 노인(윤오영)
• http://alog.auric.or.kr/EGPARK/Post/654c175a-f00c-4544-8bf7-
e26938f60519.aspx#.XuV_RUUzZaQ
• 처음부터 올바른 프로그램을 만들 수 있을까? → 퇴고가 없는 작문이
존재할까? 불가능
• 깨끗한 코드를 짜려면 먼저 지저분한 코드부터 짜야함
• 일단 작성한 다음에 리펙토링과 확장하는 방식이 중요함
자바 프로그래밍 언어로 기술! → 다른 언어는?
이번에는 자바스크립트로!
변수(1)
• 의미있고 발음하기 쉬워야 함
• 유형이 동일하면 어휘도 동일
변수(2)
• 검색 가능한 이름
• 의도를 드러내는 변수 사용
함수(1)
• 매개변수는 2개 이하
• 가장 좋은 경우: 0개
• 한가지 행동만 수행
함수(2)
• 명확한 이름
• 단일 행동을 추상화
• 이름이 여러 의미를 내포하면, 너무 많은 일을 수행 → 함수를 분해해
서 테스트를 쉽게 만들어야 함
함수(3)
• 중복된 코드
함수(4)
• 매개변수로 플래그 사용 X • 부작용 피하기
함수(5)
• 전역 함수 X • 조건문 캡슐화
함수(6)
• 다형성(객체지향 vs 절차형)
함수(7)
• 타입 점검 X
타입스크립트 사용!
SOLID(1)
• 단일 책임 원칙 (Single Responsibility Principle, SRP)
• 클래스를 수정할 때는 수정해야 하는 이유가 2개 이상 있으면 안 됨
SOLID(2)
• 개방/폐쇄 원칙 (Open/Closed Principle, OCP)
• 소프트웨어 개체(클래스, 모듈, 함수)는 확장은 개방적이고, 수정은 폐
쇄적이어야 한다 – 버트란드 메이어
SOLID(3)
• 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
• 자료형 S가 자료형 T의 하위형이라면, 프로그램이 갖추어야 할 속성들
(정확성, 수행되는 작업 등)의 변경사항 없이, 자료형 T의 객체를 자료
형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙
SOLID(4)
• 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
• 클라이언트는 사용하지 않는 인터페이스에 의존하게 강요받으면 안 됨
SOLID(5)
• 의존성 역전 원칙 (Dependency Inversion
Principle, DIP)
• 스프링에서 의존성 주입을 생각!
테스트
• 한 번에 한 가지
동시성(1)
• callback 대신 promise
동시성(2)
• promise 대신 Async/Await(ES2017/ES8)
포매팅
• 일관된 대소문자 사용
주석(1)
• 가장 좋은 주석은? 없는 주석!
• 코드 주석 X
주석(2)
• 코드 이력을 주석으로 남기기 X
클린코드 결론
• 보이스카웃 원칙: 캠프장은 처음왔을 때보다 더 깨끗하게 해놓
고 떠나라!
• 전문가 정신은 지속적인 개선을 의미한다

More Related Content

More from Jay Park

(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰Jay Park
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임Jay Park
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결Jay Park
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서Jay Park
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람Jay Park
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린Jay Park
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의Jay Park
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트Jay Park
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다Jay Park
 
(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다Jay Park
 
(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트Jay Park
 
(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭Jay Park
 
(독서광) 유혹하는 글쓰기
(독서광) 유혹하는 글쓰기(독서광) 유혹하는 글쓰기
(독서광) 유혹하는 글쓰기Jay Park
 
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드(독서광) Docs for Developers 기술 문서 작성 완벽 가이드
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드Jay Park
 
(독서광) 개발자를 넘어 기술 리더로 가는 길
(독서광) 개발자를 넘어 기술 리더로 가는 길(독서광) 개발자를 넘어 기술 리더로 가는 길
(독서광) 개발자를 넘어 기술 리더로 가는 길Jay Park
 
(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드Jay Park
 
(독서광) 인공지능 소프트웨어 품질 보증을 위한 테스트 기법
(독서광) 인공지능 소프트웨어  품질 보증을 위한 테스트 기법(독서광) 인공지능 소프트웨어  품질 보증을 위한 테스트 기법
(독서광) 인공지능 소프트웨어 품질 보증을 위한 테스트 기법Jay Park
 
(독서광) Node.js 백엔드 개발자 되기
(독서광) Node.js 백엔드 개발자 되기(독서광) Node.js 백엔드 개발자 되기
(독서광) Node.js 백엔드 개발자 되기Jay Park
 
(독서광) 싱크 어게인
(독서광) 싱크 어게인(독서광) 싱크 어게인
(독서광) 싱크 어게인Jay Park
 
(독서광) 면역
(독서광) 면역(독서광) 면역
(독서광) 면역Jay Park
 

More from Jay Park (20)

(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다
 
(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다
 
(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트
 
(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭
 
(독서광) 유혹하는 글쓰기
(독서광) 유혹하는 글쓰기(독서광) 유혹하는 글쓰기
(독서광) 유혹하는 글쓰기
 
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드(독서광) Docs for Developers 기술 문서 작성 완벽 가이드
(독서광) Docs for Developers 기술 문서 작성 완벽 가이드
 
(독서광) 개발자를 넘어 기술 리더로 가는 길
(독서광) 개발자를 넘어 기술 리더로 가는 길(독서광) 개발자를 넘어 기술 리더로 가는 길
(독서광) 개발자를 넘어 기술 리더로 가는 길
 
(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드(독서광) 필독! 개발자 온보딩 가이드
(독서광) 필독! 개발자 온보딩 가이드
 
(독서광) 인공지능 소프트웨어 품질 보증을 위한 테스트 기법
(독서광) 인공지능 소프트웨어  품질 보증을 위한 테스트 기법(독서광) 인공지능 소프트웨어  품질 보증을 위한 테스트 기법
(독서광) 인공지능 소프트웨어 품질 보증을 위한 테스트 기법
 
(독서광) Node.js 백엔드 개발자 되기
(독서광) Node.js 백엔드 개발자 되기(독서광) Node.js 백엔드 개발자 되기
(독서광) Node.js 백엔드 개발자 되기
 
(독서광) 싱크 어게인
(독서광) 싱크 어게인(독서광) 싱크 어게인
(독서광) 싱크 어게인
 
(독서광) 면역
(독서광) 면역(독서광) 면역
(독서광) 면역
 

2020년 6월 20일 개발 이야기 특집(클린코드)