오늘 학습한 내용 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..
오늘 학습한 내용 최종 프로젝트 중간발표 준비 오늘의 문제점 최종 프로젝트를 준비하던 도중에 일어난 일이다. 중간발표를 위해서 팀원분들과 각자 하던 작업을 머지하는 과정에서 한 팀원 분이 만드신 후기 게시판을 내가 실행했을 때 읽어오지 못하는 에러가 발생했다. 에러 메세지는 다음과 같았다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.sparta.travelshooting.reviewPost.entity.ReviewPost.images: could not initialize proxy - no Session 나를 제외하고 팀원 분들은 모두 잘 읽어왔어서 코드에는 문제가 없었다...
CS 면접 준비 질문 : Primary Key, Foreign Key에 대해 설명해주세요. 답변 : PK는 와 FK는 RDBMS의 개념으로 DB의 테이블을 관리하고 서로 연결하는 데 사용됩니다. PK는 각 테이블 내에서 각각의 행을 식별하는 역할을 합니다. 중복되는 값을 가지면 안되고, null이어도 안됩니다. 예를 들어 작성된 post를 저장하는 테이블에서는 각각의 post_id를 지정해줘서 이 값들을 PK로 사용하거나 USER를 구분하는 경우에는 겹치지 않는 email이나 주민등록번호를 PK로 사용할 수 있습니다. FK는 다른 테이블에서 PK와 연결되는 키입니다. FK를 통해서 두 테이블 간의 참조 관계를 구성할 수 있습니다. (OneToOne , ManyToOne ,,,) 예를 들어, 작성된 pos..
오늘 학습한 내용 최종 프로젝트 (블랙리스트에 redis 적용) 블랙리스트에 적용 엑세스 토큰이 만료되기 전에 로그아웃을 하게 되면 엑세스 토큰은 삭제되지 않고 남아있기 때문에 혹시라도 탈취당해 사용이 가능할 수 있다. 이를 방지하기 위해서 로그아웃 시 엑세스 토큰을 블랙리스트에 넣은 뒤 이를 사용하려고 하는 순간에 에러를 발생시킨다. 로그아웃 서비스는 다음과 같다. public ApiResponseDto logout(HttpServletRequest req, HttpServletResponse res) { // Refresh Token 삭제 String refreshTokenUUID = jwtUtil.getUUID(req); RefreshToken refreshToken = refreshTokenRep..
오늘 학습한 내용 최종 프로젝트 (리프레시 토큰 수정, 마이페이지) 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 ..