-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: compose.yml 등 배포 관련 설정 파일 작성 #43
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
refactor: RedisProperty 사용
MariaDB, Redis 포트 개방 컨테이너 restart 설정
JWT 관련 속성 test에서 설정 test task, build task 정상화
Closed
DreamChaserDeekay
added a commit
that referenced
this pull request
Jan 2, 2023
* Font 전역변수 설정 * update: Header 외관 구현완료 * update: Not found, Footer, SideBar, 기본 틀 수정 * update: link 연결 완료 * design : Footer 완료 * design : footer 완료 * feat: Question 기능 구현 (#19) * feat: Question CRUD 기능 구현 * feat: Question Vote 기능 구현 * feat: QuestionVote endpoint 변경 * refactor: QuestionVote controller, mapper, service 분리 * refactor: Auditing 컬럼을 Auditable mapped superclass로 분리, view 테이블 분리 * feat: 트랜잭션 적용 * feat: AuditorAware bean 구현 * refactor: 패키지 구조 변경 * feat: 빈 문자열 검색 제한 * feat : Authorization, Authentication 구현 (OAuth2 제외) (#20) * feat : 기본 아이디 + 비밀번호 로그인 인증 구현 (MySQL 연동 테스트 완료) (추후 희성님 MemberRepository 연동 필요) 연동 테스트에 필요한 다음 파일들은 따로 커밋하지 않았습니다. 1) application.yml 2) schema.sql 3) Member 관련 클래스 * feat : Jwt 인가 구현 (MySQL 연동 테스트 완료) 로컬에서는 잘 되지만, 실제 DB나 프론트엔드와 연동했을 때에도 잘 되는지는 추후 테스트 필요. * comment : jwt key, accessTokenExpiration, refreshTokenExpiration 주석 추가 * feat : Jwt Verification Filter (Jwt 토큰의 유효성 검사 필터) 추가 에러 핸들러 추가 * feat : Access Token 재발급 via Refresh Token 기능 구현 refactor : AuthController, AuthService 구현하여 코드 가독성 향상 * refactor : Access Token 재발급 로직 리팩토링 * feat : Logout 로직 구현 (refresh token 데이터 삭제) * feat : logout 기능 @AuthenticationPrincipal 활용하여 인증정보 유무 확인 기능 추가 * delete : 추상 클래스 DataTable 삭제 rename : JwtTokenizer provider 패키지로 이동 * Feat: Answer 기능 구현 (#21) * feat : Answer CRUD 기본 구현 * feat : createAnswer 검증 기능 추가 * comment : 엔티티, 서비스 주석 추가 Co-authored-by: [subimm] <[[email protected]]> Co-authored-by: DreamChaserDeekay <[email protected]> * Feat/member (#22) * feat: member 관련 DTO, service, Controller, Mapper 등 추가 외 의존성 추가 * refactor : 코드 리팩토링 Co-authored-by: DreamChaserDeekay <[email protected]> Co-authored-by: DreamChaserDeekay <[email protected]> * Feat/allquestions (#23) * Questions 페이지1차 구현, Edit Question 페이지 1차 구현 * questions 페이지네이션 구현 * 회원가입 페이지 틀만 구현 * design: header 로그인시 나오는 ui 구현완료 * feat 로그인, 질문글 작성, 답변 수정 기능 추가 로그인, 질문글 작성, 답변 수정 기능 추가 * remove node-modules etc remove node-modules etc * refactor : 백엔드 코드 통합 및 정리 * refactor : spring security 설정 변경 (h2 console 확인 가능하게) import.sql member_id 칼럼 추가 * refactor : lombok, mapstruct 의존성 추가 순서 변경 * refactor : Member 엔티티 id Generate Strategy AUTO -> IDENTITY 변경 * refactor : AuthController 엔드포인트 및 import 구문 수정 * feat : createMember() 비밀번호 encode 로직 추가(passwordEncoder) * fix: ElementCollection FetchType 변경 및 password length 변경 (#25) * refactor : answer CRUD 리팩토링 (#26) Co-authored-by: [subimm] <[[email protected]]> * Feat/authorize requests (#27) * refactor : api 명세서 수정에 따른 SecurityConfig 권한 부여 url 수정 comment : AuthService 주석 수정 * feat : refresh token 쿠키 생성 로직 초안 작성 * Feat/회원가입 (#28) * 소셜로그인 미정, 로그인 틀 1차 정리 * feat: 회원가입 비밀번호,이메일 유효성검사 추가 * fix: 질문글 수정페이지 입력부분 수정 * fix: 회원가입페이지 레이아웃정리 * feat 로그인, 답변 수정, 질문글 작성 페이지 서버 연결 코드 작성 로그인, 답변 수정, 질문글 작성 페이지 서버 연결 코드 추가 작성 * feat: Answer, Member와 연동 (#30) feat: AuditorAware 구현 feat: 질문 수정, 삭제시 인가 처리 refactor: Mapper 수정 * refactor: utils 정리 (#32) MultiResponseDto, AuditingConfig utils로 이동 페이지네이션된 응답은 MultiResponseDto로 통일 PageInfo를 static nested class로 변경 SingleResponseDto 제거 * feat : answer vote 기능 추가 (#33) Co-authored-by: [subimm] <[[email protected]]> * Feat/data connect (#35) * fix: 회원가입페이지레이아웃 정리, axios 적용 시도 * fix: 질문수정페이지 axios 수정 * design 로그아웃, 질문상세페이지 * feat 로그인 및 세부 기능 수정 로그인 및 세부 기능 수정 * design 질문 목록, 회원가입, 질문 상세 페이지 수정 질문 목록, 회원가입, 질문 상세 페이지 수정 * feat: axios * feat Deletebutton * feat 단일 질문글 데이터 get 요청 구현 단일 질문글 데이터 get 요청 구현 * feat: 질문 정렬 API 구현 (#34) * refactor: answerCount, voteCount 집계 로직 변경 feat: 질문 정렬 API 구현 chore: local, server 프로파일 분리 fix: validateToken 로그 방식 변경 * feat: page, size 기본값 추가 및 검증 적용 format: 불필요한 코드 제거 * feat: sort 기본값 추가 fix: viewCount 매핑 수정 refactor: 검색 여부 판단에 Optional 사용 * refactor: QuestionResponse 구현 복수의 질문을 조회할 때 발생하는 N+1 문제 해결을 위해 응답 형태에 맞는 SQL 쿼리문을 사용하여 QuestionResponse entity를 만들고 DTO를 대체하였다. QuestionRepository에서 복수의 질문을 조회하던 기능을 QuestionResponseRepository로 옮겼다. 단일 질문을 조회, 수정하는 경우에는 Question entity에 접근이 필요하므로 QuestionResponse를 DTO로만 사용하게 했다. feat: 질문 제목, 내용 글자수 제한 추가 fix: 질문 내용 데이터 타입 text로 지정 * format: 줄바꿈 조정 * format: 들여쓰기, 컬럼명 등 수정 * fix: MySQL에서 동작하기 위해 SQL문 수정 fix: CORS 설정 chore: server profile 설정파일 수정 * feat 질문글 상세 페이지 및 답변 수정 페이지 axios 수정 및 구현 질문글 상세 페이지 및 답변 수정 페이지 axios 수정 및 구현 * all questions 페이지서버연결 1차 * feat : getAnswers 정렬 기능 추가 (#37) * feat : getanswers 정렬 기능 추가 * refactor : sort 메서드 삭제 Co-authored-by: [subimm] <[[email protected]]> * feat 페이지네이션 * feat 질문글 상세 페이지 서버 연결 코드 구현 및 수정 질문글 상세 페이지 서버 연결 코드 구현 및 수정 * style 질문글 상세 페이지 CSS 수정 질문글 상세 페이지 CSS 수정 * 게시글 id값 동기화 * feat: 예외 처리 ControllerAdvice 구현 (#38) * feat: 예외 처리 ControllerAdvice 구현 rename: ErrorResponse 패키지 변경 * feat: DuplicateKeyException 처리 구현 * feat : reissue 기능 구현 및 auths 파트 리팩토링 (#40) * refactor : api 명세서 수정에 따른 SecurityConfig 권한 부여 url 수정 comment : AuthService 주석 수정 * feat : refresh token 쿠키 생성 로직 초안 작성 * refactor : 1. Access Token 및 Refresh Token 리턴 방식 수정 (기존 : response body에 포함 / 수정 후 : Cookie 및 Header에 포함) 2. api 파라미터 변경 (기존 : request body / 수정 후 : Cookie 및 Header) * refactor : password length, fetchType EAGER * feat : 1. logout 실패 시 에러 메시지 반환 로직 추가 2. accessToken 만료 시 백엔드 자체적으로 reissue로 다이렉트 하는 로직 추가 (보완 필요) * feat : accessToken 만료 시, 자동 reissue 기능 추가 (리팩토링 예정) * refactor : auths 파트 리팩토링 1. 토큰 만료 시 자동 reissue 메소드 명 변경 (postReissue -> autoReissue) 2. autoReissue 메소드 위치 변경 (JwtTokenizer -> JwtAuthenticationFilter) 3. TokenRequestDto 클래스 삭제 (token을 header로 받아서 필요 없음) 4. JwtTokenizer - verifySignature 메소드 삭제 (usage 없음) 5. HeaderMapRequestWrapper 클래스 수정 (필요없는 메소드 삭제) 6. JwtAuthenticationFilter - shouldNotFilter 메소드 수정 (필터링 필요 없는 URL 설정) * refactor : auths 파트 리팩토링 1. redis 를 이용한 refreshToken 관리 기능 추가 - RedisConfig.java, RedisDao.java 생성 2. autoReissue 메소드 삭제 (AuthService 의 reissue 메소드 호출하여 사용) 3. AuthController.java - reissue 메소드 삭제 (엔드포인트 없이 내부적으로 바로 처리) 4. RefreshToken.java, RefreshTokenRepository.java 삭제 (redis 로 대체) 5. JwtTokenizer.java - generateRefreshToken 권한 정보 포함하여 생성 6. JwtAuthenticationFilter.java - doFilter 로직 리팩토링 * Redis가 추가되어서, 로컬에서 테스트 해보시려면 redis를 설치하셔야 합니다. 참고 부탁드립니다! * fix slice 오류 정정 및 CSS 재보완 slice 오류 정정 및 CSS 재보완 * refactor : memberService 메소드 리팩토링 (#42) refactor : patchMember 에 passwordEncoder 적용 feat : deleteMember 시 redis에서 refreshToken 삭제 * feat 최대 글자수 제한 기능 추가 최대 글자수 제한 기능 추가 * fix 질문글 작성 글자수 제한 정정 및 오류 처리 정정 질문글 작성 글자수 제한 정정 및 오류 처리 정정 * feat pagination * chore: compose.yml 등 배포 관련 설정 파일 작성 (#43) * chore: compose.yml 등 배포 관련 설정 파일 작성 refactor: RedisProperty 사용 * chore: compose.yml 수정 MariaDB, Redis 포트 개방 컨테이너 restart 설정 * chore: test task를 위한 application.yml 추가 JWT 관련 속성 test에서 설정 test task, build task 정상화 * Refactor/member (#44) * refactor : patchMember 에 passwordEncoder 적용 feat : deleteMember 시 redis에서 refreshToken 삭제 * refactor : RedisConfig.java 수정 * fix:get,patch 작동수정, css 일부수정 (#46) * fix:editquestion 버튼 css 수정 (#48) * fix 파라미터 일부 수정 파라미터 일부 수정 * Fix/authorization (#49) * fix : JwtAuthenticationFilter.java - shouldNotFilter 필터링 조건 추가 (Request Method) * refactor : JwtAuthenticationFilter.java - import 구문 정리 * fix 답변 수정 기능 서버 연결 코드 수정 답변 수정 기능 서버 연결 코드 수정 * feat : answer Response에 memberName 추가 (#50) Co-authored-by: [subimm] <[[email protected]]> * chore: Redis 비밀번호 인증 적용 (#51) * fix:페이지네이션 (#52) * chore: compose.yml Redis healthcheck 변경 (#53) * refactor: 예외 처리 (#54) * refactor: 예외 메시지 명시 및 예외 처리 핸들러 추가 * refactor: 예외 클래스 변경 및 메시지 추가 불필요한 코드 제거 * refactor: ErrorResponse null 필드는 안 보이게 변경 * refactor : auths 단 refactoring (#56) 1. JwtExceptionHandlerFilter.java 추가 - JwtAuthenticationFilter.java 와 역할 분리 2. AuthService.java 단 예외 처리 구체화 - JwtExceptionAdvice.java 에서 처리 3. JwtAuthenticationFilter.java - shouldNotFilter 조건 추가 - 로컬에서 h2 console 을 이용하여 테스트 시, accessToken null 예외가 발생해서 필터링 되지 않도록 처리 4. 로그 추가 * refactor: 예외 처리, 인가 리팩토링 (#57) refactor: ExceptionMessage enum으로 예외 메시지 정리 refactor: 인가 처리 추가 구현 질문 수정 및 삭제 작성자만 가능하게 인가 처리 회원 정보 본인만 확인 가능하게 인가 처리 사용하지 않는 파일 정리 * fix: 질문 투표 점수 예외 메시지 수정 (#58) * remove: server/package-lock.json 삭제 * fix : 답변 예외처리 메세지 수정 (#59) Co-authored-by: [subimm] <[[email protected]]> * fix: CORS 필터 추가 (#60) * fix : corsconfiguration 을 통한 cors 설정 / 에러 메시지 반환 -> 에러 로그 기록 (#61) * refactor : auths 단 refactoring 1. JwtExceptionHandlerFilter.java 추가 - JwtAuthenticationFilter.java 와 역할 분리 2. AuthService.java 단 예외 처리 구체화 - JwtExceptionAdvice.java 에서 처리 3. JwtAuthenticationFilter.java - shouldNotFilter 조건 추가 - 로컬에서 h2 console 을 이용하여 테스트 시, accessToken null 예외가 발생해서 필터링 되지 않도록 처리 4. 로그 추가 * fix : Cors Configuration 추가 * refactor : pull 하기 위한 기록용 commit * refactor : REFRESH_TOKEN_NOT_FOUND 에러 메시지 로그로만 처리 (프론트 단으로 RETURN X) * feat 페이지네이션 구현 완료 * fix: 페이지네이션 오류 수정 (#62) * feat : AOP 를 이용한 Logging 구현 (아래 패키지 내 클래스의 모든 메소드에 적용) (#63) 1. answers - service 2. members - service 3. questions - service 4. security - auth - service * 빌드파일 AOP dependency 추가 * service 단의 메소드 명, parameter type / value, return type / value 를 로깅 * parameter 및 return value는 json 형태로 가독성 좋게 로깅하려 했으나, 특정 메소드 (createQuestion) 에서의 stackoverflowerror 발생 및 LocalDateTime을 toJson 하려면 커스텀 설정이 추가로 필요해서 일단 Object 자체로 기록. * JwtAuthenticationFilter.java의 shouldNotFilter 메소드는 Protected 형식이기 때문에 AOP가 적용 불가하여 자체 로깅 그대로 남겨놓음. * fix : SimpleLoggingAop NPE 처리 로직 추가 (#64) * feat : AOP 를 이용한 Logging 구현 (아래 패키지 내 클래스의 모든 메소드에 적용) 1. answers - service 2. members - service 3. questions - service 4. security - auth - service * 빌드파일 AOP dependency 추가 * service 단의 메소드 명, parameter type / value, return type / value 를 로깅 * parameter 및 return value는 json 형태로 가독성 좋게 로깅하려 했으나, 특정 메소드 (createQuestion) 에서의 stackoverflowerror 발생 및 LocalDateTime을 toJson 하려면 커스텀 설정이 추가로 필요해서 일단 Object 자체로 기록. * JwtAuthenticationFilter.java의 shouldNotFilter 메소드는 Protected 형식이기 때문에 AOP가 적용 불가하여 자체 로깅 그대로 남겨놓음. * fix : SimpleLoggingAop.java parameter, return object가 null 일 경우 처리 로직 추가 * fix : NPE 처리 로직 인자 수정 (#65) * feat : AOP 를 이용한 Logging 구현 (아래 패키지 내 클래스의 모든 메소드에 적용) 1. answers - service 2. members - service 3. questions - service 4. security - auth - service * 빌드파일 AOP dependency 추가 * service 단의 메소드 명, parameter type / value, return type / value 를 로깅 * parameter 및 return value는 json 형태로 가독성 좋게 로깅하려 했으나, 특정 메소드 (createQuestion) 에서의 stackoverflowerror 발생 및 LocalDateTime을 toJson 하려면 커스텀 설정이 추가로 필요해서 일단 Object 자체로 기록. * JwtAuthenticationFilter.java의 shouldNotFilter 메소드는 Protected 형식이기 때문에 AOP가 적용 불가하여 자체 로깅 그대로 남겨놓음. * fix : SimpleLoggingAop.java parameter, return object가 null 일 경우 처리 로직 추가 * fix : SimpleLoggingAop.java if (args == null) -> if (arg == null) 수정 * fix : arg, returnObj가 null 인 경우 로그 메시지만 출력하도록 수정 * fix 페이지네이션 및 투표 기능 오류 수정 페이지네이션 및 투표 기능 오류 수정 * style 질문 수정 페이지 CSS 수정 질문 수정 페이지 CSS 수정 * fix : SecurityConfig.java cors 추가 설정 - 배포 서버 주소 추가 * fix: nginx proxy Host 헤더 추가 요청을 어떤 서버에 보내고 있는지 Host 헤더에 명시하여 백엔드 서버 내에서도 확인할 수 있게 고쳤다. CORS 관련 처리시 same origin 판단에 사용된다. * fix markdown viewer 적용 markdown viewer 적용 * feat npmrc 파일 추가 npmrc 파일 추가 * remove npmrc remove npmrc * refactor : backend 클래스 리팩토링 (#66) * refactor : backend 클래스 리팩토링 1. unused import 구문 정리 2. MemberLoginDto.java 삭제 (LoginDto.java 사용) - LoginDto.java validation annotation 설정 3. JwtTokenizer.java TODO 삭제 4. SimpleLoggingAop.java 로그 메시지 수정 (null 인 경우 {} 삭제) * refactor : cors filter 설정 수정 (allowed origin -> *) * fix vote 기능 보수 vote 기능 보수 Co-authored-by: 2Zerozero <[email protected]> Co-authored-by: Jimin Kim <[email protected]> Co-authored-by: subimm <[email protected]> Co-authored-by: [subimm] <[[email protected]]> Co-authored-by: imaginebk <[email protected]> Co-authored-by: jannyshim <[email protected]> Co-authored-by: h1em0n1m <[email protected]> Co-authored-by: jannyshim <[email protected]> Co-authored-by: Jimin Kim <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
docker-compose 기반으로 실행 가능하게 compose.yml 작성했습니다.