springboot 16

[Springboot] '심볼 'lombok'를 해결할 수 없습니다' 오류 해결

🚨 심볼 'lombok'를 해결할 수 없습니다 오류의 원인은 정확하게 모르겠지만 잘 실행되던 스프링부트 프로젝트가 갑자기 lombok 어노테이션 사용하는데 빨간 줄이 생기면서 문제가 생겼다ㅠㅠ 🔎 해결 방안 해결 방안은 아주 간단한데 그냥 lombok 버전만 변경해주면 된다 나는 사진처럼 1.18.26 버전으로 변경하니까 오류를 해결할 수 있었다 +) 추가적으로 구글링하면서 다른 해결 방안도 있었는데 build.gradle 파일의 dependencies에 annotationProcessor 'org.projectlombok:lombok' 를 추가하는 것이다 ❓ annotationProcessor? 컴파일 단계에서 annotation에 정의된 일렬의 프로세스를 동작하게 하는 것을 의미한다. 컴파일 단계에서..

SpringBoot 2023.10.31

[Springboot] swagger 적용 및 발생 오류 정리

1. 환경 설정 build.gradle 파일에 추가 implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' 2. SwaggerConfig 파일 생성 @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .securityContexts(Array..

SpringBoot 2023.09.20

[Spring Boot] 게시글 페이징 기법 정리

❓ 페이징 기법 수많은 자료 데이터를 일정 크기로 나누어서, 나누어진 하나하나의 집단에 페이지 번호를 부여하는 방식 - 정해진 개수와 원하는 영역의 게시판 데이터를 출력하여 가독서오가 자원 낭비 문제 개선 더보기 참고 > https://thalals.tistory.com/246 [Spring] 스프링 부트 페이지네이션 (Query, JPA, offset / cursor 페이지네이션) 페이지네이션을 구현해보자!! spring boot 의 JPA를 이용해서 구현을 할 예정이다 페이지네이션을 구하기 위해서는 요롷게 3가지를 생각해 주어야한다. view size : 한페이지에 보여줄 개수 total page : thalals.tistory.com 1. Repository Page findAll(Pageable ..

SpringBoot 2023.08.22

[Spring boot] NullPointException 오류 해결

🚨 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 원인! 계속 위에 사진처럼 메시지가 뜨면서 NullPointException 오류가 뜨는데 오탈자가 있나 싶어서 하나하나 다 확인했지만 그래도 해결을 못하고 있었는데.. 구글링해보니 나랑 똑같은 오류가 계속 뜨는 사람이 있었고 해당 게시글을 참고해서 오류를 해결할 수 있었다ㅠㅠ 일단 결론은 private final FreeCommentRepository freeComment..

SpringBoot 2023.08.11

[Spring boot] BCryptPasswordEncoder 사용할 때마다 인코딩 결과가 달라질 때

🚨 BCryptPasswordEncoder 사용할 때마다 인코딩 결과가 달라지는 원인 비밀번호 변경 기능 테스트를 작성하며, 처음에는 단순히 Assertions.assertEquals를 사용해서 변경하고자 하는 비밀번호와 비밀번호 변경한 후 user 객체에 저장된 비밀번호를 비교하는 식으로 했는데 계속 오류가 떠서 몇 분이나 붙잡고 있었다..ㅠ 그런데 로그 기록을 보면 똑같은 비밀번호를 인코딩했는데 두 개의 결과가 다른 것을 확인할 수 있다 결론은 BCryptPasswordEncoder는 매번 내부적으로 임의의 salt를 이용해 다이제스트를 만들고 있는데 이러한 이유로 인코딩 할 때마다 매번 다른 값이 나오는 것이다! 참고 > https://shanepark.tistory.com/427 BCryptPas..

SpringBoot 2023.08.02

[Spring boot] 게시글 수정 기능 구현하면서 발생한 오류 정리

