스파르타 코딩클럽_ 내일 배움 캠프 Spring 트랙 6기
[프로젝트] 개발자를 위한 공모전 사이트 (&&)
2023.08.16 ~ 2023.09.15
<프로젝트 정보>
개발도구 : IntelliJ
프로그래밍 언어 : Java
데이터베이스 : MySQL
프레임워크 : Spring / Spring Boot / Spring Security
와이어프레임 : Figma
ERD 설계 : ERD Cloud
Storage : AWS S3
Front : HTML / CSS / JavaScript / JQuery / Bootstrap
<프로젝트 내용>
전날 정해지지 않았던 유저 블랙리스트 처리 방안에 대해 오늘 회의를 통해 어떻게 구현할 지를 확정했다.
User테이블에 있던 정보를 전부 UserBlackList 테이블로 옮기고, 기존 User 테이블에서는 유저 정보를 완전히 지워
그 유저는 로그인 후 서비스 이용이 불가하도록 구현했다.
public UserBlackListResponseDto registerUser(Long userId, UserBlackListRequestDto userBlackListRequestDto) {
User user = userRepository.findByUserId(userId)
.orElseThrow(() -> new IllegalArgumentException("해당 유저를 찾을 수 없습니다."));
UserBlackList userBlackList = new UserBlackList(userBlackListRequestDto.getUserId());
userBlackListRepository.save(userBlackList);
userRepository.delete(user);
return new UserBlackListResponseDto();
}
추가로 카카오와 구글 로그인의 register메서드에 아래와 같이 if문 하나를 추가해 UserBlackList 테이블에 있는 Email과
새로 가입하려는 유저의 Email이 일치 할 경우 OAuth 회원가입이 진행되지 않고 예외처리를 하는 로직도 구현했다.
if(kakaoUsername.equals(userBlackList.getUser().getUserName())) {
throw new IllegalArgumentException("응 안돼 돌아가.");
}
로그인과 관련된 기능들은 프론트엔드 구현 후 서버랑 같이 테스트하기로해서 당장 저 if문이블랙리스트를 걸러주는 필터역할을 할 수 있을지는 모르겠다.
기능 구현은 어느새 막바지를 향해 가는 중이라 이제 우리팀에게는 레디스를 이용한 채팅기능만 남아있는 상태라차주부터는 레디스와 웹 소켓 공부도 같이 할 예정이다.
'🏕️내일배움캠프 > 📂개발자를 위한 공모전 사이트(23.08.16)' 카테고리의 다른 글
개발자를 위한 공모전 사이트 (&&) 10일 _ 실시간 1:1 채팅 (0) | 2023.08.30 |
---|---|
개발자를 위한 공모전 사이트 (&&) 9일 _ 실시간 1:1 채팅 (0) | 2023.08.28 |
개발자를 위한 공모전 사이트 (&&) 7일 _ 실시간 상태 업데이트/하위 카테고리 구현 방향 결정 및 유저 관리 CRUD (0) | 2023.08.24 |
개발자를 위한 공모전 사이트 (&&) 6일 _ 실시간 상태 업데이트/하위 카테고리 구현 (0) | 2023.08.23 |
개발자를 위한 공모전 사이트 (&&) 5일 _ 백오피스 프로젝트 구현 (0) | 2023.08.22 |