내가 쓰려고 만드는 앱!
코딩을 공부하다보면 점점 발급받는 API 키들이 많아진다. 보통 유효기간을 설정하지 않고 사용하는 것보다 유효기간을 설정하는 게 안전하니까 설정해놓고 쓰는 편인데, 엑셀같은 곳에 저장해놓고 봐도 매번 들여다보는 게 불편해서 이걸 앱으로 만들어 유효기간이 만료될 때가 되면 알림으로 받을 수 있게 만들고 싶었다.
그래서 포폴 프로젝트 만들기 전에 아예 백엔드부터 프론트엔드까지 혼자 만들어보고 싶었다! 물론 큰 프로젝트는 아니고 아주 작은 기능으로 포커싱해서 내가 감당할 수 있는 수준으로만 만들려고 한다.
JWT Token을 활용해서 직접 회원가입 로그인을 구현하려고 해서 이번에는 메인 기능에 넣었다!PWA로 구현하여, 모바일에서 앱처럼 기능하고 만료가 임박한 API Key들에 대해 모바일에서도 알림을 받을 수 있도록 구현하고 싶었다. 대부분 API Key들에 대한 설정은 데스크탑에서 많이 하겠지만, 정보 조회나 알림을 받는 일은 모바일에서 이루어지는 비율이 더 많을 것 같았다.crypto lib를 사용해서 API Key를 암호화하여 DB에 저장하고, 사용자가 필요로 하는 경우에는 이를 다시 복호화하여 사용자에게 제공할 수 있도록 보안 방식을 양방향 암호화로 구현했다.백엔드는 Node JS로 진행한다. express lib를 사용할 예정이다.
프론트엔드는 Next JS로 진행한다. 앱 특성상 로그인하지 않으면 기능을 이용할 수 없어서 그냥 React로 진행하려고 했다. 그런데 보안 관련 기능들을 구현하려면 front에서 SECRET_KEY 들을 환경변수로 관리해야 하는데, 이를 위해서는 Next JS의 Route Handler를 활용해야 할 것 같아서 Next JS를 쓰기로 했다.
일단 이렇게 방향성을 잡고 프로젝트를 진행하고 있다! 중간중간에 변경되는 부분이 생길 수 있고, 처음 해보는 기능들이 많지만, 2주 안에 완성하는 게 목표!