티스토리 뷰

Java

[Java] 리팩터링

snail voyager 2023. 11. 26. 13:35
728x90
반응형

리팩터링이란

겉으로 드러나는 코드의 기능은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정
버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 방법
리팩터링한다는 것은 코드를 작성하고 난 뒤에 설계를 개선하는 일

 

프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면,
먼저 기능을 추가하기 위한 형태로 리팩터링 후 원하는 기능을 추가한다

 

리팩터링 전에 제대로 된 테스트부터 마련한다
테스트는 반드시 자가진단하도록 만든다
테스트를 작성하는데 시간이 좀 걸리지만, 신경써서 만들어두면 디버깅 시간이 줄어서 전체 작업 시간은 단축된다

 

리팩터링은 프로그램 수정을 작은 단계로 나눠 진행한다
그래서 중간에 실수하더라도 버그를 쉽게 찾을 수 있다
컴파일-테스트-커밋
간단한 수정이라도 리팩터링 후에는 항상 테스트하는 습관
조금씩 변경하고 매번 테스트하는 것은 리팩터링 절차의 핵심

 

매개변수 이름에 접두어로 타입 이름을 적는데, 매개변수의 역할이 뚜렷하지 않을 때는 부정관사(a/an)를 붙인다

 

컴퓨터가 이해하는 코드는 바보도 작성할 수 있다
사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다

 

지역 변수를 제거해서 얻는 가장 큰 장점은 추출 작업이 훨씬 쉬워진다
유효범위를 신경 써야할 대상이 줄어들기 때문

 

함수 이름짓기는 중요하면서도 쉽지 않은 작업이다
이름이 좋으면 함수 본문을 읽지 않고도 무슨 일을 하는지 알 수 있다
처음에는 당장 떠오르는 최선의 이름을 사용하다가,
나중에 더 좋은 이름이 떠오를 때 바꾸는 식이 좋다.
흔히 코드를 두번 이상 읽고 나서야 가장 적합한 이름이 떠오르곤 한다

 

리팩터링이 성능에 상당한 영향을 주더라도 개의치 않고 리팩터링 한다
잘 다듬어진 코드라야 성능 개선 작업도 훨씬 수월하기 때문
성능이 크게 떨어졌다면 리팩터링 후 시간을 내어 성능을 개선
리팩터링 덕분에 성능 개선을 더 효과적으로 수행할 수 있다

 

캠핑자들에게는 "도착했을 때보다 깔끔하게 정돈하고 떠난다"는 규칙이 있다
항시 코드베이스를 작업 시작 전보다 건강하게 만들어놓고 떠나야 한다

 

좋은 코드를 가늠하는 확실한 방법은 '얼마나 수정하기 쉬운가' 다

 

728x90
반응형

'Java' 카테고리의 다른 글

[Java] 리팩터링 원칙  (0) 2023.12.03
[Java] CompletableFuture  (1) 2023.11.27
[Java] DateTimeFormatter uuuu vs yyyy  (1) 2023.11.23
[Java] Java 동시성  (0) 2023.11.20
[Java] Executor  (0) 2023.11.20
반응형
300x250