1장 깨끗한 코드

📌 왜 깨끗한 코드를 짜야하는가?

나쁜 코드를 쓰게되면 생산성이 떨어지게 된다

📌 각 전문가들이 생각하는 깨끗한 코드

🧑‍🏫 바야네 스트롭스트룹

우아하고 효율적인 코드. 논리가 간단해야 버그가 숨어들지 못한다. 깨끗한 코드는 한 가지를 제대로 한다.

🧑‍🏫 그래디 부치

깨끗한 코드는 단순하고 직접적이다. 결코 설계자의 의도를 숨기지 않는다 . 명쾌한 추상화와 단순한 제어문으로 가득하다.

🧑‍🏫 데이브 토마스

깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기도 쉽다. 특정 목적을 달성하는 방법은 하나만 제공한다.

🧑‍🏫 마이클 페더스

주의깊게 작성한 코드. 세세한 사항까지 꼼꼼하게 신경 쓴 코드

👨‍🏫 론 제프리스

중복이 없다. 클래스, 메서드, 함수 등을 최대한 줄인다. 같은 작업을 여러 차례 반복한다면 코드가 아이디어를 제대로 표현하지 못한다는 증거이며, 의미 있는 이름으로 설정 / 단일 기능을 수행하도록 객체와 메서드 쪼개기 등으로 표현력을 강화햔다.

모임 내 질문들

  • 실제 개발하면서 느끼신 클린코드라고 생각하는 부분들이 무엇인지

    안종훈 : 컴포넌트 별로, 구조 별로 잘 구분된 코드가 깨끗한 코드다.

    봉승우 : 각 기능에 맞는 파일, 폴더 구분된 코드들이 깨끗한 코드다

    주재현 : 남들이 봤을때 가독성이 좋은 코드가 깨끗한 코드다.

    김윤수 : 분기가 적을수록 깨끗한 코드다.

  • 인수 테스트 케이스가 무엇인지 궁금하다.

    • 단위 테스트 : 일반적으로 클래스, 메소드 수준의 테스트며 내부구조와 구현 방법을 고려하여 개발자 관점에서 테스트한다. 화이트박스 테스트이며 TDD와 함께 할 때 강력해진다. Java는 JUnit 테스트를 사용한다.
    • 통합테스트 : 개발자가 변경할 수 없는 부분까지 묶어 검증할 때 사용한다. DB에 접근하거나 전체 코드, 다양한 환경이 제대로 작동하는지 확인하는데 필요한 모든 작업을 수행 할 수 있다. 단위 테스트에서 발견하기 어려운 버그를 찾을수 있다는 장점이 있다. 단점으로 단위 테스트보다 더 많은 코드를 테스트하므로 신뢰성이 떨어질 수 있고 유지보수하기 힘들다는 점도 있다.
    • 인수 테스트 : 사용자 스토리(시나리오)에 맞춰 수행하는 테스트. 소프트웨어 인수를 목적으로 하며, 소프트웨어 인수하기 전 명세한 요구사항대로 잘 작동하는지 검증을 한다. 내부 코드에 관심을 가지지 않는 블랙박스 테스트이다.