본문 바로가기

Dev/TIP 팁

[TIP] 코드 깔끔하게 짜는 법/클린 코드/깨끗한 코드

728x90

개발자로써 협업은 선택이 아닌 필수입니다

그렇다면 코드를 여러 사람이 보고 이해하기 편하도록 깨끗한 코드를 짜는 것도 중요하겠죠

물론 꼭 다른 사람이 아닌, 미래의 내가 지금 짠 코드를 다시 봤을 때 쉽게 이해하고 알기 위해서도

 

코드를 깨끗하게 짜는 것은 중요합니다

 

그래서 클린 코드를 짜는 방법을 유투브 영상을 기반으로 정리해보았습니다.

 

1. 검색 가능한 이름을 사용해라

코드를 짜다보면 랜덤하게 값을 넣어야 하는 상황이 옵니다.

예를 들면 함수를 호출하며 인자를 전달한다거나, 계산 시 일정한 값을 곱해준다거나와 같은 상황말이죠

그럴 때는 해당 상황마다 임의의 상수를 직접 넣어주는 것이 아닌 변수화를 하는 것이 중요합니다.

그리고 그 변수에 들어가는 값이 어떤 의미를 가지는지 이해할 수 있도록 설정하는 것이 중요합니다.

 

예를 들면 위의 경우에는 시간을 분으로 바꾸는 transHour2Min이라는 함수에

24라는 상수가 아니라, 이를 HOUR_IN_A_DAY 라는 변수에 저장하며 전달합니다.

이러면 훨씬 더 알아보고 이해하기 쉽겠죠?

이는 변수 뿐만 아니라 함수명, 클래스명 등을 지을 때도 똑같이 적용되는 부분입니다.

 

2. 함수명은 반드시 동사로 지어라

함수는 동적인 행동을 합니다. 따라서 함수명은 반드시 동사를 앞에 붙여서 지어야합니다.

그리고 대부분 동사 소문자로 시작하며, 뒤에 오는 단어들은 어절 구분을 위해 대문자로 작성합니다.

 

예를 들면 위의 경우처럼 userData()는 좋은 함수명이 아닙니다.

하지만 loadUserData()는 어떤 동작을 하는지 정확하게 전달해주기 때문에 좋은 함수명이라고 할 수 있습니다.

 

그리고 이러한 과정을 통해 함수가 한 번에 너무 많은 기능을 하는 건 아닌지 모니터링 할 수도 있습니다.

하나의 함수는 하나의 기능만 해야합니다. 이때 함수명을 지으면서, 함수가 너무 많은 기능을 하고 있는지

고민해볼 수 있고, 2개 이상의 기능을 하고 있다면 당연히 함수를 나누어야겠죠?

 

3. 함수의 파라미터는 3개 이하가 적당하다

함수가 너무 많은 숫자의 파라미터(인수)를 요구하면, 어떤 인수가 어떤 역할을 하는지

무엇을 의미하는지 혼란을 야기할 수도 있습니다. 아무리 변수명을 잘 지어도 말이죠.

 

그래서 함수의 인수는 가능한 최대 3개 이하로 하는 것이 좋습니다.

하지만 꼭 많은 인수를 전달받아야 하는 상황이 있다면, 그럴 때는 아예 객체로 전달하는 것이 좋습니다.

그렇다면 각 함수, 인수의 역할을 이해하고 몇개의 인수를 필요로 하는지 이해하기도 편하니까요.

 

4. 함수의 파라미터로 boolean 타입을 사용하지 마라

함수의 인자로 boolean 타입의 데이터를 전달하는 것을 최대한 지양해야합니다.

boolen 은 True 혹은 False 값을 저장하는 데이터 타입입니다.

 

이러한 데이터를 함수에 전달한다는 것은 해당 함수 내에 if/else 문이 있다는 것이고,

이와 같이 구분할 바에는 아예 함수를 구분하는 것이 좋습니다.

앞서 말했듯이 함수는 한 번에 한 가지 기능을 해야하니까요.

 

boolen 타입을 전달하는 것은 오히려 어떤 상황인지 이해하는데 혼란을 야기할 수도 있습니다.

따라서 상황에 따라 아예 함수명을 나누고, 적절한 함수명을 지어 호출하는 것이 더욱 좋습니다.

 

5. 변수명은 너무 축약하지 마라

코드의 길이를 줄이는 것은 좋지만, 그렇다고 해서 이해할 수도 없게 변수명을 줄여버리는 것은 좋지 않습니다.

해당 변수가 무슨 정보를 저장하는지 알아야 코드의 흐름을 이해하기 쉬운데,

나만 아는 것처럼 변수를 줄여서 사용해버리면 다른 사람들은 코드 이해하기가 더욱 어려워지겠죠.

 

조금 코드가 길어지더라도, 충분히 누구나 이해할 수 있도록 변수명을 설정하는 것이 중요합니다.

종종 너무 길어져서 대소문자로도 구분이 힘들 것 같을 때는 언더바(_)를 넣어주는 것도 좋습니다.

 

 

*

하지만 역시 중요한 것은 일단 돌아가는 코드를 짜는 것입니다

코드를 깨끗하고 예쁘게 다듬는 일은

그 다음에 해도 늦지 않습니다

 

오히려 코드를 다듬느라, 돌아가는 코드를 짜지 못한다면

그거야 말로 무의미한 일이겠죠

 

돌아가지 않는 코드는 어디에도 쓸 수 없으니까요

감사합니다

*

 

 

참고 링크: youtu.be/Jz8Sx1XYb04

 

728x90