반응형

좋은코드란 무엇일까? - 레거시 코드

 

 

Legacy Code

  • Legacy code is source code that relates to a no-longer suppoerted or manufactured operating system or other computer technology ...
  • More recently ... Among the most prevalent are source code inherited from someone else and source code inherited from an older version of ther software. - wikipedia

 

 

레거시 코드 = 하위 호환성 + 내가 작성하지 않은 코드

 

레거시코드의 어떤점이 우리에게 고통을 주는가?

  • 1. 내가 작성하지 않음 - 코드를 모두 읽어봐야 해당 로직을 이해할 수 있음
  • 2. 복잡한 이해관계 - 히스토리가 코드에 없고 사람들 사이에서 구전되어 내려옴
  • 3. 가독성이 떨어져 이해하기 어려움
  • 4. 아무튼 복잡해서 뭐하는 코드인지 파악하기 어려움

 

 

레거시 코드는 엉망진창일까?

  • 아마도 처음에는 그렇지 않았을 것이다.

 

서비스 런칭 전

  • 1. 심플한 기획서에 심플한 정책으로 시작
  • 2. 초기 개발단계에서 빠져있는 정책 발견
  • 3. 기획서에 정책 추가
  • 4. QA 등 여러 프로세스를 거침
  • 5. 서비스 런칭

 

서비스 런칭 후 (feat. 프로모션)

  • 1. 서비스 활성화를 위해 프로모션 기획
  • 2. 프로모션만을 위한 기능 추가
  • 3. 프로모션 오픈

 

서비스 런칭 후 고도화 단계 (1)

  • 1. 신규 기능 추가
  • 2. 신규 기능을 추가하다보니, 이전 정책과 충돌
  • 3. 예외 케이스로 허용
  • 4. 신규 기능 오픈
  • 위 단계가 반복

 

서비스 런칭 후 고도화 단계 (2)

  • 1. 기획 혹은 개발 담당자가 변경
  • 2. 히스토리를 파악하지 못한 상태로 신규 개발 요건을 받아옴
  • 3. 기존 코드에 덧불이기 시작

 

Q. 중간에 코드를 개선할 시간은 없나요? 

  • 절대 없음

 

Q. 그러면 어떻게 하나요?

  • 시간을 달라고 요청한다.
  • 무조건 안된다고 말한다.

 

 

복잡한 히스토리가 얽혀있을뿐 레거시 코드는 잘못이 없다.

오히려 현재 서비스를 굴러가게하는 일등공신!

 


반응형

+ Recent posts