레거시 코드.. 그리고 개발자..

요즘 실무에서 React를 사용중이다.

프론트엔드 개발자로 일하면서 처음 React를 써본다.

사실 Vue를 주로 사용하면서 React를 꼭 사용해보고싶다는 생각이 컸다.

왜냐면 그냥 단순하게 프론트 진영에서 제일 인기 많은 프레임워크이기 때문이다.

뭐 생태계도 크고 React만 잘하면 Vue나 Svelte 같은건 조금만 공부해도 금방금방 할 수 있다는둥 그런 소리도 많이 듣기도했고..

어쨌거나 실무에선 Vue만 써봤지만 처음 프론트 공부를 시작했을 때 당연하게도 React를 공부했었기 때문에 언젠간 써보고 싶다는 생각이 컸었다.

그런데 이번 2월말 3월부터 다른 서비스를 관리하게 되면서 React를 쓸 기회가 생겼다.


현재 내가 새로 관리하는 서비스는 레거시 코드들이 대부분이다.

프론트엔드 개발자라 JAVA, JSP에 대한 지식이 거의 없지만, 현재 내가 관리하는 프로젝트는 JAVA 환경에 JSP로 구축이 되어있다.

또한 그 안에서 1세대 프론트엔드 프레임워크도 쓰였다.

때문에 작업하기 매우 난감한 상황이다.

하지만 어쩌겠는가. 개발자라면.. 해결책을 찾아야하는 것을..


이 때문에 그나마 어느정도 지식이 있는 Vue앱을 JAVA 환경에 마운트시키는 방식으로 작업하고자했다.

하지만, 언제까지고 Vue만 써보는 것 또한 재미가 없기에 + 위에서든 이유로 React를 선택해 공부하면서 React 앱을 JAVA 환경에 마운트 시켜가며 개발중이다.


이 과정은 순탄치 않았다.

새로운 페이지를 개발하는 것도 아니고 기존 페이지에서 특정 부분을 작업하고 개선하는 업무였기 때문에, 아예 JAVA 코드로 새 라우터를 따서 작업할 수도 없기 때문에,

React 앱으로 부트스트랩 코드를 만들어 마운트, 리렌더, 언마운트 할 수 있는 함수를 제공해 특정 컴포넌트를 마운트시키는 식으로 작업해야했다.

이 과정에 당연히 props를 넘겨줄 수도 있어야하며, 중앙 스토어는 각 컴포넌트마다 분리되어야했고,(때론 통일되어있어야하고) 해당 빌드 결과물을 JAVA에서 받아올 수 있도록, 빌드 결과물을 기록할 수 있는 vite 플러그인을 따로 작성해야 했다.

그리고 그 과정에 해시값도 넣어줘 캐싱되는걸 방지해주고, 리액트 앱이 기존 JAVA 환경의 스타일의 영향을 받지 않도록, 그리고 반대로 영향을 주지 않도록 리액트 앱 안의 스타일을 캡슐화해주는 작업까지 해야했다.


이러한 작업들을 완성하고나서 기능이 잘 작동하는 것을 보고나니 기분은 뿌듯하지만, 그리고 리액트 동작 원리에 대해 좀 더 이해한 기분은 들어서 좋으나, 나중에 이 코드를 보게되거나, 혹은 관리하게될 다른 작업자가 걱정되긴 했다. 복잡하기 때문에..


여튼 레거시 코드를 대할 때마다 어떻게 하는 것이 좋을지에 대한 고민이 항상 드는 것 같다.

내 코드도 언젠간 레거시 코드가 될텐데, 그때 해당 코드들을 마이그레이션하기 좋게하려면..?

회사에 인력과 시간이 부족한 상황이라면 항상 개편할 수도 없을테니까 이러한 고민이 항상 들지만, 그에 대한 명확한 답은.. 잘 모르겠다.


마이그레이션 및 버전업 하기 쉽도록 분할하고 또 분할하고.. 모노레포방식으로 분할하든 마이크로 프론트엔드로 하든..

현재 생각에는 이렇게 해야 그나마 나중에 레거시 코드가 되었을 때 마이그레이션, 버전 관리가 쉬울거같긴하다.


다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 12일 오후 3:37

댓글 0

    함께 읽은 게시물

    타인을 높이면 자신이 높아진다

    사람들은 대체로 자신을 높이고 싶어 한다. 그래서 남들이 쉽게 하지 못하는 일에 도전하기도 하고, 독보적인 성과를 내려고 노력하기도 한다. 때로는 타인을 억압하거나 폭력을 행사함으로써 자신을 높이려는 사람들도 보인다.

    ... 더 보기


    발이 닿지 않는 바다에서

    ... 더 보기

    발이 닿지 않는 바다에서

    hajoeun.com

    발이 닿지 않는 바다에서

     • 

    저장 5 • 조회 3,911


    감사합니다. 멋진 서비스 잘 만들어보겠습니다.

    ... 더 보기

    조회 2,347


    ChatGPT의 Deep Researh에 GitHub을 연결 할 수 있게 되었군요!

    ... 더 보기

     • 

    저장 2 • 조회 3,238


    < 길을 잃기 위해 도서관에 갑니다 >

    1. 이 세계에 존재하는 책의 99.99%를 저는 아직 읽은 적이 없습니다. 그 사실 앞에서 망연자실해집니다.

    ... 더 보기