Tiny Star

🏕️내일배움캠프/📂개발자를 위한 공모전 사이트(23.08.16)

개발자를 위한 공모전 사이트 (&&) 8일 _ 유저 블랙리스트 처리 및 회원가입 방지

청크 2023. 8. 25. 20:49

스파르타 코딩클럽_ 내일 배움 캠프 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문이블랙리스트를 걸러주는 필터역할을 할 수 있을지는 모르겠다.

 

기능 구현은 어느새 막바지를 향해 가는 중이라 이제 우리팀에게는 레디스를 이용한 채팅기능만 남아있는 상태라차주부터는 레디스와 웹 소켓 공부도 같이 할 예정이다.