본문 바로가기
프로그래밍 놀이터/Tips

Legacy Code 와 효율적으로 일하기

by 돼지왕 왕돼지 2022. 12. 26.
반응형

 

#

다음과 같은 이야기를 얼마나 들어봤는가?

 

- 코드가 거지같은데 이 새로운 기능을 어떻게 추가하지?

- 이 파일 바꾸는것은 위험부담이 큰데?

- X, Y, Z 에 dependency 가 있는데 어떻게 이 class 를 test 하지?

- 니가 원하는데로 바꾸기에는 시간이 충분치 않아

- 이 코드는 대체 뭘 하는거지?!

- 이건 너무하다, 이건 더 이상 나아질 수 없을꺼라 생각해.

 

 

#

Legacy 코드는 무엇인가?

 

다른 사람이 짠 코드를 받는 것이다.

test 가 되지 않은 코드이다.

 

 

#

모든 변화는 risk 이다.

code 가 제대로 동작하고 있다면 굳이 바꿀 이유가 없다. 특히나 test 가 되지 않는 코드라면..

그러나 bug fix 를 한다던지, new feature 를 추가한다던지 할 때는 변화가 필요하다.

 

그러면 이런 legacy code 를 어떻게 발전시킬 것인가?

수술하는 것처럼 우리는 어느 포인트에서 치고 들어가야 하는지를 결정해야 한다.

그 다음 component 로 분리시켜야 하는지, method class 로 어떻게 분리시켜야 하는지를 결정하고, 그리고 독립적으로 test 할 수 있도록 해야 한다.

 

이는 매우 복잡하다. 때때로 상황을 더 악화시킬 수도 있다.

 

 

-

다음과 같은 legacy code 개선 방법을 알아 볼 것이다.

(돼왕 : 자세한 내용이 궁금했으나 저자는 이 후 관련 글을 쓰지 않음. 그러나 Title 만 봐도 뭘 해야 하는지 감은 잡을 수 있음)

 

새로운 architecture pattern

새로운 framework 로 migration

dependency 끊기

하위 호환 지키기

code style 과 standard 강제하기

발견했을 때보다 더 나은 코드로 만들고 떠나기

기타 등등

 

 

-

출처 : https://medium.com/android-testing-daily/working-effectively-with-android-legacy-code-b71414f195d6

 

Working Effectively with (Android) Legacy Code

How many times have you heard yourself (or a teammate) say one of the following?

medium.com

 

 

반응형

댓글