Giter Club home page Giter Club logo

musicward-server's People

Contributors

hyeonic avatar leeseojune53 avatar zeroirc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

hyeonic

musicward-server's Issues

테이블 명 변경

개요

테이블 명 변경

작업 내용

  • 모든 테이블 명 앞에 "tbl_" 붙이기

참고사항

모든 Entity class

@Repository 어노테이션 명명

개요

Repository interface에 Repository annotation을 작성함으로써 가독성 향상

작업 내용

  • @repository 어노테이션 명명
  • JpaRepository 필요한 Repository만

참고사항

모든 DAO 객체

Security 세팅

개요

SpringBoot Security 기본 세팅

작업 내용

  • CORS Mapping 설정
  • PasswordEncoder 설정
  • HttpSecurity configure 설정

참고사항

WebConfig, SecurityConfig

토큰 엔티티 구현

개요

Refresh Token저장 Redis Entity 구현

작업 내용

  • Token Entity 작성

참고사항

Token, Type, TokenRepository

챔피언관련 조회 API 구현

개요

챔피언 관련 조회 API를 구현한다.

작업 내용

  • 챔피언 리스트 조회 구현
  • 챔피언 상세조회 구현
  • 챔피언 조회 관련 DTO

참고사항

에러 핸들링 부분 개선

개요

Controller단에서 일어난 Exception을 ExceptionHandlerFilter에서 못잡는 현상 발견
Spring MVC를 보면 Dispatcher Servlet에서 처리가 끝난 이후 ExceptionHandlerFilter로 response가 온다고 생각되어 GlobalExceptionHandler를 다시 생성한다.

작업 내용

  • GlobalExceptionHandler
  • ExceptionHandlerFilter
  • JwtTokenFilter

Exception Handler구현

개요

작업 내용

  • ErrorCode
  • MusicWardException
  • GlobalExceptionHandler
  • ErrorResponse
  • UserNotFound Exception
  • AuthDetailsService에 orElseThrow에 UserNotFoundException 기입.

유저 엔티티 상세

개요

유저 엔티티 Column, UserDetails 구현

작업 내용

  • Column 추가
  • UserDetails 구현

참고사항

User 엔티티

구글 로그인 API 제작

개요

구글 OAuth 링크를 통해 발급받은 code를 이용해 로그인하는 API

작업 내용

  • UserService
  • UserController
  • UserServiceImpl
  • GoogleAuthClient 인터페이스 제작
  • 각종 Dto

SecurityUtil 구현

개요

SecurityContext에서 현재 user id를 조회하기 위한 util class를 구현한다.

작업 내용

  • SecurityUtil 구현
  • 인증 정보가 존재하지 않을 때 예외 구현

참고사항

Jwt 관련 설정

개요

Jwt사용을 위한 JwtTokenProvider, Filter, Configure 작성

작업 내용

  • JwtTokenProvider
  • TokenFilter
  • FilterConfigure

참고사항

https://jwt.io/

OpenFeign 예외처리

개요

OpenFeign에서 Api를 호출하였을 때 발생하는 예외처리.

작업 내용

  • FeignClientErrorDecoder

Token Entity 구조 변경

개요

Token Entity에서 Token 객체 생성 시 불필요한 부분을 없앰.

작업 내용

  • TokenEntity
  • UserServiceImpl

validation 예외 handle 및 error response 수정

개요

request dto를 validation하며 나오는 에러 메시지를 가공하여 적절히 보여지도록 수정한다.

작업 내용

  • GlobalExceptionHandler에서 예외 캐치
  • ErrorResponse errors 필드 추가

참고사항

Playlist API 명세 작성

개요

조사한 API를 기반으로 필요한 playlist 명세를 작성한다.

