안녕하세요~ 항상 나아가는 개발자 pink_salt 핑솔입니다!
코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.
코드를 유지보수하는데 정말 중요한 개념인 Clean Code에 에 대해서 알아봅시다~ 고고!
이번엔 'SW 유지보수성 향상을 위한 Clean Code' 강의를 듣고 공부한 내용을 정리하여 네 번째 포스팅을 진행하겠습니다.
Clean Code를 왜 배워야 하는가?
프로그램은 우선 사람이 이해할 수 있어야 한다.
컴퓨터에서 실행되는가는 부차적인 문제다.
- Donald Knuth
컴퓨터가 이해하는 코드는 어느 바보나 작성할 수 있다.
좋은 프로그래머는 사람이 이해하는 코드를 작성한다.
- Martin Fowler
SW 엔지니어는 코드를 작성하는 시간의 10배를 코드를 읽고 이해하는데 쓴다고 합니다.
SW Lifecycle의 총비용 중 SW 개발은 고작 7%, SW 유지보수 비용은 64%라고 합니다.
개발하는 SW를 장기간 유지보수해야 하는 상황에서는
읽고 이해하기 쉬운 코드를 주의 깊고 세심하게 작성하는 것이 중요합니다.
clean code를 배우고 나서는...
- 유지보수성 높은 SW의 중요성을 인식해야 한다.
- 유지보수성 높은 SW를 개발하기 위한 고민거리를 생각해보아야 한다.
- 유지보수성을 떨어뜨리는 Bad Smell에 대한 감을 익힐 수 있다.
clean code?

강의를 통해서는 Java-like 한 Pseudo Code를 사용합니다.
Clean Code에 대한 서로 다른 의견?
개발자마다 생각하는 것이 다를 수 있습니다.

여기서는 5개의 항목만 살펴봤지만 엄청 많은 항목들이 세세하게 존재합니다.
상반된 의견들이 있을 수 있지만 clean code는 개인과 조직이 계속 코드의 품질을 높이기 위해 노력해야 합니다.

Clean Code 란?
Clean Code는 이해하기 쉽고 변경하기 쉬운 Code입니다. Robert C. Martin, Clean Code
Clean Code의 표준이나 엄격한 정의는 존재하지 않습니다.
하지만 우리는 대가들의 아이디어에서 힌트를 얻을 수 있습니다.
대가들의 공통적인 의견은
- 사람이 읽고 이해하기 쉽다.
- 단순히 한 가지 역할을 하고, 명확한 이름(표현)을 갖고 있다.
- 중복이 없다.
- 테스트 케이스가 있다.
Clean Code를 어떻게 작성???

이러한 항목들을 확인하며 clean code에 더 가까워지겠습니다.
아! 사람들이 중요하다고 생각하지만 Clean Code 범위에 속하지 않는 것이 있습니다.
- 자료구조/알고리즘
- SW의 성능 개선
- 신뢰성, 안정성을 위한 개발 기법
- SW 아키텍처 설계 기법
- 언어별 Programming Best Practice
이것들은 중요하지만 clean code를 말할 때는 범위에 속하지 않습니다.
왜 clean code가 중요한가?
- SW는 한 번 신규 개발되고 오랜 기간 유지보수됩니다.
- 기존 코드에 추가 작업하는 시간이 압도적으로 많습니다.
- 대부분의 시간을 기존 코드를 읽고, 이해하는 데 사용됩니다.
code의 품질이 낮아지면
- 코드를 읽고 이해하는데 시간 소요가 많아집니다.
- 복잡도가 상승하며 코드를 수정하는데 더 많은 시간이 걸립니다.
- 테스트 코드가 없어서, 하나를 수정하면 여러 곳에서 Side-effect가 발생합니다.
- 개인과 조직 모두에게 커다란 비효율이 발생하게 됩니다.
다음 게시물에서는 Clean Naming에 대해 자세히 공부하고 정리해서 다시 찾아뵙겠습니다!
열심히 나아가는 개발자 핑솔이었습니다.
go go!
코드프레소 URL: https://www.codepresso.kr/
프리미엄 IT 교육 서비스 - 코드프레소
www.codepresso.kr