[ Clean Code ] 클린 코딩을 하는 8가지 방법
🌈 프로그래밍

[ Clean Code ] 클린 코딩을 하는 8가지 방법

반응형

 

안녕하세요? 수구리입니다.

이번 포스팅에서는 클린 코딩을 하는 8가지 방법과 간단한 예시들을 통해서 알아보겠습니다.

 

클린 코딩이 필요한 이유?

  • 좋은 품질의 코드는 이해하기 쉽고 명확함.
  • 또한 수정하기 쉬우며 확장하기가 쉽다.
  • 따라서, 클린 코딩이 필요하다!

 

1. Naming Convention

  • 개발자들 사이에서 공통적인 관습이 있다.
  • 자바에서 변수 및 클래스의 이름 짓는 예시를 살펴보자.
class UserService {
    private String firstName;

    public String getFirstName() {
        return firstName;
    }
}
  • 모든 변수나 함수 클래스들은 CamelCase 스타일로 한다.
  • 변수와 클래스의 차이점은 위의 예시에서 볼 수 있듯이 클래스는 첫 자가 대문자이다.

 

CamelCase 스타일?

  • 간단하게 코딩 하는 스타일 문법이다.
  • 변수를 지정할 때, 여러 단어가 합쳐지는데 이때 각 단어 첫 번째 글자를 대문자로 만드는 방법이다.

 


위에서 이름과 관련한 변수를 firstName이라고 하였다. 이는 first와 name이라는 두 단어가 합쳐지게 되면서 CamelCase 스타일에 따라 두 번째 단어부터 대문자로 만들어 주어서 변수 이름이 결정되는 것이다.

 

  • 상수는 전부 대문자에 언더스코어로 띄어쓰기를 표현하자
final int MAX_COUNT = 1000;

 

  • 특수 기호 또는 변수에 숫자를 쓰는 것을 피하자
// bad example
User user1 = new User();
User user2$ = new User();

 

  • 너무 긴 글자를 변수 또는 메소드명에 쓰지 말 것.
  • 가능하면 심플하게 정보를 담자
// bad example
public void saveUserIntoMongoDBDatabase(User user);

// much better example
public void saveUser(User user);

 

  • 함수는 어떤 특정한 동작을 수행하기 때문에 동사로 짓고,
  • 클래스나 속성의 이름은 명사로 지어보자

 

2. 의미하는 바를 명확하게 적어라

  • 변수를 만들 때, full name을 적는 것을 귀찮아하지 말자
  • 변수는 어떤 것을 위한 값인지를 나타내야 한다.
  • 시간이 지나서 다시 그 변수를 보게 된다면, 해당 변수의 의미를 잊기 마련이다.
public boolean check() {
    if (a < max) {
        return true;
    } else {
        return false;
    }
}

 

 

  • 위의 예시를 아래와 같이 보다 명확하게 수정해보자
public boolean isAgeAcceptable() {
    if (userAge < maxAge) {
        return true;
    } else {
        return false;
    }
}

 

 

3. 변수와 메서드의 선언

  • 모든 클래스의 변수들은 클래스의 맨 위에 선언되어야 한다.
  • 그러면 변수들을 찾을 위치를 언제든지 알 수 있게 될 것이다.
  • 만약 변수가 한 개만 쓰인 메서드에서만 쓰인다면 로컬 변수로 선언해서 사용하도록 한다.
  • 메서드들은 쓰이는 순서대로 선언되어야 한다. (위에서 아래로)
  • 예로 현재 메서드에서 다른 메서드를 호출한다면, 메서드는 현재 메서드의 아래에서 선언되어야 한다.
  • 마지막으로 중요도에 따라서 중요할수록 위쪽에, 덜 중요한 것은 아래쪽에 두자.

 

4. 한 가지 관련 있는 기능

  • 한 메서드는 하나의 동작에만 관련이 있어야 한다.
  • 만약 한 메서드에 다른 것들을 동시에 처리를 한다면, 기능적으로 다른 메소드들로 나눌 것을 고려해야 한다.
  • 1 메서드 1 기능으로 만들어준다면, 더 이해하기 쉽고 다른 메소드에서 재사용하기도 편리하다.

 

5. 작은 메소드

  • 대게 개발자들 사이에서 좋은 메서드라고 불리는 기준은 5 ~ 10줄로 여겨진다고 한다.
  • 그렇지만 이 부분에 있어서 명확한 정답은 없으므로 조금 길더라도 이해하기 좋고 고퀄리티로 만들자.

 

6. 코드의 최소화

  • 만약 한 줄로 끝낼 수 있다면 코드를 굳이 3줄로 풀어서 쓰지 말자.
  • 코드 블록을 추가하기 전에 항상 최상의 접근법을 생각하고 적용할 필요가 있다.

 

7. 중복은 악이다

  • 코드의 중복을 최대한 피하자!
  • 만약 다른 곳에서 메서드를 재사용할 수 없다면 잘못된 것이고, 그 메소드를 재사용할 더 좋은 방법을 생각해보아야 한다.
  • 메서드는 가능하면 최대한 넓게 쓰여야 한다.
  • 예를 들어 거의 비슷한 기능을 하는 두 함수가 있다고 하자. 단지 1줄의 코드만 다르다면 같은 기능을 추출해서 하나로 만들어주고, 두 개를 연결해서 다른 조건 체크를 만들어 주는 것이 낫다.

 

8. 코멘트(주석)

  • 복잡한 알고리즘이나, 코멘트가 다른 개발자들의 이해에 도움이 된다면 코멘트를 남기는 것은 좋다.
  • 매우 짧은 코드가 아닌 이상 클래스의 설명이나 메서드의 설명 등은 짧게 짧게 써주는 것도 좋아 보인다.

 

결론

  • 프로젝트를 진행하다 보면 원하는 대로 동작은 잘 하지만, 다양한 부분에서 문제가 충분히 일어날 수 있다.
  • 그럴 때는 내가 클린 코딩 원칙을 잘 지키면서 진행을 해왔는지, 다른 놓친 부분은 없는지 점검을 해야 하는 신호일 수도 있다고 생각한다.
  • 따라서 클린 코딩은 개발자라면 항상 고려해야 하는 부분인 것 같다.
반응형