
화면



주요 기능
레벨 가중 별점
리뷰를 꾸준히 쓰고 도움을 받을수록 레벨이 올라가고, 레벨이 높은 사람의 별점이 평점에 더 크게 반영됩니다.
업장·인물·제품 둘러보기
대분류별로 업장·인물과 제품을 훑어보고, 이름으로 바로 찾을 수 있습니다.
랭킹
요즘 가장 뜨거웠던 대분류와 업장·인물을 순위로 보여 주며, 순위는 주기적으로 갱신됩니다.
평점 분포와 리뷰 필터
제품마다 점수별 분포를 보여 주고, 별점·작성자 레벨·작성 기간·사진 유무로 리뷰를 걸러 볼 수 있습니다.
소셜 로그인
구글·카카오·네이버 계정으로 간편하게 로그인하고 리뷰를 남깁니다.
기술 스택
- Next.js
- React
- TypeScript
- MySQL
- Tailwind CSS
- Vitest
- Playwright
들어 있는 기능
안정성 · 운영
헬스 체크 · 장애 경보서비스 상태와 정기 작업이 살아 있는지 주기적으로 점검하고, 원인이 남아 있는 동안은 경보를 계속 보내 장애가 묻히지 않습니다.
정기 DB 백업서비스 데이터는 매일 일관된 스냅샷으로 정기 백업합니다.
별도 장비 없는 작업 큐백그라운드 작업을 데이터베이스 하나로 안전하게 돌리며, 같은 작업이 두 번 실행되지 않습니다.
멈춘 작업 자동 복구작업이 살아 있다는 신호를 계속 남겨, 중간에 죽은 작업은 자동으로 되살려 영영 멈추는 일이 없게 합니다.
실패한 작업 재시도일시적인 장애로 실패한 작업은 간격을 점점 늘려 다시 시도해, 작업을 잃지 않으면서 서버 부담도 줄입니다.
보안 · 계정
소셜 로그인구글·카카오·네이버 계정으로 로그인하며, 제공자마다 다른 절차를 한 모듈로 통일해 다룹니다.
데이터 · 동기화
고칠 수 없는 점수 기록점수와 활동 이력은 수정·삭제 없이 추가만 되도록 코드 수준에서 막고, 되돌릴 때는 반대 기록을 남깁니다.
중복 없는 경험치 지급재시도나 중복 요청이 와도 경험치는 한 번만 지급되고, 취소하면 반대 기록으로 정확히 되돌립니다.
안전한 중복 항목 병합같은 대상이 중복 등록됐을 때 한 번의 안전한 처리로 합치고 병합 기록을 남기며, 서로 엉켜 멈추는 일이 없습니다.
동시에 써도 한 번만같은 사람이 같은 대상에 리뷰를 동시에 여러 번 제출해도 하나만 남고, 처리가 서로 막히지 않습니다.
검색 · 노출
띄어쓰기에 강한 한글 검색띄어쓰기가 달라도 찾아지는 전문 검색을 쓰고, 검색어가 짧거나 결과가 없을 때만 부분 일치로 한 번 더 찾습니다.
나눠 만든 사이트맵페이지가 많아도 사이트맵을 나눠 만들어 검색 노출을 돕고, 공개 전에는 검색 수집을 설정으로 막아 둘 수 있습니다.
공유용 미리보기 이미지링크를 공유하면 업장·제품마다 서버가 그려 낸 전용 미리보기 이미지가 나타납니다.
배포 · 품질
다층 자동 테스트단위·통합·화면 전체 흐름 테스트에 접근성 검사까지 더해, 고친 곳이 다른 곳을 깨뜨리지 않는지 단계별로 확인합니다.
구성도
- 웹 브라우저nr.finecode.co.kr
- 네이키드리뷰 서버Next.js
- MySQL리뷰 · 점수 기록
- 네이키드리뷰 서버백그라운드 작업 요청
- 작업 큐MySQL 표
- 작업 실행기순위 갱신 등
- 주기 점검상태 · 정기 작업
- 장애 경보
웹 화면과 서버는 하나의 MySQL 을 공유하고, 순위 갱신 같은 백그라운드 작업도 별도 장비 없이 같은 데이터베이스의 작업 큐로 처리합니다.
운영 · 배포
- 주기 점검이 서비스 상태와 정기 작업의 생존 기록을 확인하고, 원인이 남아 있는 동안은 경보를 계속 보냅니다.
- DB 는 매일 정기 백업합니다.
- 백그라운드 작업은 멈추면 자동으로 되살리고, 실패하면 간격을 늘려 다시 시도합니다.
- 단위·통합·화면 전체 흐름 테스트와 접근성 검사로 변경을 단계별로 확인합니다.