변세민

프론트엔드 개발자 · React / Next.js

변세민

화면만이 아니라 데이터 설계와 배포까지, 서비스를 처음부터 끝까지 만들어 봤습니다.

대표 작업

분위기로 찾는 카페 · 2026.03 - 현재

Next.js 16 · TypeScript · React 19 · Prisma ORM · Supabase PostgreSQL · Redux Toolkit

Mooda 모바일 카페 목록: 카페 사진, 거리, 분위기 태그가 붙은 카드Mooda 모바일 카페 상세: 매장 사진과 투표 수가 붙은 분위기 태그

분위기 태그 기반 카페 발견 지도 서비스. 7개 분류 53가지 분위기·목적 태그로 원하는 카페를 찾아주는 웹앱

분위기 태그 확대: 조용한 72, 브런치 62, 주차가능 52 등 태그별 투표 수
사용자가 태그에 투표하면 숫자가 쌓이고, 많이 받은 태그가 그 카페의 분위기가 됩니다.

Mooda에서 해결한 문제

  1. 지도를 끄는 동안 이동 이벤트마다 검색 조건이 바뀌어 API 요청과 DB 조회가 쏟아졌다.

    해결지도가 멈추고 0.4초 뒤에만 위치를 반영(디바운스)하고, 화면이 15% 넘게 이동하거나 줌이 20% 넘게 바뀐 경우만 새 영역으로 인정했다. 자동 재검색 대신 '이 지역 재검색' 버튼을 둬서 사용자가 원할 때만 조회한다.

  2. 서버 렌더링 시점에 찜·투표 상태를 몰라서, 상세 페이지 첫 화면이 항상 '찜 안 함'으로 보였다.

    해결서버 컴포넌트에서 찜·투표 기록을 Promise.all로 동시에 조회해 첫 화면부터 맞는 상태로 그렸다.

  3. 로컬에서는 Redis 캐시가 정상 동작했지만, Vercel에는 Redis 서버가 없어 배포 후 요청마다 연결 재시도로 응답이 늦어졌다.

    해결Redis 주소가 설정되지 않은 환경에서는 연결을 시도하지 않도록 막았다. 운영에서는 네이버 블로그·구글 리뷰 결과를 만료 시간이 있는 DB 캐시 테이블로 재사용하고, 로컬에서는 그 앞에 Redis를 한 단계 더 둔다.

다른 작업

전체 프로젝트

함께 일할 팀을 찾고 있습니다.

popqr1@gmail.com