15편까지는 테스트를 했고 지금부터는 내일 19시 30분에 있는 코어타임 전까지 테스트를 돌리며, 약간의 시간이 남을 때는 JWT토큰 관련 작업을 할 예정이다. 이거는 메서드 하나만 분리해주거나 JWTFilter에 메서드 추가만해주면 되는거라 크게 복잡하지는 않을 예정이다.
추가로 또 권한이 없는 사용자나 잘못된 응답이 올 경우에는 원래는 매 경우마다 ResponseEntity를 반환했는데 그 방식보다 에러를 터치게 해서 전역 Exception 처리를하도록 변경할 예정인데.. 이거는 서비스의 모든 클래스를 순회하면서 처리해야하기 때문에 우선은 잠깐 미룰 예정이다.
테스트할 기능 목록
1. 회원가입
1-1. 아이디 중복확인
1-2. 닉네임 중복확인
1-3. 이메일 인증보내기 및 인증번호 확인
1-4. 중복회원가입 방지
2. 투표하기
2-1. 가게정보등록
2-2. 투표목록에 가게 등록
2-3. 월별투표조회하기 / 지난투표조회하기
2-4. 내 투표 조회하기
2-5. 월말에 투표용 가게 테이블을 비우고 과거 투표테이블로 이동시키고 득표수 3개를 STORE FOR SELECTED 테이블로 이동시키기
이정도?
1. 회원가입 관련 기능 테스트

MEMBER 테이블에 회원하나를 등록해두고 시작한다.
1-1. 아이디 중복확인
아이디란 USER_ID이다. (회원가입, 로그인 할 때 아이디 / 비밀번호를 입력하는데 그 때의 아이디)


API명세서

중복일 경우

안중복일경우

?? 이건 고쳐야겠다.
MEMBER 테이블은 기존에 JDBC를 쓰다가 JPA로 바꿨는데 true / false 값을 반대로 적용시켰다. 그래서 처음에 중복되지 않는데 중복되었다고 떠버린거;;
1-2. 닉네임 중복확인

API명세서

중복된 경우
아이디 → 닉네임으로 수정하기

안중복인경우
이것도 JPA 교체과정에서 생긴 약간의 오류를 수정함
1-3. 이메일 인증보내기 및 인증번호 확인

API명세서

홍익대 재학생 이메일이 아닐 경우
이거 API명세서에 없는데 추가해야할 듯


메일 보내기 성공
PC에서 지메일에 안들어가져서 스마트폰으로 캡처

API 명세서

인증번호가 다른경우

맞는 경우
validity가 true인 경우에만 회원가입 가능

인증 후에는 DB에서 인증번호가 삭제되기에 다시 인증번호를 치면 오류가 발생한다.
1-4. 중복회원가입 방지하기

어제 추가한 기능
잘 돌아간다.

근데 JPA 메서드에서 UserIdANDEmailAndNickname 방식으로 가져오기 때문에.. 셋 중에 하나라도 기존 DB와 다르다면 회원가입이 가능하다.

수정함
로그인

성공
userId와 password만 보기 때문에 email과 nickname은 어떻게되든 상관없다.
이로써 회원가입 / 로그인 기능에 대한 테스트를 완료했다
2. 투표하기
2-1. 가게정보등록

API명세서

중복으로 등록한 경우

유효성검사가 왜 꺼져있지?
며칠 전에 에러 수정하다가 유효성 검사를 꺼버렸는데 그거 때문인 것 같다. 이건 고쳐야할 듯
2-2. 투표목록에 가게 등록
이건 굳이 검사하지 않을 예정. 이러면 나중에 투표 기능 테스트에 영향도 끼치고 간단한 기능이니까 나중에 테스트해보기로
2-3. 월별투표조회하기 / 지난투표조회하기
2-4. 내 투표 조회하기
2-5. 월말에 투표용 가게 테이블을 비우고 과거 투표테이블로 이동시키고 득표수 3개를 STORE FOR SELECTED 테이블로 이동시키기
이거는 Scheduled 어노테이션 테스트를 하면서 여러 번 해봤으므로 통과
어차피 Scheduled 어노테이션 테스트를 또 할거라 그때하기로 한다.
개발할 기능 목록
- 아이디 / 비밀번호 찾기
- MEMBER 테이블에 프로필 사진을 추가해야할까? → 코어타임 때 물어보기
- STORE 관련 DB 정규화
- STORE_FOR_VOTE 테이블에서 자동으로 값을 추가시키기
- 후보추천게시글에서 좋아요를 가장 많이 받은 가게 DB등록하기.. 후보추천게시글 만들기 생각해보니까 이걸 안만들었네. 내일 만들어야겠다.
- OAuth 기능 되살리기 - DB연동시키기
- 관리자 기능 관리자만 받기
- 투표용 가게 등록 DB 정규화와 유효성 검사 추가
- 상점 등록에 유효성 검사 추가
개선할 기능 목록
- 아이디중복확인에서 쿼리파라미터로 온 Id가 없을 때 오류 터지게하기
- 닉네임중복확인에서 닉네임이 기존 회원가 겹칠 경우 에러메시지를 "동일한 닉네임이 이미 있습니다."로 수정하기
- 홍익대학교 재학생 이메일이 아닐 경우 오류메시지 API명세서에 추가하기
이정도.. 사실 귀찮다 졸려 한 수백 번 본 코드들과 기능들이라 지루하다 그래도 테스트를 하지 않으면.. 실제 서비스에서 어떤 오류가 터질지 몰라...............
암튼 이거 가지고 내일부터 쭉 디버깅을 할 예정
책은 언제 읽냐 헤드퍼스트와 스프링인액션 내용을 까먹을 지경이야;
'팀 프로젝트 > [2025][GDG]홍대 맛집 아카이빙 프로젝트' 카테고리의 다른 글
| [GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #6.2. - Redis (1) | 2025.08.11 |
|---|---|
| [GDG]홍대 맛집 아카이빙 프로젝트 #17 - 테스트 디버깅 (3) | 2025.08.10 |
| [GDG]홍대 맛집 아카이빙 프로젝트 #15 - 투표기능 마무리도전하기 (4) | 2025.08.09 |
| [GDG]홍대 맛집 아카이빙 프로젝트 #14 - 기타 투표기능 개발 (4) | 2025.08.08 |
| [GDG]홍대 맛집 아카이빙 프로젝트 #13 - 투표기능 (6) | 2025.08.06 |