본문 바로가기
코드프레소 체험단/Clean Code

[SW 유지보수성 향상을 위한 Clean Code] Clean Code 소개

by 의정부핵꿀밤 2022. 1. 24.
728x90

✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨

💜 코드프레소 이러닝 강의 수강 중 - SW 유지보수성 향상을 위한 Clean Code 💜

😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎

https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr


Clean Code에 대한 서로 다른 시각

  • 코드의 품질은 매우 주관적일 수 있는 주제이기 때문에, 개인마다 Clean Code의 기준이 다를 수 있ㄷ
  • 개개인마다 좋은 코드에 대한 서로 다른 정의와 수준을 갖고 있으며, 갖고 있지 않기도 하다
  • SW는 다수의 개발자들이 협업하여 만들기 때문에 코드 품질, SW 품질에 대한 서로 다른 시각은 품질 향상의 걸림돌이 된다

클린 코드에 대한 서로 다른 시각들

  • Clean Code는 개인과 조직의 노력이 동시에 필요하다


Clean Code란 무엇인가?

  • Clean Code는 이해하기 쉽고, 변경하기 쉬운 Code (by Robert C.Martin, Clean Code)
  • Clean Code의 표준이나 엄격한 정의는 존재하지 않는다
  • 하지만 대가들의 아이디어에서 힌트를 얻을 수 있다

 

 

대가들의 Clean Code

1. Bjarne Stroustrup - C++ 창시자

 

2. Grady Booch - UML의 창시자

 

3. 'Big' Dave Thomas - Eclipse 프로젝트 초기 공헌자

 

4. Michael Feathers - Working Effictively with Legacy Code 저자

 

5. Ron Jeffries - Extreme Programming의 창시자

 

6. Ward Cunningham - Wiki의 창시자


Clean Code의 공통적 의견

  • 사람이 읽고 이해하기 쉽다
  • 단순한 한 가지 역할을 하고, 명확한 이름(표현)을 갖고 있다
  • 중복이 없다
  • 테스트 케이스가 있다

 

 

Clean Code

  • 이해하기 쉽고, 변경하기 쉬운 Code
  • 사람이 읽고 이해하기 쉽고, 명확한 한가지 역할을 하며, 이 역할을 의미있게 표현하고, 중복이 없고 테스트 케이스가 존재하는 코드

 

 

어떻게 Clean Code를 작성할 수 있을까?

 

 

 

중요하지만 Clean Code의 범위에 속하지 않는 것들

  • 자료구조/알고리즘
  • SW의 성능 개선
  • 신뢰성, 안정성을 위한 개발 기법
  • SW 아키텍처 설계 기법
  • 언어 별 Programming Best Practice

 

 

 

Clean Code가 왜 중요할까?

  • SW는 한번 신규 개발되고, 오랜 기간동안 유지보수 된다
  • 따라서 코드를 새롭게 작성하는 것보다 기존 코드에 추가 작업하는 시간이 압도적으로 많다
  • 대부분의 시간을 기존 코드를 읽고, 이해하는 데 사용한다
  • Code의 품질이 낮아지면?
    • Code를 읽고 이해하는 데 더 많은 시간이 걸린다
    • 복잡도가 상승하여 코드를 수정하는 데 더 많은 시간이 걸린다
    • 테스트 코드가 없어서, 하나를 수정하면 여러 곳에서 Side-effect가 발생한다
  • 개인과 조직 모두에게 커다란 비효율이 발생한다

즉, 빠른 퇴근/워라밸 보장/걱정 없는 코드를 만들려면 Clean Code를 짜야 한다!

 

 

 

Clean Code를 위한 공식과 정답은 없다

  • 앞으로 배우게 되는 내용은 정답이 아니며, 엄격히 지켜야 되는 법칙이 아니다
  • 그래도 이 강의를 수강한 후에는 클린 코드의 시작이 되고 조직 내 논의의 시작점이 되었으면 하는 것이다!

 

728x90

댓글