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

Jay Park
Jay ParkCTO at EX-EM
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
클린코드 결론
• 보이스카웃 원칙: 캠프장은 처음왔을 때보다 더 깨끗하게 해놓
고 떠나라!
• 전문가 정신은 지속적인 개선을 의미한다
1 of 28

More Related Content

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