1. Missing URI template variable for method 컨트롤러에서 URI에서 받아오는 변수명과 PathVariable에 사용한 변수명이 달라서 발생한 문제 이런식으로 URI에 {post_id}와 @PathVariable int post_id처럼 이름을 맞춰준다! * 받아오는 변수가 하나라서 그냥 변수명 앞에 @PathVariable만 추가해주면 되는데 여러 개라면 @PathVariable("post_id") https://mand2.github.io/spring/spring-boot/1/ spring.jpa.open-in-view 로그 오류 해결하기 :: 고라니의 개발일기🦌 spring.jpa.open-in-view 로그 오류 해결하기 2019-09-27 1. 문제상황 : 왜 로..

SpringBoot 2023.07.26

[Spring boot] 연관 관계 매핑 정리

[참고] '백견불여일타 - 스프링 부트 쇼핑몰 프로젝트 with JPA' 책을 참고하여 작성된 글입니다! https://product.kyobobook.co.kr/detail/S000001624717 백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA | 변구훈 - 교보문고 백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA | 스프링 부트와 JPA를 활용하여 실제 이커머스 업계에서 활용되는 쇼핑몰 기술들을 직접 구현해볼 수 있게 구성하였다. JPA와 Thymeleaf에 대한 product.kyobobook.co.kr 1. 연관 관계 매핑 - 일대일 (1:1) : @OneToOne - 일대다 (1:N) : @OneToMany - 다대일 (N:1) : @ManyToOne - 다대다 (N:M) :..

SpringBoot 2023.07.22

[Spring boot] @RestController 정리

1. @RestController? @Controller에 @ResponsBody가 결합된 어노테이션! @ResponseBody 어노테이션이 없어도 문자열과 JSON 등을 리턴할 수 있다. ❓ @Controller? 해당 어노테이션이 적용된 클래스는 "Controller"로 사용됨을 알려주고, bean으로 등록된다. ❓ @ResponseBody? 서버에서 클라이언트로 응답을 보내기 위해 body에 데이터를 담아서 전송할 수 있도록 한다. * @Controller인 경우 body에 데이터를 담아 전송하기 위해 @ResponseBody 어노테이션을 반드시 명시해주어야 한다. 더보기 [참고] https://doctorson0309.tistory.com/664 [Spring] 스프링 @RestController..

SpringBoot 2023.07.16

[Spring boot] (에브리타임 클론코딩) + MySQL, 회원 가입 구현(2)

[참고] 아래 첨부한 글을 참고하여 작성된 코드입니다! https://inkyu-yoon.github.io/docs/Language/SpringBoot/SpringSecurityJoin · Spring Security를 이용한 회원가입 구현 👩🏻‍💻 지식 창고 📚 inkyu-yoon.github.io 원래 (1)에서 참고한 책이 있는데 security를 작성하는 부분에서 이해가 안되는 부분이 있어서 구글링하다가 다른 블로그를 참고하여 코드를 구현하게 되었다ㅠㅠ 1. 의존성 추가 implementation 'org.springframework.security:spring-security-test' implementation group: 'io.jsonwebtoken', name: 'jjwt', versio..

📋 Project 2023.07.15

[Spring boot] (에브리타임 클론코딩) + MySQL, 회원 가입 구현(1)

[참고] '백견불여일타 - 스프링 부트 쇼핑몰 프로젝트 with JPA' 책을 참고하여 작성된 코드입니다! https://product.kyobobook.co.kr/detail/S000001624717 백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA | 변구훈 - 교보문고 백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA | 스프링 부트와 JPA를 활용하여 실제 이커머스 업계에서 활용되는 쇼핑몰 기술들을 직접 구현해볼 수 있게 구성하였다. JPA와 Thymeleaf에 대한 product.kyobobook.co.kr 1. 버전 spring boot 2.7.13 java 11 gradle IntelliJ IDEA 2. 의존성 추가 implementation 'org.springframewor..

📋 Project 2023.07.13