본문 바로가기

노개북9

클린코드 #10 10장 클래스 깨끗한 클래스 작성을 소개하는 장. 클래스는 작고 변경이 쉬워야 한다. 좋은 클래스 코드 작성을 위해서는 수차례 리팩토링이 필요하며 이때는 테스트 코드 작성 후 코드 변경 시마다 테스트를 수행해 원래 프로그램과 동일하게 동작하는지 확인한다. 1. 클래스 체계 변수 목록 정적 공개 상수(static public) 정적 비공개 변수(static private) 비공개 인스턴스 변수(private instance) 함수 목록 공개 함수 비공개 함수 2. 객체지향 프로그래밍의 SOLID 원칙 단일 책임 원칙(SRP, Single Responsibility Principle): 하나의 클래스는 하나의 책임을 가져야 한다. 개방-폐쇄 원칙(OCP, Open/Closed Principle): 클래스는 .. 2024. 3. 16.
클린코드 #9 9장 테스트 코드 깨끗한 단위 테스트 코드를 소개하는 장. 테스트 코드는 실제 코드만큼 중요하다. 테스트 코드에서 실제 코드보다 가독성이 더 중요해진다. 1. TDD 법칙 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. ▪️ 단위 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 개발과 테스트 코드는 30초 주기로 묶인다. ▪️ 실제 코드가 변경되면 테스트 코드도 변한다. 테스트 코드가 복잡할수록 실제 코드 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸린다. 2. 테스트 코드 작성 법칙 개념 당 assert 문 수를 최소로 줄여라 한 테스.. 2024. 3. 15.
클린코드 #7 7장 오류 처리 깨끗한 오류 처리 코드를 작성하는 방법을 소개하는 장. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능하므로 코드 유지보수성이 높아진다.(아래의 순서는 내가 이해하기 쉽도록 임의로 섞어서 그룹핑 해 둔 것이다.) 1. 오류보다 예외 처리 오류 코드보다 예외 처리를 사용하라 예외가 발생할 코드에서는 try-catch-finally문을 먼저 작성하라: try문에서 강제로 예외를 일으키는 테스트 케이스 작성 후 catch문을 테스트하고 난 다음, try문에는 절대 예외가 발생하지 않는다고 가정하고 코드를 작성할 수 있다. 예외에 의미를 제공하라. 예외에 오류 메시지 객체(연산 이름+실패 유형)를 첨부하고, catch문에서 로깅 기능으로 오류를 기록하라 2. 예외 처리 기법 메서드에서.. 2024. 3. 11.
클린코드 #6 6장 객체와 자료 구조 코드를 설계하는 방법으로 객체와 자료구조를 비교하여 설명하는 장. 분량은 작으나 프로그래밍 방법에 대한 핵심적인 설명이 서술되어 있어 중요한 장이었다. 연달아서 두번 읽고 기존의 내 지식과 융화하여 정리해본다. 1. 두가지 프로그래밍 방법 1. 객체지향 프로그래밍(Object-Oriented Programming) 정의: 프로그램을 객체(object) 중심으로 설계, 구현하는 방법 주요 특징: 캡슐화, 상속, 다형성, 추상화 장점: 데이터 은닉을 통한 보안 강화에 유리, 각 모듈간의 분리, 상속을 통한 코드 재사용과 확장 가능성 단점: 객체 설계가 중요 프로그램 규모가 커지며 유지보수에 유리한 객체지향 프로그래밍이 더 많이 사용되는 추세 2. 절차지향 프로그래밍(Procedural.. 2024. 3. 10.
클린코드 #5 5장 형식 맞추기 합리적인 코드 포맷팅을 소개하는 장. 포맷팅으로 코드의 스타일을 유지하면 가독성을 높여 이후 코드의 품질 유지에도 호영향을 준다. 1. 세로 형식 적절한 줄 길이는 200줄 이하 개념 사이를 줄바꿈으로 분리 변수 선언 위치: 선언 위치를 누구나 쉽게 파악할 수 있어야 함 지역 변수는 블록 맨 처음 선언 인스턴스 변수는 클래스 맨 처음 선언 유사한 코드는 가까이 위치 신문 기사처럼 작성: 위에서부터 고차원에서 저차원으로 고차원 개념과 알고리즘 설명 ➜ 세세한 의도 묘사 ➜ 저차원 함수와 세부 내역 함수 호출 종속성을 위에서 아래로 유지: caller ➜ callee 순서 2. 가로 형식 적절한 행 길이는 최대 120자 이내 개념 사이를 공백으로 분리 ex) 포맷터가 강제하는 부분이기는 하.. 2024. 3. 9.