분류 전체보기(121)
-
@Controller에서 java Stream을 사용 후 서버 실행 시 BeanDefinitionStroeException, ArrayIndexOutOfException
현상Spring Controller에서 stream을 사용 후 컴파일은 문제없이 되었고서버실행시 BeanDefinitionStroeException, ArrayIndexOutOfException 가 발생하면서서버가 안 켜지던 상황이었습니다. 참고로 Java 11, Dynamic Web Module의 경우도 3.1, Tomcat 9버전. java 1.8 이후의 문법을 사용 못할리가 없다고 생각했었습니다. 실제로 DTO에서는 LocalDate 등의 1.8이후 버전을 사용했는데 stream만 사용 못하는 상황이 왜 발생했을까 싶었습니다. 원인Spring 버전이 2.5였는데, 이는 Java 1.5버전까지 호환됩니다. 근데 LocalDate(java 1.8) 등을 사용했을 때는 문제가 없었는데 왜 그럴..
2025.06.26 -
mybatis의 쿼리 로그와 바인딩 쿼리의 차이로 인한 에러.
현상mybatis 로그에서 찍힌 쿼리는 다음과 같았다.SELECT * FROM my_table WHERE ( REGEXP LIKE user_id, '사원찾기파라미터-이름orID 값', 'i' OR user_id IN (SELECT user_id FROM user_table WHERE user_nm LIKE '%'||'사원찾기파라미터-이름orID 값' ||'%' )-- 검색타입이 id, 이름이 분리되어있지 않고 id or 이름으로 검색하는 상황 이 쿼리를 sqlDeveloper를 이용해 오라클에서 직접 쿼리를 실행했을 때는 원하는 데이터가 잘 나왔지만 , DTO에는 값이 세팅되지 않았다. 여러가지 확인해봤지만 mapper ,DTO 등의 문제는 아니었고, 쿼리 자체의 문제였다. 해결사실 id 검색, ..
2025.06.26 -
제네릭 타입 결정 시점
현상제네릭 관련해서 값이 기대한대로 나오지 않는 문제가 있었다.new Data("AAA").print();public class Data { T value; public Data(T t) { value = t; } public void print() { new Printer().print(value); }}public class Printer { void print(Object a) { System.out.println("object : " + a); } void print(String a) { System.out.println("String : " + a); }} 제네릭 T 가 String이기 때문에 ..
2025.06.26 -
Spring security jwt Oauth2 로그인 - 구현(2)
전체코드 : https://github.com/gks930620/spring_securty_all 구현 자체는 JWT access token,refresh token에 Oauth2 몇몇 기능을 추가한 거밖에 없다. 그래서 여기는 전체코드를 전부 설명하는것이 아니라 추가된 내용만 작성하는걸로 하고전체코드는 github를 참고하도록 하자. Custom-oauth2/login/kakao 컨트롤러이 떄 이 url은 permitALL 되어야한다. Oauth2LoginController@Controller@RequestMapping("/custom-oauth2/login")@RequiredArgsConstructorpublic class Oauth2LoginController { private fina..
2025.03.17 -
Spring Security jwt 방식 Oauth2 로그인 - 동작방식 (1)
※전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/226에 이어 jwt방식에 oauth2로그인을 적용해보겠다. 백엔드서버인 spring boot를 기준으로 설명한다. 예시는 카카오 로그인이다. 책임분배 Oauth2 로그인에서 프론트와 백엔드가 어떤 역할까지 수행할 건지에 문제이다. 프론트에서 인가코드만 백엔드로 전달할 것인지, 프론트가 access_token까지 얻은 후 백엔드로 전달할 것인지 등이다. 이전 글에서 했던 웹 seesion방식의 Oauth2 기능은 인가코드만 백엔드로 전달하는 형태였다. 보시다시피 웹 session방식에서는 백엔드가 인가코드-access token -..
2025.03.14 -
Spring Security jwt 방식 - access token+ refresh token(2)
전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/225에 이어 refresh token을 추가해토큰재발급과 로그아웃기능을 구현해보자. 설정파일application.ymlspring: datasource: url: jdbc:h2:mem:security driver-class-name: org.h2.Driver username: sa password: jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true ..
2025.03.12