blues_coding_log
2023-09-06 TIL (email 인증기능 + redis)
TIL&WIL 2023. 9. 6. 22:34

오늘 학습한 내용 email 인증 기능 구현 회원가입 validation 적용 이메일 인증 기능 오늘은 이메일 인증 기능을 추가했다. 우선 build.gradle에 의존성을 추가해준다. //email 인증 implementation 'org.springframework.boot:spring-boot-starter-mail' application.properties에도 다음을 추가해준다. #email spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username= 아이디 spring.mail.password= 비밀번호 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.m..

2023-09-01 TIL
TIL&WIL 2023. 9. 1. 21:12

오늘 학습한 내용 최종 프로젝트 중간발표 준비 오늘의 문제점 최종 프로젝트를 준비하던 도중에 일어난 일이다. 중간발표를 위해서 팀원분들과 각자 하던 작업을 머지하는 과정에서 한 팀원 분이 만드신 후기 게시판을 내가 실행했을 때 읽어오지 못하는 에러가 발생했다. 에러 메세지는 다음과 같았다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.sparta.travelshooting.reviewPost.entity.ReviewPost.images: could not initialize proxy - no Session 나를 제외하고 팀원 분들은 모두 잘 읽어왔어서 코드에는 문제가 없었다...

2023-08-25 TIL
TIL&WIL 2023. 8. 25. 20:44

CS 면접 준비 질문 : Primary Key, Foreign Key에 대해 설명해주세요. 답변 : PK는 와 FK는 RDBMS의 개념으로 DB의 테이블을 관리하고 서로 연결하는 데 사용됩니다. PK는 각 테이블 내에서 각각의 행을 식별하는 역할을 합니다. 중복되는 값을 가지면 안되고, null이어도 안됩니다. 예를 들어 작성된 post를 저장하는 테이블에서는 각각의 post_id를 지정해줘서 이 값들을 PK로 사용하거나 USER를 구분하는 경우에는 겹치지 않는 email이나 주민등록번호를 PK로 사용할 수 있습니다. FK는 다른 테이블에서 PK와 연결되는 키입니다. FK를 통해서 두 테이블 간의 참조 관계를 구성할 수 있습니다. (OneToOne , ManyToOne ,,,) 예를 들어, 작성된 pos..

2023-08-23 TIL
TIL&WIL 2023. 8. 23. 20:41

오늘 학습한 내용 최종 프로젝트 (블랙리스트에 redis 적용) 블랙리스트에 적용 엑세스 토큰이 만료되기 전에 로그아웃을 하게 되면 엑세스 토큰은 삭제되지 않고 남아있기 때문에 혹시라도 탈취당해 사용이 가능할 수 있다. 이를 방지하기 위해서 로그아웃 시 엑세스 토큰을 블랙리스트에 넣은 뒤 이를 사용하려고 하는 순간에 에러를 발생시킨다. 로그아웃 서비스는 다음과 같다. public ApiResponseDto logout(HttpServletRequest req, HttpServletResponse res) { // Refresh Token 삭제 String refreshTokenUUID = jwtUtil.getUUID(req); RefreshToken refreshToken = refreshTokenRep..

2023-08-22 TIL
TIL&WIL 2023. 8. 22. 11:05

오늘 학습한 내용 최종 프로젝트 (리프레시 토큰 수정, 마이페이지) CS 면접 준비 리프레시 토큰 수정 @Service @RequiredArgsConstructor @Slf4j public class TokenServiceImpl implements TokenService{ private final UserRepository userRepository; private final RefreshTokenRepository refreshTokenRepository; private final JwtUtil jwtUtil; /** * 1. 전달받은 유저의 아이디로 유저가 존재하는지 확인 * 2. RefreshToken이 유효한지 체크 * 3. AccessToken을 발급한 뒤 쿠키에 추가 */ @Override ..