Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 5.06 KB

local-development.md

File metadata and controls

59 lines (43 loc) · 5.06 KB

EFY 로컬 개발 안내

로컬 실행

  1. src/main/resources/application-secret.properties.example을 복사해서 application-secret.properties로 이름을 바꾼다.
  2. 팀 페이지에서 공유된 비밀값(jwt.secret, toss.secret-key, supabase.*)을 채운다.
  3. ./gradlew bootRun 또는 IntelliJ에서 EfyApplication을 실행한다.
주소 용도
http://localhost:8080/swagger-ui/index.html API 문서
http://localhost:8080/h2-console H2 콘솔 (JDBC URL: jdbc:h2:mem:gosuDB)

프론트엔드

  1. frontend/.env.example을 복사해 frontend/.env.local을 만들고 VITE_TOSS_CLIENT_KEY(토스 테스트 클라이언트 키)를 채운다.
  2. 백엔드를 먼저 실행한 뒤 frontend 폴더에서 npm install, npm run dev를 실행한다.
  3. http://localhost:5173에 접속한다. /api, /ws 요청은 개발 서버가 8080으로 넘긴다.

로컬 테스트 계정

기존 계정 6개를 유지하고 팀원별 일반 계정 30개, 탈퇴 테스트용 고객 5개, 홈 화면 노출용 고수 샘플 계정 18개(profile101~profile120@example.com 중 18개)를 추가해 총 59개를 구성한다. 공통 비밀번호는 1234이며 DB에는 BCrypt 해시로 저장한다. 로컬 H2 테스트 전용이며 배포용 계정으로 사용하지 않는다.

아래 번호는 customer·expert·admin에 동일하게 사용한다. 예를 들어 11번은 customer11@example.com·expert11@example.com·admin11@example.com이다. 팀원당 일반 계정은 고객 2개·고수 2개·관리자 2개이며 탈퇴용 고객 1개를 별도로 사용한다.

사용 구분 고객·고수·관리자 공통 번호 탈퇴 테스트 전용 고객
팀원 1 · 10번대 11·12 customer19@example.com
팀원 2 · 20번대 21·22 customer29@example.com
팀원 3 · 30번대 31·32 customer39@example.com
팀원 4 · 40번대 41·42 customer49@example.com
팀원 5 · 50번대 51·52 customer59@example.com

탈퇴용 계정은 처음에는 정상 USER 상태이다. 회원 탈퇴 검증에 사용하고 일반 화면 테스트용 계정과 구분한다. 초기 역할별 수는 고객 17개·고수 31개(샘플 18개 포함)·관리자 11개이다. 고수 샘플 계정은 각각 20크레딧을 가진다.

기존 계정 테스트 조건
customer1@example.com 기존 요청서·견적 연결 확인
customer2@example.com 기존 만료 요청서·견적 조건 확인
admin1@example.com 기존 관리자 API 확인
expert1@example.com 이사·입주 청소 / 대표 이사 / 강남구·서초구. 초기 10크레딧 중 기존 견적 2건에 4크레딧 예약
expert2@example.com 개발 외주·이사 / 대표 개발 외주 / 서초구. 초기 2크레딧 전액 예약으로 추가 견적 발송 시 크레딧 부족 확인
expert3@example.com 프로필 없는 예외 검증 전용. 본인 프로필·받은 요청 조회 404 예상

신규 고수의 제공 서비스는 끝자리 1번이 이사·입주 청소(대표 이사), 2번이 이사·개발 외주(대표 개발 외주)이다. 1번은 표의 개별 시군구, 2번은 해당 시도 전체에서 활동한다.

팀원 1번 고수 활동 지역 2번 고수 활동 지역 1번 고수 견적 2번 고수 견적
1 · 11/12 서울 강남구 서울 전체 미발송 SENT 1건
2 · 21/22 부산 중구 부산 전체 SENT 1건 REQUESTED 1건
3 · 31/32 대구 중구 대구 전체 SENT 2건 SENT 1건·REQUESTED 1건
4 · 41/42 인천 제물포구 인천 전체 SENT 1건 미발송
5 · 51/52 대전 동구 대전 전체 SENT 2건 REQUESTED 1건

팀원별 고객 1번에는 이사 OPEN·개발 외주 CLOSED 요청서, 고객 2번에는 입주 청소 OPEN·개발 외주 요청서를 저장한다. 고객 2번의 개발 외주는 2·3·5팀에서 MATCHED이고 나머지는 OPEN이다. 요청서마다 질문 답변을 포함한다. 신규 고수는 지역·서비스 조건에 맞는 요청만 받아 팀원별 목록이 구분된다. 종료 요청서는 받은 요청·내 요청 목록에서 제외된다.

신규 고수의 초기 지급 기준은 20크레딧이다. SENT는 건당 2크레딧 예약, REQUESTED는 건당 2크레딧 차감과 USE 내역·채팅방·참여자까지 연결한다. 미발송은 견적 행이 없는 상태이며 별도의 견적 상태 코드는 아니다. 탈퇴 전용 계정에는 요청서와 견적을 넣지 않는다.

기존 회원 6명의 ID·역할과 요청서·견적·크레딧 연결은 유지한다. 신규 계정은 시드 마지막에 추가한다. 서버를 재시작하면 H2 데이터와 테스트 중 변경한 잔액·역할·탈퇴 상태도 초기화된다. 위 예약액은 초기 로딩 기준이며 만료 처리나 테스트 진행 후 달라질 수 있다.