Skip to content

Commit

Permalink
feat: v1.0.0-beta 배포 (#235)
Browse files Browse the repository at this point in the history
* feat : .gitignore파일 추가 및 spring 프로젝트 init

* chore: 프론트엔드 초기 환경 설정 (#4)

* docs: 이슈 템플릿 등록

* chore: 프론트엔드 초기 환경 설정

* chore: .gitignore 옵션 추가

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

* chore : backend 초기 환경 설정 (#10)

* chore: gitignore 추가 및 build.gradle 개행 변경

* feat: bootApplication 생성 및 테스트

* docs: pr 템플릿 등록

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

* feat: 로그백 및 jpa 설정 파일 추가 (#12)

* feat: 로그백 및 jpa 설정 파일 추가

* docs: 배너 추가

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

* chore: 백엔드 탭 정렬 수정 (#13)

* feat: 문서화 기본 설정 (#15)

* chore: 탭 정렬 수정

* feat: 인수 테스트 기본 설정

* feat: RestDocs 초기 설정

- AcceptanceTest 에 문서화 설정 추가

* feat: 문서화 기본 설정

- asciidoctor 관련 빌드 설정 추가
- AcceptanceTest 에 문서화 과정 추가
- 초기 문서에 예시 작성

Co-authored-by: sihyung92 <[email protected]>
Co-authored-by: perenok <[email protected]>

* feat: RestAssured + RestDocs 공통 코드 추상화 (#18)

* refactor: AcceptanceTest 구조 RequestBuilder 를 이용하며 리팩토링 (#19)

* refactor: RequestBuilder 내부 리팩토링 (#20)

- Given-When-Then 클래스 구조를 Function-Option으로 변경
- AcceptanceTest 에 사용 예제 작성

* feat: 전체보기 백엔드 기능 구현 및 문서화 (#21)

* feat: 주류 관련한 Exception 추가

- InvalidDrinkNameException : 주류 이름이 공백 또는 null일 때 예외
- InvalidAlcoholByVolumeException : 알콜 도수가 0 미만 100 초과일 때 예외

* feat: 주류 관련한 엔티티 추가

* feat: 이미지 url의 vo인 imageUrl 추가 및 Drink name 오류 수정

* feat: 전체 조회 API 추가 및 테스트 데이터 추가

* feat: 코드리뷰 반영

1. lombok 어노테이션 활용
2. 데이터 로더 데이터 수정
3. 정적 팩토리 메서드 생성

* feat: 프로필 설정

* feat: 문서화를 위한 인수테스트와 그래들 수정

* feat: 테스트 환경설정 파일 추가

* feat: 문서화 build.gradle 수정 및 gradle 버전 원복

* feat: Cors 관련 설정 추가

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

* feat: restdocs 문서화를 위한 빌드문 수정 (#25)

* chore: 포트 번호 3000으로 변경 (#27)

Co-authored-by: EUNHYUN CHO <[email protected]>

* docs: 백엔드 quick start 문서 추가 (#22)

* chore: favicon 및 open graph 설정 (#31)

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat : 예외 처리 공통 코드 작성 (#33)

* feat: 예외 공통 코드 작성

- 예외 코드와 내용이 정의된 enum 생성
- 예외 코드를 공통으로 hanlding 할 Controller Advice 생성
- 404 예외에 대한 핸들링

* feat: 정적 자원 요청은 제외하고 404를 json type으로 핸들링 할 수 있도록 수정

* chore: 문서화 오탈자 수정

* feat: RequestBuilder 결과 convert 기능 추가 (#35)

- convertBody(Class<T> tClass) : 바디가 하나일 때
- convertBodyToList(Class<T> tClass) : 바디가 리스트일 때
- totalResponse() : 전체 결과 리스폰스 반환

* fix: Drink 인수 테스트 및 404오류 인수테스트 오류 나는 부분 수정 (#37)

* feat: 전체보기 기능 구현 (#42)

* feat: 라우터 및 전역 스타일 설정

* chore: 정대 경로 설정

* feat: 전체 레이아웃, 하단 탭 구현

* feat: 카드 컴포넌트 구현

* chore: 전체 조회 관련 mock 데이터 추가

* fix: Tab.style.ts를 Tab.styles.ts로 파일명 변경

* refactor: 스타일 컴포넌트 이름 변경

* feat: COLOR에 회색관련 상수 추가

* feat: 상품 목록 구현

* feat: SearchBar 구현

* feat: Header 구현

* feat: 홈 화면에 헤더 적용

* refactor: React import문 삭제

* chore: React Query 라이브러리 설치

* feat: ReactQueryClientProvider 구현

* feat: 홈 화면 주류 조회 API 요청 기능 구현

* feat: 전체보기 테스트 코드 작성 및 mock data 수정

* feat: dev서버 url 환경변수 수정

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: backlog 운영 환경에 따라 콘솔 및 파일로 변경 (#46)

* feat: 각 profile 마다 콘솔 or file 설정

* feat: 로그에 http 요청과 응답, 로그 메시지 추가

* feat: 운영 환경마다 로그 레벨 설정

* chore: netlify 리다이렉트를 위해 netlify.toml 설정 추가 (#52)

* chore: netlify 리다이렉트를 위해 netlify.toml 설정 추가

* fix: ReactRouter Switch 적용

* feat: S3 이미지로 변경 및 backend quick start 문서 작성 (#47)

* feat: 로그인 기능 구현 (#51)

* feat: 라우터 및 전역 스타일 설정

Co-authored-by: EUNHYUN CHO <[email protected]>

* chore: 정대 경로 설정

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 전체 레이아웃, 하단 탭 구현

* feat: 카드 컴포넌트 구현

* chore: 전체 조회 관련 mock 데이터 추가

* fix: Tab.style.ts를 Tab.styles.ts로 파일명 변경

* refactor: 스타일 컴포넌트 이름 변경

* feat: COLOR에 회색관련 상수 추가

* feat: 상품 목록 구현

* feat: SearchBar 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: Header 구현

* feat: 홈 화면에 헤더 적용

* refactor: React import문 삭제

* chore: React Query 라이브러리 설치

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: ReactQueryClientProvider 구현

* chore: svg import를 위한 커스텀 타입 정의

Co-authored-by: EUNHYUN CHO <[email protected]>

* refactor: Main Header 분리 및 Router Switch 적용

* feat: 로그인 화면 마크업 구현

* feat: 카카오 API 인가코드 받아오는 기능 구현

* fix: logo svg파일을 react component로 변경

* feat: jwt 토큰 제공, 확인 클래스 구현

* feat: Http Header 에 있는 Authorization 헤더 추출 클래스 구현

* feat: 멤버 도메인 기능 구현

- provideId : 제공사 유니크 아이디
- providerName : 제공사 이름 (KAKAO, NAVER)
- birthYear : 회원 생년

* feat: 로그인 어플리케이션 레이어 구현

* feat: 로그인 인프라 구현 (외부 api 연결)

- 카카오 로그인 구현

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

* feat: 로그인 이후 토큰 발급 테스트와 문서 작성

* refactor: ProviderStrategyFactory 클래스 명 변경 및 문서 추가

- ProviderStrategyFactory 를 SocialLoginStrategyFactory 로 변경
- providerName 규칙을 문서에 추가

* fix: 테스트 깨짐 및 문서 파일 꺠짐 현상 해결

* feat: Cors 설정 추가

* refactor: kakao oauth 정보 관리 객체 생성

* refactor: loginService 트랜잭션 설정

* feat: 카카오 로그인 시 생기는 예외 처리와 BirthYear 삭제

- BirthYear 는 카카오 사업자 등록을 해야 정보를 가져올 수 있음

* refactor: 코드 포메팅 수정

* Merge pull request #42 from woowacourse-teams/develop

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 로그인 되어 있을 시, 로그인 탭을 마이페이지 탭으로 표시하는 기능 구현

* chore: conflict 해결 및 banner.txt 글씨 색 변경

* feat: 로그인 테스트 코드 작성

* fix: window.location을 BrowserRouter의 location props로 변경

- 기존에는 window.location을 이용하고 있어, 라우터의 context를 이용하고 있지 않았음.

* refactor: RequestBuilder 필요없는 import 삭제 및 build.gradle

* refactor: EOL 리뷰 적용 및 설정파일 수정

Co-authored-by: EUNHYUN CHO <[email protected]>
Co-authored-by: bomin <[email protected]>
Co-authored-by: Bomin Yoon <[email protected]>
Co-authored-by: SungSiHyung <[email protected]>

* feat: 서브모듈 추가 (#59)

* chore: gitmodules의 url을 ssh형식으로 변경 (#85)

* chore: gitmodules의 url을 ssh형식으로 변경

* chore: gitmoudles 경로 수정

* chore: gitmoudles 경로 수정

* chore: Submodules 연결

* chore: gitmodules 변경

* chore: 환경설정 변경

* chore: package-lock.json 파일 수정

* feat: 상세보기, 선호도, 리뷰 기능 구현 (#99)

* feat: Drinks 상세보기 기능 구현
- Drinks에 Category 추가
- Drink 단일 조회 API 구현
- Category 추가로 TestDataLoader 변경

* feat: Category Getter 수정
- 롬복으로 변경

* refactor: 상세보기와 전체보기 dto 분리

* feat: AuthenticationPrincipal 추가

- 로그인 유지를 위한 @AuthenticationPrincipal 추가
- 토큰 검증을 하고 유효하지 않으면 InvalidTokenException 반환
- 유효한 토큰일 경우 LoginMember 반환

* refactor: 오타 수정

* feat: 문서화 관련 그래들 설정 변경

* feat: 상세보기 인수테스트, 에러 코드 추가

* feat: 상세보기 문서 추가

* refactor: Category 추가에 따른 Drinks 변경
- 정적 팩토리 메서드 수정
- DataLoader 에 Category 항목 추가

* feat: 내 정보 조회 기능 추가

- 토큰 검증을 하고 유효하지 않으면 InvalidTokenException 반환
- 받은 id를 통해 조회 했을 때 DB에 없으면 NoSuchMemberException 반환

* refactor: 오타 수정

* feat: 주류 영문명 추가
- 테스트 코드 작성
- DataLoader 영문명 추가
- 예외 상황 추가

* feat: 리뷰 생성 기능 구햔
- 테스트 추가
- API 문서 작성

* feat: ReviewRepositoryTest 작성
- 리뷰를 추가했을 때 해당 주류에 연관관계 매핑이 잘 되는지 테스트

* feat: 아이콘을 이용하는 범위 입력 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세페이지 해당 상품 선호도 마크업 구현

* fix: index.html에서 index.js 경로 설정 변경

* feat: Preference 엔티티 추가와 선호도 추가, 수정, 삭제 구현

* feat: 리뷰 삭제 기능 구현
- 예외 추가
- repository 테스트 추가

* feat: 리뷰 삭제 인수 테스트 구현
- TestDataLoader 에 리뷰 데이터 추가
- API 문서화

* feat: 리뷰 수정 기능 구현
- 테스트 작성
- API 문서화

* refactor: 오타 수정

* feat: Property 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세페이지 상품 정보 마크업 구현

* feat: 홈 화면에서 상품 클릭 시 상세페이지로 이동하는 기능 구현

* fix: drinksDetail mock data 수정

* feat: TestDataLoader 리뷰 데이터 추가

* feat: 리뷰 조회하기 기능 구현
- 성공 테스트 추가

* refactor: 사용하지 않는 import 제거

* feat: 문서화 및 테스트 추가

* feat: 리뷰 수정, 삭제 시 검증 로직 추가
- 리뷰와 주류 정보 일치 여부 검증
- 테스트 작성 및 API 문서화

* refactor: 불필요한 변수 할당 제거

* refactor: Drink와 Review Service 분리

* refactor: Drink와 Review 인수테스트 분리

* refactor: 불필요한 import 제거

* feat: ReviewCard 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세 페이지 리뷰 마크업 구현

* fix: 홈화면에서 상품 클릭시 path 오류 해결

* feat: 페이지 1부터 시작하도록 변경
- application.yml 에서 pageable 설정 추가
- 현재 페이지 응답값 +1
- 관련 테스트 수정

* refactor: Drink 계층에 따라 Dto 분리

* feat: ReviewEditForm 컴포넌트 마크업 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: Modal 컴포넌트 마크업 구현

* refactor: joinColumn 이름 소문자 변경

* refactor: jpql query문 변경

* feat: 리뷰 생성에 멤버 추가
- testDataLoader 멤버 추가
- 리뷰 생성 테스트 멤버 추가

* feat: 선호도 추가, 수정, 삭제와 주류 상세에 선호도 조회 포함

- LoginInterceptor를 통해 토큰 검증하고 비 로그인 유저의 권한 없는 기능에 대한 접근 차단
- 정적 팩토리 생성 메소드 이름 통일(단수 : from, 복수 : of)
-

* feat: 실패 케이스 테스트 추가

* feat: 리뷰 수정 및 삭제 작성자 검증
- 리뷰 수정 및 삭제 테스트 수정
- testDataLoader 멤버 추가

* feat: 리뷰 조회에 멤버 정보 추가
- 리뷰 조회 테스트 수정

* refactor: 실패 테스트에 ExceptionCodeAndDetails를 이용해 하드코딩 제거

* refactor: 정적 팩토리 메서드 팀 컨벤션에 맞게 변경

* feat: Portal 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: ModalProvider 구현

* feat: 리뷰 수정 버튼 클릭시 수정 모달 띄우기 구현

* fix: 전체 조회 인수 테스트 관련 수정
- fileServerUrl 설정 변경
- 테스트에서 사용하지 않는 이미지 삭제

* feat: auth 서브모듈 수정
- redirect url 변경

* refactor: mock => mocks로 디렉토리 명 변경

* feat: localStorage 관련 유틸 함수 구현

* feat: 유저 정보 가져오기 API 구현

* feat: UserContext 구현

* feat: 탭바에 유저 로그인 여부 판단 기능 구현

* refactor: 개발 컨벤션을 위한 수정
- dto 네이밍
- 트랜잭셔널 설정
- HttpStatus 값 수정

* refactor: 카테고리 임시 추가 및 영문 이름 null 대신 빈 문자열로 변경

* fix: 설정파일 및 gitignore 수정

* feat: 이미지 에러 처리 유틸 함수 구현

* refactor: 이미지 에러 처리 및 API 변경에 따른 데이터 처리 방식 변경

* feat: 상세 조회 API 연결

* refactor: 해당 주류에 선호도가 없을 때 예외 대신 0 반환

- rate로 요청 보내는 대신 preferenceRate로 변경
- 사용하지 않는 NoSuchPreferenceException 삭제

* refactor: 선호도 생성, 수정, 삭제에 대한 실패 케이스 문서화 추가

* feat: DataLoader 리뷰 데이터 추가

* refactor: gitignore 수정

* refactor: 영문명이 없을 시 null 대신 빈문자열로 변경

* feat: 임시 닉네임 생성기 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* refactor: 리뷰에 대한 토큰 검증을 interceptor에 추가

- "/drinks/*/reviews/**" 에 대해서 인터셉터 적용

* feat: LocalDateTime 매핑 시 ObjectMapper 주입 변경

* feat: 리뷰 생성날짜와 변경날짜 기능 추가
- 리뷰 조회 시 최근 날짜별로 정렬
- TestDataLoader 영문명 null 대신 빈문자열로 변경

* feat: 리뷰 작성 제한 기능 구현
- 최근 작성한 리뷰와 시간을 비교해 에러 처리
- API 문서 추가
- 테스트 작성

* refactor: statusCode 컨벤션 통일

* feat: 임시 닉네임 생성기 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* refactor: 생성, 수정 테스트 로직 추가

* refactor: 리뷰 modifiedAt 최초값 null 로 변경

* docs: 실패 케이스에 대한 정보 수정

* feat: 리뷰 조회 API 기능 구현

- Review namespace 생성 및 적용

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: userContext value에 유저 정보 추가 및 리뷰작성, 홈 화면에 적용

- Ouath, Login Page 접근 권한 설정

* chore: Review에 createAt 필드명을 createdAt으로 수정

* fix: reviewResponse객체의 createAt 객체 오타 수정 및 연관 로직 수정

* fix: pageable 객체의 sort 칼럼을 createAt에서 createdAt으로 수정

* feat: 리뷰 삭제 기능 구현

* feat: 리뷰 수정기능 구현

- ModalProvider에 모달 닫기 메서드 추가

* feat: 리뷰 생성 및 수정시 리뷰 내용 제한 예외 추가
- 리뷰가 비어있거나 300자 이상일 경우 예외
- 리뷰 생성 및 수정 테스트 추가
- API 문서 추가

* feat: 리뷰 생성 테스트 시 300자 경계값 테스트 추가

* feat: 선호도 생성 및 수정, 삭제 기능 구현

* refactor: 헤더가 홈화면에서만 보이도록 수정

* chore: snowpack config에서 webpack plugin 삭제

* chore: public path에 notFoundImage 추가

* fix: 프론트엔드 배포 오류로 인한 png파일 관련 로직 삭제

* fix: 프론트엔드 배포 오류로 인한 png파일 관련 로직 삭제

Co-authored-by: Solji Choi <[email protected]>
Co-authored-by: perenok <[email protected]>
Co-authored-by: pika96 <[email protected]>
Co-authored-by: EUNHYUN CHO <[email protected]>
Co-authored-by: 크로플(이동환) <[email protected]>
Co-authored-by: pika96 <[email protected]>
Co-authored-by: sihyung92 <[email protected]>
Co-authored-by: SungSiHyung <[email protected]>

* fix: 리뷰 글자수 300자 변경 (#104)

* feat: Drinks 상세보기 기능 구현
- Drinks에 Category 추가
- Drink 단일 조회 API 구현
- Category 추가로 TestDataLoader 변경

* feat: Category Getter 수정
- 롬복으로 변경

* refactor: 상세보기와 전체보기 dto 분리

* feat: AuthenticationPrincipal 추가

- 로그인 유지를 위한 @AuthenticationPrincipal 추가
- 토큰 검증을 하고 유효하지 않으면 InvalidTokenException 반환
- 유효한 토큰일 경우 LoginMember 반환

* refactor: 오타 수정

* feat: 문서화 관련 그래들 설정 변경

* feat: 상세보기 인수테스트, 에러 코드 추가

* feat: 상세보기 문서 추가

* refactor: Category 추가에 따른 Drinks 변경
- 정적 팩토리 메서드 수정
- DataLoader 에 Category 항목 추가

* feat: 내 정보 조회 기능 추가

- 토큰 검증을 하고 유효하지 않으면 InvalidTokenException 반환
- 받은 id를 통해 조회 했을 때 DB에 없으면 NoSuchMemberException 반환

* refactor: 오타 수정

* feat: 주류 영문명 추가
- 테스트 코드 작성
- DataLoader 영문명 추가
- 예외 상황 추가

* feat: 리뷰 생성 기능 구햔
- 테스트 추가
- API 문서 작성

* feat: ReviewRepositoryTest 작성
- 리뷰를 추가했을 때 해당 주류에 연관관계 매핑이 잘 되는지 테스트

* feat: 아이콘을 이용하는 범위 입력 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세페이지 해당 상품 선호도 마크업 구현

* fix: index.html에서 index.js 경로 설정 변경

* feat: Preference 엔티티 추가와 선호도 추가, 수정, 삭제 구현

* feat: 리뷰 삭제 기능 구현
- 예외 추가
- repository 테스트 추가

* feat: 리뷰 삭제 인수 테스트 구현
- TestDataLoader 에 리뷰 데이터 추가
- API 문서화

* feat: 리뷰 수정 기능 구현
- 테스트 작성
- API 문서화

* refactor: 오타 수정

* feat: Property 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세페이지 상품 정보 마크업 구현

* feat: 홈 화면에서 상품 클릭 시 상세페이지로 이동하는 기능 구현

* fix: drinksDetail mock data 수정

* feat: TestDataLoader 리뷰 데이터 추가

* feat: 리뷰 조회하기 기능 구현
- 성공 테스트 추가

* refactor: 사용하지 않는 import 제거

* feat: 문서화 및 테스트 추가

* feat: 리뷰 수정, 삭제 시 검증 로직 추가
- 리뷰와 주류 정보 일치 여부 검증
- 테스트 작성 및 API 문서화

* refactor: 불필요한 변수 할당 제거

* refactor: Drink와 Review Service 분리

* refactor: Drink와 Review 인수테스트 분리

* refactor: 불필요한 import 제거

* feat: ReviewCard 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: 상세 페이지 리뷰 마크업 구현

* fix: 홈화면에서 상품 클릭시 path 오류 해결

* feat: 페이지 1부터 시작하도록 변경
- application.yml 에서 pageable 설정 추가
- 현재 페이지 응답값 +1
- 관련 테스트 수정

* refactor: Drink 계층에 따라 Dto 분리

* feat: ReviewEditForm 컴포넌트 마크업 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: Modal 컴포넌트 마크업 구현

* refactor: joinColumn 이름 소문자 변경

* refactor: jpql query문 변경

* feat: 리뷰 생성에 멤버 추가
- testDataLoader 멤버 추가
- 리뷰 생성 테스트 멤버 추가

* feat: 선호도 추가, 수정, 삭제와 주류 상세에 선호도 조회 포함

- LoginInterceptor를 통해 토큰 검증하고 비 로그인 유저의 권한 없는 기능에 대한 접근 차단
- 정적 팩토리 생성 메소드 이름 통일(단수 : from, 복수 : of)
-

* feat: 실패 케이스 테스트 추가

* feat: 리뷰 수정 및 삭제 작성자 검증
- 리뷰 수정 및 삭제 테스트 수정
- testDataLoader 멤버 추가

* feat: 리뷰 조회에 멤버 정보 추가
- 리뷰 조회 테스트 수정

* refactor: 실패 테스트에 ExceptionCodeAndDetails를 이용해 하드코딩 제거

* refactor: 정적 팩토리 메서드 팀 컨벤션에 맞게 변경

* feat: Portal 컴포넌트 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: ModalProvider 구현

* feat: 리뷰 수정 버튼 클릭시 수정 모달 띄우기 구현

* fix: 전체 조회 인수 테스트 관련 수정
- fileServerUrl 설정 변경
- 테스트에서 사용하지 않는 이미지 삭제

* feat: auth 서브모듈 수정
- redirect url 변경

* refactor: mock => mocks로 디렉토리 명 변경

* feat: localStorage 관련 유틸 함수 구현

* feat: 유저 정보 가져오기 API 구현

* feat: UserContext 구현

* feat: 탭바에 유저 로그인 여부 판단 기능 구현

* refactor: 개발 컨벤션을 위한 수정
- dto 네이밍
- 트랜잭셔널 설정
- HttpStatus 값 수정

* refactor: 카테고리 임시 추가 및 영문 이름 null 대신 빈 문자열로 변경

* fix: 설정파일 및 gitignore 수정

* feat: 이미지 에러 처리 유틸 함수 구현

* refactor: 이미지 에러 처리 및 API 변경에 따른 데이터 처리 방식 변경

* feat: 상세 조회 API 연결

* refactor: 해당 주류에 선호도가 없을 때 예외 대신 0 반환

- rate로 요청 보내는 대신 preferenceRate로 변경
- 사용하지 않는 NoSuchPreferenceException 삭제

* refactor: 선호도 생성, 수정, 삭제에 대한 실패 케이스 문서화 추가

* feat: DataLoader 리뷰 데이터 추가

* refactor: gitignore 수정

* refactor: 영문명이 없을 시 null 대신 빈문자열로 변경

* feat: 임시 닉네임 생성기 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* refactor: 리뷰에 대한 토큰 검증을 interceptor에 추가

- "/drinks/*/reviews/**" 에 대해서 인터셉터 적용

* feat: LocalDateTime 매핑 시 ObjectMapper 주입 변경

* feat: 리뷰 생성날짜와 변경날짜 기능 추가
- 리뷰 조회 시 최근 날짜별로 정렬
- TestDataLoader 영문명 null 대신 빈문자열로 변경

* feat: 리뷰 작성 제한 기능 구현
- 최근 작성한 리뷰와 시간을 비교해 에러 처리
- API 문서 추가
- 테스트 작성

* refactor: statusCode 컨벤션 통일

* feat: 임시 닉네임 생성기 구현

Co-authored-by: EUNHYUN CHO <[email protected]>

* refactor: 생성, 수정 테스트 로직 추가

* refactor: 리뷰 modifiedAt 최초값 null 로 변경

* docs: 실패 케이스에 대한 정보 수정

* feat: 리뷰 조회 API 기능 구현

- Review namespace 생성 및 적용

Co-authored-by: EUNHYUN CHO <[email protected]>

* feat: userContext value에 유저 정보 추가 및 리뷰작성, 홈 화면에 적용

- Ouath, Login Page 접근 권한 설정

* chore: Review에 createAt 필드명을 createdAt으로 수정

* fix: reviewResponse객체의 createAt 객체 오타 수정 및 연관 로직 수정

* fix: pageable 객체의 sort 칼럼을 createAt에서 createdAt으로 수정

* feat: 리뷰 삭제 기능 구현

* feat: 리뷰 수정기능 구현

- ModalProvider에 모달 닫기 메서드 추가

* feat: 리뷰 생성 및 수정시 리뷰 내용 제한 예외 추가
- 리뷰가 비어있거나 300자 이상일 경우 예외
- 리뷰 생성 및 수정 테스트 추가
- API 문서 추가

* feat: 리뷰 생성 테스트 시 300자 경계값 테스트 추가

* feat: 선호도 생성 및 수정, 삭제 기능 구현

* refactor: 헤더가 홈화면에서만 보이도록 수정

* chore: snowpack config에서 webpack plugin 삭제

* chore: public path에 notFoundImage 추가

* fix: 프론트엔드 배포 오류로 인한 png파일 관련 로직 삭제

* fix: 프론트엔드 배포 오류로 인한 png파일 관련 로직 삭제

* feat: 리뷰 300자 글자 제한 추가
- 인수 경계값 테스트 추가

Co-authored-by: Solji Choi <[email protected]>
Co-authored-by: perenok <[email protected]>
Co-authored-by: sunhpark42 <[email protected]>
Co-authored-by: EUNHYUN CHO <[email protected]>
Co-authored-by: 크로플(이동환) <[email protected]>
Co-authored-by: sihyung92 <[email protected]>
Co-authored-by: SungSiHyung <[email protected]>
Co-authored-by: sunhpark42 <[email protected]>

* fix: 프론트 브라우저 별 UI 및 동작이 다르게 나타나는 이슈 해결 (#103)

- 폰트 적용
- 폰트 사이즈 일괄 변경
- 모달 높이 지정
- alert메세지 변경

* feat: 어드민 페이지 기능 구현 (#105)

* feat: admin page CRUD 기능 구현

* feat: admin page 화면 구현

* fix: 모바일 사파리에서 선호도 슬라이드 제대로 되지 않는 이슈 해결 (#107)

* fix: 사파리에서 선호도 스크롤이 잘 되지 않는 이슈 해결

- input runnable track높이 조정

* fix: 모바일 사파리에서 선호도 슬라이드 제대로 되지 않는 이슈 해결

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

* feat: 랜덤 닉네임 및 자기소개에 대한 dummyAPI 구현 (#127)

* feat: 주류 추천 조회 dummyAPI 구현 (#129)

* feat: 주류 단일 조회시 카테고리와 평균 더미 데이터 추가

* Update .gitmodules (#138)

* fix: PageInfo 에 currentPage 가 1이 더 증가되는 현상 수정 (#135)

* fix: PageInfo 에 currentPage 가 1이 더 증가되는 현상 수정

* feat: 각 인수테스트에 Pagination 검증로직 추가

* feat: PathMatcherInterceptor 기능 구현 (#133)

- 편하게 url 패턴과 메서드를 등록할 수 있는 인터셉터 구현

* feat: 마이페이지에서 내가 마신 술, 내가 남긴 리뷰 모아보기 dummy API (#136)

* feat: 마이페이지에 술 모아보기 dummy api
- api 문서 추가

* feat: PageInfo 에 totalSize 반영

* feat: 마이페이지에서 내 리뷰 모아보기 dummy api 추가
- API 문서화
- PageAssembler 적용

* feat: 홈 화면 전체보기 및 전체보기 페이지 마크업 (#130)

* feat: 홈화면 마크업에 전체보기 및 배너 마크업 추가

* feat: Grid 컴포넌트 구현

* feat: CardList 컴포넌트 분리

* feat: ItemListSection 컴포넌트 구현

* fix: grid-template-columns의 minmax가 min, max 값이 없음에도 적용되는 이슈 해결

* feat: List 컴포넌트 구현

* feat: Grid Props에 padding 추가

* feat: ItemList namespace 구현

* feat: BannerSection 컴포넌트 구현

* feat: 원하는 개수에 맞게 리스트가 보여지도록 수정

* feat: config 객체를 활용하여 홈 화면 섹션 렌더링

* refactor: 사용되지 않는 스타일 컴포넌트 삭제

* feat: 전체보기 페이지 구현

* fix: item이 Undefined일 때 length를 계산하지 않게 함

* feat: home config에 showmore link 추가

* feat: App Router에 전체보기 패스 추가

* feat: Section 컴포넌트 구현

* feat: ListItem 컴포넌트 구현

* feat: CardItem 컴포넌트 구현

* refactor: ItemListSection을 도메인에 의존적이도록 DrinkListSection으로 변경

- Drinks에 대한 요소 정보가 도메인에 의존적이라고 생각되어, List컴포넌트를 별도 분리 하였음.

* feat: Card 컴포넌트 Props에 onClick 추가

* feat: Header 영역 배경에 그라디언트 추가

* feat: 전체보기 페이지 페이징 기구현

- API 미완성으로 인한 더미에서 유의미한 정보를 얻을 수 없어. 기본 틀만 작성함

* fix: svg EOL 이슈 해결

* refactor: 사용하지 않는 style파일 삭제

* fix: Banner Section radius 삭제

* refactor: Grid Props의 row, col을 number type으로 변경

* refactor: header 컴포넌트에 높이 추가

* refactor: 폴더구조 변경 및 리스트 더 불러오기 기능 구현

* refactor: Grid 컴포넌트를 스타일 컴포넌트로 변경

* feat: 마이페이지 화면 마크업 구현 (#137)

* feat: Image 컴포넌트 마크업 구현

* feat: Profile 컴포넌트 마크업 구현

* feat: Preview 컴포넌트 마크업 구현

* feat: 가로스크롤 리스트 (Horizontal) 컴포넌트 마크업 구현

* feat: TextReview 컴포넌트 마크업 구현

* feat: Card 컴포넌트 속성에 border 추가

* feat: Mypage에서 보여지는 개인 리뷰 카드 컴포넌트 마크업 구현

* feat: MyPage 마크업 구현

* feat: FlexBox Container 속성의 css 모듈 구현

* refactor: MyPage의 스타일에 Flex css 모듈 적용

* refactor: 한 줄 소개 prop 네이밍을 bio로 수정

* refactor: button 태그 셀프 클로징으로 수정

* refactor: 글자 사이의 간격 line-height로 조정

* refactor: FlexBox Props 타입을 CSSProperties로 변경

* refactor: Image 컴포넌트를 스타일 컴포넌트로 변경

* refactor: 화면 전체 크기 제한 설정
  - max: 480px, min: 280px
  - tab 속성 sticky로 변경
  - modal 속성 추가

* feat: 카테고리 정책 변경 및 카테고리 테이블 추가 (#142)

- DataLoader에 맥주, 소주, 와인, 막걸리 데이터 추가
- 주류 등록 및 수정 시 카테고리 검증 추가
- 하드 코딩한 카테고리를 동적으로 변경

* feat: 홈화면 및 전체보기 페이지 API 연동 (#143)

* feat: 홈화면 마크업에 전체보기 및 배너 마크업 추가

* feat: Grid 컴포넌트 구현

* feat: CardList 컴포넌트 분리

* feat: ItemListSection 컴포넌트 구현

* fix: grid-template-columns의 minmax가 min, max 값이 없음에도 적용되는 이슈 해결

* feat: List 컴포넌트 구현

* feat: Grid Props에 padding 추가

* feat: ItemList namespace 구현

* feat: BannerSection 컴포넌트 구현

* feat: 원하는 개수에 맞게 리스트가 보여지도록 수정

* feat: config 객체를 활용하여 홈 화면 섹션 렌더링

* refactor: 사용되지 않는 스타일 컴포넌트 삭제

* feat: 전체보기 페이지 구현

* fix: item이 Undefined일 때 length를 계산하지 않게 함

* feat: home config에 showmore link 추가

* feat: App Router에 전체보기 패스 추가

* feat: Section 컴포넌트 구현

* feat: ListItem 컴포넌트 구현

* feat: CardItem 컴포넌트 구현

* refactor: ItemListSection을 도메인에 의존적이도록 DrinkListSection으로 변경

- Drinks에 대한 요소 정보가 도메인에 의존적이라고 생각되어, List컴포넌트를 별도 분리 하였음.

* feat: Card 컴포넌트 Props에 onClick 추가

* feat: Header 영역 배경에 그라디언트 추가

* feat: 전체보기 페이지 페이징 기구현

- API 미완성으로 인한 더미에서 유의미한 정보를 얻을 수 없어. 기본 틀만 작성함

* fix: svg EOL 이슈 해결

* refactor: 사용하지 않는 style파일 삭제

* fix: Banner Section radius 삭제

* refactor: Grid Props의 row, col을 number type으로 변경

* refactor: header 컴포넌트에 높이 추가

* refactor: 폴더구조 변경 및 리스트 더 불러오기 기능 구현

* refactor: Grid 컴포넌트를 스타일 컴포넌트로 변경

* feat: 전체보기 페이지 무한 스크롤 구현

* refactor: drinks get 요청 시 리트라이 회수 기본값으로 동작하도록 변경

* refactor: 스크롤 최상단 이동 로직을 observer에 등록하는 로직과 분리

* refactor: '더보기+'를 '더보기>'로 변경

* refactor: 인라인 스타일 분리, inifiniteQuery 제네릭 삭제, InterSectionObserver root 삭제

- root의 경우 default가 document로 잡혀 별도 지정이 불필요하다고 생각되어 삭제하였음.

* feat: 마이페이지에서 내가 마신 술, 내가 남긴 리뷰 모아보기 (#144)

* feat: 내가 마신 술 기능 구현
- 레포지토리 테스트 작성

* feat: 내가 마신 술 인수테스트

* feat: 내가 남긴 리뷰 기능 구현
- dto 리팩토링

* feat: 내가 남긴 리뷰 레포지토리 테스트 작성

* feat: 내가 쓴 리뷰 인수테스트
- DrinkDto.from -> create 변경

* refactor: Review 리팩토링
- 생성, 수정 시간을 BaseEntity로 분리
- from -> create

* feat: MemberInfoAcceptanceTest 공통 메서드 분리

* feat: 내가 마신 술&내 리뷰 페이징 디폴트값 변경
- 관련 테스트 수정 및 검증 로직 추가

* feat: 레포지토리 메서드명 변경

* feat: 내가 마신 술 선호도 생성 기준으로 정렬
- Preference에 createdAt, modifiedAt 추가
- 관련 테스트 수정

* refactor: 변경된 Category에 맞춰 MemberInfoRepositoryTest 수정

* feat: 랜덤 닉네임 생성 및 멤버 닉네임/자기소개 수정 기능 (#140)

* feat: member 도메인에서 dto 객체 레이어 분리

* feat: 멤버의 닉네임을 의미하는 nickname 클래스 생성

* feat: 멤버의 자기소개를 의미하는 Biography 클래스 생성

* feat: 멤버의 랜덤 닉네임과 해쉬값을 부여하는 기능 구현

- 건배사와 건배사를 모아놓은 이넘, 랜덤 선택 기능 구현
- Database에서 가장 최신의 닉네임을 가져와 해당 해쉬값의 1을 더해주는 기능 구현

* feat: 테스트 및 테스트 멤버 픽스처 리팩토링

* feat: 멤버 수정하기 기능 추가

* feat: 멤버 중복 검출 및 중복 시 다음 해쉬로 넘어가는 기능 추가

* fix: 멤버 닉네임 및 자기소개 수정 기능 컴파일 오류 수정 (#149)

* chore: merge conflict 수정

* feat: 선호도 평균 추가 (#145)

* feat: 주류에 선호도 평균 컬럼 추가
- 선호도 등록 혹은 삭제시 선호도 평균 변경

* refactor: 주류를 등록할 때 카테고리 검증을 쿼리 한번으로 변경

* feat: 컨플릭트 해결 (#151)

* fix: conflict 해결

* feat: Drink 조회수 구현 및 선호도, 조회수 기반 주류 추천 기능 구현 (#146)

* feat: 주류 추천 조회 dummyAPI 구현

* feat: 추전 조회 기능 구현(선호도, 조회수)

* refactor: 정적 팩토리 메서드 create로 변경 및 조회 수 내림차순 정렬

* refactor: batchInsert에 ViewCount null 뜨는 오류 제거

* refactor: 테스트 then 부분 누락 수정

* refactor: PreferenceAvg 추가에 따른 선호도 조회 메소드 수정

* refactor: 쿼리 수정 및 테스트 오류 수정

* feat: 검색, 카테고리 조회 dummyAPI 구현 및 Category에 key 추가 (#158)

* feat: 검색, 카테고리 조회 dummyAPI 구현 및 Category에 key 추가

* refactor: adminCategory 관련 request 수정, 이에 맞는 서비스 수정

* refactor: Dto와 Request, Response의 필드 변경

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

* refactor: DataLoader의 이미지 경로 수정 (#157)

* refactor: DataLoader의 이미지 경로 수정

* feat: 오비 맥주 도수 현실적으로 수정

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

* refactor: TestDataLoader에 의존적인 테스트 리팩토링 (#161)

* refactor: RequestBuilder 리팩토링 및 AcceptanceTest 기본 뼈대 변경

* refactor: DrinkAcceptanceTest 리팩토링

* refactor: DrinkAcceptanceTest, LoginAcceptanceTest, MemberAcceptanceTest 리팩토링

* refactor: Api 에서 Tool 로 이름 변경

* feat: 깃헙 액션을 위한 workflow.yml 파일 설정 (#155)

* feat: 서브모듈 디렉토리 변경 (#163)

* chore: 프론트엔드 빌드 환경설정 (#166)

* chore: 실시간 성능 측정 도구 추가 (jenifer front)

* chore: prod 환경변수 및 빌드 커맨드 추가

* chore: 사용하지 않는 애셋 삭제

* chore: storybook 제거

* chore: snowpack 빌드 환경 설정

- bundle, minify, splitting, treeshake 적용
- polyfillNode: true 적용
- tsconfig extends
- test 파일 빌드에서 제외

* chore: 테스트 통과시에만 build 되도록 build scripts 수정

* feat: 프론트엔드 github actions 설정 (#176)

* feat: 프론트엔드 develop 빌드 설정

* feat: 프론트엔드 main 빌드 설정

* feat: 프론트엔드 main 빌드 설정 편집

* feat: 내가 마신 술, 내가 쓴 리뷰 전체보기 페이지 마크업 및 기능 구현 (#153)

* feat: ArrowButton 컴포넌트 구현 및 적용

* reactor: Preview 컴포넌트에 onClick 속성 추가 및 Flex 모듈 적용

* refactor: Horizontal 컴포넌트를 Styled Component로 변경

* feat: VerticalItem 컴포넌트 구현

* feat: MyDrinkItem 컴포넌트 마크업 구현

* refactor: Image 컴포넌트 사이즈 추가 및 타입 export

* feat: 내가 마신 술 전체보기 페이지 마크업 구현

- MyDrinkItem에 이미지 사이즈 props 추가

* refactor: 이미지 사이즈 추가

* refactor: Preview 컴포넌트 Header 영역 스타일 추가

* feat: EditButton 컴포넌트 분리

* refactor: TextReview 컴포넌트에 더보기 버튼과 수정하기 버튼 마크업 추가

* refactor: 내 리뷰 카드의 크기 조정

* feat: MyReviewItem 컴포넌트 마크업 구현

* feat: 내가 남긴 리뷰 페이지 마크업 구현

* refactor: Horizontal 컴포넌트 스타일 수정

* refactor: 내가 남긴 리뷰 페이지 section 영역 스타일 추가

* refactor: MyPage 페이지 마크업 필요없는 부분 삭제

* feat: 내정보가져오기 API 연동
- 마이페이지을 처음 로드할 때, 로그인 된 유저인지 확인하는 로직 구현

* refactor: Image 컴포넌트에 background color 속성 추가

* feat: MyDrinkItem, MyReviewItem 타입 생성

* feat: 마이페이지에서 내가 남긴 리뷰, 내가 마신 술 정보 API 연동

* refactor: 내가 마신 술의 제목 길이 제한 설정

* feat: InfinityScrollPoll 컴포넌트 생성

* feat: useIntersectionObserver 커스텀 훅 구현

* refactor: 모아보기 페이지의 request 파라미터에 page, size 추가

* feat: 내가 남긴 리뷰 모아보기 페이지 기능 구현

* feat: 내가 마신 술 모아보기 페이지 기능 구현

* refacotr: Horizontal 컴포넌트 HorizontalScroll로 이름 변경

* refacotr: ArrowButton 컴포넌트 borderSize props 네이밍 borderWidth로 변경

* refactor: 필요없는 컴포넌트 삭제 및 리뷰 클릭 시 상세페이지로 이동하는 기능 추가

* refactor: 필요없는 컴포넌트 병합 및 상품 클릭 시 상세페이지로 이동하는 기능 추가

* feat: 내가 쓴 리뷰에 더보기 버튼 기능 추가

* fix: 마이페이지 리팩토링 코드 적용

* refactor: message 상수 적용

* refactor: 필요없는 스타일 삭제

* refactor: 마이페이지에서 보여줄 상품 개수 명시

* refactor: 대체 이미지 url 변경

* refactor: 공통된 파라미터의 타입 하나로 변경

* refactor: ArrowButton type 속성 및 children Props 추가, name Props 삭제

* refactor: 인라인 함수 -> 메서드로 정의하여 수정

* feat: Status 컴포넌트 구현 및 마이페이지에서 분리

* feat: Arrow 컴포넌트 구현 및 ArrowButton 삭제

* refactor: 띄어쓰기 없는 알파벳의 경우 줄바꿈이 안되는 문제 해결
- PersonalReviewCard 컴포넌트에 word-break 속성 추가

* refactor: MyReviewItem 컴포넌트 PersonalReviewItem으로 네이밍 변경
- MyReviewsPage 안에 있는 reviewItem 컴포넌트 Item 폴더 하위로 이동
- MyReview 타입 PersonalReview 타입으로 변경

* refactor: 페이지 이동 메서드명 변경

* refactor: EditButton 컴포넌트 삭제

* refactor: Arrow 컴포넌트 Styled 컴포넌트로 변경

* refactor: onMoveToPath 메소드 명 직관적으로 수정

* refactor: useIntersectionObserver hook 네이밍 변경

* fix: homepage 형식 변경에 따른 테스트 코드 변경 (#178)

- render시 Router 추가
- 홈화면 추천, 전체보기 섹션 테스트 코드 추가

* fix: css import 오류 수정 (#180)

* fix: css import 방식 변경 (#183)

* fix: css import 오류 수정

* chore: @emotion/core 설치

* fix: css import 오류 수정

* chore: @emotion/core 삭제

* chore: tsconfig에 @emotion/react/types/css-prop types 추가

* chore: @emotion/styled 버전 업
- 11.0.0 버전 이상으로 업그레이드

* chore: @emotion/css 설치

* chore: tsconfig에 @emotion/react/types/css-prop types 삭제

* chore: @emotion/css 삭제

* fix: css import 형식 변경 (#184)

* feat: 데이터베이스 설정 (#181)

* feat: Category의 key 컬럼 이름 변경

* feat: 데이터베이스 연동 설정
- 서브모듈에 데이터소스 설정 추가
- build.gradle, application.yml에 반영

* fix: datasource 인덴트 수정 (#188)

- 배포 도메인 변경에 따른 oauth url 변경

* chore: 프론트 PR 시 빌드 테스트 추가, gitignore에 .env 추가, dev, prod 환경변수 변경 (#186)

* feat: gitignore에 .env 추가 및 .storybook 삭제

- storybook 라이브러리 미사용

* chore: dev, prod 환경 변수의 redirect url, api url 변경

* chore: 프론트 엔드 PR 시 build test 하는 github action 추가

- 테스트 코드 통과 못하면 build 되지 않음.

* chore: front-prod-deploy github action name 변경

* feat: 상세페이지 선호도 평균 추가 및 리뷰 무한스크롤 구현 (#179)

* feat: 상세보기에 평균 선호도 추가

* feat: 상세 페이지 리뷰 무한 스크롤 구현

* refactor: 리뷰 관련 API 요청 로직을 Review 컴포넌트로 이동

* feat: 상세페이지 조회 테스트 코드 작성

* fix: 웹 화면에서 별점 입력이 안되는 이슈 해결

* feat: 선호도 추가 테스트 코드 구현

* feat: 선호도 삭제 관련 테스트코드 추가

* feat: 로그인 되지 않은 사용자의 선호도 입력 관련 테스트 코드 추가

- 로그인된 사용자, 로그인 되지 않은 사용자 테스트 분리

* feat: 로그인 된 사용자의 리뷰 작성 관련 테스트 코드 추가

* feat: 로그인 되지 않은 사용자의 리뷰 작성 관련 테스트 코드 추가

* feat: 사용자의 리뷰 수정 관련 테스트 코드 추가

* refactor: 수정완료 시 수정 폼의 textContent 초기화

* feat: 사용자의 리뷰 삭제 관련 테스트 코드 추가

* refactor: 삭제 시 수정 폼의 textContent 초기화

* refactor: 로그인된 사용자와 로그인 되지 않은 사용자 분리

* refactor: test용 mock함수의 파일 명 변경

- mocks/test.ts 시 테스트 코드로 인식되어 테스트 되는 경우가 있어 mockTestFunction.ts로 변경하였음.

* chore: snowpack build시 제외 목록에 '*.test.tsx' 추가

* feat: button disabled 스타일 추가

* refactor: button disabled 스타일 변경

* refactor: 인라인 함수 분리

* refactor: 무한 스크롤 부분을 공통 컴포넌트및 훅으로 변경

* refactor: modal의 열고 닫힘에 따라 리뷰 수정 폼의 내용을 채우고, 비우는 기능 추가

* feat: 리뷰 수정 시 내용이 변경되지 않고 수정버튼을 누를 시 요청 보내지 않도록 수정

* refactor: test시 user 데이터를 명시적으로 변경

* feat: 검색페이지 및 검색결과 페이지 마크업 구현 (#189)

* refactor: Header 컴포넌트에 커스텀 Flex 스타일 모듈 적용

* feat: SearchBar 컴포넌트 확장 및 Search Icon 구현

* feat: 모바일에서 키보드 온보드 상태일 때, 하단 탭을 Tab을 숨기는 기능 구현

* feat: 디바이스의 너비기 320px보다 작을 때, 기본 폰트 사이즈를 14px로 지정

* feat: ios 모바일 기기의 관성스크롤 제한
- 하단 Tab은 관성스크롤이 생기지 않도록 조정

* feat: SearchPage 컴포넌트 마크업 구현
- 검색 페이지 주소 추가 및 적용

* feat: HomePage에 SearchBar 컴포넌트 추가

* refactor: placeholder props로 전달

* feat: Tab에 검색 페이지로 이동하는 아이콘 추가

* refactor: 커스텀 gird css rowGab 속성 활용 및 justify-items 속성 추가

* feat: 검색결과페이지 마크업 구현

* refactor: width props를 단위까지 받도록 수정

* refactor: 상태로 관리될 필요가 없는 부분 수정

* refactor: onMoveGoBack 메소드명 onMoveToPrevPage로 변경

* refactor: onGoSearchPage 메소드명 onMoveToSearchPage로 변경

* refactor: 검색 아이콘 백그라운드 삭제 및 크기 확대

* fix: 메인 페이지인지 확인하는 조건문 수정

* fix: 내가 마신 술의 선호도 실제값으로 수정 (#191)

* feat: 검색 기능 구현과 카테고리 조회 기능 구현 (#190)

-queryDSL을 이용해 동적 쿼리 처리

* feat: 기존 추천 알고리즘을 협업 필터링으로 변경 (#198)

* feat: 추천 시스템 구현 (mahout 라이브러리 이용)

* feat: 기존 추천 알고리즘을 협업 필터링 알고리즘으로 변경
- 테스트 변경 및 추가

* refactor: dev pull

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

* feat: 카테고리, 프로필 이미지, 탭바 아이콘 추가 및 변경 (#195)

* feat: 카테고리, 도수, 탭바 아이콘 추가 및 변경 및 헤더 로고 변경

- icon 폴더를 @shared로 이동
- icon 파일 명을 컴포넌트 명과 동일하게 변경
- icon 에 title 추가
- iconProps interface declare

* refactor: tabBar 검색 아이콘 병경

* refactor: 소주 아이콘 크기 확대 및 막걸리 아이콘 오타 수정

* feat: 카테고리 아이콘 적용

* feat: 사용자 프로필 아이콘 적용

* refactor: 프로모션 이미지 s3로 이전 및 src 변경

* refactor: 사용하지 않는 요소 삭제

* docs: api 문서 수정 (#192)

* docs: api 문서 각 도메인 별 나누기 및 테스트 문서 작성

* feat: 프론트 배포 버튼 추가 및 aws s3 업로드 명령어 수정 (#202)

* feat: 수동 빌드 버튼 생성

* feat: aws cli 명령어 수정

폴더에서 삭제된 내용을 반영시켜주는 --delete 명령어 추가

* refactor: 협업 필터링에 달린 리뷰 반영 (#200)

* refactor: 리뷰 반영

* refactor: profile test 추가

* feat: prod와 dev 환경에서 mysql로 사용

* refactor: 프로필 삭제

* fix: 전체 카테고리 디비 등록 구현 (dev, local) (#204)

* fix: 검색 단어의 대소문자 구분 없애는 기능 추가 (#205)

* fix: 선호도를 입력 안했을 시 추천가능하도록 수정 (#207)

* fix: 추천 알고리즘 시 avg 0 도 추천 가능으로 변경

* fix: review 에 author name 이 없는 문제 해결 (#208)

- 컨트롤러, 서비스 레이어 간 DTO 리팩토링

* feat: 서브모듈 올바른 커밋 바라보도록 수정 및 member 테이블 mysql 구문 수정 (#211)

* fix: isExists 메서드를 queryDSL 구문으로 변경 (#212)

* fix: 추천 주류가 없을시 발생하는 문제 수정 (#213)

* fix: 리뷰 조회 오류 수정 (#214)

- DataLoader 에서 Member 기본 정보 삽입

* fix: isExsits에 파라미터로 받은 nickname과 비교하는 where 구문으로 수정 (#215)

* fix: isExists 메서드를 queryDSL 구문으로 변경

* fix: isExists 메서드에 맞는 조건으로 수정

* fix: 데이터로더 데이터 추가 (#219)

* feat: 검색 기능 구현 (#206)

* feat: 전체 카테고리 불러오는 API 연동

* feat: 검색 API 연동

* refactor: 카테고리 타입 Icon 추가

* refactor: 카테고리 타입 설정된 것으로 적용 및 선택 시 검색 되도록 기능 구현

* refactor: SearchResultList 인터페이스 타입으로 변경

* refactor: 검색 결과를 컴포넌트 내 상태로 관리하도록 수정

* refactor: onClick 이벤트핸들러 커링 함수로 변경

* refactor: 쿼리 page의 default 값 url 구문에서 명시

* refactor: 카테고리 namespace 삭제 후 인터페이스로 병합

* feat: dev에서도 콘솔 로깅 추가 (#217)

* fix: submodule의 변경사항 반영 (#221)

* fix: 데이터로더 익명 유저 추가 (#222)

* fix: 데이터로더 리뷰 삭제 및 이미지 경로 수정 (#223)

* refactor: 구글 애널리틱스 추가, API 변경사항 적용(추천, 리뷰), 마이페이지 리다이렉트 이슈 해결, 모바일 화면에서 모달 하단부분이 잘려보이는 이슈 해결 (#224)

* refactor: viewAllPage 파일명 변경

* refactor: netlify.toml 삭제

* feat: 구글 애널리틱스 추가

* feat: 추천 주류 조회 API 변경 적용

* refactor: 리뷰 카드에 닉네임 실제 API 로 변경

* fix: 로그인 상태일 때 mypage에서 새로고침시 로그인 페이지로 리다이렉트 되는 이슈 해결

* fix: 모바일 화면에서 모달 하단 부분이 잘려 보이는 이슈 해결

* feature: 추천 조회 API 변경에 따른 테스트 코드 수정

* fix: Preference 테이블 소문자로 변경 (#226)

* fix: Preference 테이블 소문자로 변경

* fix: 회원일 시 선호도 기반 추천 불가능 기능 픽스

* fix: 여러번 날아가는 쿼리를 임시방편으로 EAGER 로 수정 (#229)

* fix: 여러번 날아가는 쿼리를 Join Fetch로 수정 (n+1문제 해결) (#231)

* fix: 여러번 날아가는 쿼리를 임시방편으로 EAGER 로 수정

* fix: 여러번 날아가는 쿼리를 Join Fetch로 수정 (n+1문제 해결)

* fix: ViewCount 테스트 삭제 (#232)

* refactor: 헤더 로고에 배포 환경 표시 및 선호도 평균 소수점 둘 째 자리에서 반올림해서 화면에 표시하도록 변경 (#230)

* feat: 헤더 로고에 배포 환경 표시

- prod의 경우 현재 beta버전으로 beta가 표시 됨

* refactor: 상세보기 페이지에서 선호도 평균 소수점 1째 자리까지만 표시하도록 변경

* refactor: 로고 위 환경 표시 글씨 삼항연산자로 인한 스타일 오류수정

* fix: query 튜닝 (#233)

* feat: 1.0.0 베타 버전으로 버전 수정 및 README.md 업데이트 (#234)

Co-authored-by: sihyung92 <[email protected]>
Co-authored-by: devhyun637 <[email protected]>
Co-authored-by: bomin <[email protected]>
Co-authored-by: perenok <[email protected]>
Co-authored-by: pika96 <[email protected]>
Co-authored-by: Solji Choi <[email protected]>
Co-authored-by: sunhpark42 <[email protected]>
  • Loading branch information
8 people authored Aug 1, 2021
1 parent bdc8044 commit 7964d98
Show file tree
Hide file tree
Showing 380 changed files with 37,828 additions and 1 deletion.
26 changes: 26 additions & 0 deletions .github/workflows/front-build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: front-build-test

# PR 요청에 대해
on:
pull_request:
branches:
- develop # develop 브랜치에서 pr 이벤트가 일어났을 때 실행

defaults:
run:
working-directory: ./frontend # build steps의 run을 ./frontend 경로에서 실행

jobs:
build:
# label이 [front] (id: 3141723409) 일때만 동작
if: contains(github.event.pull_request.labels.*.id, 3141723409)
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2

- name: Install Dependencies
run: npm install

- name: Build
run: npm run build:dev
33 changes: 33 additions & 0 deletions .github/workflows/front-dev-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: front-dev-deploy

# PR 요청에 대해
on:
pull_request:
branches:
- develop # develop 브랜치에서 pr 이벤트가 일어났을 때 실행
types: [ closed ] # PR이 closed 됐을 때에만 build 실행

workflow_dispatch:

defaults:
run:
working-directory: ./frontend # build steps의 run을 ./frontend 경로에서 실행

jobs:
build:
# close 이벤트 중 merge일 때만 동작 && label이 [front] (id: 3141723409) 일때만 동작
if: (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.id, 3141723409))
|| github.event_name == 'workflow_dispatch'
runs-on: deploy-runner
steps:
- name: Checkout source code
uses: actions/checkout@v2

- name: Install Dependencies
run: npm install

- name: Build
run: npm run build:dev

- name: Deploy
run: aws s3 sync --delete ./build s3://jujeol-dev-deploy
33 changes: 33 additions & 0 deletions .github/workflows/front-prod-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: front-prod-deploy

# PR 요청에 대해
on:
pull_request:
branches:
- main # develop 브랜치에서 pr 이벤트가 일어났을 때 실행
types: [closed] # PR이 closed 됐을 때에만 build 실행

workflow_dispatch:

defaults:
run:
working-directory: ./frontend # build steps의 run을 ./frontend 경로에서 실행

jobs:
build:
# close 이벤트 중 merge일 때만 동작 && label이 [front] (id: 3141723409) 일때만 동작
if: (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.id, 3141723409))
|| github.event_name == 'workflow_dispatch'
runs-on: deploy-runner
steps:
- name: Checkout source code
uses: actions/checkout@v2

- name: Install Dependencies
run: npm install

- name: Build
run: npm run build:dev

- name: Deploy
run: aws s3 sync --delete ./build s3://jujeol-prod-deploy
68 changes: 68 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

.DS_Store

# User-specific stuff
.idea
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

# VSCode configuration
cspell.json

./logs/jujeol.log
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "jujeol-auth"]
path = jujeol-auth
url = https://github.com/jujeol-jujeol/jujeol-auth.git
branch = main
39 changes: 38 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
# 술 알고 마시자! 술 추천 서비스 주절주절
<p align="center">
<img width="640" alt="jujeol_og_image" src="https://user-images.githubusercontent.com/67677561/127765454-d9abca84-093f-46b9-b31c-e73e3ef4090c.png">
</p>
<p align="center">
<img src="https://img.shields.io/badge/react-v17.0.2-9cf?logo=react" alt="react" />
<img src="https://img.shields.io/badge/spring_boot-v2.5.2-green?logo=springboot" alt="spring-boot" />
<img src="https://img.shields.io/badge/typescript-v4.3.5-blue?logo=typescript" alt="typescript"/>
<img src="https://img.shields.io/badge/mysql-v8.0.26-blue?logo=mysql" alt="mysql"/>
</p>

# 술 알고 마시자! 술 추천 및 리뷰 서비스 주절주절

술 알고 마시자! 알고 마시면 더 맛있는 술!
당신을 위한 술을 추천해드립니다.

편의점에서 처음 보는 술을 봤을때, 어떤맛인지 궁금할 땐?
아 오늘 와인이 마시고 싶은데 내 취향에 맞는 와인이 궁금할 땐?

바로, 주절주절!

* [테크 블로그 구경가기](https://jujeol-jujeol.github.io/)

## Members
| [서니](https://github.com/sunhpark42) | [티케](https://github.com/devhyun637) | [웨지](https://github.com/sihyung92) | [소롱](https://github.com/soulgchoi) | [피카](https://github.com/pika96) | [크로플](https://github.com/perenok) | [나봄](https://github.com/qhals321) |
| :----------: | :--------: | :---------: | :---------: | :---------: | :---------: | :---------: |
| <img src="https://avatars.githubusercontent.com/u/67677561?s=400&v=4" width=200px alt="_"/> | <img src="https://avatars.githubusercontent.com/u/59258239?s=400&v=4" width=200px alt="_"/> | <img src="https://avatars.githubusercontent.com/u/51393021?s=400&v=4" width=200px alt="_"/> | <img src="https://avatars.githubusercontent.com/u/52682603?s=400&v=4" width=200px alt="_"> | <img src="https://avatars.githubusercontent.com/u/52442949?s=400&v=4" width=200px alt="_"> | <img src="https://avatars.githubusercontent.com/u/68995534?s=400&v=4" width=200px alt="_"> | <img src="https://avatars.githubusercontent.com/u/63535027?s=400&v=4" width=200px alt="_"> |

## **Release Note (최신 버전 1.0.0-beta)**

### **| 2021. 08. 01 : v1.0.0-beta**

* 회원가입, 로그인 기능
* 술 전체보기 기능
* 술 추천 기능
* 술 검색 기능
* 술 상세정보
* 술 선호도 입력 및 수정 기능
* 술 리뷰 및 수정, 삭제 기능
40 changes: 40 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

src/main/resources/application-oauth.yml
src/main/resources/application-datasource.yml
src/main/resources/static/index.html
12 changes: 12 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## backend quickstart

### 2021-jujeol-jujeol/backend 경로 이동 및 빌드
```
cd backend
./gradlew clean bootJar
```

### 실행
```
java -jar -Dspring.profiles.active=local build/libs/*SNAPSHOT.jar
```
108 changes: 108 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
plugins {
id 'org.springframework.boot' version '2.5.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id "org.asciidoctor.jvm.convert" version "3.3.2"
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id 'java'
}

group = 'com.jujeol.'
version = '1.0.0-beta'
sourceCompatibility = '11'

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation('org.apache.mahout:mahout-integration:0.13.0') {
exclude group: 'log4j', module: 'log4j'
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}

implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.restdocs:spring-restdocs-restassured'
implementation 'net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1'
testImplementation 'io.rest-assured:rest-assured:3.3.0'
implementation 'io.jsonwebtoken:jjwt:0.9.1'
implementation 'com.querydsl:querydsl-jpa'
}

ext {
snippetsDir = file('build/generated-snippets')
}

processResources.dependsOn('copySecret')

task copySecret(type: Copy) {
from '../jujeol-auth/application-oauth.yml'
into 'src/main/resources'

from '../jujeol-auth/application-datasource.yml'
into 'src/main/resources'
}

test {
useJUnitPlatform()
}

asciidoctor {
dependsOn test
inputs.dir snippetsDir
}

task createDocument(type: Copy) {
dependsOn asciidoctor
delete file('src/main/resources/static/index.html')
from file("build/docs/asciidoc/index.html")
into file("src/main/resources/static")
}

build {
dependsOn createDocument
}

bootJar {
dependsOn createDocument
from("${asciidoctor.outputDir}") {
into 'static'
}
}

//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
jpa = true
querydslSourcesDir = querydslDir
}

sourceSets {
main.java.srcDir querydslDir
}

configurations {
//아래를 지정하지 않으면, compile 로 걸린 JPA 의존성에 접근하지 못한다.
querydsl.extendsFrom compileClasspath
}

compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
//querydsl 추가 끝
Binary file added backend/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions backend/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 7964d98

Please sign in to comment.