분류 전체보기(121)
-
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 Websocket STOMP 통신과 JWT 인증
이 글의 목적Spring websocket , stomp로 기본 채팅서버를 만들고 Spring security와 JWT를 이용해 인증 후 웹, app 모두 같은 채팅방에서 채팅을 하는 기능을 구현한다.웹에서는 ajax를 통해 /api 요청을 해서 화면을 구성한다 (근데 따로 웹 서버 만들기 귀찮아서 그냥 채팅서버에 WebController -> return 단순화면 추가) 앱의 경우 안드로이드스튜디오에서 device manger로 가상 머신으로 실행해야서버 주소(localhost:8080)에 요청할 수 있다. 완성 코드 https://github.com/gks930620/spring_basic/tree/master/spring_chat Spring Websocket 웹 소켓은 ..
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를 기준으로 설명한다. 예시는 카카오 로그인이다. 세션/JWT 방식과 Oauth 이해. 세션과 JWT는 사용자 정보를 어디다 저장하느냐의 대한 차이인거고, Oauth는 이 사용자 정보를 어떻게 얻냐에 대한 거다. 전통적인 SSR 방식 : Oauth를 사용하면 인가코드 방식으로 카카오의 사용자정보를 얻고, 이 정보를 세션에 저장 굳이 SSR방식에서 JWT를 사용할 필요는 없다. ..
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