Skip to content

Commit

Permalink
[Refactor] 추첨 서비스 리팩토링 (#129)
Browse files Browse the repository at this point in the history
* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* [Refactor] 공유 url 조회하는 api 수정 (#70)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* refactor: 공유 url 조회하는 레포지토리 변경

- ShareInfoRepository -> ShareUrlInfoRepository

* refactor: 잘못 작성된 메서드 삭제

- findSharedUrlByUserId 삭제

* refactor: 사용되지 않는 shareInfoRepository 삭제

* refactor: 변수명 변경

- sharedUrl -> shareUrl

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

---------

Co-authored-by: Son Chanhyeok <[email protected]>
Co-authored-by: hyeokson <[email protected]>

* [Refactor] 공유 url 조회하는 api 수정 (#70)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* refactor: 공유 url 조회하는 레포지토리 변경

- ShareInfoRepository -> ShareUrlInfoRepository

* refactor: 잘못 작성된 메서드 삭제

- findSharedUrlByUserId 삭제

* refactor: 사용되지 않는 shareInfoRepository 삭제

* refactor: 변수명 변경

- sharedUrl -> shareUrl

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

---------

Co-authored-by: Son Chanhyeok <[email protected]>
Co-authored-by: hyeokson <[email protected]>

* [Feature] static �text를 관리하는 enum 구현 (#71)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테이션 추가

* refactor: DayOfWeek 속성 변경

* refactor: 예외 msg를 응답객체 result에 넣도록 변경

* refactor: 변수명 변경

* refactor: DayOfWeek 속성 변경

* refactor: 검증 애노테이션 추가

* refactor: 검증 상수 추가

* refactor: 변수 타입을 래퍼타입으로 변경

* refactor: 클래스명 변경

---------

Co-authored-by: hyeokson <[email protected]>

* �[Refactor] MainPageController 클래스명 변경 (#72)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테이션 추가

* refactor: DayOfWeek 속성 변경

* refactor: 예외 msg를 응답객체 result에 넣도록 변경

* refactor: 변수명 변경

* refactor: DayOfWeek 속성 변경

* refactor: 검증 애노테이션 추가

* refactor: 검증 상수 추가

* refactor: 변수 타입을 래퍼타입으로 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* feat: final 객체 초기화

---------

Co-authored-by: hyeokson <[email protected]>

* [Feature] 메인 페이지 GET API 구현하기 (#73)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테이션 추가

* refactor: DayOfWeek 속성 변경

* refactor: 예외 msg를 응답객체 result에 넣도록 변경

* refactor: 변수명 변경

* refactor: DayOfWeek 속성 변경

* refactor: 검증 애노테이션 추가

* refactor: 검증 상수 추가

* refactor: 변수 타입을 래퍼타입으로 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* feat: final 객체 초기화

* feat: 메인페이지 자동차 정적 정보 응답 dto 구현

* feat: 메인페이지 이벤트 정적 정보 응답 dto 구현

* refactor: 클래스 및 변수명 변경

* refactor: 클래스명 변경

* refactor: 클래스명 변경

* refactor: round 변수 삭제

* feat: 인증검사를 하지 않는 url 추가

* feat: 메인 페이지 컨트롤러 구현

* feat: 메인 페이지 service 클래스 구현

* feat: 정적자원util 클래스 초기화 메서드 구현

* refactor: enum 변수명 수정

* refactor: Fcfs 당첨자 수 수정 로직 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feature] 어드민 회원가입 기능 구현 (#75)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: 어드민 회원가입 요청 dto 구현

* feat: swagger controller 구현

* feat: 어드민 회원가입 controller 메서드 구현

* feat: 어드민 로그인 요청 dto 수정

* feat: 어드민 회원가입 기능 구현

* feat: 메서드 추가

- 특정 account에 대한 데이터가 admin 저장소에 있는지 확인하는 메서드 구현

* feat: swagger, admin url 추가

* feat: swagger 서버 주소 변경

* feat: cors 설정

---------

Co-authored-by: hyeokson <[email protected]>

* [Feature] 특정 url에 대해 인가 검사 하지 않도록 구현 (#76)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: 어드민 회원가입 요청 dto 구현

* feat: swagger controller 구현

* feat: 어드민 회원가입 controller 메서드 구현

* feat: 어드민 로그인 요청 dto 수정

* feat: 어드민 회원가입 기능 구현

* feat: 메서드 추가

- 특정 account에 대한 데이터가 admin 저장소에 있는지 확인하는 메서드 구현

* feat: swagger, admin url 추가

* feat: swagger 서버 주소 변경

* feat: cors 설정

* feat: 특정 url에 대해서 인가 검사 하지 않도록 구현

---------

Co-authored-by: hyeokson <[email protected]>

* [Refactor] 공유 url 조회하는 api 수정 (#70)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* refactor: 공유 url 조회하는 레포지토리 변경

- ShareInfoRepository -> ShareUrlInfoRepository

* refactor: 잘못 작성된 메서드 삭제

- findSharedUrlByUserId 삭제

* refactor: 사용되지 않는 shareInfoRepository 삭제

* refactor: 변수명 변경

- sharedUrl -> shareUrl

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

---------

Co-authored-by: Son Chanhyeok <[email protected]>
Co-authored-by: hyeokson <[email protected]>

* [Refactor] 사용자 생성 시 추첨 참여 정보, 공유 링크 정보, 공유 정보 생성 (#78)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* [Refactor] 공유 url 조회하는 api 수정 (#70)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* refactor: 공유 url 조회하는 레포지토리 변경

- ShareInfoRepository -> ShareUrlInfoRepository

* refactor: 잘못 작성된 메서드 삭제

- findSharedUrlByUserId 삭제

* refactor: 사용되지 않는 shareInfoRepository 삭제

* refactor: 변수명 변경

- sharedUrl -> shareUrl

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

---------

Co-authored-by: Son Chanhyeok <[email protected]>
Co-authored-by: hyeokson <[email protected]>

* feat: 유저 생성 시 공유 정보 생성하도록 수정

* feat: 유저 생성 시 추첨 이벤트 참여 정보 생성되도록 수정

* refactor: ShareUrlInfo에 빌더 어노테이션 추가

* feat: List형태로 공유 url 가져오는 메서드 추가

* feat: 중복되지 않는 공유 url 생성 후 DB에 저장하는 로직 추가

* refactor: NoArgsConstructor, AllArgsConstructor 추가

* refactor: GeneratedValue 어노테이션 삭제

* refactor: readOnly false로 변경

* [Refactor] 공유 url 조회하는 api 수정 (#70)

* infra: 빌드 테스트 yml 작성

* infra: DB 정보 추가

* infra: ssh-agent 버전 변경

* infra: known_hosts 추가

* infra: db port 변경

* infra: database test 설정 변경

* infra: DB 환경변수 설정 및 application.yml 생성

* infra: application.yml 동적 생성 스크립트 수정

* infra: 레디스 설정 추가

* infra: redis test 추가

* infra: redis 버전 변경

* infra: redis cli 설치

* infra: application.yml 위치 및 내용 확인

* infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가

* infra: 환경변수 확인 추가

* feat: draw_rank column 이름 수정

* infra: pull_request시 Github Actions 동작하도록 수정

* cicd test (#54)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

* cicd test (#58)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* chore: ci/cd를 위한 커밋

---------

Co-authored-by: hyeokson <[email protected]>

* refactor: 공유 url 조회하는 레포지토리 변경

- ShareInfoRepository -> ShareUrlInfoRepository

* refactor: 잘못 작성된 메서드 삭제

- findSharedUrlByUserId 삭제

* refactor: 사용되지 않는 shareInfoRepository 삭제

* refactor: 변수명 변경

- sharedUrl -> shareUrl

* [Feat] 성공, 실패 상태 코드 수정하기 (#65)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: cors 도메인 설정

* refactor: 커스텀 코드 형식 수정 및 에러코드 수정

- '(에러를 구분하는 알파벳)3자리 숫자' 형태로 커스텀 에러 코드 관리
- 클라이언트에서 에러 코드에 의해 분기되지 않으면 하나의 에러로 관리하도록 변경

* refactor: 하나의 성공 코드로 관리하도록 변경

* rebase: 원본 develop 브랜치와 rebase

* rebase: 원본 develop 브랜치 rebase

* feat: cors 설정에 localhost 추가

* refactor: 함수명 변경

* refactor: 예외 코드 변경

---------

Co-authored-by: hyeokson <[email protected]>

* [Feat]Admin Api 구현 (#67)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* feat: Admin entity 클래스 생성

* feat: Admin exception 클래스 생성

* feat: Admin 로그인 컨트롤러 구현

* feat: Admin 로그인 요청 dto 구현

* feat: Admin 로그인 서비스 클래스 구현

* feat: Admin repository 구현

* feat: 추첨 이벤트 시간 설정 요청 dto 구현

* feat: 추첨 시간 검증 클래스 구현

* feat: 추첨 당첨자 응답 dto 구현

* feat: 추첨 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 응답 dto 구현

* feat: 이벤트 페이지 컨트롤러 구현

* feat: 이벤트 페이지 service 클래스 구현

* feat: 선착순 날짜 검증 클래스 구현

* feat: 선착순 날짜 등록 요청 dto 구현

* feat: 선착순 시간 검증 클래스 구현

* feat: 선착순 당첨자 응답 dto 구현

* feat: 선착순 당첨자 수 수정 요청 dto 구현

* feat: 이벤트 지표 컨트롤러 클래스 구현

* feat: 이벤트 지표 service 클래스 구현

* feat: 메인 페이지 관련 컨트롤러 클래스 구현

* feat: 메인 페이지 응답 dto 구현

* feat: 메인 페이지 service 클래스 구현

* feat: password encoder 구현

* feat: 확률값을 %형태로 바꿔주는 serializer 구현

* feat: 전화번호에 '-'를 붙여주는 serializer 구현

* feat: 추첨 시간 검증 애노테이션 구현

* feat: 선착순 날짜 검증 애노테이션 구현

* feat: 선착순 시간 검증 애노테이션 구현

* feat: 당첨 관리 페이지 컨트롤러 클래스 구현

* feat: 당첨 관리 페이지 service 클래스 구현

* config: Bcrypt 의존성 설정

* refactor: winningDate 변수의 자료형 변경

* feat: Draw, User를 조회하는 메서드 구현

* refactor: 변수명 변경

* feat: Transactional 애노테이션 추가

* refactor: 자료형 변경 및 시간 관련 변수 분리

* refactor: 자료형 변경

* feat: eventDate 변수 추가

* feat: EventParticipation 조회 메서드 구현

* feat: round값으로 Fcfs 조회하는 메서드 구현

* feat: @setter 애노테이션 추가

* docs: TODO 추가

* refactor: 클래스명 변경

* refactor: 패키지 변경

* refactor: 패키지 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 및 변수명 변경

* refactor: 클래스명 변경

* refactor: Refresh Token을 삭제하는 메서드 구현

* refactor: 커스텀 코드값 변경

* refactor: 검증 관련 상수 추가

* style: 코드 형식 맞추기

---------

Co-authored-by: hyeokson <[email protected]>

* infra: 레디스 설정 추가

* [Feat] 기대평 기능 구현 (#57)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* cicd test (#47)

* config: jwt 속성을 yml에 설정

* config: git cache 초기화

* feat: Jwt 속성 관리 클래스 생성

* feat: 로그인 컨트롤러 클래스 생성

* feat: 로그인 요청 dto 클래스 생성

* feat: 로그인 service 클래스 생성

* feat: 메서드 추가

- 전화번호에 해당하는 유저가 있는지 확인하는 메서드
- 전화번호로 유저 객체를 반환하는 메서드

* feat: 필드 추가 및 전화번호 인덱싱 설정

* feat: 로그인 성공 상태 코드 추가

* feat: 로그인 실패 상태 코드 추가

* style: 엔터한 공간 줄이기

* chore: ci/cd test

---------

Co-authored-by: hyeokson <[email protected]>

* chore: ci/cd test

* chore: ci/cd test

* chore: ci/cd test

* config: gradle 의존성 설정

* refactor: BaseEntity 삭제

* feat: if문 추가

- 인증 및 미인증 유저가 공동으로 사용하는 api를 위해서 인증을 하지 않았다면 예외가 아니라 userId값으로 null을 갖도록 변경

* feat: 댓글 예외 상태 코드 추가

* feat: Comment 엔티티 클래스 생성

* feat: Comment 컨트롤러 생성 및 구현

- 기대평 조회 및 저장 로직 구현

* feat: Comment 예외 클래스 생성

* feat: 기대평 닉네임을 관리하는 Enum 클래스 생성

* feat: Comment repository 생성 및 구현

* feat: Comment service 생성 및 구현

- SCROLL_SIZE 만큼의 기대평을 반환하는 메서드 구현
- 기대평을 저장하는 메서드 구현

* feat: Comment 조회 응답 클래스 생성

* feat: 기대평을 관리하는 Enum 클래스 생성

* feat: 컨버터 클래스 생성

- 기대평 Enum 객체와 comment 값을 서로 변환해주는 컨버터 생성

* feat: Util 클래스 생성

- 커서 기반 스크롤 기능을 사용할 수 있는 Util 클래스 생성

* refactor: jsonformat 패턴 변경

* feat: 기대평 성공 상태 코드 추가

* refactor: enum 값 변경

* refactor: 호출하는 메서드 명 변경

* refactor: 자료형 변경

* refactor: 애노테이션 변경

* refactor: claim의 id값 자료형 변경

* feat: 변수 및 메서드 추가

- Access Token이 header에 있으면 인증하고 없으면 인증하지 않는 url 설정 및 기능 구현

* feat: 자동으로 생성 시간 저장하도록 구현

* refactor: 시간값 설정 코드 삭제

---------

Co-authored-by: hyeokson <[email protected]>

---------

Co-authored-by: Son Chanhyeok <[email protected]>
Co-authored-by: hyeokson <[email protected]>

* [Feature] static �text를 관리하는 enum 구현 (#71)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테이션 추가

* refactor: DayOfWeek 속성 변경

* refactor: 예외 msg를 응답객체 result에 넣도록 변경

* refactor: 변수명 변경

* refactor: DayOfWeek 속성 변경

* refactor: 검증 애노테이션 추가

* refactor: 검증 상수 추가

* refactor: 변수 타입을 래퍼타입으로 변경

* refactor: 클래스명 변경

---------

Co-authored-by: hyeokson <[email protected]>

* �[Refactor] MainPageController 클래스명 변경 (#72)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테이션 추가

* refactor: DayOfWeek 속성 변경

* refactor: 예외 msg를 응답객체 result에 넣도록 변경

* refactor: 변수명 변경

* refactor: DayOfWeek 속성 변경

* refactor: 검증 애노테이션 추가

* refactor: 검증 상수 추가

* refactor: 변수 타입을 래퍼타입으로 변경

* refactor: 클래스명 변경

* refactor: 클래스명 및 변수명 변경

* feat: final 객체 초기화

---------

Co-authored-by: hyeokson <[email protected]>

* [Feature] 메인 페이지 GET API 구현하기 (#73)

* config: jwt 속성을 yml에 설정

* rebase: 원본 develop 브랜치와 병합

* refactor: transactional 어노테이션 수정

* refactor: 변수명 변경

* feat: MainPage 컨트롤러 클래스 생성

* feat: MainPage service 클래스 생성

* feat: StaticResources entity 클래스 생성

* feat: StaticResources repository 클래스 생성

* feat: StaticResourcesUtil 클래스 생성

* feat: 정적 text를 관리하는 enum 생성

* refactor: 변수명 변경

* refactor: 검증 애노테…
  • Loading branch information
3 people authored Aug 16, 2024
1 parent 0210e62 commit ee985d0
Show file tree
Hide file tree
Showing 9 changed files with 313 additions and 238 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ public class DrawController {

@GetMapping("/event/draw")
public ResponseDto<DrawMainResponseDto> getDrawMainPageInfo(@AuthInfo Integer userId) {
return drawService.getDrawMainPageInfo(userId);
return ResponseDto.onSuccess(drawService.getDrawMainPageInfo(userId));
}

@PostMapping("/event/draw")
public ResponseEntity<Void> participateDrawEvent(@AuthInfo Integer userId) {
public ResponseEntity<Void> participateDrawEvent() {
HttpHeaders headers = new HttpHeaders();
headers.add("Location", "/event/draw-result");
return new ResponseEntity<>(headers, HttpStatus.FOUND); // HTTP 302 Found 응답
}

@GetMapping("/event/draw-result")
public ResponseDto<DrawModalResponseDto> getDrawResult(@AuthInfo Integer userId) {
return drawService.participateDrawEvent(userId);
return ResponseDto.onSuccess(drawService.participateDrawEvent(userId));
}

@GetMapping("/event/draw/history")
public ResponseDto<DrawHistoryResponseDto> getDrawHistory(@AuthInfo Integer userId) {
return drawService.getDrawHistory(userId);
return ResponseDto.onSuccess(drawService.getDrawHistory(userId));
}
}
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
package com.softeer.backend.fo_domain.draw.service;

import com.softeer.backend.fo_domain.draw.domain.DrawParticipationInfo;
import com.softeer.backend.fo_domain.draw.dto.main.DrawMainFullAttendResponseDto;
import com.softeer.backend.fo_domain.draw.dto.main.DrawMainResponseDto;
import com.softeer.backend.fo_domain.draw.dto.participate.DrawLoseModalResponseDto;
import com.softeer.backend.fo_domain.draw.dto.participate.DrawModalResponseDto;
import com.softeer.backend.fo_domain.draw.dto.participate.DrawWinModalResponseDto;
import com.softeer.backend.fo_domain.draw.dto.result.DrawHistoryLoserResponseDto;
import com.softeer.backend.fo_domain.draw.dto.result.DrawHistoryResponseDto;
import com.softeer.backend.fo_domain.draw.dto.result.DrawHistoryWinnerResponseDto;
import com.softeer.backend.fo_domain.draw.exception.DrawException;
import com.softeer.backend.fo_domain.draw.repository.DrawParticipationInfoRepository;
import com.softeer.backend.fo_domain.draw.util.DrawResponseGenerateUtil;
import com.softeer.backend.fo_domain.draw.util.DrawUtil;
import com.softeer.backend.fo_domain.share.domain.ShareInfo;
import com.softeer.backend.fo_domain.share.exception.ShareInfoException;
import com.softeer.backend.fo_domain.share.exception.ShareUrlInfoException;
import com.softeer.backend.fo_domain.share.repository.ShareInfoRepository;
import com.softeer.backend.fo_domain.share.repository.ShareUrlInfoRepository;
import com.softeer.backend.global.annotation.EventLock;
import com.softeer.backend.global.common.code.status.ErrorStatus;
import com.softeer.backend.global.common.constant.RedisKeyPrefix;
import com.softeer.backend.global.common.response.ResponseDto;
import com.softeer.backend.global.staticresources.util.StaticResourcesUtil;
import com.softeer.backend.global.util.EventLockRedisUtil;
import com.softeer.backend.global.util.DrawRedisUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

Expand All @@ -33,18 +25,17 @@
public class DrawService {
private final DrawParticipationInfoRepository drawParticipationInfoRepository;
private final ShareInfoRepository shareInfoRepository;
private final ShareUrlInfoRepository shareUrlInfoRepository;
private final EventLockRedisUtil eventLockRedisUtil;
private final StaticResourcesUtil staticResourcesUtil;
private final DrawRedisUtil drawRedisUtil;
private final DrawUtil drawUtil;
private final DrawResponseGenerateUtil drawResponseGenerateUtil;
private final DrawSettingManager drawSettingManager;

/**
* 1. 연속 참여일수 조회
* 1-1. 만약 7일 연속 참여했다면 상품 정보 응답
* 1-2. 만약 7일 미만 참여라면 일반 정보 응답
*/
public ResponseDto<DrawMainResponseDto> getDrawMainPageInfo(Integer userId) {
public DrawMainResponseDto getDrawMainPageInfo(Integer userId) {
// 참여 정보 (연속참여일수) 조회
DrawParticipationInfo drawParticipationInfo = drawParticipationInfoRepository.findDrawParticipationInfoByUserId(userId)
.orElseThrow(() -> new DrawException(ErrorStatus._NOT_FOUND));
Expand All @@ -59,71 +50,37 @@ public ResponseDto<DrawMainResponseDto> getDrawMainPageInfo(Integer userId) {

if (drawParticipationCount == 7) {
// 7일 연속 출석자라면
return ResponseDto.onSuccess(responseMainFullAttend(invitedNum, remainDrawCount, drawParticipationCount));
return drawResponseGenerateUtil.generateMainFullAttendResponse(invitedNum, remainDrawCount, drawParticipationCount);
} else {
// 연속 출석자가 아니라면
return ResponseDto.onSuccess(responseMainNotAttend(invitedNum, remainDrawCount, drawParticipationCount));
return drawResponseGenerateUtil.generateMainNotAttendResponse(invitedNum, remainDrawCount, drawParticipationCount);
}
}

/**
* 7일 연속 출석 시 상품 정보 모달 만들어서 반환하는 메서드
*
* @param invitedNum 초대한 사람 수
* @param remainDrawCount 남은 추첨 기회
* @param drawParticipationCount 연속 출석 일수
* @return 7일 연속 출석 상품 모달
*/
private DrawMainFullAttendResponseDto responseMainFullAttend(int invitedNum, int remainDrawCount, int drawParticipationCount) {
return DrawMainFullAttendResponseDto.builder()
.invitedNum(invitedNum)
.remainDrawCount(remainDrawCount)
.drawParticipationCount(drawParticipationCount)
.fullAttendModal(drawUtil.generateFullAttendModal())
.build();
}

/**
* 7일 미만 출석 시 모달 만들어서 반환하는 메서드
*
* @param invitedNum 초대한 사람 수
* @param remainDrawCount 남은 추첨 기회
* @param drawParticipationCount 연속 출석 일수
* @return 7일 미만 출석 상품 모달
*/
private DrawMainResponseDto responseMainNotAttend(int invitedNum, int remainDrawCount, int drawParticipationCount) {
return DrawMainResponseDto.builder()
.invitedNum(invitedNum)
.remainDrawCount(remainDrawCount)
.drawParticipationCount(drawParticipationCount)
.build();
}

/**
* 추첨 이벤트 당첨 로직 작성
*
* @param userId 사용자 아이디
* @return 추첨 결과에 따른 응답 반환
*/
public ResponseDto<DrawModalResponseDto> participateDrawEvent(Integer userId) {
public DrawModalResponseDto participateDrawEvent(Integer userId) {
// 복권 기회 조회
ShareInfo shareInfo = shareInfoRepository.findShareInfoByUserId(userId)
.orElseThrow(() -> new ShareInfoException(ErrorStatus._NOT_FOUND));

int remainDrawCount = shareInfo.getRemainDrawCount();

// 만약 남은 참여 기회가 0이라면
if (remainDrawCount == 0) {
return ResponseDto.onSuccess(responseLoseModal(userId));
if (shareInfo.getRemainDrawCount() == 0) {
return drawResponseGenerateUtil.generateDrawLoserResponse(userId);
}

increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감

// 만약 당첨 목록에 존재한다면 이미 오늘은 한 번 당첨됐다는 뜻이므로 LoseModal 반환
int ranking = getRankingIfWinner(userId); // 당첨 목록에 존재한다면 랭킹 반환
if (ranking != 0) {
shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감
increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return ResponseDto.onSuccess(responseLoseModal(userId)); // LoseModal 반환
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}

// 당첨자 수 조회
Expand All @@ -140,8 +97,6 @@ public ResponseDto<DrawModalResponseDto> participateDrawEvent(Integer userId) {
drawUtil.performDraw();

if (drawUtil.isDrawWin()) { // 당첨자일 경우
shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감

ranking = drawUtil.getRanking();
int winnerNum;
if (ranking == 1) {
Expand All @@ -154,61 +109,28 @@ public ResponseDto<DrawModalResponseDto> participateDrawEvent(Integer userId) {

if (isWinner(userId, ranking, winnerNum)) { // 레디스에 추첨 티켓이 남았다면, 레디스 당첨 목록에 추가
// 추첨 티켓이 다 팔리지 않았다면
increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
drawParticipationInfoRepository.increaseWinCount(userId); // 당첨 횟수 증가
return ResponseDto.onSuccess(responseWinModal()); // WinModal 반환
return drawResponseGenerateUtil.generateDrawWinnerResponse(ranking); // WinModal 반환
} else {
// 추첨 티켓이 다 팔렸다면 로직상 당첨자라도 실패 반환
increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return ResponseDto.onSuccess(responseLoseModal(userId)); // LoseModal 반환
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}
} else { // 낙첨자일 경우
shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감
increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return ResponseDto.onSuccess(responseLoseModal(userId)); // LoseModal 반환
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}
}

/**
* 낙첨자 응답 만들어서 반환
*
* @param userId 를 이용하여 공유 url 조회
* @return 낙첨자 응답
*/
private DrawLoseModalResponseDto responseLoseModal(Integer userId) {
String shareUrl = getShareUrl(userId);

return DrawLoseModalResponseDto.builder()
.isDrawWin(false)
.images(drawUtil.generateLoseImages())
.shareUrl(shareUrl)
.build();
}

/**
* 당첨자 응답 만들어서 반환
*
* @return 당첨자 응답
*/
private DrawWinModalResponseDto responseWinModal() {
return DrawWinModalResponseDto.builder()
.isDrawWin(true)
.images(drawUtil.generateWinImages())
.winModal(drawUtil.generateWinModal())
.build();
}

@EventLock(key = "DRAW_WINNER_#{#ranking}")
private boolean isWinner(Integer userId, int ranking, int winnerNum) {
String drawWinnerKey = RedisKeyPrefix.DRAW_WINNER_LIST_PREFIX.getPrefix() + ranking;
Set<Integer> drawWinnerSet = eventLockRedisUtil.getAllDataAsSet(drawWinnerKey);
Set<Integer> drawWinnerSet = drawRedisUtil.getAllDataAsSet(drawWinnerKey);

// 레디스에서 해당 랭킹에 자리가 있는지 확인
if (drawWinnerSet.size() < winnerNum) {
// 자리가 있다면 당첨 성공. 당첨자 리스트에 추가
eventLockRedisUtil.addValueToSet(drawWinnerKey, userId);
drawRedisUtil.setIntegerValueToSet(drawWinnerKey, userId);
return true;
} else {
// 이미 자리가 가득 차서 당첨 실패
Expand All @@ -218,7 +140,7 @@ private boolean isWinner(Integer userId, int ranking, int winnerNum) {

@EventLock(key = "DRAW_PARTICIPATION_COUNT")
private void increaseDrawParticipationCount() {
eventLockRedisUtil.incrementData(RedisKeyPrefix.DRAW_PARTICIPANT_COUNT_PREFIX.getPrefix());
drawRedisUtil.incrementIntegerValue(RedisKeyPrefix.DRAW_PARTICIPANT_COUNT_PREFIX.getPrefix());
}

/**
Expand All @@ -229,24 +151,16 @@ private void increaseDrawParticipationCount() {
* @param userId 사용자 아이디
* @return 당첨 내역에 따른 응답
*/
public ResponseDto<DrawHistoryResponseDto> getDrawHistory(Integer userId) {
public DrawHistoryResponseDto getDrawHistory(Integer userId) {
int ranking = getRankingIfWinner(userId);

if (ranking != 0) {
// 당첨자라면
drawUtil.setRanking(ranking);
return ResponseDto.onSuccess(DrawHistoryWinnerResponseDto.builder()
.isDrawWin(true)
.winModal(drawUtil.generateWinModalForHistory())
.build());
return drawResponseGenerateUtil.generateDrawHistoryWinnerResponse(ranking);
}

// 당첨자가 아니라면
String shareUrl = getShareUrl(userId);
return ResponseDto.onSuccess(DrawHistoryLoserResponseDto.builder()
.isDrawWin(false)
.shareUrl(shareUrl)
.build());
return drawResponseGenerateUtil.generateDrawHistoryLoserResponse(userId);
}

/**
Expand All @@ -255,25 +169,14 @@ public ResponseDto<DrawHistoryResponseDto> getDrawHistory(Integer userId) {
* @param userId 사용자 아이디
*/
private int getRankingIfWinner(int userId) {
String drawTempKey;
String drawWinnerKey;
for (int ranking = 1; ranking < 4; ranking++) {
drawTempKey = RedisKeyPrefix.DRAW_WINNER_LIST_PREFIX.getPrefix() + ranking;
Set<Integer> drawTempSet = eventLockRedisUtil.getAllDataAsSet(drawTempKey);
drawWinnerKey = RedisKeyPrefix.DRAW_WINNER_LIST_PREFIX.getPrefix() + ranking;
Set<Integer> drawTempSet = drawRedisUtil.getAllDataAsSet(drawWinnerKey);
if (drawTempSet.contains(userId)) {
return ranking;
}
}
return 0;
}

/**
* 공유 url 조회
*
* @param userId 사용자 아이디
* @return 공유 url
*/
private String getShareUrl(Integer userId) {
return staticResourcesUtil.getData("BASE_URL") + shareUrlInfoRepository.findShareUrlByUserId(userId)
.orElseThrow(() -> new ShareUrlInfoException(ErrorStatus._NOT_FOUND));
}
}
Loading

0 comments on commit ee985d0

Please sign in to comment.