Written by JS970
on
on
소프트웨어시스템설계 2023-03-06 수업정리
Flow
- Readability & Understandability
- Refactoring
Readability
- local variable, constant등 코드 내의 각 요소들을 쉽게 파악할 수 있는 정도이다.
- readability가 좋은 코드는 변수 등의 위치를 바로바로 파악 가능하다.
- 일관성 있는 코드 스타일의 사용을 통해 readability를 보장할 수 있다. (줄바꾸기, 들여쓰기 등)
- 코드 스타일은 언어마다 정해진 코드 스타일이 있다. 이를 준수하면 된다.
Underatandability
- Understandability는 코드의 "역할" 을 쉽게 이해할 수 있는 정도이다.
- 아래 코드에서 코드를 따로 들여다보지 않고는 doSomething이라는 함수의 기능을 바로 이해할 수 없다. 따라서 아래 코드는 Readable한 코드일지는 몰라도 understandability는 좋지 않다.
double[] doSomething(int x1, int x2, int x3){ double y[] = new double[2]; double Q = x2*x2 - 4*x1*x3; if(Q > 0){ y[0] = (-x2 + Math.sqrt(Q)) / (2*x1); y[1] = (-x2 - Math.sqrt(Q)) / (2*x1); } else if(Q == 0) y[0] = y[1] = (-x2) / (2*x1); return y; }
- 위 코드를 refactoring을 통해 의미 있는 함수 이름(quadraticEquation(int a, int b, int c))로 바꿔 준다면 understandability를 높일 수 있다.
- switch문의 사용 역시 결국 상황에 따른 복잡한 기능을 구현하는 것이므로 poor understandability라고 할 수 있다. 이렇듯 understandability가 좋지 않은 코드는 주석을 통해 코드의 역할을 설명하게 된다. 하지만 이는 근본적인 해결법이라고 할 수 없다.
- 근본적인 해결을 위해서는 refactoring을 통해 코드의 구조를 수정해야 한다.
Refactoring
- 코드 refactoring은 기존 코드의 기능을 유지하면서 변수나 함수의 이름 변경, 함수의 추출, superclass의 추출 등을 통해 코드의 구조를 변경하는 행위이다.
- 이를 통해 코드의 질적 향상이 가능하다.
- 결과적으로 Refactoring을 통해 코드의 understandability와 modifiability를 높일 수 있다.
- 다른 말로 유지 보수성을 높일 수 있다.