남이 아닌 나를 위한 클린코딩!

2 minute read

리팩토링은 남을 위에서 해야할까?

최근에 멘토링을 받으면서 리팩토링의 중요성에 대해서 많이 느낀 것 같다.

리팩토링은 막연히 다른사람이 알아보기 쉽게 하기 위해서 해야한다고 생각해서 막상 손이 안갔지만

얼마전에 멘토링을 통해 리팩토링은 남을 위한 일이기도 하지만 무엇보다 나 자신을 위해서 필요한 일이라는 걸 느꼈다.

몇달 전에 내가 한 프로젝트의 코드만 봐도 구현하는데 집중해서 내가 짠 코드라도 알아보기 힘든 부분이 많은 경우가 다반사다.

그리고 몇몇 정리를 잘해둔 프로젝트는 그 코드를 다른 프로젝트에 이용할때 재사용 하기도 하고 나중에 포트폴리오로 쓰기도 용이했다.

그런 의미에서 오늘은 프로젝트 후 내 코드를 어떤식으로 정리해야 좋을지 궁금해 클린코딩에 대해서 공부를 해봤다

클린코딩이란?

클린코딩의 정의는 다음과 같다.

  1. 주석 없어도 다른사람이 이해가 가능한 코드

  2. 몇 개월 후에 봐도 내가 이 코드에서 어떤 고민들을 하며 짰는지 기역이 나는 코드

간단하고 효율적인 규칙

사실 클린코딩에 대한 주제로 파보면 대학교 한 수업으로 해도 될 정도로 다뤄야할 주제가 너무 많다.

그렇기 때문에 이번 글에서는 나와 같은 대학생들이 프로젝트를 하고나서 어떤 식으로 코드를 정리해야 할지 간단한 방법들을 써볼 생각이다.


검색이 가능한 이름을 써라

코딩을 하게되면 테스트를 위해서나 구현을 위해서나 랜덤하게 값을 박아넣어서 돌려봐야 할때가 있다.

예를들어 어떠한 메소드에 하루를 초로 변환해서 인자로 넣어 줘야할때

myFun(86400)

이렇게 써놓지 말고 이 값을

SECONDS_IN_DAY = 86400
myFun(SECONDS_IN_DAY)

이런식으로 할당을 해서 다른 팀원들이 알아볼 수 있게 하자


한 함수의 한 가지 동작만 수행하도록 하고 함수의 이름은 동사로 짓자

나중에 코드를 읽을거나 다른사람이 코드를 읽을때에는 최대한 구체적으로 적어두는게 이해가 편하고 직관적이다.

이를 위해 우리가 할 수 있는 간단한 방법은 한가지 함수에 한가지 동작만 수행하며 이름은 동사로 짓는 것이다.

한 함수에서 여러가지 동작을 하는 함수의 코드를 읽다보게 되면 한줄한줄 읽으면서 이 코드가 동작에 어떠한 영향을 미치는지 계속 고민하면서 읽게 되기 때문에 굉장히 지친다.

그리고 함수의 이름을 동사로 짓고 변수의 이름을 명사로 지어버리면 읽을때 직관적으로 뇌가 받아들이기 편하다.


함수의 인자는 3개 이하로

함수의 인자가 3개 이상부터는 코드의 직관성이 떨어지게 된다.

만약 함수에 전달해야하는 값들이 많다면 데이터들을 담고있는 객체를 하나 만들어 객체 하나를 함수에 전달하자

예시

students ={
    id : ~,
    grade : ~,
    age : ~,
    ...
}

myFun(students)

축약어를 쓰지 말자

지금은 기역한다고 해도 나중엔 절대 기역 못하거니와 다른사람이 알아보기도 힘들다

올바른 예시

myFun(email,phoneNumber)

잘못된 예시

myFun(e, pn)

들여쓰기를 줄이자

어제 개발하던 코드들도 들여쓰기가 많은 부분은 알아보기 힘든 경험을 다들 해본적은 있을 것이다.

어제 개발하던 코드도 이런데 나중에 몇개월 후에 볼때나 다른사람이 보면 얼마나 어려울지 예상이 간다…

한 코드 블럭 안에서 한번만 들여쓰기 들어가도록 하자


데드 코드를 줄이자

다들 코딩을 하면서 테스트 코딩들이나 console.log. print()등 콘솔 찍으려고 써둔 코드들을 주석처리하고 그대로 버려둔 코드들이 많을 것이다.

요런 죽은 코드들을 쳐내고 깔끔하게 다듬자!


좋은 주석들을 달자!

주석은 물론 이해하기 쉬운 코드를 만드는데 있어서 좋은 습관이다.

하지만 주석이 너무 많아도 코드를 읽는데 방해요소가 될 수 있다.

위에 규칙들을 잘 지키면서 주석이 없어도 술술 읽히는 코드를 짠 후

내가 짠 코드, 함수, 매소드 등들이 다른 코드에 어떤 영향을 미치는 코드인지 주석을 달면 더욱 깔끔한 코드로 변신할 수 있을 것이다.

내코드는 진짜 클린코드일까?

내가 짠 코드가 얼마나 깨끗한지 체크해 볼 수 있는 방법이 있다.

sonar cloud에서 깃허브와 연동해서

깃허브에 있는 프로젝트의 코드의 복잡도를 분석해

어느부분을 개선해야 할지 알려주니까 한번 해봐도 좋을 것 같다.

sonar cloud 링크

20201216055801