~23-07-02 WIL

more·2023년 7월 2일
0

배운 점

  • "Could not autowire. No beans of 'PostService' type found." 에러 해결 방법
    • 만들어진 생성자를 주입하려고 하는데 Bean으로 등록되지 않아서 생기는 문제
    • @ComponentScan을 통해서 주입받지 못하는 Bean을 등록하여 해결해야한다.
    • 기존에 있던 IDE가 아니라 다른 IDE로 실행하였을 경우에 일시적으로 생기는 경우가 많다.
      -> 그런 경우에는 IDE를 새로 실행하거나 생성자를 다시 만들거나 혹은 @RequiredArgsContructor로 만들어서 실행하면 된다.
    • @Controller vs @RestController
    • @Controller는 해당 자바 클래스를 컨트롤러 빈으로 등록하겠다는 의미
    • view를 리턴해주기 때문에 static 파일의 이름을 리턴 값으로 주어야함
    • @RestController는 @Controller + @ResponseBody가 합쳐진 기능으로 해당 클래스를 Bean으로 만들면서 Data를 리턴하겠다는 의미
    • 데이터를 리턴해주기 때문에 json이나 String 타입과 같은 객체를 넘겨주어야할 때 사용
  • "Cannot call sendError() after the response has been committed" 에러 해결 방법
    • 데이터베이스 상에서 테이블들이 서로 계속 상호 호출하고 있는 경우 발생 할 수 있는 문제
    • Json으로 변환하는 과정에서 무한 참조가 이루어지는 것
    • 연관 관계 매핑 부분에서 @JsonIgnore라는 Annotation을 붙여주면 무한 참조를 막을 수 있다.
  • 연관된 데이터베이스 컬럼을 삭제하는 문제
    • @OneToMany 옵션 중에서 cascade = CASCADE.REMOVE를 사용하거나 orphanRemoval = true 옵션을 준다.
    • CASCADE.REMOVE는 해당 컬럼과의 관계를 끊는 것이고 orphanRemoval은 해당 컬럼까지 삭제해주는 기능이다.

느낀 점

  • 팀 프로젝트를 새로 들어가면서 아직 부족한 점이 많아서 사소한 오류도 많이 발생하고, 기존에 잘 몰랐던 에러들이 많이 생기면서 문제가 조금 있는 듯하다. 그래도 에러를 하나하나 잡아가니까 조금은 발전해나가는 느낌이 든다. Spring에 대해서 조금 더 공부하고 Java 공부도 빼먹지 말고 해야겠다.

0개의 댓글