Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,151 views

Published on

유튜브에서 방송한 자료입니다.

1부: https://www.youtube.com/watch?v=tz3eC9JbxQA&list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg&index=3&t=0s

2부: https://www.youtube.com/watch?v=tw1ch51fonY&list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg&index=1

Published in: Software
  • Be the first to comment

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

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

×