교육/도큐먼트 & 관련 서적

[ Clean Code: 애자일 소프트웨어 장인 정신 ] 읽으면서 쓰는 핵심 내용 정리

Bonita SY 2021. 4. 1. 09:51
728x90
반응형

 

난관에 부딪혔을 때 옳은 문 뒤에 있으려면 장인 정신이 필요

 

장인 정신을 익히는 과정

1. 이론 = 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식 습득

2. 실전 = 열심히 일하고 연습해 지식을 몸과 마음으로 체득

 

르블랑 법칙 : 나중은 결코 오지 않는다.

- 자신이 개발한 쓰레기 같은 코드를 나중에 수정해야겠다고 다짐하지만 그 날은 돌아오지 않는다...

 

나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.

 

비야네 스트롭스트룹의 깨끗한 코드

- 우아하고 효율적인 코드 => 우아하다 : 외양이나 태도가 기품있고, 단아하며 보기에 즐거운;

- 논리가 간단한 코드 => 버그가 숨지 못함

- 의존성을 최대한 줄인 코드 => 유지보수가 쉬워짐

- 오류(메모리 누수, race condition 등)는 명백한 전략에 의해 철저히 처리

- 성능을 최적으로 유지 => 원칙없는 최적화로 코드를 망치려는 유혹에 빠지지 않음

∴ 깨끗한 코드는 한 가지를 제대로 한다. (한가지에 집중한다.)

 

그래디 부치의 깨끗한 코드

- 단순하고 직접적인 코드 => 잘 쓴 문장처럼 읽혀야 함 (가독성)

- 설계자의 의도를 숨기면 안됨

- 명쾌한 추상화와 단순한 제어문으로 가득한 코드

 

큰 데이브 토마스의 깨끗한 코드

- 작성자가 아닌 다른 사람도 읽고 고치기 쉬운 코드

- 단위 테스트 케이스와 인수 테스트 케이스가 존재

- 의미있는 이름이 붙어 있음

- 특정 목적을 달성하는 방법은 오직 1개

- 의존성은 최소한으로, 각 의존성을 명확하게 정의

- API는 명확하되 최소

 

테스트 주도 개발 (Test Driven Development)

 

마이클 페더스의 깨끗한 코드

- 주의깊게 짰다는 느낌을 주는 코드

- 이미 모든 사항을 고려했으므로 고치려고 살펴봐도 딱히 손 댈 곳이 없는 코드

 

론 제프리스의 깨끗한 코드

- 켄트 백이 제안한 단순한 코드 규칙을 따름

-- 모든 테스트를 통과하는 코드

-- 중복이 없는 코드

-- 시스템 내 모든 설계 아이디어를 표현하는 코드

-- 클래스, 메서드, 함수 등을 최대한 줄인 코드

 

메서드 추출(Extract Method) 리펙터링 기법 : 기능을 명확히 기술하는 메서드 하나와 기능을 실제로 수행하는 메서드 여러개

 

워드 커닝햄의 깨끗한 코드

- 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행하는 코드

 

로버트 마틴(저자)의 깨끗한 코드

- 새 코드를 짜면서 기존 코드를 끊임없이 읽으므로 => 읽기 쉽게 코드를 짜야 함

- 잘 짠 코드가 전부가 아님 => 시간이 지나도 언제나 깨끗하게 유지 필요 (코드의 퇴보를 막아야 함)

=> 시간이 지날수록 좋아지는 코드

 


 

[ 이 책을 통해 알 수 있는 것들 ] 

  • 좋은 코드와 나쁜 코드를 구분하는 방법
  • 좋은 코드를 작성하는 방법
  • 나쁜 코드를 좋은 코드로 바꾸는 방법
  • 좋은 이름, 좋은 함수, 좋은 객체, 좋은 클래스를 작성하는 방법
  • 가독성이 높아지도록 코드 형식을 맞추는 방법
  • 코드 논리를 흩뜨리지 않고서 오류 처리를 완벽하게 구현하는 방법
  • 단위 테스트와 테스트 주도 개발을 적용하는 방법

 

 

728x90
반응형