inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽] 스터디 3기_백엔드 클린 코드, 테스트 코드 1주차 발자국

초동
0

공부내용

1. 우리가 클린코드를 추구하는 이유

가독성

2. 프로그램 이란?

프로그램 = 데이터 + 코드

3. 추상과 구체

중요한 정보는 가려내어 남기고, 덜 중요한 정보는 생략하여 버린다.

적절한 추상화 는 해당 도메인의 문맥 안에서, 정말 중요한 핵심 개념만 남겨서 표현하는 것

추상은 항상 구체적인 실재에서 시작해야 한다.
-Pablo Picasso

4. 이름 짓기

: 가장 단순하면서도, 아주 중요한, 고도의 추상적 사고를 기반으로 한다.

  1. 표현하고자 하는 구체에서 정말 중요한 핵심 개념만을 추출하여 잘 드러내는 표현

  2. 우리 도메인의 문맥 안에서 이해되는 용어

작명 팁

5. 메서드와 추상화

잘 쓰여진 코드라면, 한 메서드의 주제는 반드시 하나다. (0개도 2개도 아닌, 무조건 1개)

→ 여러개라고 느껴진다면 추상화가 제대로 되지않은것이니 분리해야한다.

6. 메서드 선언부

메서드 구성요소 : 반환타입 메서드명 (파라미터) {}

메서드 선언부 : 반환타입 메서드명 (파라미터) {}

메서드 구현부 : 반환타입 메서드명 (파라미터) {}

반환타입

메서드명

파라미터

 💡

메서드 생성 기능 (블럭 잡고 + ⌥ + ⌘ + M)

 💡

inline 기능 (⌥ + ⌘ + N)

목적

방법

inline 예제

before
int a = 10;
int b = a * 2;
System.out.println(b);

after
int b = 10 * 2;
**System.out.println(b);

=> 변수 a를 없애고, 직접 값(10)을 대입함**

7. 추상화 레벨

하나의 세계 안에서는 추상화 레벨이 동등해야 한다.

8. 매직넘버, 매직스트링 (옵션 + 커맨드 + C)


섹션3. 논리, 사고의 흐름

1. 뇌 메모리 적게 쓰기

<aside> 💡

“범주화”

정리 시스템에서 중요한 과제를 최소의 인지적 노력으로 최대의 정보를 제공하는 것이다.

-정리하는 뇌, 대니얼 J.레비틴-

</aside>

<aside> 💡

“집중력”

뇌는 한 번에 한 가지 일 밖에 하지 못한다. 멀티태스킹? 그건 저글링일 뿐.

-도둑맞은 집중력, 요한 하리-

</aside>

인지적 경제성

최소한의 인지로 최대의 효율을 내보자

뇌 메모리 적게 쓰기

다른 사람들이 우리가 작성한 코드를 읽을 때 뇌 메모리를 효과적으로 쓸 수 있도록 가독성을 높이는 것이 핵심이다.

2. Early return

  1. 메서드로 추출 (리턴하기위해)

  2. if문을 쪼개서 elseif와 else의 사용을 지양

3. 사고의 depth 줄이기

  1. 중첩 분기문, 중첩 반복문

  1. 사용할 변수는 가깝게 선언하기

4. 공백 라인을 대하는 자세

5. 부정어를 대하는 자세

6. 해피 케이스와 예외 처리


섹션 4. 객체 지향 패러다임

1. 단일 책임 원칙 (SRP, Single Responsibility Principle)

클래스는 하나의 역할만 담당해야 한다.

2. 개방-폐쇄 원칙 (OCP, Open/Closed Principle)

코드는 확장할 수 있어야 하고, 기존 코드 수정 없이 기능을 추가할 수 있어야 한다.

3. 리스코프 치환 원칙 (LSP, Liskov Substitution Principle)

자식 클래스는 부모 클래스의 기능을 대체할 수 있어야 한다.

4. 인터페이스 분리 원칙 (ISP, Interface Segregation Principle)

필요한 기능만 포함한 작은 인터페이스를 여러 개로 나누어야 한다.

5. 의존 역전 원칙 (DIP, Dependency Inversion Principle)

구현이 아닌 추상화에 의존해야 한다.

1주차 회고

백엔드 워밍업클럽 백엔드 클린코드

답변 0