본문 바로가기
Program Development Tips

좋은 코드와 나쁜 코드: 쉽게 이해하기

by Maccrey Coding 2024. 7. 29.
728x90
반응형

"좋은 코드, 나쁜 코드"는 로버트 C. 마틴이 쓴 책이야. 이 책은 우리가 어떻게 좋은 코드를 작성할 수 있는지 가르쳐 줘.

이제 이 책의 핵심 내용을 쉽게 알아보자!

1. 좋은 코드란 무엇일까?

좋은 코드의 특징

  • 읽기 쉬움: 다른 사람들이 코드를 쉽게 이해할 수 있어.
  • 간결함: 코드가 복잡하지 않고 단순해.
  • 재사용 가능: 여러 곳에서 쓸 수 있는 코드야.
  • 유지보수 쉬움: 고치거나 기능을 추가하기 쉬워.

나쁜 코드의 특징

  • 이해하기 어려움: 읽기 어렵고 복잡해.
  • 중복 코드: 똑같은 코드가 여러 번 반복돼.
  • 확장하기 어려움: 새로운 기능을 추가하기 어려워.

2. 코딩 원칙: SOLID 원칙

단일 책임 원칙 (Single Responsibility Principle)

  • 설명: 하나의 클래스나 함수는 하나의 일만 해야 해.
  • 예시: 만약 클래스가 파일을 읽고, 쓰고, 데이터를 처리한다면, 이걸 각각의 클래스로 나눠야 해.

개방-폐쇄 원칙 (Open/Closed Principle)

  • 설명: 코드는 확장에는 열려 있고, 수정에는 닫혀 있어야 해.
  • 예시: 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 새로운 코드를 추가할 수 있어야 해.

리스코프 치환 원칙 (Liskov Substitution Principle)

  • 설명: 서브클래스는 부모 클래스를 대체할 수 있어야 해.
  • 예시: 새 클래스가 기존 클래스를 대신할 때 문제가 없어야 해.

인터페이스 분리 원칙 (Interface Segregation Principle)

  • 설명: 인터페이스는 필요한 메서드만 포함해야 해.
  • 예시: 큰 인터페이스를 여러 개의 작은 인터페이스로 나눠야 해.

의존 역전 원칙 (Dependency Inversion Principle)

  • 설명: 고수준 모듈은 저수준 모듈에 의존하지 않고, 추상화에 의존해야 해.
  • 예시: 코드가 세부 사항이 아닌 개념에 의존해야 해.

3. 리팩토링: 코드 개선하기

리팩토링이란?

  • 설명: 리팩토링은 코드의 동작을 바꾸지 않으면서 더 좋게 만드는 과정이야.

리팩토링의 이점

  • 가독성 향상: 코드를 더 읽기 쉽게 만들어.
  • 유지보수 용이성: 코드를 수정하기 쉽게 해.
  • 버그 감소: 코드를 더 깨끗하게 만들어 버그를 줄여.

리팩토링 기법

  • 메서드 추출: 긴 메서드를 작은 메서드로 나누기.
  • 변수 이름 변경: 이해하기 쉬운 변수 이름으로 변경하기.
  • 중복 코드 제거: 중복된 코드를 하나로 합치기.

4. 테스트: 코드가 제대로 작동하는지 확인하기

테스트의 중요성

  • 설명: 테스트는 코드가 의도한 대로 작동하는지 확인하는 과정이야.

테스트의 종류

  • 단위 테스트: 개별 메서드나 클래스가 올바르게 작동하는지 확인해.
  • 통합 테스트: 여러 모듈이 함께 올바르게 작동하는지 확인해.
  • 시스템 테스트: 전체 시스템이 올바르게 작동하는지 확인해.

좋은 테스트의 특징

  • 독립성: 테스트는 서로 영향을 받지 않아야 해.
  • 재현 가능성: 테스트는 언제나 같은 결과를 내야 해.
  • 신속성: 테스트는 빠르게 실행되어야 해.

마치며

"좋은 코드, 나쁜 코드"는 깨끗한 코드를 작성하는 데 필요한 많은 원칙과 방법을 알려주는 책이야. 이 책에서 배운 내용을 실천하면, 더 좋은 품질의 코드를 작성할 수 있을 거야. 코딩할 때 이 원칙들을 기억하고 적용해 보자!

728x90
반응형