New Bulls 프로젝트 1

chaean·2024년 6월 8일

프로젝트 - Bulls

목록 보기
8/11

2024. 06. 03

기존에는 AWS RDS를 사용하여 DB를 사용하였지만, local로 변경하며 새로 설정해주어야했음.

1. Localhost로 설정 변경

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/{DB이름}?serverTimezone=Asia/Seoul
    username: ## id
    password: ## pasword
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    properties:
      hibernate:
        # 만들어진 sql 보여주기
#        show_sql: true
        # sql 가독성 좋게 보여줌
        format_sql: true

jwt:
  secret_key: # jwt secret_key
  expiration: # 만료시간
  issuer: # issuer

2. (기존) 로그인할때 백엔드에서 Access Token 및 데이터를 Body에 담아 응답

👉 Access Token은 Header, 중요하지않은 데이터는 Body에 담아 응답

    @PostMapping("/user/signin")
    public ResponseEntity<String> signin(@Valid @RequestBody SigninDTO signinDTO) {
        TokenDTO tokenDTO = userService.signin(signinDTO.getUid(), signinDTO.getPassword());
        if (tokenDTO != null) {
            // JWT Access 토큰을 헤더에 담아서 반환
            HttpHeaders headers = new HttpHeaders();
            headers.set("Authorization", "Bearer " + tokenDTO.getAccess());
            return ResponseEntity.ok().headers(headers).body(tokenDTO.getNickname());
        }
        // 로그인 실패
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); // 상태코드: 400
    }

3. 설정파일들 전부 재설정

노트북을 바꾸면서 프로젝트가 몽땅 날아갔다...
GitHub에는 .env, application.yml과 같은 설정파일은 제외하고 업로드하였더라..

2024.06.07

1. UserInfoDTO, UserIntroduceDTO 등 User의 정보를 반환하는 DTO를 하나로 통일하였음

- 물론 Password, ID같이 중요한 데이터들은 빈값 or 임의의 값으로 설정하고 반환하였다
            return UserDTO.builder()
                    .uid(user.getUid())
                    .password("IsNotValue")
                    .email(user.getEmail())
                    .name(user.getName())
                    .nickname(user.getNickname())
                    .introduce(user.getIntroduce())
                    .build();

2. 팀을 등록한 뒤 팀을 삭제하면 SQL오류가 발생함.

DB 외래키 제약 조건 위반 오류였음

	alter table user
    		drop foreign key user_team__fk;

	alter table user
  	  add constraint user_team__fk
        	foreign key (team_id) references team (id)
        	    on delete set null;

제약조건 변경!
(팀을 삭제하면 user의 외래키는 null로 설정)

profile
백엔드 개발자

0개의 댓글