작업 내용

  • 등록한 플레이리스트 단 건 조회
  • 등록한 플레이리스트 목록 조회
  • 등록되지 않은 플레이리스트 조회
  • 와딩(보관)한 플레이리스트 목록 조회
  • 자신이 와딩(보관)한 플레이리스트 목록 조회
  • 특정 유저가 등록한 플레이리스트 목록 조회
  • 자신이 등록한 플레이리스트 목록 조회
  • 플레이리스트 저장
  • 플레이리스트 동기화
  • 플레이리스트 수정
  • 플레이리스트 삭제

참고사항

API 명세

Champion API 명세 작성

개요

챔피언 관련 API명세

작업 내용

  • 챔피언리스트 조회
  • 챔피언 상세 조회

참고사항

google OAuth 2.0 redirect uri 관련 수정

개요

google OAuth 2.0의 경우 code를 활용하여 token 정보를 요청할 경우 redirect uri로 code 정보와 함께 GET으로 전달된다. 하지만 현재 UserController는 POST를 활용하여 redirect된 code 정보를 받도록 설정하였기 때문에 정상적으로 처리되지 않는다.

image

image

작업 내용

  • application.properties google redirect uri뒤에 /callback 추가
  • UserController 수정
  • SecurityConfig 수정

참고사항

OAuth 2.0 액세스 토큰 얻기

UserDetailsService 구현

개요

UserDetailsService 구현

작업 내용

  • UserDetailsService 구현

참고사항

AuthDetailsService

DB 설정

개요

데이터 베이스 (Redis, MySQL) 환경변수 및 설정

작업 내용

  • MySQL
  • Redis

플레이리스트 등록 기능 구현

개요

플레이리스트 id를 입력받아 music ward 플레이리스트로 등록하는 과정을 구현한다.

작업 내용

  • 각 스트리밍 서비스에서 id를 활용하여 플레이리스트 조회
  • 조회한 플레이리스트를 가공하여 저장
  • 저장한 데이터를 조회하여 view로 전달

참고사항

로그 ip 오류 해결

개요

로그에 client ip가 null로 들어가는 현상 해결

작업 내용

  • X-Forwarded-For로 변경

Logger 설정

개요

Logger 설정

작업 내용

  • RequestWrapper
  • LogWriter

엔티티 클래스 정의

개요

작성한 erd를 기반하여 엔티티 클래스를 정의한다.

작업 내용

  • 엔티티 클래스 작성
  • 엔티티 클래스 테스트 작성

참고사항

musicWard

Spotify 로그인

개요

Spotify 로그인 구현

작업 내용

  • Spotify 관련 api 공부
  • UserService
  • UserController
  • UserServiceImpl
  • 각종 Dto

참고사항

Spotify Docs

Cors Method 설정

개요

Cors Method ( GET, POST, PUT, PATCH, DELETE) 추가

작업 내용

  • WebConfig 변경

에러 핸들링 필터 생성 및 설정

개요

에러 핸들링 필터 생성 및 설정
기존의 GlobalExceptionHandler에서는 @RestControllerAdvice로 ExceptionHandling을 진행하였는데, 이 방법으로 Filter단에서 발생한, 즉 Controller에 도달하기 전에 발생한 Exception은 처리되지않고 Status 500, Message : "Internal Server Error"로 response된다. 이를 해결하기 위해 JwtTokenFilter 앞에 ExceptionHandlerFilter를 설정하고, ExceptionHandlerFilter에서 catch로 Exception을 처리한다.

작업 내용

  • ExceptionHandlerFilter 작성
  • FilterConfigure 변경
  • SecurityConfig 변경

플레이리스트 단 건 조회 구현

개요

플레이리스트 id를 활용하여 단 건 조회 기능을 구현한다.

작업 내용

  • 플레이리스트 단 건 조회 기능 구현

참고사항

redis 관련 query creation 오류 해결

개요

기존에 작성된 findByIdAndType 조회에 지속적으로 실패한다. NoSuchElementException: No value present Token을 수정하여 한 map 안에 모든 refresh 관련 정보가 들어갈 수 있도록 수정한다.

작업 내용

  • Token 수정
  • userServiceImpl user save 부분 수정

참고사항

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.