[APIKeyPER] 기획

곽재훈·2024년 12월 8일

1. 개요

내가 쓰려고 만드는 앱!
코딩을 공부하다보면 점점 발급받는 API 키들이 많아진다. 보통 유효기간을 설정하지 않고 사용하는 것보다 유효기간을 설정하는 게 안전하니까 설정해놓고 쓰는 편인데, 엑셀같은 곳에 저장해놓고 봐도 매번 들여다보는 게 불편해서 이걸 앱으로 만들어 유효기간이 만료될 때가 되면 알림으로 받을 수 있게 만들고 싶었다.

그래서 포폴 프로젝트 만들기 전에 아예 백엔드부터 프론트엔드까지 혼자 만들어보고 싶었다! 물론 큰 프로젝트는 아니고 아주 작은 기능으로 포커싱해서 내가 감당할 수 있는 수준으로만 만들려고 한다.


2. 기능

1) API KEY 관리

  • API Key의 정보를 저장, 수정, 삭제, 조회 가능.

2) Web Push Notification

  • 만료기간이 다가오면 사용자에게 웹 푸시 알림 발송.

3. 중점을 둔 요소

1) 회원가입 / 로그인 / 인증, 인가

  • 로그인 / 회원가입은 평범한 기능이라서 보통은 주요 기능에 포함되지 않는데, 나는 이번이 첫 node 프로젝트고 JWT Token을 활용해서 직접 회원가입 로그인을 구현하려고 해서 이번에는 메인 기능에 넣었다!

2) PWA - Background Push 알림

  • PWA로 구현하여, 모바일에서 앱처럼 기능하고 만료가 임박한 API Key들에 대해 모바일에서도 알림을 받을 수 있도록 구현하고 싶었다. 대부분 API Key들에 대한 설정은 데스크탑에서 많이 하겠지만, 정보 조회나 알림을 받는 일은 모바일에서 이루어지는 비율이 더 많을 것 같았다.

3) crypto 양방향 암호화

  • crypto lib를 사용해서 API Key를 암호화하여 DB에 저장하고, 사용자가 필요로 하는 경우에는 이를 다시 복호화하여 사용자에게 제공할 수 있도록 보안 방식을 양방향 암호화로 구현했다.

백엔드는 Node JS로 진행한다. express lib를 사용할 예정이다.
프론트엔드는 Next JS로 진행한다. 앱 특성상 로그인하지 않으면 기능을 이용할 수 없어서 그냥 React로 진행하려고 했다. 그런데 보안 관련 기능들을 구현하려면 front에서 SECRET_KEY 들을 환경변수로 관리해야 하는데, 이를 위해서는 Next JSRoute Handler를 활용해야 할 것 같아서 Next JS를 쓰기로 했다.


일단 이렇게 방향성을 잡고 프로젝트를 진행하고 있다! 중간중간에 변경되는 부분이 생길 수 있고, 처음 해보는 기능들이 많지만, 2주 안에 완성하는 게 목표!

profile
개발하고 싶은 국문과 머시기

0개의 댓글