1. 카카오페이 단건결제 API 1.1 KakaoPay Developer 애플리케이션 등록 카카오페이 단건결제 API를 사용하기에 앞서 KakaoPay Developers에서 애플리케이션 등록이 필요 테스트용으로서 Secret key(dev) 사용 1.2 단건 결제 API 출처 : https://developers.kakaopay.com/docs/payment/online/single-payment 실제 사업자 등록이 필요한 실제 결제가 아니기 때문에 테스트 결제를 이용 단건 결제의 구현 순서는 1. 결제 준비하기, 2. 결제 요청 - 사용자 결제 수단 선택, 3. 결제 승인하기 순으로 이루어짐 결제 준비하기 결제 요청 - 사용자 결제 수단 선택 결제 승인 2. 단건 결제 구현하기 2.1 기본값 설정..
1. SSE 개념 참고 : https://velog.io/@wellbeing-dough/Spring-Boot-SSE-알림-개발 1.1 SSE(Server-Sent-Events) 방식SSE는 서버와 한번 연결을 맺고 나면, 일정 시간 동안 서버에서 변경이 발생할 때마다 서버에서 클라이언트로 데이터를 전송하는 방법클라이언트는 서버를 구독(SSE Connection을 맺음)서버는 변동사항이 생길 때마다 구독한 클라이언트들에게 데이터를 전송 SSE는 서버에서 클라이언트로 text message를 보내는 브라우저 기반 웹 애플리케이션 기술이며 HTTP의 persistent connections을 기반으로 하는 HTML5 표준 기술 💡 클라이언트가 서버와 크게 통신할 필요가 없는 경우와 단지 업데이트된 데이터만 ..
1. 커스텀 어노테이션 도입 모든 API에서 동일한 코드가 반복되는걸 막기 위해, 커스텀 어노테이션을 만들어서 파라미터에서 사용자 정보 또는 토큰 정보를 가져올 수 있도록 하는 방법 2. Argument Resolver 2.1 Argument Resolver란? Argument Resolver는 API 엔드포인트로 인입된 데이터를 가공 및 바인딩 할 때 사용하는 객체 http body 또는 url parameter로 넘어오는 데이터들은, @ReqeustBody와@RequestParam 등으로 바인딩이 가능하지만, http header, 쿠키, 세션 등으로 전달되는 데이터인 경우에는 Argument Resolver를 이용할 수 있음. 💡 Argument Resolver는 대표적으로 세션에서 로그인한 사용..
1. Refresh 토큰 저장 방식 Refresh Token은 Access Token을 재발급하기 위한 용도 Refresh Token을 쿠키에 저장하면 오히려 보안성만 떨어뜨리는 행위가 됩니다. 쿠키는 CSRF 공격에 취약하다는 점을 가지고 있어 좋지 않은 방법이라고 결론을 내렸습니다. 마찬가지로 Refresh Token을 세션 스토리지에 저장하는 것도 XSS 공격의 취약성을 가지고 있습니다. 따라서 Refresh Token을 Redis에 저장하는 방식을 채택했습니다.출처 : https://byungil.tistory.com/309 1.1 Redis 저장 방식의 장점 Key - Value 방식, 인메모리 DB 방식으로 빠르게 접근할 수 있음.브라우저에 비해 탈취 가능성이 낮다고 생각하는 redis 서버에..
1. JWT JWT 개념 | Notion1. JWTchanmin-study-log.notion.site 1.1 application.yml, build.gradle 설정하기 jwt: secret: ${JWT_SECRET_KEY} access-token-validity: ${JWT_ACCESS_TOKEN_TIME} refresh-token-validity: ${JWT_REFRESH_TOKEN_TIME} secret key와, 액세스 토큰 만료시간, 리프레시 토큰 만료 시간을 yml에 지정 secret key 값은 중요한 정보이니만큼 github로 관리하지 않고, 별도로 다른 파일에 설정해 주는 것이 좋음 # jwt build.gradleimplementation 'io.jsonwebtoken:jj..
1. 카카오 로그인 과정 1.1. 인가 코드 받기카카오 인증 서버로 /oauth/authorize URI로 GET 요청을 보냄카카오 인증 서버에서 클라이언트에게 카카오 로그인 페이지를 통해 로그인을 요청함사용자는 카카오계정으로 로그인카카오계정이 유효한 경우 카카오 인증 서버에서 클라이언트에게 동의 화면을 통해 사용자 정보 수집 동의를 요청함.클라이언트가 동의한 항목을 카카오 인증 서버에게 요청함.카카오 인증 서버에서는 302 Redirect URI로 서비스 서버에게 인가 코드를 전달여기서 Redirect URI는 Kakao Developers - 내 애플리케이션 - 카카오 로그인에서 추가한 URI로 설정됨 💡 우리는 여기까지가 프론트에서 하는 일이라고 생각!! 1.2. 토큰 요청하기 서비스 서버로 받..