header-img
Info :
  1. "과감하게" 레거시를 해소하는 방법
728x90

 

 

과격하게 레거시를 쇄신하는 세 가지 방법과 그 사례

안녕하세요. 일본 최대 규모의 음식 배달 서비스 Demaecan(出前館, 이하 데마에칸) 프로덕트를 담당하는 김영재라고 합니다. 어느덧 프로덕트를 쇄신한 지 2년 반이 되어가고 있...

techblog.lycorp.co.jp

 

  • 어제 내가 작성한 코드는 레거시이다.
  • 사용자가 한 명이라도 있는 시스템은 레거시이다. 그 한 명이 바로 당신이다.
  • 레거시를 고칠 바엔 다시 만드는 게 더 빠르다.

 

-

null
레거시를 해소하는 대표적인 방법론

 

 

-

"과감하게" 레거시를 해소하는 방법

  1. 인프라 단절하기
  2. 코드 재작성하기(Recode)
  3. 사양 경량화하기

한마디로 새로 만드는 의미가 강해짐.

DB 설계 등 부터 다시 뜯어서 만든다..

 

null
예시.

기존의 레거시 서비스/시스템은 그대로 유지하되

새로 컨버전할 시스템을 같은 로직이 아닌 별도 로직에서 새로운 서비스 처럼 구현한다.

그리고는 위의 방법과 똑같이 안정성이 검증이 되면 구 레거시 시스템의 서비스를 종료하는..

 

null

리코드는 위와 같은 일정으로 진행한다.

 

컨버전 기간 동안에는 새로운 기능의 기획을 잠시 멈추고

기존 서비스 로직에 대해 다시 분석하고, 그에 맞는 개발을 진행한다.

 

여기서 필요없는 기능이나 사용하지 않는 서비스 기능들 발견 시 제거하여 다른 기능에서 사양을 넉넉하게 쓸 수 있도록 관리한다.

 

컨버전이 완료되고, QA(품질검사)가 완료되면 그 시점 이후부터 새로운 기능 기획/개발에 자연스럽게 들어간다.

 

-

과감하게 레거시를 해결하는 방법이

다소 피곤해보이더라도 효율은 좋아보인다.

 

사실 기존의 방법은 코드 정리를 하는 정도이기 때문에..

성능이나 기능, 진짜 필요없는 코드를 총괄적이게 관리하기 위해서는

"과감한" 레거시 코드 해소 방법이 낫지 않을까..

 

하지만 기업에서 이런 업무를 진행하려면 TFT팀을 구축해서...

레거시 타파를 본격적으로 구상해야하지 않을까 싶다.

 

-

 

기업 단위의 코드일 경우 레거시 코드 정리 시도 자체가 쉽지 않을텐데

 

내가 짜는 코드라도 주석 잘 달아놓고,

변수명 잘 만들어두고,

하드코딩 지양하고.... 하다보면

나중에 레거시 코드가 되었을 때 이해하기가 쉽겠지..?

 

나중에 연차가 좀 더 쌓이면 레거시 코드 정리도 잔뜩하고 싶다..

난 근양 그런게 재밌으니까...... 

 

새로운 기능을 개척하는 것도 참 재밌지만 있는 걸 활용해서 효율적으로 만드는 것도 하나의 묘미...!

 

728x90
더보기
Document