본문 바로가기
TIL/내배캠 과제

23.06.28

by J1-H00N 2023. 6. 28.

lv3을 해결하기위해 강의를 듣던 중 강사님이 User의 PK를 username으로 두는 것을 보고 좋은 방법이라 생각해 이 부분을 수정해 보았다.

 

내가 만든 서비스를 전 세계에 보일 때는 타임존을 통일해야 해서 글로벌 런칭을 한다면 꼭 필요한 과정이라고 알려주셔서 한 번 추가해 봤다.

@EnableJpaAuditing
@SpringBootApplication
public class MyBlogBackendApplication {

    @PostConstruct
    public void setDefaultTimeZone() {
        TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("UTC")));
    }

    public static void main(String[] args) {
        SpringApplication.run(MyBlogBackendApplication.class, args);
    }

}

 

또한 패키지는 역할(controller, repository, ...)등으로 나누기만 할게 아니라 각 부분별로 따로 분류한 뒤 각자 역할별로 패키지를 구성하는 것이 좋다고 한다.

 

postman을 통해 검사하던 중 comment가 blog를 받지 않는 것을 확인해 requestdto에 blog_id를 추가하고 Controller와 Service에 id를 통해 blog를 전달받도록 수정했다.

 

위와 같이 수정하고 검사를 하던 중 JWT토큰이 만료가 되어 에러가 발생하는 문제가 발생했다. 토큰을 삭제하면 될 줄 알았으나 새로운 회원가입도 안되는 문제가 발생했다.

 

postman 내에서 쿠키를 삭제한 뒤 재생성하니 해결됐다.

 

!! database를 연결할 때 사용자명이나 비밀번호와 같은 민감한 정보를 숨기는 법

Edic Configurations > Modify Options > Environment variables > spring.datasource.password > 비밀번호 입력

applicatoin.properties

spring.datasource.url=jdbc:mysql://localhost:3306/blog
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

관리자 권한으로 수정, 삭제는 정상 작동한다.

 

일단 검사를 해보니 댓글이 있는 상태에서는 글 삭제시 오류가 발생한다.

cascade 기능을 사용해서 해결

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "blog_id", nullable = false)
    private Blog blog;

 

글이 조회될 때 해당 글의 댓글들이 같이 조회되도록 수정한다.

연관관계에서 계속 오류가 나고 이유도 짐작이가서 내일 마저 마무리하려 한다.

'TIL > 내배캠 과제' 카테고리의 다른 글

23.07.13  (0) 2023.07.13
23.06.29  (0) 2023.06.29
23.06.27  (0) 2023.06.27
23.06.23  (0) 2023.06.26
23.06  (0) 2023.06.22