Node.JS 리팩토링 완료

BEHE_LIT·2021년 11월 22일
0

웹개발

목록 보기
3/3

기존의 JSP로 진행한 프로젝트 웹사이트를 Node.JS로 리팩토링 완료했다.

구 사이트 링크
신 사이트 링크

<사용핵심기술>
-node.js
-express.js
-sequelize.js
-mariaDB

아마 회사에서 파이썬을 다뤄보지 않았다면 상당히 큰 멘붕을 겪지 않았을까 싶다. JSP로 만들땐 패키지,모듈 매니저라는 개념을 전혀 안다뤄봤기에 회사에서 파이썬으로 pip, anaconda environment를 통해 개발환경과 모듈관리를 독립적으로 관리하며 개발을 진행할 수 있다는 점이 처음에는 굉장히 낯설고 이게 도대체 뭐지? 라는 생각이었는데 어쨌든 공부를 통해 극복했었고 다행히 Node.JS역시도 npm이라는 패키지 매니저를 통해 거의 유사하게 개발 환경을 가져가는 점 덕에 보다 빠르게 적응해냈다.

1. JSP로 개발할때와 무엇이 달랐나?

첫째로 URL매핑이 달랐다. JSP로 개발할때는 내가 코드를 작성중인 현재위치를 기준으로 프론트단에서 링크를 작성해주면 그만이었다. 하지만 Node.JS는 정적폴더위치를 express.js의 use메서드를 통해 기준을 정해주고 그 기준을 토대로 프론트단의 링크 설정이 이뤄져야했다. 전혀다른 부분이라 리팩토링 전에는 당연히 프론트는 그다지 손댈일이 없겠지 했는데 view가 다깨져나오길래 황당했었다. 덧붙여서 페이지을 직접 짜는건 JSP개발당시 못겪어본 새로운 경험이었다.(스프링 단으로 올라가면 아마 서블릿 어노테이션을 통해 직접적인 관리방법이 있는 모양이긴하지만)

둘째, 다른 IDE를 사용해 개발했다. JSP는 이클립스IDE를 통해 개발했고 이번 Node.JS는 VScode라는 IDE로 개발했는데 전체적인 개발툴의 가독성이 너무 좋았다. 한눈에 알아볼수 있다고 해야하나? 생산성 면에서 확실히 뛰어난 점을 느낄 수 있었다.

셋째, 뛰어난 생산성과 반비례하는 유지보수였다. 자바스크립트는 자바와는 달리 동적 타입과 더불어 함수의 매개변수 조차 함수로 집어넣을 수 있는 콜백함수라는 무시무시한 방법들이 동원되어 코드를 짤수 있었다. 때문에 stack trace를 읽는다해도 이게 뭐가 잘못된건지 알아내기가 자바보다 굉장히 어려웠다. 호이스팅이 뭔지조차도 모르고 무작정 덤벼들었다면 아마 리팩토링을 포기했을지도..ㅋㅋ 생산성과는 반비례하는 이러한 유지보수문제로 인해 코드 컨벤션의 중요성이 매우매우매우 중요한 언어라는점을 느꼈다.(농담아니라 코드 줄이 수백줄 넘어가게되면 아예 손을 못대는 지경이 될수 있다)

넷째, 배포된 서비스의 코드를 손보기가 쉬웠다. JSP는 한번 톰캣에 배포되어 가동되고있는 서비스를 손보기가 상당히 껄끄러운 반면에 Node.JS는 express에 힘입어 서버가 돌아가고 있는 중에도 코드 수정 후 저장시에 자동으로 서버가 재시작을 하는 점과 더불어 .war파일로 재생성할 필요가 없다는 점이 정말 편했다.

결론적으로 느낀점은 JSP는 뭔가 이리뛰고 저리뛰고 아주 만능이 되어야 했던 느낌인데 Node.JS는 그런 부분에서는 비교적 수월한 느낌이었다(어디까지나 비.교.적.. ㅎㅎ).

2. 그럼 기존 사이트와 무엇이 구체적으로 달라졌나?

보안이 확실히 강화되었다.

  • 회원가입시 비밀번호의 암호화처리
  • http에서 https로 전환
  • 서버 사이드에서의 철저한 admin 정보 은닉화

JSP사이트는 회원가입시 비밀번호는 고스란히 본 형태 그대로 저장되도록 되어있었다. 또한 도메인이 클로킹 형식으로 설정되어있어 접속에 각종 오류가 있었고 데이터베이스 정보까지 고스란히 노출시키는 사태도 있었다..(지금은 최소한 이정도는 JNDI로 DB커넥션 로직을 수정하면서 노출 안되도록 강화시켜놓았다)
아무튼 이점을 거울삼아 이번 Node.JS 사이트 에서는 https인증서까지 발급해가며 패킷 암호화처리까지 보안을 확실히 했다.

3. 마무리 멘트

현재 제 리눅스 centos8 서버에서 서비스 돌아가고 있으니 프로젝트 사이트는 상시 접속 가능합니다. Node.JS 개발자 채용중이신 오너들께서는 많은 관심 부탁드립니다.
TEL : 010-5947-0804
e-mail : goalddaerinae@gmail.com
편하실때 언제든 연락 가능하며 부산권역 내에서 오프면접 환영하며 전국단위 화상면접 가능합니다.

profile
방랑자의 현장에 오신걸 환영합니다.

0개의 댓글