- 24.01.18) TIL2024-01-18 23:42:43최종 프로젝트 프론트 작업 - 게시글 작성 코드를 만들었는데, 포스트맨은 같은 url임에도 불구하고 브라우저에서는 게시글 작성이 되지 않는 문제가 있었다. const requestData = { postTitle: postTitle, postContent: postContent, }; try { const accessToken = localStorage.getItem('accessToken'); const refreshToken = localStorage.getItem('refreshToken'); if (!accessToken) { console.error('액세스 토큰이 없습니다.'); alert('로그인하고 이용해주세요'); navigate("/"); return; } const formData =..
- 24.01.16)TIL2024-01-16 22:27:03프론트 부분을 React로 만들면서 백엔드와 프론트를 연결하려다보니 서로 포트번호가 달라 CORS 문제가 생겼다. "Cross-Origin Resource Sharing" (CORS)는 웹 애플리케이션에서 리소스에 대한 HTTP 요청이 다른 도메인에서 온 경우를 다루는 보안 메커니즘입니다. 웹 브라우저는 보안상의 이유로 동일 출처 정책을 적용하여, 동일한 출처에서 온 요청만 허용합니다. 이 정책은 일반적으로 다른 도메인의 API에 접근하려는 경우에 문제가 됩니다. 해결하기 위한 여러가지 방법이 있었지만, 빈으로 등록해 백엔드에 있는 모든 API가 프론트에 접속하게 했다. @Configuration public class WebConfig implements WebMvcConfigurer { @Overri..
- 24.01.12) TIL2024-01-13 12:03:01@RequestPart 사용할 때, 컨트롤러 테스트 작성은 어떻게 해야할까? // 게시글 작성 @PostMapping public ResponseEntity createPost( @RequestPart(value = "requestDto") PostRequestDto requestDto, @RequestPart(value = "file", required = false) MultipartFile file, @RequestParam(required = false) GameType gameType, @RequestParam(required = false) GameName gameName, @RequestParam BoardName boardName, @AuthenticationPrincipal UserDet..
- 24.01.11) TIL2024-01-11 19:50:05로그인을 하지 않은 비회원 상태에서 게시글 조회는 가능하다. 만약 비회원이 게시글 생성이나 수정, 삭제를 하면 어떻게 될까? "message": "Cannot invoke \"com.example.gamecommunity.global.security.userdetails.UserDetailsImpl.getUser()\" because \"userDetails\" is null" 포스트맨으로 테스트해보니 위와 같은 오류가 발생했다. 당연하게도 UserDetail의 값을 넣지 않았으니 null이라 오류가 발생했다. 이걸 예외처리 해주기 위해 아래와 같은 방법을 사용했다. // 비회원에게 허용되지 않은 API를 사용할 때 예외처리 @Bean public AuthenticationHelper authentica..