얼마전에 한 테크블로그에서 Legacy에 대해 포스팅한 글을 읽었다.
다른 분야 못지 않게 Legacy에 대해 민감할 수 밖에 없는 안드로이드 개발자로서,
오늘은 Legacy에 대하여 이야기해보고자 한다.
Legacy는 종종 게임, 드라마/영화, 영어 공부 책에도 심심치 않게 등장하는 단어이기 떄문에
그리 생소하게 느껴지는 단어는 아닐 것이다.
# 사전적 의미
Legacy
1. (죽은 사람이 남긴) 유산 (=inheritance)
2. (과거의) 유산
출처: 네이버 영어 사전
# 개발자에게 Legacy란?
Legacy system
- 낡은 기술이나 방법론, 컴퓨터 시스템, 소프트웨어 등을 말한다.
- 더 이상 쓰이지 않더라도 현대의 기술에 영향을 주는 경우도 포함한다.
# 안드로이드 개발자에게 Legacy란?
Legacy for Android engineer
- Java로 작성된 레거시 코드들
- 2017년 Kotlin이 Android의 정식 언어로 채택됨
- 그에 따라 기존 코드는 Java로 작성되어 있지만, 유지보수 및 기능/모듈 추가는 Kotlin으로 해야 하는 상황
- 개발 입문을 Kotlin으로 한 사람이 Java로 작성된 레거시 코드를 유지보수하는 것은 어려울 것
# 결론
현재 진행형인 많은 프로젝트들은 수년, 수십년간 쌓여온 레거시 위에 세워졌으며
앞으로 새로이 시작될 많은 서비스들 또한 시간이 지남에 따라 거대해지는 레거시를 잘 관리해야 한다.
지금 다니는 회사는 레퍼런스 때문에 아직 Java로 개발중이다.
코틀린을 얕게나마 공부해봤는데, 정말 최신식 언어라는 생각이 들었다.
하지만 지금까지 우리 안드로이드 팀이 세워놓은 다년간의 Java 레거시 코드들을
조만간 Kotlin을 메인으로 사용하면서 유지보수를 할 생각을 하니 막막하다.
그래서인지 요즘 Java + Kotlin 둘 모두의 역량을 갖춘 개발자를 구하는 IT기업들이 점점 늘어나고 있다.
기존 작성된 레거시 코드들이 다 Java로 작성되어 있기 때문에 Kotlin을 적용하는 과도기를 유연하게 잘 넘기기 위함인듯 하다.
뭐든 초반에 잘 쌓아 놓는다면 이후 유지보수 단계에서의 고통이 줄어드는 것처럼,
내가 지금 적는 이 코드 또한 레거시 코드가 되고 덩치가 거대해져서는 나를 괴롭힐 것이라는 점을 잊지말고
layer 분리, 하드 코딩 금지, 아키텍처 패턴 사용을 생활화하기 위해 노력해야 한다.
'개발' 카테고리의 다른 글
클린 아키텍처와 SOLID (1) | 2024.07.04 |
---|---|
RxJava를 알아보자 (0) | 2022.10.12 |