좋은 코드란?

2022. 5. 17. 21:58공부/CS 공부

 최근 블로그 글 쓰기에 소홀해서 '다시 열심히 써야지!'라고 생각을 하며 무엇에 대해서 쓸가 고민하다가 최근에 읽은 내용중에 아마 모든 개발자가 고민하는 "클린 코드" 란 무엇일까에 관해 작성해보려고 한다.

 솔직히 나도 클린 코드 하면 뭐 중복이 없거나, 누가 봐도 코드를 이해할 수 있다거나, 신뢰성이 높은 코드 정도를 생각했다. 하지만 괜히 "클린 코드" 란 책이 있는 것이 아니라는 생각이 들 정도로 생각보다 더 고민할 것이 많았는데 글을 읽고 바뀐 내 생각을 정리해보려고 한다.

1. 읽기 쉬운 코드 = 클린 코드?

읽기 쉬운 코드는 누가 들어도 좋다고 생각이 될 것이다. 하지만 난 대상까지는 생각하지 못하였다. 이 읽기 쉽다는 대상은 어디까지 적용해야 될까. 지금은 코드 작성할 때 주석이나 내가 알아보기 편한 변수를 사용하는 등 내가 읽기는 쉬운 코드이지만, 다른 사람에게는 아닐 수 있다. 문득 이 생각이 들었더니 그 경계가 애매하다는 생각이 들었다. 그래도 한 회사의 팀 내에서 협업을 할 때 모두 알아볼 수 있을 정도가 읽기 쉬운 코드가 아닐까 하는 생각을 해 보았다.

2. 중복이 없는 코드 = 클린 코드?

이건 그래도 이견이 없을 것이다. 같은 로직의 코드가 2개 이상 존재한다면 굳이 남겨둘 이유가 없을 것이다. 하지만 이렇게 같은 로직을 공통으로 사용하다보면 그 로직은 수정하기가 까다로워진다. 따라서 이러한 중복을 추출하는 일을 할때에도 추후에 확장이나 변경할 점 까지 신경써야 한다는 생각이 들었다.

3. 결론

결론적으로 포스팅에서는 좋은 코드란 솔직히 그때마다 다른 것 같다. 어디서 누구와 일하느냐에 따라 좋은 코드의 정의가 달라지는 것 같다. 하지만 적어도 글에서처럼 '코드 간의 의존성 고려', '합의된 규칙으로 일관성 있게 작성', '적절한 확장 기능 고려', '어쩔 수 없다면 주석과 함께 분리' 정도는 어딜 가나 적용할 수 있을 것 같다. 솔직히 다시 읽어도 긴가민가 하기는 하지만 앞으로 코드 작성하기 전에는 꼭 다시 한번 고려해보려고 한다. 혹시 시간이 있다면 한 번씩 클린 코드에 대해 고민해보는 시간을 가져보는 것도 정말 좋을 것 같다.

(글을 작성하면서 참고한 포스팅)

https://jbee.io/etc/what-is-good-code/

'공부 > CS 공부' 카테고리의 다른 글

운영체제와 커널  (0) 2022.05.18
프로세스와 스레드의 차이  (0) 2022.04.18
프로그램 vs 프로세스 vs 프로세서  (0) 2022.04.16
Kernel, Shell, Interface 란?  (0) 2022.03.21