Skip to content

Commit

Permalink
[Test] 루아스크립트를 이용한 테스트 (#217)
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 25, 2024
1 parent 6b17698 commit c4e0640
Show file tree
Hide file tree
Showing 21 changed files with 847 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
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.repository.DrawRepository;
import com.softeer.backend.fo_domain.draw.test.lua.DrawRedisLuaTest;
import com.softeer.backend.fo_domain.draw.test.tablelock.DrawDatabaseTest;
import com.softeer.backend.fo_domain.draw.test.tablelock.DrawDatabaseUtil;
import com.softeer.backend.fo_domain.draw.test.withoutlock.DrawDatabaseWithoutLockTest;
import com.softeer.backend.fo_domain.draw.util.DrawAttendanceCountUtil;
import com.softeer.backend.fo_domain.draw.util.DrawRemainDrawCountUtil;
import com.softeer.backend.fo_domain.draw.util.DrawResponseGenerateUtil;
Expand Down Expand Up @@ -38,8 +42,11 @@ public class DrawService {
private final DrawResponseGenerateUtil drawResponseGenerateUtil;
private final DrawAttendanceCountUtil drawAttendanceCountUtil;
private final DrawSettingManager drawSettingManager;
private final DrawDatabaseUtil drawDatabaseUtil;
private final DrawRepository drawRepository;
private final DrawRemainDrawCountUtil drawRemainDrawCountUtil;
private final DrawDatabaseTest drawDatabaseTest;
private final DrawDatabaseWithoutLockTest drawDatabaseWithoutLockTest;
private final DrawRedisLuaTest drawRedisLuaTest;

/**
* 1. 연속 참여일수 조회
Expand All @@ -61,8 +68,9 @@ public DrawMainResponseDto getDrawMainPageInfo(Integer userId) {
drawAttendanceCount = drawAttendanceCountUtil.handleAttendanceCount(userId, drawParticipationInfo);
}
int invitedNum = shareInfo.getInvitedNum();
// 새로 접속 시 남은 추첨 횟수 증가시켜주는 로직
int remainDrawCount = drawRemainDrawCountUtil.handleRemainDrawCount(userId, shareInfo.getRemainDrawCount(), drawParticipationInfo);
int remainDrawCount = shareInfo.getRemainDrawCount();

System.out.println("Draw Attendance = " + drawAttendanceCount);

if (drawAttendanceCount >= 7) {
// 7일 연속 출석자라면
Expand All @@ -89,61 +97,69 @@ public DrawMainResponseDto getDrawMainPageInfo(Integer userId) {
* 6-2. 낙첨자일 경우 해당 사용자의 낙첨 횟수 증가, 낙첨 응답 반환
*/
public DrawModalResponseDto participateDrawEvent(Integer userId) {
// 복권 기회 조회
ShareInfo shareInfo = shareInfoRepository.findShareInfoByUserId(userId)
.orElseThrow(() -> new ShareInfoException(ErrorStatus._NOT_FOUND));

// 만약 남은 참여 기회가 0이라면
if (shareInfo.getRemainDrawCount() == 0) {
throw new DrawException(ErrorStatus._NOT_FOUND);
}
// 락을 이용한 데이터베이스 테스트
// return drawDatabaseTest.participateDrawEvent(userId);

drawRedisUtil.increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감
// Lua Script를 이용한 redis 테스트
return drawRedisLuaTest.participateDrawEvent(userId);

// 만약 당첨 목록에 존재한다면 이미 오늘은 한 번 당첨됐다는 뜻이므로 LoseModal 반환
int ranking = drawRedisUtil.getRankingIfWinner(userId); // 당첨 목록에 존재한다면 랭킹 반환
if (ranking != 0) {
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}

// 당첨자 수 조회
int first = drawSettingManager.getWinnerNum1(); // 1등 수
int second = drawSettingManager.getWinnerNum2(); // 2등 수
int third = drawSettingManager.getWinnerNum3(); // 3등 수

// 당첨자 수 설정
drawUtil.setFirst(first);
drawUtil.setSecond(second);
drawUtil.setThird(third);

// 추첨 로직 실행
drawUtil.performDraw();

if (drawUtil.isDrawWin()) { // 당첨자일 경우
ranking = drawUtil.getRanking();
int winnerNum;
if (ranking == 1) {
winnerNum = first;
} else if (ranking == 2) {
winnerNum = second;
} else {
winnerNum = third;
}

if (drawRedisUtil.isWinner(userId, ranking, winnerNum)) { // 레디스에 추첨 티켓이 남았다면, 레디스 당첨 목록에 추가
drawParticipationInfoRepository.increaseWinCount(userId); // 당첨 횟수 증가
return drawResponseGenerateUtil.generateDrawWinnerResponse(ranking); // WinModal 반환
} else {
// 추첨 티켓이 다 팔렸다면 로직상 당첨자라도 실패 반환
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}
} else { // 낙첨자일 경우
drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
}
// 복권 기회 조회
// ShareInfo shareInfo = shareInfoRepository.findShareInfoByUserId(userId)
// .orElseThrow(() -> new ShareInfoException(ErrorStatus._NOT_FOUND));
//
// // 만약 남은 참여 기회가 0이라면
// if (shareInfo.getRemainDrawCount() == 0) {
// throw new DrawException(ErrorStatus._NOT_FOUND);
// }
//
// drawRedisUtil.increaseDrawParticipationCount(); // 추첨 이벤트 참여자수 증가
// shareInfoRepository.decreaseRemainDrawCount(userId); // 횟수 1회 차감
//
// // 만약 당첨 목록에 존재한다면 이미 오늘은 한 번 당첨됐다는 뜻이므로 LoseModal 반환
// int ranking = drawRedisUtil.getRankingIfWinner(userId); // 당첨 목록에 존재한다면 랭킹 반환
// if (ranking != 0) {
// drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
// return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
// }
//
// // 당첨자 수 조회
// int first = drawSettingManager.getWinnerNum1(); // 1등 수
// int second = drawSettingManager.getWinnerNum2(); // 2등 수
// int third = drawSettingManager.getWinnerNum3(); // 3등 수
//
// // 당첨자 수 설정
// drawUtil.setFirst(first);
// drawUtil.setSecond(second);
// drawUtil.setThird(third);
//
// // 추첨 로직 실행
// drawUtil.performDraw();
//
// if (drawUtil.isDrawWin()) { // 당첨자일 경우
// ranking = drawUtil.getRanking();
// int winnerNum;
// if (ranking == 1) {
// winnerNum = first;
// } else if (ranking == 2) {
// winnerNum = second;
// } else {
// winnerNum = third;
// }
//
// if (drawRedisUtil.isWinner(userId, ranking, winnerNum)) { // 레디스에 추첨 티켓이 남았다면, 레디스 당첨 목록에 추가
// // 추첨 티켓이 다 팔리지 않았다면
// drawParticipationInfoRepository.increaseWinCount(userId); // 당첨 횟수 증가
// return drawResponseGenerateUtil.generateDrawWinnerResponse(ranking); // WinModal 반환
// } else {
// // 추첨 티켓이 다 팔렸다면 로직상 당첨자라도 실패 반환
// drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
// return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
// }
// } else { // 낙첨자일 경우
// drawParticipationInfoRepository.increaseLoseCount(userId); // 낙첨 횟수 증가
// return drawResponseGenerateUtil.generateDrawLoserResponse(userId); // LoseModal 반환
// }
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "draw_test_first_winner_list")
public class DrawTestFirstWinnerList {
@Id
@Column(name = "user_id")
Integer userId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.LockModeType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface DrawTestFirstWinnerListRepository extends JpaRepository<DrawTestFirstWinnerList, Integer> {
boolean existsByUserId(Integer userId);

long count();

// 또는 JPA 엔티티에 대해 비관적 잠금을 직접 적용
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("SELECT d FROM DrawTestFirstWinnerList d")
List<DrawTestFirstWinnerList> findAllForUpdate();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "draw_test_participant_count")
public class DrawTestParticipantCount {
@Id
@Column(name = "participant_count_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer participantCountId;

@Column(name = "count")
Integer count;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.softeer.backend.fo_domain.draw.test;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

@Repository
public interface DrawTestParticipantCountRepository extends JpaRepository<DrawTestParticipantCount, Integer> {
@Transactional
@Modifying
@Query("UPDATE DrawTestParticipantCount p SET p.count = p.count + 1 WHERE p.participantCountId = 1")
void increaseParticipantCount();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "draw_test_second_winner_list")
public class DrawTestSecondWinnerList {
@Id
@Column(name = "user_id")
Integer userId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.LockModeType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface DrawTestSecondWinnerListRepository extends JpaRepository<DrawTestSecondWinnerList, Integer> {
boolean existsByUserId(Integer userId);

long count();

// 또는 JPA 엔티티에 대해 비관적 잠금을 직접 적용
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("SELECT d FROM DrawTestSecondWinnerList d")
List<DrawTestSecondWinnerList> findAllForUpdate();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "draw_test_third_winner_list")
public class DrawTestThirdWinnerList {
@Id
@Column(name = "user_id")
Integer userId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.softeer.backend.fo_domain.draw.test;

import jakarta.persistence.LockModeType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface DrawTestThirdWinnerListRepository extends JpaRepository<DrawTestThirdWinnerList, Integer> {
boolean existsByUserId(Integer userId);

long count();

// 또는 JPA 엔티티에 대해 비관적 잠금을 직접 적용
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("SELECT d FROM DrawTestThirdWinnerList d")
List<DrawTestThirdWinnerList> findAllForUpdate();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.softeer.backend.fo_domain.draw.test;

import com.softeer.backend.fo_domain.draw.dto.participate.DrawModalResponseDto;
import org.springframework.stereotype.Component;

public interface ParticipateInterface {
public DrawModalResponseDto participateDrawEvent(Integer userId);
}
Loading

0 comments on commit c4e0640

Please sign in to comment.