Clean Code: 읽기 쉬운 코드가 좋은 코드다

2026. 6. 16. 18:53·TIL

안녕하세요.

 

오늘은 Clean Code, Refactoring, Test에 대해서 공부해보았습니다.


처음에는 Clean Code를 단순히 “깔끔한 코드”라고 생각했지만, 강의를 듣고 나니 핵심은 다른 사람이 읽고 이해하고 수정하기 쉬운 코드라는 점이었다.

 

코드는 한 번 작성되지만 여러 번 읽힌다.
그래서 좋은 코드는 실행만 잘 되는 코드가 아니라, 의도가 드러나고 변경하기 쉬운 코드여야 한다.

 


 

1. 이름은 의도를 드러내야 한다

public boolean check(int age) {
    return age >= 18;
}

 

check()라는 이름만 봐서는 무엇을 확인하는지 알기 어렵다.

 

public boolean isAdult(int age) {
    return age >= 18;
}

 

isAdult()처럼 이름을 바꾸면 함수의 목적이 바로 보인다.
이름은 코드의 가장 작은 설명이라고 느꼈다.

 


 

2. 함수는 한 가지 일에 집중해야 한다

public void signup(String email, String password) {
    if (!email.contains("@")) {
        throw new IllegalArgumentException("이메일 형식 오류");
    }

    if (password.length() < 8) {
        throw new IllegalArgumentException("비밀번호 길이 오류");
    }

    System.out.println("회원가입 성공");
}

 

이 함수는 회원가입, 이메일 검증, 비밀번호 검증을 모두 처리한다.

지금은 짧지만 기능이 늘어나면 금방 복잡해질 수 있다.

 

public void signup(String email, String password) {
    validateEmail(email);
    validatePassword(password);

    System.out.println("회원가입 성공");
}

private void validateEmail(String email) {
    if (!email.contains("@")) {
        throw new IllegalArgumentException("이메일 형식 오류");
    }
}

private void validatePassword(String password) {
    if (password.length() < 8) {
        throw new IllegalArgumentException("비밀번호 길이 오류");
    }
}

함수를 나누면 signup()에서는 전체 흐름이 보이고, 세부 조건은 각각의 함수에서 확인할 수 있다.

 


 

3. 리팩토링은 구조를 개선하는 일이다

리팩토링은 기능을 바꾸는 것이 아니라, 외부 동작은 유지한 채 내부 구조를 개선하는 과정이다.

public int getPrice(int price, boolean isStudent) {
    if (isStudent) {
        return price - 1000;
    }

    return price;
}
public int calculateDiscountedPrice(int price, boolean isStudent) {
    if (isStudent) {
        return price - 1000;
    }

    return price;
}

 

동작은 같지만 함수 이름이 더 명확해졌다.

 

이처럼 작은 이름 변경도 코드를 이해하기 쉽게 만드는 리팩토링이 될 수 있다.


 

4. 테스트는 리팩토링의 안전장치다

리팩토링을 할 때 가장 걱정되는 것은 기존 기능이 깨지는 것이다.

 

그래서 테스트가 필요하다.

@Test
void 학생이면_1000원을_할인한다() {
    PriceCalculator calculator = new PriceCalculator();

    int result = calculator.calculateDiscountedPrice(10000, true);

    assertEquals(9000, result);
}

 

테스트가 있으면 내부 코드를 수정해도 기존 기능이 그대로 동작하는지 확인할 수 있다.

 

즉, 테스트는 코드를 고칠 수 있게 해주는 안전장치다.


오늘의 정리

Clean Code는 예쁘게 보이는 코드가 아니라 읽고 수정하기 쉬운 코드다.
좋은 이름은 의도를 드러내고, 함수는 한 가지 일에 집중해야 한다.
리팩토링은 코드의 구조를 개선하는 과정이며, 테스트는 그 과정에서 기능이 깨지지 않도록 도와준다.

이번 강의를 통해 앞으로 코드를 작성할 때 단순히 “동작하는가”만 보지 않고, 다른 사람이 읽었을 때 이해할 수 있는가도 함께 고민해야겠다고 느꼈다.

 

'TIL' 카테고리의 다른 글

MOTIPE 프로젝트 회고: 회원가입 데이터 흐름과 프로젝트 기준 문서 만들기  (0) 2026.06.16
AI를 활용하자 - chatbot만들기  (0) 2026.06.05
POKEAPI 이용해서 포켓몬 도감 만들기  (0) 2026.06.01
메모앱 그리고 CALLBACK과 PROMISE  (0) 2026.05.29
DOM과 EVENT 그리고 BOM  (0) 2026.05.28
'TIL' 카테고리의 다른 글
  • MOTIPE 프로젝트 회고: 회원가입 데이터 흐름과 프로젝트 기준 문서 만들기
  • AI를 활용하자 - chatbot만들기
  • POKEAPI 이용해서 포켓몬 도감 만들기
  • 메모앱 그리고 CALLBACK과 PROMISE
Sangenie
Sangenie
경제적 자유를 위한 하루 공부.
  • Sangenie
    새싹
    Sangenie
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • AI (0)
        • 하네스 엔지니어링 (0)
      • 웹 개발 (25)
        • Javascript (16)
        • JAVA (9)
      • 토막지식 (1)
      • TIL (7)
      • 경제 (8)
        • 경제뉴스 (7)
        • 비트코인 분석 (1)
      • Library (1)
        • IT (1)
        • Finance (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    암호화폐
    비트코인
    경제뉴스
    조건문
    til
    프론트엔드공부
    TodayILearned
    개발공부
    java
    객체
    프론트엔드
    반복문
    자바스크립트
    코딩공부
    경제공부
    자바
    가상자산
    자바기초
    JavaScript
    java공부
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Sangenie
Clean Code: 읽기 쉬운 코드가 좋은 코드다
상단으로

티스토리툴바