스케줄링은 어떤 작업(job)에 대해서 지정된 기간 혹은 시간에 수행하도록 하는 것스프링부트에서 @Scheduled 어노테이션을 이용해서 간단하게 스케줄(배치) 작업을 할 수있음.Application 클래스에서 @EnableScheduling 어노테이션을 넣어서, 스케
Spring은 전역적으로 ExceptionHandler를 적용할 수 있는 @ControllerAdvice 와 @RestControllerAdvice annotation을 제공@ControllerAdivce는 여러 컨트롤러에 대해 전역적으로 ExceptionHandler
기존 RDBMS 방식을 탈피한 데이터베이스를 의미기존의 관계형 DB가 가지고 있는 특성뿐만 아니라 다른 특성들을 부가적으로 지원RDBMS가 가지고 있는 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 가지고 있음 문서, 그래프, 키 값, 인 메모리
쓰기보다 조회가 많이 일어나는 상황평균 평점, 총 리뷰 수에 캐시를 사용하기 때문에 쓰기 연산보다 읽기 연산이 많이 발생캐시와 백업 저장소에 업데이트를 같이 하여 데이터 일관성을 유지할 수 있어서 안정적쓰기 작업이 많은 시스템이라면 눈에 띄는 지연을 유발Write-Ba
여러 개발자가 협업하는 환경에서 코드 컨벤션을 지키고 쉽게 유지보수하기 위해 사용하는 플러그인컨벤션이 지켜지지 않을 경우 build가 실패함으로 여러 개발자가 컨벤션을 지킬 수 있게 됨build.gradle에 플러그인 적용사용법./gradlew spotlessCheck

카카오 인증 서버로 /oauth/authorize URI로 GET 요청을 보냄카카오 인증 서버에서 클라이언트에게 카카오 로그인 페이지를 통해 로그인을 요청함사용자는 카카오계정으로 로그인카카오계정이 유효한 경우 카카오 인증 서버에서 클라이언트에게 동의 화면을 통해 사용자
1. JWT JWT 개념 1.1 application.yml, build.gradle 설정하기 secret key와, 액세스 토큰 만료시간, 리프레시 토큰 만료 시간을 yml에 지정 secret key 값은 중요한 정보이니만큼 github로 관리하지 않고, 별도
1. Refresh 토큰 저장 방식 Refresh Token은 Access Token을 재발급하기 위한 용도 > Refresh Token을 쿠키에 저장하면 오히려 보안성만 떨어뜨리는 행위가 됩니다. 쿠키는 CSRF 공격에 취약하다는 점을 가지고 있어 좋지 않은 방법
1. 커스텀 어노테이션 도입 모든 API에서 동일한 코드가 반복되는걸 막기 위해, 커스텀 어노테이션을 만들어서 파라미터에서 사용자 정보 또는 토큰 정보를 가져올 수 있도록 하는 방법 2. Argument Resolver 2.1 Argument Resolver란?
참고 : https://velog.io/@wellbeing-dough/Spring-Boot-SSE-알림-개발SSE는 서버와 한번 연결을 맺고 나면, 일정 시간 동안 서버에서 변경이 발생할 때마다 서버에서 클라이언트로 데이터를 전송하는 방법클라이언트는 서버를 구
1. 카카오페이 단건결제 API 1.1 KakaoPay Developer 애플리케이션 등록 카카오페이 단건결제 API를 사용하기에 앞서 KakaoPay Developers에서 애플리케이션 등록이 필요 업로드중.. 테스트용으로서 Secret key(dev) 사용
JWT 토큰 인증 후 토큰에 있는 정보를 가지고 member의 정보(id, email 등)을 추출하는 로직이 필요한데, 컨트롤러에서 항상 파라미터로 인증 정보를 전달받아서 식별 정보를 추출하는 코드를 계속 작성하는 것은 중복된 코드를 계속 작성하는 불필요한 작업이기 때
@Transient는 Java Persistence API (JPA)에서 사용되는 애노테이션으로, 엔티티 클래스의 특정 필드가 데이터베이스 테이블에 매핑되지 않도록 지정즉, 해당 필드는 데이터베이스와 상호작용하지 않으며, 영속성 컨텍스트(persistence conte
Hibernate의 default_batch_fetch_size는 한 번에 로드되는 엔티티나 컬렉션의 크기를 지정이 설정은 지연 로딩(LAZY) 상태의 엔티티나 컬렉션을 가져올 때 최소한의 SELECT 쿼리를 사용하도록 도움예를 들어, 100개의 Post가 있고, 각