Spring,SpringBoot13 에러 : Unsupported or unrecognized SSL message 결론 : http만 지원하는 서버에 https로 요청하여 발생한 문제였습니다. (URL 확인) Unsupported or unrecognized SSL message 서버 (8080) 포트에서 서버 (8081) 포트로 접속을 하려고 에러가 발생했습니다. 8080 서버 측 서비스 코드 (테스트 코드 실행) //service public void postGearEntity() { RestTemplate restTemplate = new RestTemplate(); String url = "https://localhost:8081/give-me-beer"; // RestController BeerPostDto dto = new BeerPostDto(); String response = restTemplate... Spring,SpringBoot 2023. 7. 5. Spring: Circular view path에러 상황 더보기 //signup.html User Signup EMAIL: Password: RealName: Username userName: Sign Up @Controller @RequiredArgsConstructor public class userController { private final UserService userService; @GetMapping("/signup") public String showSignupForm(Model model) { // 회원가입 폼을 보여주기 위해 signup.html을 반환합니다. return "signup"; } @PostMapping("/signup") public String signup(@ModelAttribute UserRequestDto user.. Spring,SpringBoot 2023. 5. 26. query dsl 파일 중복생성, 파일을 찾지 못하는오류 Attempt to recreate a file for type 어제까지는 잘 빌드되던 게 갑자기 빌드되지 않는 문제가 발생했습니다. 같은 파일 생성 오류인 것 같아 그래들에서 clean을 진행하여 파일을 제거하여 봤습니다. Could not find class file for 하지만 이번에는 파일을 제거 후에 다시 빌드하여 파일이 생성되었지만 찾지 못하는 오류가 발생 gradle other에서 complie을 해도 똑같은 오류가 발생합니다. 제가 해결한 방법 맥 기준 : intelliJ->setting -> build tools -> gradle : gradle -> intellj로 변경하였습니다. ( 빌드 환경 변경) 그리고 queryDsl 생성파일을 제거하거나, gradle에서 clean 후에 co.. Spring,SpringBoot 2023. 5. 6. mock mvc 테스트시 본문의 값이랑 비교하는 방법, 테스트 코드에러, 연관관계 메서드 제거 1번 삽질(mock mvc에서 Http 메서드를 잘못 작성) 삽질시에 참고한 글(근데 해당 문제가 아니었다) [1번글] [2번글] 약 한 시간 버린 실수였다 mock mvc를 이용하여 테스팅을 하는데 swagger로 할 때는 값이 나왔다. 그래서 단일 값에 대한 json으로 값이 들어와야만 비교 가능한 줄 알고 싱글톤 객체로도 보내봤다. -> 그래도 안 되는 문제 그래서 결론적인 문제는? mock mvc의 HTTP Method를 잘못 적었다. 조회(Get)를 해야 하는데 삭제(Delete) 메서드를 호출했다는 것 이상하다 싶으면 내 코드를 먼저 봐야겠다 아 그래도 배운 점 1개 ResponseBody에 단일값, 응답 본문내용 자체를 비교하고 싶은 경우에 content(). string(원하는 string.. Spring,SpringBoot 2023. 5. 2. Test 코드로 인해서 생성되는 파일 관리(자바의 파일 삭제) 수정 전 코드 @Test public void 유저객체생성확인() throws Exception { //이름에 넘길 파라미터 네임 MockMultipartFile file = new MockMultipartFile("profileImg", "image.jpg", "image/jpeg", "".getBytes(StandardCharsets.UTF_8)); MemberRequestDto userMakeDto = new MemberRequestDto("password", "loginId", "nick", "bo@google.com", file); //when mockMvc.perform(multipart("/auth/signup") .file(file) .param("password", userMakeDto... Spring,SpringBoot 2023. 5. 1. DTO 변환과정 convert 패턴으로 처리 틀린 부분 조언 해주시면 감사하겠습니다 😄 기존코드 기존에는 컨트롤러 내에서 DTO로 변경하는 메서드를 이용해서 변경 후에 리턴하도록 코드를 구성하였었다. 하지만 다른 개발자 분들의 코드들을 찾아보다 보니 객체 내에서 toConvert라는 메서드를 구성하여 리턴하는 방식을 사용한다는 것을 알게 되었다. 생각해 보니 기존에 컨트롤러 내에서 메서드로 변환하는 방식은 해당 컨트롤러에서만 사용하는 방식이고 만약 다른 코드에서 사용하려 하면 또 메서드를 선언해야 하여 코드 중복이 발생하고, 객체 지향적이지 않은 코드라는 생각이 들었다. 따라서 코드를 아래와 같이 convert 메서드를 객체 내에 두어서 객체 지향적이고 코드의 중복을 줄일 수 있는 방법으로 수정하였다. 수정 코드 고민 1. convert 클래스를 .. Spring,SpringBoot 2023. 4. 30. Spring 예외 처리 SPRING 예외 처리 ( 이상하게 한 부분 있으면 조언 부탁드립니다. 🥲 ) 기존코드 지금까지는 그냥 모든 컨트롤러 위에 이렇게 ExceptionHandler을 달아서 에러가 발생하면 처리할 수 있도록 했다. 근데 어차피 전역적으로 똑같은 예외처리를 하면 한 번에 묶어서 처리하는 것이 낫다고 생각해서 관련 방법 찾았다. 수정코드 @RestControllerAdvice는 Exception Handling을 위한 어노테이션으로 @ControllerAdvice와 @ResponseBody의 기능을 합쳐 놓은 것이다. 해당 어노테이션을 활용하면 컨트롤러에서 발생하는 예외를 전역적으로 처리할 수 있게 도와주고 @ResponseBody를 통해서 메서드 반환값을 HTTP 본문에 제공해 json과 같은 형태로 반환이 .. Spring,SpringBoot 2023. 4. 8. test 환경 분리하기, 폼 객체 mock mvc 테스트 방법 테스트 데이터 베이스와 서버 데이터 베이스 나누기 중복되는 필드가 있거나, 모든 포스트 확인 등을 테스트 하기 어려워서 분리하기로 했다. application.properties #테스트용 데이터 베이스와 분리 spring.profiles.default=local application-local.properties spring.config.activate.on-profile=local spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mar.. Spring,SpringBoot 2023. 3. 30. swagger에서 멀티파트 폼 데이터 올리는 법 프로필 이미지 올리기 어제 이미지 테이블하고 이미지 전송만 확인하고 자서 오늘은 회원가입 시에 이미지를 올리고 기존에 저장되어 있던 이미지가 있으면 삭제하고 재 업로드하도록 했다 근데, swagger 에서 테스트가 안 돼서 계속 그거 하다가 시간 순삭 🥲🥲🥲 단일 파일로 업로드 하는건 잘 되는데 로그인 객체 + 멀티파일을 업로드하려니까 로그인 객체가 인식이 안되거나, 미디어 타입이 수용할 수 없는 미디어 타입으로 나와서 그냥 리엑트 페이지로 확인했다. (나중에 다시 확인..) 하나씩 @requestPart나 @requestParam으로 하면 되는거 같긴 한데 기존에 구성되어 있던 코드에서 조금만 수정하고 싶어서 그냥 원래 있던 코드를 사용했다. +) 스웨거 에서 폼 객체나 멀티타입파일을 올려서 테스트해볼.. Spring,SpringBoot 2023. 3. 29. MVC, MVC1, MVC2 그리고 스프링의 MVC처리과정 MVC(Model-View-Controller) 패턴 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스와 비즈니스 로직을 분리하여 구현하는 방법을 제공하는 패턴이다. MVC 패턴은 애플리케이션을 세 가지 역할로 분리된다. 모델(Model) 애플리케이션의 데이터와 비즈니스 로직을 담당한다. 모델은 데이터베이스, 파일, 메모리 등에서 데이터를 읽어오거나 저장하는 역할을 수행하며, 비즈니스 로직을 처리하여 데이터를 가공한다 뷰(View) 사용자 인터페이스를 담당한다. 뷰는 모델에서 처리된 데이터를 출력하거나 사용자의 입력을 받아 모델에 전달하는 역할을 수행한다 컨트롤러(Controller) 모델과 뷰 사이의 인터페이스 역할을 수행한다. 컨트롤러는 사용자의 요청을 받아 해당 요청을 처리할 모델을 선택하고, .. Spring,SpringBoot 2023. 3. 27. @ModelAttribute 와 @RequestBody @RequestBody ( Http 바디 정보를 편리하게 조회: 주로 API JSON에서 사용한다. ) 클라이언트가 보내는 HTTP의 바디 메세지(json)을 Java 객체로 변환해준다. (이때 HttpMessageConverter을 이용하여 타입에 맞게 변화한다.) 각각의 필드 단위로 적용하는 것이 아니라 전체 객체 단위로 적용된다. 헤더 정보가 필요하면 HttpEntity를 사용하거나, @RequestHeader을 사용한다. @PostMapping("/api/user-add") public long makeUser(@RequestBody UserMakeDto userMakeDto) { Member member = Member.makeUser(userMakeDto.getLoginId(), userMak.. Spring,SpringBoot 2023. 2. 15. SpringBean, IOC, DI 스프링은 자바기반 프레임 워크로 개발을 편리하게 해 주기 위해서 사용한다. 이때 다형성을 유지하기 위해서는 OCP, DIP가 위배된다. 이를 해결하기 위해서 스프링에서는 IOC를 지원한다. Container : 빈을 관리하는 것으로, 인스턴스의 생성 주기, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 한다. Spring Conatiner : Spring Framework의 핵심부에 위치하며, 종속 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이때 Spring Container에서 생성되는 객체를 Bean이라고 한다. IOC( Inversion of Control) 제어의 역전: 개발자가 직접 인스턴스를 생성하고 의존관계 주입을 하는 것이 아니라 IOC Cont.. Spring,SpringBoot 2023. 2. 11. 이전 1 2 다음