본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework73

[webflux websocket broad cast all] 웹플럭스 웹소켓 에코 말고 전체에게 보내기 웹플럭스에서 웹소켓을 활용하여 채팅서버를 만들 수 있습니다. 구글링 하다보면 다양한 예제를 만날 수 있으며, 샘플 코드 또한 훌륭 합니다. 그런데..아쉬운 점은.. 바로 대부분의 설명과 예제가 단순히 자기 자신에게 돌아오는 에코(echo)로 된 코드라는 점 이였습니다. 포스팅 설명을 읽고 한번 실행하여 보면 자기한테만 메시지가 올 분 다른 클라이언트에게 메시지는 전달되지 않았습니다. 그래서 이것저것 찾아보며 전체 접속한 사용자에게 전송하는 방법에 대해서 정리하여 보았습니다! * 2023. 05 기준 입니다. 웹플럭스에 사용한 라이브러리는 2종류 입니다. org.springframework.boot spring-boot-starter-integration org.springframework.boot spr.. 2023. 5. 22.
[Springboot] thymeleaf 오류 : TemplateInputException, ParseException 타임리프(thymeleaf)를 사용하여 개발을 하다보면 만날 수 있는 상황 입니다. 사실 SPA기술이 등장하면서 타임리프가 많이 쓰이지는 않지만.. 오류 원인은 2가지 입니다. 1. 설정한 경로에 파일이 없는 경우 2. 해당 html 파일에 타임리프가 파싱할 때 못알아 듣는(?) ECMA 6이상의 코드가 존재하는 경우 첫번째 원인은 해당 뷰 컨트롤러의 경로를 확인하여 해당 파일을 생성하면 쉽게 해결이 가능 합니다. 일반적으로 template 디렉토리 아래에 파일이 위치하므로 뷰 컨트롤러와 html 파일의 경로를 확인하여 주면 됩니다. 그런데..두번째 문제는 솔직히 짜증이 났습니다. ECMA6 이상 문법만 쓰면 간혹 만나는 오류..지가 먼데 파싱하면서 오류를 내는지... 두번째 문제인 경우는 오류 로그로 .. 2023. 5. 16.
[Springboot] Mongotemplate 에서 _class 제거 자바 기반의 몽고템플릿 라이브러리를 사용하면 데이터를 저장하거나 수정 할 때 "_class" 필드 항목이 저장하는 클래스 패키지명과 함께 항상 생기고는 합니다. 아래 사진처럼 패키지명과 클래스 이름이 그대로 저장되어 깨림찍 하지 않을 수 없습니다. 몽고템플릿에서는 데이터를 매핑 할 때 주어진 클래스 의 패키지와 이름을 넣도록 기본설정이 되어 있습니다. 해당 기능을 끄기 위해서는 application.properties 에서는 할 수 없으며, 따로 빈 객체를 생성해야 합니다. 위 내용에 해당되는 코드 입니다. * 몽고컨피그.class import org.springframework.beans.factory.BeanFactory; import org.springframework.context.annotati.. 2023. 4. 25.
[SpringBoot] Spring Security jwt 연동 하기 - 2023 스프링 부트 환경에서 시큐리티와 JWT를 연동하는 방법 입니다. 이미 수많은 글들이 존재하지만 제 스스로가 이해하기 쉽도록 정리를 한번 해 보았습니다. 먼저 필요한 라이브러리는 3종류 입니다. * maven 기준 org.springframework.boot spring-boot-starter-security io.jsonwebtoken jjwt 0.9.1 javax.xml.bind jaxb-api 기능은 크게 2가지로 구분지어 적용 할 수 있습니다. 1. JWT 설정 2. 시큐리티 설정 시큐리티는 기본적으로 서버의 자원을 활용하여 로그인 여부를 관리하고 판단 합니다. 사용자가 로그인하거나 정보를 바꾸면 서버 내부의 세션(session)을 생성하여 관리를 합니다. 그러므로 이러한 시큐리티에 JWT를 적용 .. 2023. 4. 7.
SpringBoot gRPC 체험 후기 - 2 (파일, File) * 이전내용 : https://lts0606.tistory.com/654 SpringBoot gRPC 체험 후기 - 1 gRPC는 데이터를 주고받기 위한 HTTP프로토콜을 "서비스(Serivice)" 라는 개념으로 정의한 개념의 규칙 입니다. 구글링하면 워낙 훌륭한 글 들이 많아서... 자세한 기능과 설명은 여러 포스팅을 보는 lts0606.tistory.com gRPC를 활용하여 파일을 주고받는 방법도 어렵지 않습니다. proto 파일의 내용에서 파일 형식의 응답객체와, 해당 객체를 사용하는 메서드를 추가하여 줍니다. * proto 파일 내용 syntax = "proto3"; option java_multiple_files = true; option java_package = "kr.com.rts.pr.. 2023. 3. 8.
SpringBoot gRPC 체험 후기 - 1 gRPC는 데이터를 주고받기 위한 HTTP프로토콜을 "서비스(Serivice)" 라는 개념으로 정의한 개념의 규칙 입니다. 구글링하면 워낙 훌륭한 글 들이 많아서... 자세한 기능과 설명은 여러 포스팅을 보는 것이 좋을 것 같습니다. * 해당 포스팅은 설명 보다는 개발환경을 구축해서 테스트하는 내용 위주로 작성되어 있습니다. gRPC를 구현하여 어떠한 기능을 하는지 살펴보기 위해 개발환경을 구축하여 보았습니다. # 개발환경 - OS : 윈도우 11 - Java : 17 - SpringBoot : 부트버전에 크게 영향받지 않습니다. - 개발도구 : STS - 빌드 : maven #1. protoc 설치 가장 처음에 할 일은 protoc를 설치해야 합니다. 윈도우 환경에서는 사실 압축풀기 + 환경변수 잡기 .. 2023. 3. 8.