스프링 3

테스트 코드

https://tech.kakaopay.com/post/mock-test-code/1. 요약테스트 코드는 Mock을 스프링 빈으로 등록하여 사용한다.각 의존하는 객체는 실제 사용하는 것이 아닌, return 값을 미리 정해준다.2. 문제테스트 코드 작성 시, 의존하는 객체에 의해서 문제가 발생한다.아래 코드는 AuthService의 login 함수를 테스트하는 코드다.문제는 login 함수를 테스트 하기 위해서 DB에 데이터를 저장해야 한다.즉, AuthService는 UserRepository(DB 저장 객체)에 의존적이다.이와 같은 의존 객체가 많아질 수록, 테스트가 어려워진다.@SpringBootTestclass AuthServiceTest { private final AuthService a..

스프링 2025.02.05

스프링 - GCS 이미지 저장/덮어쓰기/삭제

목적GCS로 이미지 저장, 삭제, 수정 구현설명GCS는 Storage 객체를 통해 이미지 저장소(bucket)에 접근 가능Storage를 통해 이미지 저장 및 삭제 가능(수정은 불가)보완 계획GCS 이미지 등록을 비동기적으로 수행Storage 객체를 비동기적 또는 멀티 스레드 방식으로 해결 예정(현재는 ADMIN 관리자만 상품 등록이 가능하므로, GCS를 스프링 빈으로 선언해서 싱글톤 객체로 쓰고 있음) QnA)1. GCS 용어용어https://techblog-history-younghunjo1.tistory.com/27Bucket데이터 저장소Bucket안에 Bucket이 있을 수 없음각 Bucket 안에 각 데이터(이미지)를 저장 가능ObjectBucket 안에 있는 각 데이터구성 요소객체 데이터실제 ..

스프링 2025.02.03

JWT_사용자 정의 로그인

목적JWT 로그인 인증을 REST API 형식으로 구축한다.과정프론트 : 로그인 요청백엔드 : 로그인 인증 및 JWT 쿠키 전달프론트 : 각 요청 헤더에 JWT를 담아서 백엔드에게 API 요청(전달받은 JWT 쿠키는 자동으로 클라이언트에 저장됨)백엔드 : JwtFilter를 통해 요청 헤더의 JWT를 검증. 그 후, 인증된 사용자에게는 API 제공 1. SecurityConfig스프링 시큐리티각 요청에 필터를 적용 할 수 있음(검증된 요청자에게만 API 제공)목적각 API 요청마다 JwtAuthenticationFilter를 적용 시키는 것(JwtAuthenticationFilter는 요청 헤더에 있는 JWT 토큰을 검증함)@Configuration@EnableWebSecuritypublic class ..

스프링 2025.01.31