본문 바로가기

Framework/SpringBoot20

[Java/Springboot] IntStream.range()와 IntStream.rangeClosed()의 차이 기본형 특화 스트림인 IntStream과 LongStream에는 정적 메서드인 range와 rangeClosed가 있다. 두 메서드는 특정 범위의 숫자를 차례대로 생성해 주는 기능을 가진다. public static IntStream range(int startInclusive, int endExclusive) { if (startInclusive >= endExclusive) { return empty(); } else { return StreamSupport.intStream( new Streams.RangeIntSpliterator(startInclusive, endExclusive, false), false); }}public s.. 2024. 7. 4.
[OAuth2 / Trouble Shooting] 구글 로그인 액세스 차단됨: 승인 오류 invalid_request [Version]⦁ 2024.05.02 / [OAuth2 / Trouble Shooting] 구글 로그인 액세스 차단됨: 승인 오류 invalid_request [OAuth2 / Trouble Shooting] 구글 로그인 액세스 차단됨: 승인 오류 invalid_request EC2에 배포한 이후 퍼블릭 IPv4 주소를 통해 구글 로그인을 시도했을 때 다음과 같이 오류가 발생했다. 오류의 내용을 간략하게 요약하자면, Google의 OAuth2.0 정책에 맞지 않기 때문에 이 앱에 로그인할 수 없다는 내용이었다. 문제를 해결하기 위해 구글링을 하였고 그중 나와 비슷한 사례를 발견할 수 있었다. 배포를 내가 한 것이 아니었기 때문에 퍼블릭 IPv4 주소만 알고 있고, DNS 주소를 알 수 없었다. 때문에 .. 2024. 5. 2.
[Spring Boot / Trouble Shooting] Sorry, remote connections ('webAllowOthers') are disabled on this server. [Version]⦁ 2024.05.01 / [Spring Boot / Trouble Shooting] Sorry, remote connections ('webAllowOthers') are disabled on this server. [Spring Boot / Trouble Shooting] Sorry, remote connections ('webAllowOthers') are disabled on this server.문제 원인 EC2에 서버를 배포하고 난 이후 H2콘솔에 접근하려고 할 때 다음과 같은 오류가 발생했다. 구글링을 통해 원인을 파악해 보았다. 해결 방법h2: console: enabled: true settings: web-allow-others: true appli.. 2024. 5. 1.
[Spring Boot / Trouble Shooting] org.hibernate.query.SemanticException: Could not interpret path expression 's' [Version]⦁ 2024.04.30 / [Spring Boot / Trouble Shooting] org.hibernate.query.SemanticException: Could not interpret path expression 's' org.hibernate.query.SemanticException: Could not interpret path expression 's'문제 원인public List findAllSurveys() { return entityManager.createQuery("select s from Survey", Survey.class) .getResultList();} 설문지의 모든 데이터를 조회하는 과정에서 발생한 에러다. 원인을 파악해 본 결과.. 2024. 4. 30.
[Java / Trouble Shooting] Not annotated parameter overrides @NonNullApi parameter [Version] ⦁ 2024.04.09 / [Java / Trouble Shooting] Not annotated parameter overrides @NonNullApi parameter Not annotated parameter overrides @NonNullApi parameter 웹 소켓을 구현하는 과정에서, TextWebSocketHandler를 상속받아 세 개의 메서드를 오버라이드 하였다. @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // WebSocket 연결이 성립되면 호출되는 메서드 } 위 코드에서 파라미터의 값인 session에 위 오류가 발생했는데, 이는 부모.. 2024. 4. 9.
[Java / Trouble Shooting] Static member 'com.model.Language.PYTHON' accessed via instance reference [Version] ⦁ 2024.04.04 / [Java / Trouble Shooting] Static member 'com.model.Language.PYTHON' accessed via instance reference Static member 'com.model.Language.PYTHON' accessed via instance reference 이 오류는 클래스의 정적 멤버를 인스턴스 참조를 통해 접근하려고 할 때 발생한다. 정적 멤버는 클래스의 인스턴스와 관련이 없으며, 클래스 자체에 속하는 멤버이다. 따라서, 정적 멤버에 접근할 때는 클래스의 이름을 사용해야 한다. 나의 경우, switch-case문을 통해 Enum 클래스에 정의된 변수를 비교하는 과정에서 문제를 발견하였다. 먼저 최초로 작.. 2024. 4. 4.
[Java / Spring] 2차원 배열 정렬 방법 [Version] ⦁ 2024.03.20 / [Java / Spring] 2차원 배열 정렬 방법 2차원 배열 정렬 시 오류 발생 원인 2차원 배열을 "Arrays.sort()" 메서드를 통해 정렬을 하면, " java.lang.ClassCastException: I cannot be cast to java.lang.Comparable" 오류가 발생한다. 이 오류가 발생하는 원인은 비교 기준이 구현되어 있지 않기 때문에 발생하는 것으로 "Comparable", "Comparator" 인터페이스를 구현하여 기준을 정의해야 한다. Comparator 익명 클래스 구현 int[][] array = { {3, 1}, {2, 4}, {5, 3} }; Arrays.sort(array, new Comparator() .. 2024. 3. 20.
[Java / Spring] REST API이란? [Version]⦁ 2024.03.15 / [Java / Spring] REST API이란? 최초작성⦁ 2024.05.05 / [Java / Spring] REST API이란? 수정 RESTful API란?REST(Representational State Transfer)는 웹을 이용할 때 제약조건들을 정의하는 소프트웨어 아키텍처로 HTTP URL을 통해 자원을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD(Create, Read, Update, Delete)를 적용하는 통신 규약이다.REST의 특징Client-Servcer 구조클라이언트와 서버는 서로 독립적이며, 클라이언트는 URI 리소스만 알아야 한다.인터페이스의 변경 없이도 서로 독립적.. 2024. 3. 15.
[Java / Spring] 다양한 Map 출력 방법 [Version] ⦁ 2024.03.13 / [Java / Spring] 다양한 Map 출력 방법 최초작성 entrySet()을 사용한 Map 전체 출력 Map에 저장된 모든 값을 출력하기 위해 다음과 같은 방식을 사용하면 되는데, `entrySet()`을 사용하는 경우 key와 value를 모두 추출할 수 있습니다. [entrySet()을 사용하여 Map의 모든 원소를 추출하는 방법] Map map = ...; for(Map.Entry entry : map.entrySet()) { KeyType key = entry.getKey(); ValueType value = entry.getValue(); } 위의 코드는 `entrySet()`메서드를 사용하여 Map의 모든 원소를 추출하고, 각 원소에서 Key.. 2024. 3. 13.