반응형
좋은코드란 무엇일까? - 레거시 코드
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. 그러면 어떻게 하나요?
- 시간을 달라고 요청한다.
- 무조건 안된다고 말한다.
복잡한 히스토리가 얽혀있을뿐 레거시 코드는 잘못이 없다.
오히려 현재 서비스를 굴러가게하는 일등공신!
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 9-5. 이름짓기 (0) | 2022.03.16 |
---|---|
[Zero-base] 9-4. 왜 좋은 코드를 작성해야할까? (0) | 2022.03.16 |
[Zero-base] 9-2. 좋은 코드, 나쁜 코드, 이상한 코드 (0) | 2022.03.16 |
[Zero-base] 11-12. 디자인 패턴 정리 (0) | 2022.03.15 |
[Zero-base] 11-11. 책임연쇄(Chain of responsibility) (0) | 2022.03.15 |