clean code란 무엇일까?

이경준·2021년 4월 25일
0

clean code란 어떤것일까?

clean code란 원하는 기술을 사용하여 무조건 구현해내는것이 아니라 코드자체를 읽기만해도 무엇을 설명하는지 이해가 되어야한다. 즉 협업을 하게 되거나 시간이 지난 코드를 내가 다시보게될때 코드를 분석하지않아도 간단하게 알아볼수있어야한다. clean code를 작성하게되면 미래의 나와 팀원들의 스트레스를 매우많이 줄여줄것이다. 물론 간단하게 알아볼수 있게하기위한 방법은 다양하다.

그렇다면 clean code를 작성할때 고려해야하는 부분은 어떤것들이 있을까?

1. 검색가능한 이름 쓰기

코딩을 하다보면 random값을 적용하게되는 경우가 있다.

//before
solution(user,2341)

이러한 코드는 동료가 봤을경우 함수가 무엇을 하는지 정확히 이해할수가 없다.

//after
const userAmount = 2341
solution(user,userAmount)

2. 함수명은 동사로 쓰기

//before
const userData = () => {...}

userData는 좋은 함수명이 아니다. userData함수 한개가 얼마나 많은 기능을 하는지 생각하게되고, 함수는 1가지 기능만 하는게 좋기 때문이다.

//after
const loadUserData = () => {...}

loadUserData는 user값을 불러오는 기능을 하는 함수라는걸 바로 알수있다.만약 loadUserData가 쿠키값을 불러와서 userData를 반환한다면 아래와 같이 쪼갤 필요사 있다.

//after
const loadUserData = () => {
  const cookie = getCookie()
  // ... load data using the cookie
}

const userData = loadUserData()

즉 함수명은 동사여야하면서 함수는 1가지 일을 해야한다는것이다.

3. 3개이하의 argument사용하기

만약 argument가 3개 이상이라면 동료가 함수를 이해하기 힘들수 있다.

//before
const makeBook = (name,picture,author,date,price) => {...}
makeBook('Wonderful world',pic,"Jake","2021-04-25","3,000")

만약 많은 argument를 주입해야한다면 한개의 object로 감싸서 보내는것이 더 좋은 방법이다.

//after
makeBook({
  name:"Wonderful world",
  picture:"...",
  author:"Jake",
  date:"2021-04-25",
  price:"3,000"
})

4.argument로 boolean값 지향하기ment로 boolean값 지양하기

//before
const eatSoup = (ingredient,boolean) => {
  if(boolean) {
    ...
  }else{
    ...
  }  
}

const eatSoup = ("water",true) => {...}

위와같이 boolean값이 argument로 있다는것은 함수안에 if문이 있다는 것과 같다.
함수는 하나의 기능을 갖는것이 가장 좋은 방법이므로 위와같은 함수는 2개로 나눠주는것이 좋다.

//after
const makeSoup = () => {...}
const eatSoup = () => {...}

makeSoup("water")
eatSoup("delicious")

5. 축약어 쓰지않기

아래와 같이 아무리 간단한 값이라도 축약어를 쓴다면 동료가 봤을때 이해하기도 어렵고 황당할 것이다. 이러한 방법은 코드를 읽는것만으로 모든 설명을 해줘야하는 cleancode의 취지에 맞지 않다.

//before
users.map((u,i) => ...)

축약어대신 간단하더라도 환전한 단어를 쓰도록 하자

//after
users.map((user,userIndex) => ...)

이렇게 5가지만 지켜도 cleancode에 근접한 코딩을 할수있다. 그러나 너무 cleancode를 만들기 위해 생각하면서 코딩을 하다보면 오히려 구현하기가 어려워질수도 있다.
시작점부터 cleancode에 몰두하기보다는 refactoring을 하면서 하나하나 바꿔나가는 방법을 추천한다.
지금까지 내맘대로 코딩을 해왔는데 이제는 협업과 미래의 나를 위해서 cleancode를 작성하도록 해야겠다!

출처: 노마드코더

profile
내가 기억하기위한 블로그

0개의 댓글