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

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

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


Spring framework73

spring webflux 3 (웹플럭스 적용기, 함수형과 반응형) 웹플럭스는 대부분의 코딩 방식을 람다 또는 함수형으로 표현하고 있다. 메소드형태도 대부분 체이닝 방식을 써서 작업 할 때 메소드명이 차레대로 이어지는 걸 보면 해당 코드의 이해가 쉬워진다. 그러면, 전에 만들었던 RoutsConfig 클래스에 매소드를 한개 추가하여보자. 새로 만들 메소드 이름은 requestGetParam이라는 메소드이다. @Bean public RouterFunction requestGetParam() { RequestPredicate predicate = RequestPredicates.GET("/request").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)); //1. Request + Predicate(요청 + ~이다) => 사용자의.. 2020. 3. 12.
spring webflux 2 (웹플럭스 적용기, 기본 구조) 웹플럭스에 대한 자료를 구글링해보면 영어로된 원문이 참 많다. 그런데 아직 한글로 제대로된 튜토리얼은 안보인다..흠.. 웹플럭스라는 프레임워크는 반응형+함수형 프로그래밍을 기초로 두고 있어서 아직까지는 보편화되어 많이 사용되지 않는 것 같다. * 반응형에 대한 간단한 정의 ─────────── 반응형에 대한 내용을 간단히 정리해보자. 기존에 대부분의 프로그래밍은 아래 사진처럼 명령형으로 되어있다. 프로그래머가 만든 코드를 순서대로 실행하는 것이 기본 베이스였다. 위 내용을 자바스크립트로 표현하면 아래처럼 나타낼 수 있다. var numberA = 2; var numberB = 2; var resultC = 0; var func = (a,b)=>{resultC = a*b}; func(numberA, num.. 2020. 3. 11.
spring webflux 1 (웹플럭스 적용기, 설치) Spring webflux와 관련된 일반적인 설명, 소개 및 배경은 구글링을 하면 잘 나온다. 무슨 반응형 프로그래밍..함수형 프로그래밍 등등 여러 내용이 나오는데.. 머리보다 몸이 먼저인 사람에게는 참 어렵고 쉽지않는 내용이다. 아무튼, 요놈의 웹플럭스는 Spring5 부터 사용 가능한 최근에 나온 프레임워크이며 Java8에서 나온 각종 함수형 코딩방법, rxjava같은 반응형 방법등을 사용하여..... 동작 원리가 이해하기 어렵다면 기능구현을 먼저 해 보고나서 뒤돌아가 원리를 찾아보는 것도 나쁘지 않다고 생각한다. 아무튼, 웹플럭스를 사용하려면 가능한 STS 툴을 사용해서 하도록하자. 여기서는 STS를 사용하였다. (버전 : 4.2.0) 먼저 스프링부트 프로젝트를 만들어준다. 프로젝트를 만들고 난 뒤.. 2020. 3. 10.
Mybatis 부등호, Mybatis 비교연산자, 마이바티스 비교, is not correctly spelled 엄청난 기초긴 하지만.. Mybatis에서 비교연산자를 사용하면 흔히 만나는 오류이다. 뭔소리나면...Mybatis에서 사용하는 쿼리문은 xml로 이루어져있다. 따라서 비교연산자에서 사용되는 꺽쇠표시가 표현되게 되면은 텍스트라인 파싱 오류가 나게 된다. 주로 보는 오류 라인이 2가지 정도 이다. 1. The content of elements must consist of well-formed character data or markup. 2. 변수 is not correctly spelled 그래서 xml로 이루어진 파일에서 비교연산자를 사용하려면 CDATA 표기를 통해서 해당 내용이 단순한 문자임을 알려 주어야 한다. CDATA의 뜻은 '(Unparsed) Character Data' 이다. 즉, '(.. 2020. 2. 5.
스프링 WebListener를 통한 Mysql 또는 Oracle 등 터널링 설정 하기(Mysql 터널링, Oracle 터널링, Mongodb 터널링) 서블릿 3.0 이상을 사용하는 스프링 프레임워크에서 가능한 기능이다. WebListener이라는 에노테이션을 사용해서 쉽게 터널링을 할 수 있다. 기본 Mysql, Oracle 또는 Mongodb등 어떠한 데이터베이스에 접속하던지 간에 해당 에노테이션을 잘 활용하면 같은 모양으로 터널링이 가능하다. 일단..서블릿 3.0 이상이 지원되는 환경을 구성하는게 가장 중요하다. WebListener는 스프링에서 정의한 리스너의 종류이다. 스프링에서 정의한 웹 어플리케이션 구조를 먼저 살펴보면, 1. 서블릿(Servlet) : 외부 클라이언트 요청에 대한 내용 수행 2. 필터(Filter) : 요청 처리 전 또는 후에 해야할 일을 수행 3. 리스너(Listener) : 특정 상태(조건)에 놓일 때 작업을 수행 1).. 2020. 2. 3.
remove Springboot jsessionid , 스프링부트 jsession 제거 jseesion이란? jseesion은 새 세션이 만들어지면 클라이언트가 쿠키를 지원하는지 여부를 서버가 알 수 없으므로 쿠키와 URL에 모두 jsessionid를 만들어 주는 것을 의미하며 url에 붙어서 보이거나 헤더에 붙어서 나온다. 클라이언트가 두 번째 요청부터 세션 쿠키를 보내오면 URL에 jsessionid를 붙이지 않고, 쿠키가 없으면 계속 URL에 jsessionid 를 붙이게 된다. 뭐..나름 괜찮은 기능 아닌가? 그런데 스프링 부트를 사용하다 jsessionid가 나타나 프로젝트를 납품하다 지적(?)받는 경우가 있었다. 보안에 문제가 있다고하는데 이게 왜 보안에 심대한 문제가 있는지는 잘 모르겠다. ServletContextInitializer 클래스를 Bean객체로 등록하여 스프링 부.. 2019. 12. 3.