자바
-
[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에서 사용할 구글계정을 등..
-
[CS] OAuth2.0 간단한 이해CS 2023. 3. 10. 23:42
OAuth 프로토콜 인스타 / 페북 같은 서비스를 운영하기 위해서는 리소스가 필요함 리소스 수집 및 가공은 힘듬 & 사용자도 불편함 구글 / 네이버 같은 대기업이 미리 만들어 놓은 리소스를 사용할 수 있도록 api 를 공개하는 경우가 있음 ( 구글 / 네이버 = OAuth provide : authorization server + resource server ) 이 리소스는 민감한 정보일 수 있음 그래서 안전하게 HTTP 상으로 주고 받을 수 있도록 규악을 정했는데, 이를 'OAuth 프로토콜' 이라고 함 OAuth 구성요소 이거 그림만 이해해도 구성요소가 눈에 들어온다 resource owner = end-user = 즉, 나 client = App = 인스타 / 페북 resource server + ..
-
[자바] 스트림자바 2022. 7. 25. 16:59
스트림 스트림 - 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의 해놓은 것이다.[ 스트림은 '데이터의 흐름' 이다 ] -> 람다를 이용해서 코드의 양을 줄이고 간결하게 표현이 가능하다. String[] strArr = { "aaa", "bbb", "ccc" }; List strList = Arrays.asList(strArr); // stream 생성 Stream strStream1 = strList.stream() Stream strStream2 = Arrays.stream(strArr); // 스트림 사용전 Arrays.sort(strArr); Collections.sort(strList); for(String str: strArr) System.out.println(st..
-
[자바] Homebrew로 자바설치하기자바 2022. 6. 23. 22:10
1. JAVA 설치하기 1.1 Homebrew 설치 및 업데이트 brew update 1.2 adoptopenjdk/openjdk 추가하기 brew tap adoptopenjdk/openjdk 1.3 설치 가능한 모든 JDK 찾기 brew search jdk 1.3 원하는 java 버전을 찾아서 설치하기 예시 brew install --cask adoptopenjdk16 1.5 java 설치된 위치 확인하기 /usr/libexec/java_home -V 1.6 java 버전 확인하기 java -version