스프링
-
[error] No enum constant enum명.값 해결방법Health-Genie 2023. 11. 21. 09:59
처음에 엔티티 설정시, 필드 설정을 이런식으로 하고 @Column(name = "status") private Status status; enum class를 @Getter public enum Status { YET, // "아직 끝나지 않은 to-do" DONE // "끝난 to-do" } 이런식으로 설정을 해주었고, 데이터를 삭제할때 위와 같은 에러를 만났다. 이유는 데이터 삽입시 entity class에 있는 status 필드에 @Enumerated(EnumType.STRING) 위와 같은 애노테이션을 넣지 않았기에, DB에는 status가 숫자값으로 저장되지만, 삭제할때는 enum 값을 받아오면서 생기는 충돌로 발생한것이다. 해당 애노테이션을 붙여줌으로써 DB에 존재하나 enum에 없는 값을 e..
-
[error] Could not write JSON: Infinite recursion (stackOverflowError)Health-Genie 2023. 11. 19. 19:59
ptProcess 에서 list 조회를 하는데 발생했던 에러입니다. 에러에 해당했던 부분은 service 파일 안에 코드입니다 @Transactional(readOnly = true) public Page getAllTrainerProcess(Long trainerId, int page, int size){ return ptProcessRepository.findAllByTrainerId(trainerId, PageRequest.of(page, size)); } 에러를 고친 후의 코드입니다 @Transactional(readOnly = true) public Page getAllTrainerProcess(Long trainerId, int page, int size){ Page process = ptPr..
-
[이메일 인증] 이메일 인증 구현 & 코드 검증!Health-Genie 2023. 11. 18. 14:55
배경 해당 프로젝트에서 이메일 인증 기능이 필요해졌다! 그래서 나는 Google SMTP 서버를 이용해서 이메일 인증을 진행하도록 했다. 개발 환경 Java 17 Spring 3.x Gradle MySQL IntelliJ 흐름 사용자는 이메일을 입력 후 이메일 인증 버튼 클릭 클라이언트 서버에게 사용자의 이메일로 인증 번호 전송 요청 서버는 랜덤 인증 번호 생성. 인증 번호를 auth code table에 저장 후 사용자의 이메일로 인증 번호 전송 사용자는 인증 번호 확인 후 인증 번호 입력 후 확인 버튼 클릭 클라이언트는 서버에게 인증 번호 검증 요청 서버는 전달받은 인증 번호가 auth code table에 저장된 인증 번호와 동일한지 확인 후 동일하면 true 반환 SMTP에서 사용할 구글계정을 등..
-
[스프링] IoC, DI스프링 2023. 10. 4. 23:25
스프링 IoC 컨테이너 ‘제어의 역전’의 약어이며, 일종의 디자인 패턴중 하나 이다. 컨테이너는 보통 객체[ POJO ]의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다. 이 말은 객체[ POJO ]의 생성 및 생명주기 등 객체[ POJO ]의 모든 제어권이 바뀌었단 말이다. 결론, 객체[ POJO ]의 제어권이 “ 나(개발자) → 컨테이너 “ 이동한단 말이다. POJO란, 주로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 Java Object를 지칭한다. -> Java Bean 객체가 대표적이다. 빈 등록방법 @Component @Bean IoC 사용이유 DI → 객체를 new해서 생성 하지 않고, IoC 컨테이너에 존재하는 Bean 주입하면, 싱글톤 문제 및 편..