Java 웹 개발

[코드 프레소 웹 개발 체험단] - SW 유지보수성 향상을 위한 Clean Code

m_yell 2022. 1. 24. 01:43

 

 

 

- 코드프레소 Java 웹 개발 체험단 활동 중

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

 

이 글은 코드프레소 Java 웹 개발 체험단 강의 중 'SW 유지보수성 향상을 위한 Clean' 강의 내용입니다.

 


< Clean Naming >

좋은 이름은 코드 내부를 안봐도 동작/목적을 쉽게 이해할 수 있다. 가독성 향상에 가장 중요.

 

  • variables/contants : 출력해보지 않아도 내부에 담겨있는 데이터를 알 수 있는 이름
  • Functions/Method : 내부 코드를 들여다보지 않아도 동작 예측 가능하고 활용하는데 문제가 없는 이름 
  • Classes : 이름만으로도 구체적으로 어떤 객체가 생성되는 지 파악 가능한 이름

 

Clean Naming의 principle

1) Fuction, Method의 역할이 명확하게 한가지만 한다면 이름도 명확해짐 

→ 명확한 이름을 짓기 어렵다면 많은 역할을 하고 있는 게 아닌지 확인해야함

2) 불필요한 정보/반복은 제거해 이해가능한 최소한의 정보만 존재해야함

3) 줄임말의 사용은 가독성을 저하시킴

4) 언어별, 조직별 일관성 지키기 → 이해, 수정하는 노력이 감소되고 그렇지 않으면 가독성 ↓

5) 좋은 이름이 떠오르지 않으면 동료와 브레인스토밍

 

 

Clean Naming의 예시

1) Number, string 변수 : 어떤 데이터가 담겨있는지 명확히 알 수 있는 이름→ price, name, id, ...

2) Object 변수 : 어떤 데이터가 담겨있는지 명확히 알 수 있는 이름 → user, product, cartitems, ...

3) Boolean 변수 : true/false로 답변할 수 있는 질문 형태의 이름 → isFinished, isActive, ...

 

Clean Naming의 Bad Smell

1) 단일 문자로 이루어짐

ex) x, y, z, a, ...

 

2) 줄임말

ex) usr, prc, tmp, ...

 

3) 불필요한 정보

ex) productInfo, productData, ...

 

4) 명확하지 않은 이름

ex) data, object, user, ... 

 

5) 숫자 접미사 

ex) user1, user2, ...

 

< Coding Rule > 

→ SW 개발 가이드라인 및 규칙의 모음

→ SW의 유지보수성 및 신뢰성 등 향상을 위해 준수 권장됨

→ 각 언어별로 다양한 단체/기업에서 발표

= Coding Convention, Coding Standard, Coding Style Guide

 

Coding Rule 의 종류

1) Coding Style

유지보수성, 가독성을 높이기 위한 스타일, 동작에는 영향 미치지 않음

→ 이름에는 CamelCase 사용, Class 이름은 대문자로 시작, 한 줄에 100자 넘기지 않기

 

2) Coding ldiom

신뢰성, 안정성을 높이기 위한 규칙, SW 기능에 영향 미침

→ 객체 사용 전 NULL 체크, 자원 할당 후 반드시 해제, 예외는 반드시 핸들링

 

Coding Rule 준수 여부 확인 방법 : Code Review 또는 정적분석 도구 활용

 

< Clean Method >

Method를 호출하는 사람이 사용하기 용이, 유지보수 하는 사람이 변경하고 테스트하기 용이해야함

 

Clean Methods의 Principles

1) 충분히 작아야함

 

2) 한 가지를 해야함

 

3) 테스트 가능해야함

 

4) 중복이 없어야함

 

Method의 파라미터는 0~2개까지는 괜찮다.

파라미터의 개수가 3~4개 이상이면

1) 한 가지 역할을 하는 2개 이상의 Method로 분할함

2) Parameter Data를 저장하는 Object 사용

3) Map 사용

 

< Clean Comment >

comment : code에 대해 사람이 이해하기 쉽도록 작성해둔 부가 설명. 일반적으로 Compiler/Interpreter는 실행하지 않소 무시

 

Clean Comment의 principle

1) Comment는 필요악

Comment가 있다는 것은 Code가 충분히 의미있지 못하다는 것 → 의미있는 Code를 작성하려는 노력 필요

 

2) 몇가지 예외 상황 말고는 대부분의 상황에서 사용하지 않도록

Comment는 최신 정보를 담지 못해 잘못된 정보를 담고 있을 수 있음 

 

< Clean Formatting >

동작에는 영향 없지만 가독성에 영향 미침 → 조직 내 규칙을 정하고 따라야함

코드 리뷰와 정적분석 도구를 활용해 Formatting을 지속적으로 확인

 

수직적 Formatting 원칙 : 위에서 아래로 쉽게 읽혀 나갈 수 있는 것이 목표

1) 추상화의 수준 순서로 코드 배치

→ 상단에 고차원 함수를, 아래로 내려갈수록 저차원 함수를 작성

 

2) 서로 다른 개념은 빈 행을 사용해서 분리

 

3) 유사한 개념 내용은 빈 행을 사용하지 않고 붙여서 작성

 

4) 관계 있는 내용은 가까운 행에 작성

→ 논리적인 관련성에 따라 배치

 

수평적 Formatting 원칙 : 좌우 횡스크롤 없이 코드를 읽을 수 있어야함

1) 들여쓰기 적극적 활용

→ if문이 중첩될수록 들여쓰기가 큰 역할을 함

 코드의 생김새만으로 구분 가능함

→ 일부 언어(파이썬)는 들여쓰기가 필수

 

2) 한 줄의 긴 코드를 여러 줄의 짧은 코드로 분리

 

3) 변수 선언같이 수평 정렬은 크게 중요하지 않음

 


 

- 코드프레소 URL : https://www.codepresso.kr/ 

 

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

 

www.codepresso.kr