Springboot(24)
-
LazyInitializationException
LazyInitializationException: could not initialize proxy - no Session -> 모든 Entity의 접근을 Lazy전략으로 접근 접근 방법 : 1. 관련 메서드마다 @Transactional -> 연관 관계를 가지고 있는 Entity가 자동으로 초기화되지 않음 -> 이로 인해 해결되지 않음 2. application.yml : open-in-view 사용 -> open-in-view : true 설정으로 인한 문제점이 많음 1. 성능 저하 : 데이터베이스 연결을 오랫동안 가지고 있음 2. 트랜잭션 범위와 세션 범위의 혼동 : 세션은 열지만 트랜잭션 확장에는 어려움이 있음 3. N+1 쿼리 문제 발생 -> 해당 패턴은 안티 패턴 : 성능적 문제 발생 가능성이..
2024.02.05 -
Access Token과 Refresh Token(0)
0. 개요 Spring boot의 Security을 이용하여 JWT Token을 만들고 회원 가입을 하면 Access token과 Refresh Token을 발급하고 로그인 절차에서 Access token이 유효한지 확인 후, 메인 페이지로 이동하는 절차 ** 만약 Access Token이 유효하더라도 Refresh Token의 만료 기간이 지났다면 로그인은 되지 않으며 Refresh Token을 재발급 합니다. 1. Access Token이란? 1) Session방식이 아닌 SignatureAlgorithm.HS256을 사용한 jwtToken 2) 해당 Jwt Token은 인증에 필요한 정보가 토큰 안에 존재합니다. // Payload에 email 또는 username이 들어가 있습니다. 3) 기존에 ..
2023.12.21 -
@Value, @ConfigurationProperties에 대해서
0. 개요 Spring boot의 환경 변수를 지정해서 사용할 때, lombok의 @Value를 사용하는 것이 좋은지 또는 @ConfigurationPropreties를 사용하여 사용하는 것이 좋은지에 대한 의문에서 시작 되었습니다. 1. @Value 1) 환경 변수의 값을 단일으로 받아오기 위해서 사용합니다. 2) RelaxedBinding이 적용이 되어 있지 않기에 완벽하게 일치하는 프로퍼티 이름을 적어줘야합니다. ** RelaxedBinding : 프로퍼티 값이 조금 달라도 유연하게 바인딩 시켜주는 규칙 # application.yml spring : jwt: secretKey: ${jwt.secret-key} access-token-expiration: 86400000 # 1시간 refresh-t..
2023.12.20 -
Spring boot를 이용한 게시글에 AWS S3 이미지 업로드
0. 개요 Spring boot의 프로젝트 내부의 폴더 안에 MultipartFile을 받지 않고 S3를 이용하여 해당 MultipartFile을 받는 방법을 구현해보고자 합니다. ** 변경 사항으로 이미지를 S3에 업로드를 하고 해당 이미지 PATH는 db에 저장하는 방식 ** 페이징 처리 기술 포함 ** 해당 Spring boot 코드는 Security를 구현한 Board 이미지 업로드 ** 시큐리티 구현을 위해 github의 security부분 참고 https://github.com/parkjihwanKr/plusProject/tree/master/src/main/java/com/pjh/plusproject/Global GitHub - parkjihwanKr/plusProject Contribute..
2023.12.14 -
Spring boot 간단한 AWS S3 MultipartFile 업로드
0. 개요 Spring boot의 프로젝트 내부의 폴더 안에 MultipartFile을 받지 않고 S3를 이용하여 해당 MultipartFile을 받는 방법을 구현해보고자 합니다. 1. AWS S3를 이용하는 이유? 1) 많은 사용자가 접속을 해도 감당할 수 있다. 2) 저장 할 수 있는 파일의 수와 파일 용량이 5TB까지 저장이 가능하다. 3) 액세스키와 비밀키를 통한 인증을 하기에 안전하다. 4) 실수에 의한 데이터 손실이 발생하여도 자동으로 복원해준다. 2. Requirement Spring boot version 3.1.6 1. Stacks Springboot Loombook Spring Boot DevTools Spring Web 3. AWS S3와 Spring boot 연동 AWS S3 spr..
2023.12.13 -
Spring boot 순환 참조 문제
1. 문제 상황 The dependencies of some of the beans in the application context form a cycle: ┌──->──┐ | your filename defined in file [yourfilenamePath/yourfile.class] └──> JwtProvider @Bean >> MemberDetailsSerivceImpl @Bean >> AuthenticationManager를 생성자 주입 JwtAuthenticationFilter.java @Bean >> AuthenticationManager를 생성자 주입 ** AuthenticationManager때문에 순환 참조 오류 발생 ** 해결하기 위해 한개만 빈 설정
2023.12.12