Cute Running Puppy
본문 바로가기
728x90

개발일기/Java38

JPA Query 사용하기 인스타 처럼 태그 값을 저장하고 Top3를 선정하는 로직을 짜기 위해서는 JPA 기본 메서드로 해결이 되지 않아서 Query문을 직접 작성하여 불러오는 방법을 사용해 보았다! Entity 우선 Tag를 저장하는 Entity는 이렇게 설계했다. id : 키값 post : 저장할 게시물 tag : 태그명 해당 태그를 한 게시글을 가져와야하니 JoinColumn으로 Post 객체를 연결했고 게시물에 태그가 여러개 등록되므로 @ManyToOne을 설정했다. @Getter @Entity @NoArgsConstructor public class Tag { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinC.. 2023. 3. 23.
Cors 에러가 뜨는 이유와 해결 Cors 에러가 뜨는 이유와 해결! https://inpa.tistory.com/entry/WEB-📚-CORS-💯-정리-해결-방법-👏 (참고자료) 에러가 뜨는 이유 사실 출처가 다른 두 어플리케이션이 자유로이 소통할 수 있는 환경은 꽤 위험한 환경이다. 만일 제약이 없다면, 해커가 CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting) 등의 방법을 이용해서 우리가 만든 어플리케이션에서 해커가 심어놓은 코드가 실행하여 개인 정보를 가로챌 수 있다. 그렇기 때문에 동일 출처가 아니면 차단!!! 해결 방법 서버에서 Access-Control-Allow-Origin헤더에 허용할 출처를 기재해서 클라이언트에 응답하면 되는 것이었다. 즉, 백엔드 개발자가 고쳐야될.. 2023. 3. 20.
userDetails 유저 정보 받아오기 비회원일 때 인증된 사용자에 대한 정보를 제공하기 위해 userDetails를상속받아 구현 중에 비회원은 어떻게 해야할까? 하는 의문이 생겼다. 전체 게시물이 보이는 화면에 좋아요 기능을 추가했는데 비회원과 회원 모두 볼 수 있는 화면인 것! 자신이 한 좋아요가 보이게 하기 위해 user정보를 userDetails를 상속 받은 UserDetailsImpl 클래스를 사용하여 가져왔는데 user가 null일 때 오류가 나는 것이다 ㅜㅜ @GetMapping("/post/{postId}") public ResponseEntity getPost( @PathVariable Long postId, @AuthenticationPrincipal UserDetailsImpl userDetails) { return ResponseEn.. 2023. 3. 19.
커스텀 한 예외를 글로벌로 예외 처리하기 글로벌 예외 처리를 해보니 오류별로 묶어서가 아닌 내 마음 대로 status를 다르게 하고 싶음 넘겨줄 컬럼을 내가 지정하고 싶음 이를 해결하기 위해 예외를 내가 커스텀하여 글로벌로 예외처리를 해보았다. RestApiExceptionHandler 글로벌 예외 처리에서 커스텀 한 예외 처리를 어떻게 하는지 IllegalArgumentException으로 통째로 처리하면 HttpStatus를 한 상태만 보내주게 됨 이것을 Enum으로 상태, 메세지를 정의하고 가져오고 싶어서 Exception을 커스텀 하게 됨 @ExceptionHandler(value = { CustomException.class }) public ResponseEntity CustomhandleApiRequestException(Custo.. 2023. 3. 17.
728x90