[개발기] 시큐리티 강화
supabase RLS (row level security)를 적용하고 시큐리티를 강화했습니다.
https://supabase.com/docs/guides/database/postgres/row-level-security
처음에는 구현사항이 동작하는지 확인하기 급급해서 로그인 여부와 상관없이 서버에 저장했는데,
이렇게 하니까 주소를 알면 다른 사람의 영수증도 확인할 수 있게 되어 안되겠다 싶어서 구조를 변경하였습니다.
기능 하나하나 테스트하고 정상동작 확인을 했었는데, 서버 바꾸자마자 원래 되던 것들이 하나도 동작하지 않아서 이때는 정말 멘붕이었습니다 ㅠ
헤더에 auth 추가하지 않아 로그인을 해도 데이터 조회가 안되는 이슈
useEffect 잘못 사용해서 데이터가 여러개 저장되는 이슈
비로그인 사용자 로컬 스토리지 저장하며 비동기 호출로 바꿔 제미나이 분석 결과 업데이트 안되는 이슈
등 여러 시행착오를 겪으며 수정하고, 로그인 한 사용자만 본인 데이터만 조회할 수 있도록 했습니다.
(이거 고치는데만 2주 넘게 걸렸네요;;;)
그래서 지금은 google oauth 인증 + supabase rls 보안 + aws (아마존 웹서비스 저장)하는 형태로 만들었습니다.
웹페이지만 보면 이해가 안 되실 수도 있을 것 같아 간략하게 설명 드리자면
처음에 일본 여행 갔다가 편의점 영수증 이해할 수가 없어서 제미나이 연결해서
영수증 분석하고 번역하고 환율 계산하게 비전 랩 메뉴로 만들었습니다. https://aimuseum.net/vision
영수증 분석이 되면 항목들이 인벤토리 랩에 추가되고 유통기한 관리가 되게 하여 마트 영수증등을 이용할 수 있도록 했습니다. https://aimuseum.net/inventory
지구본 모양 아이콘 눌러서 언어와 통화 대략 14개국 추가하고 선택 언어와 통화로 바꿔주도록 했습니다.
일본 라멘등 음식 사진 헬스 랩에 올리면 칼로리 분석하게 했습니다. https://aimuseum.net/health
파이낸스 랩 만들어서 주식 포트폴리오 입력하고 관리 할 수 있게 했습니다.
채팅 기능 만들어 6가지 컨셉으로 제미나이에 질문할 수 있게하고 개발자에게 제안하는 메뉴도 만들었습니다.
퇴근하고 시간 쪼개가며 만들기는 했는데, 아직도 부족한 부분이 많은 것 같기는 합니다.
그리고 이번에 공부를 많이 하게 된 것 같고 많이 배우게 된 것 같습니다.
다들 즐거운 개발하시기를 바라고 응원합니다~