본문 바로가기

Dego Log

[Dego Log] JAVA(SpringBoot) 에서 TypeScript(NestJS)로 살아남기 위한 기록 - 1

처음 개발을 접했을 당시 학원을 다녔기 때문에 기본적으로 배우게 되는 언어인 JAVA로 시작을 하게 되었다.

그렇게 첫 회사에 JAVA & Spring Boot 기술 스택인 플랫폼 회사로 입사한 지 이제 6개월 차가 되어간다.

난 아직 1개월 차 같은 느낌인데 벌써 6개월이 되어간다니..

 

입사하고 1개월 차가 안 되었을 때 새로운 CTO 분이 오시게 되면서 화상으로 인터뷰를 할 때 기존에 운영 중인 플랫폼들을

새로운 언어로 전부 개편한다고 전달을 받았고 CTO 분께서 혹시 새로운 언어에 대한 거부감은 없는지에 대해 물어봤었다.

그때 당시, 나는 JAVA도 완벽하게 배운 것 같지 않았기 때문에 새로운 언어여도 처음부터 제대로 배우고 싶다는 욕심이 있어서

JAVA로 꼭 개발은 하지 않아도 된다고 말했고 걱정은 되지만 열심히 배워보겠다고 했었던 기억이 난다.

 

더보기

기존 개발 언어 : 이커머스 플랫폼 - PHP & 물류 플랫폼 - JAVA+Spring Boot

신규 개발 언어 : 이커머스 플랫폼, 물류 플랫폼 - TypeScript+NestJS

 

당장 시작하는 것은 아니었고 기존 언어로 보완할 부분을 최대한 수정하고 신규 언어로 리뉴얼을 진행할 예정이었다.

그렇기 때문에 사수들은 천천히 한 명씩 넘어갔지만 나는 어제까지 혼자서 JAVA로 유지보수 및 추가 개발을 맡아서 하고 있었다.

사실 사수들처럼 신규 개발로 넘어가 보고 싶었고, '난 언제 신규 플랫폼으로 넘어갈 수 있을까..', '과연 신규 플랫폼으로 넘어가서 잘할 수 있을까'라는 생각들이 머릿속에 가득 찼던 것 같다.

 

그리고 드디어 어제 신규로 넘어와서 간단한 수정사항을 진행하게 되었는데 사실 너무 간단해 보였고 금방 끝날 줄 알았다..

하지만 JAVA & Spring Boot의 흐름과 코드들이 익숙했는데 새로운 흐름과 코드들을 보니 혼란스러웠던 것 같다.

이게 뭐지? X 1000000000000000000000의 상태였고 수정사항은 테이블에 컬럼 하나 추가해서 추가된 컬럼을

POST, PEACH, GET에 추가해서 각각의 기능대로 잘 돌아가기만 하면 되었다.

 

어렵게 느껴졌던 가장 큰 이유는 코드를 보고 해석이 잘 안 되었는데 CTO 분께서 옆에 오셔서 일단 흐름을 생각하라고 했다.

쉽게 설명해주셨던 큰 흐름은 Controller를 거쳐서 Varidation 검증을 Dto로 해주고 만약 타입이 일치하지 않는다면,

터지게 하는 작업을 Dto라는 클래스로 만들어서 사용하는 거라고 하셨다. 즉 JAVA에서 사용하는 Dto 클래스와는 결이 달랐다.

검증이 끝나면 Service로 넘어가서 로직을 타게 하고 그다음 Repository (Entity)를 거친다고 생각하면 된다고 하셨다.

사실 아직 개념이 부족하다.. 개념 공부를 먼저 시작해야 될 것 같다..

 

더보기

Module → Controller (Dto) → Service → Repository (Entity) 

 

위 흐름을 생각하고 수정 작업을 진행하려고 보니까 안 보이던 코드들이 조금씩 보이면서 어디를 수정해야할지 알게 되었고,

몇시간 붙잡고 있던 수정사항을 좀 더 수월하게 고쳤고, "이 코드는 어디서 쓰이는거길래 수정을 했나요?"라는 물음에 확실하게 대답하지 못하면 수정하면 안 되는 코드라는 것도 다시 한 번 깨닫게 되었다. 

 

아직 익숙해지려면 멀고도 멀었지만.. 처음 JAVA를 시작할 때 학원 속도 맞추느라 급하게 따라가기만 했다면,

새롭게 시작하는 것이다보니 기초부터 잘 잡아서 제대로 개발을 하고 싶기 때문에 시간을 쪼개서라도 열심히 하려고 노력하자!