NodeJS 템플릿을 만들어보며
🤔회고/프로젝트 회고

NodeJS 템플릿을 만들어보며

반응형

https://devent.tistory.com/141

 

NodeJS 템플릿 개발기

I. 개발 동기  개발 동기를 3가지로 정리하자면 반복적인 코드 귀찮음 예) 로그인/인증 로직 라우터 몰빵 습관 개선 의지 내가 짠 코드 오픈소스화  '그동안 발로 짠 코드가 많아서 이번 기회에

devent.tistory.com

 

🖥 바퀴를 재발명하지 말자

 

 앞선 글에 나와있듯이 자동차를 만들기 위해 바퀴를 재발명할 필요는 없다. 반복적인 일을 줄이기 위해서는 한 번 발명했던 기술을 공식화하여 누구나 쉽게 사용할 수 있도록 해야 한다. 마치 수학자들이 수학 공식을 만들듯, 개발자 또한 템플릿화를 해놓으면 편하다.

 

 대부분의 상용 서비스들은 고만고만하다. 커뮤니티, 채팅 앱, 정보공유 서비스 등등 무수한 웹서비스들은 모두 프론트/백엔드로 구성되어있다. 프론트에는 웹 프레임워크, UI&UX, 백엔드 통신, 디자인 시스템, 사용자 인터렉션처럼 바로 보이는 화면을 주로 다룬다. 이어 백엔드에서는 회원가입 처리, 인증, API 등을 다룬다. 이와 같은 로직에는 별다른 기술적 차이가 없다. 데이터베이스 CRUD를 응용하면 그만이다. 그럼에도 불구하고 각 서비스마다 로직이 통일되지 않는다. 

 

 매번 사람의 생각이 똑같다는 건 불가능하다. 1년 전의 생각은 오늘의 생각과 다르고 그 사이 새로운 기술을 습득했을 수도 있다. 더 효율적인 방법과 체계적인 가이드라인이 있어도 코드를 유기적으로 유지시키는 건 힘든 일이다. 그렇기에 표준이 필요하고 코드의 통일이 필요하다.

 

 내가 개인적으로 진행하는 사이드 프로젝트의 경우 주먹구구식으로 개발했었다. 이번 템플릿을 개발하기 전부터는 깃허브도 사용하지 않았다. 모든 개발은 로컬에서 진행했고 코드를 USB에 담아 노트북 서버로 전송했다. (...)

 

 이 같은 과정은 몹시 비효율적이었고 개선이 시급했다.

 

 

🖨 지금의 개발과정

 

 지금의 개발과정은 전에 비해 정말로 간결해졌다. 깃허브 템플릿을 기초로 하여 프론트엔드와 백엔드 로직을 구성하고 부분적으로 수정하기만 하면 된다. 개발부터 실행까지 npm init를 하거나 프로젝트 로직을 새로 구성할 필요가 없어졌다. 

 

 추후 배포 과정에 대해서도 다룰 예정인데 개발과정만큼 배포과정 또한 간편해졌다. 관련한 오픈소스는 다음 링크를 참고하면 된다.

 

https://github.com/Team-DeVent/devent-deploy

 

GitHub - Team-DeVent/devent-deploy: Auto Deployment Service with Docker

Auto Deployment Service with Docker. Contribute to Team-DeVent/devent-deploy development by creating an account on GitHub.

github.com

 

 

⚙️ 회원 로직의 표준화

 

 그동안 가입, 로그인 로직을 구현하면서 각기 다른 로직과 인증 과정을 거쳤다. 지금까지 개발했던 서비스마다 JWT토큰 만료시간을 다르게 설정하기도 하고 데이터베이스 로직이 다르기도 했다. 이와 같은 기술을 처음부터 구현하기에는 시간낭비도 있었지만 무엇보다 표준화가 필요했다.

 

인증
1. JWT 토큰 사용
2. req.headers['x-access-token']; 미들웨어 인증
3. 회원 핸들링은 Rest API원칙을 준수
4. 로그인 정보는 Base64인코딩 후 전송

이렇듯 코드의 표준화를 정의하고 나니 개발하기에 조금 더 수월했다. 

 

 

📋 프로젝트 이후

 

https://github.com/Team-DeVent


 

 

 깃허브 레포지토리 중 대부분 이 프로젝트를 기반으로 만들어졌다. 처음부터 제대로 된 바퀴를 발명하고 편하게 개발할 수 있었다. 덕분에 불필요한 개발 과정을 생략하고 프로젝트의 기능과 완성도에 초첨을 맞출 수 있게되었다.

반응형