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 ..
오늘 학습한 내용 최종 프로젝트 (리프레시 토큰 적용, 로그아웃 기능) 작성한 코드는 다음과 같다. /** * 1. 전달받은 유저의 아이디로 유저가 존재하는지 확인 * 2. RefreshToken이 유효한지 체크 * 3. AccessToken을 발급한 뒤 쿠키에 추가 */ @Override @Transactional public TokenResponseDto requestRefreshToken(HttpServletResponse res, HttpServletRequest req) { String req2 = jwtUtil.getTokenFromRequest(req); log.info(req2); RefreshToken refreshToken = refreshTokenRepository.findByAcce..
오늘 학습한 내용 최종 프로젝트 : 로그인 및 회원가입 기능 진행 상황 : 회원가입기능, 로그인 기능 완료 남은 기능 : 리프레시 토큰, OAuth2 적용해서 카카오 및 구글 로그인 구현 확실히 최종 프로젝트를 시작하니 동기부여도 되고, 시간도 금방 가는 것 같다. 우선 내일 예비군이니까 예비군 다녀와서 주말도 공부하자 !