파란하늘의 지식창고
반응형
Reactor map, flatMap method는 언제 써야할까?
Study/Java 2020. 1. 16. 07:16

webflux로 서비스를 만들어보면서 map과 flatMap을 언제 써야 할지 헷갈릴 때가 있어 공부한 내용을 정리함. map과 flatMap은 둘 다 스트림의 중간에 값을 변환해주는 역할을 한다. map은 1 : 1로 반환을 보증하고 flatMap은 1 : N을 변환할 수 있다. 요청에 대해 N개를 병렬로 실행할 경우가 많지 않아 map을 많이 쓸 것 같지만 개발을 하다 보면 대다수의 경우 flatMap을 사용하게 된다. flatMap을 사용하는 경우 flatMap을 사용하게 되는 경우는 다음과 같다. Mono -> Mono 또는 Mono -> Flux로 변환이 필요한 경우 map과 flatMap의 설명을 보면 다음과 같다. Publisher method Mono map Transform the ite..

Spring Boot @PropertySource 호출 순서 지정하기
Study/Java 2020. 1. 9. 14:58

multi module 환경에서 @PropertySource를 사용하는 방법에 대해 소개한 적이 있다. 2018/12/10 - [Study/Java] - Spring Boot multi module, multi profile 환경에서 @PropertySouce 사용하기 이런 multi module 환경에서 상위 모듈에 지정된 property 값을 특정 모듈에서는 다른 값을 재 지정해서 쓰고 싶은 경우가 있다. @PropertySource에 order 기능이 있으면 쉽겠지만 아쉽게도 그런 기능은 아직 제공하지 않는다. 따라서 이런 경우 environment에 등록된 propertySource 목록에 대해 순서를 재 지정해 우선순위를 조절해야 한다. 물론 java 내에서 application start 시점..

STS 4.5.0 spring boot application 실행 불가 현상
Study/Java 2020. 1. 3. 09:07

2019/12/19 STS 4.5.0 release 안내가 있었다. https://spring.io/blog/2019/12/19/spring-tools-4-5-0-released STS 4.5.0을 올리고 나니 몇 가지 문제가 있었다. multi module project에서 boot application 실행 시 class not found 에러 발생 후 웹서버 실행 불가 junit 실행 불가 위 두 가지 중 junit 실행 불가 부분은 현재 STS git issue로 등록되어 있다. https://github.com/spring-projects/sts4/issues/371 그런데 첫 번째 문제는 sts 쪽이나 eclipse 쪽 issue에 보이지 않는 것 같다. 위 현상은 일단 개인 프로젝트의 경우 ..

article thumbnail
Reactor 레퍼런스 문서 공부
Study/Java 2020. 1. 2. 08:44

Reactor 레퍼런스 문서 공부. 3.2 Asynchronicity to the Rescue? JVM에서 비동기 코드를 어떻게 개발할 수 있을까? 자바는 비동기 프로그래밍을 위한 두 가지 모델을 제공한다. Callbacks 비동기 메서드는 반환 값을 가질 수 없지만 외부 callback 매개 변수 (람다나 익명 클래스)를 통해 결과를 호출받을 수 있다. (ex : Swing의 EventListener) Futures 비동기 메서드는 Future를 즉시 리턴한다. 비동기 프로세스는 T value를 계산하지만 Future 개체는 이에 대한 access를 래핑 한다. 값을 즉시 사용할 수 없으며 사용할 수 있을 때까지 값을 polling 할 수 있다. (ex: Callable 작업을 실행하는 Executor..

article thumbnail
Reactor 공부하기 위한 프로젝트 설정
Study/Java 2019. 12. 20. 21:26

Reactor 사이트에서는 Reactor를 아래와 같이 소개한다. Reactor is a fourth-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification 1,2,3세대가 뭔지 궁금하긴 한데 관련 내용은 찾지 못했다. (RxJava 같은걸 얘기하는 거려나..) spring webflux를 쓰기 위해서 우선 reactor를 공부해야 하는데 reactor를 먼저 공부하기 위해 순수하게 reactor에 대해서만 공부하기 위한 프로젝트 설정을 해보았다. reactor homeapge : https://projectreactor.io/ 홈페이지에서 문..

Spring Data R2DBC 써보기
Study/Java 2019. 12. 11. 09:19

R2DBC 0.8.0.RELEASE 가 2019년 12월 01일에 나왔다. (R2DBC 0.8.0 goes GA) RELEASE 버전은 처음 나온 것이고 기존엔 1.0.0.M5, 1.0.0.M6처럼 마일스톤 버전을 올리다가 M8부터 0.8.0.M8과 같이 major 버전을 하향했다. 이유는 SPI (Service Provider Interface)를 확정하지 못했기 때문이라고 한다. (R2DBC 0.8 Milestone 8 released 참고) (즉 추후 변경될 소지가 있음) 이에 대응하는 Spring Data R2DBC도 2019년 12월 6일에 RELEASE 버전이 나왔다. (Spring Data R2DBC goes GA) reference documentSpring Data R2DBC - Refe..

article thumbnail
nuxt 프로젝트를 apache cordova로 빌드하기 (windows 10에서)
Study/JavaScript 2019. 11. 27. 14:13

Apache Cordova 소개 apache cordova는 웹을 그대로 android나 ios에서 사용할 수 있도록 하이브리드 앱을 만들어주는 opensource mobile development framework이다. 한국어 문서도 이미 제공되고 있다. https://cordova.apache.org/docs/ko/9.x/guide/overview/index.html nuxt로 만든 프로젝트도 마찬가지로 apache cordova를 통해 하이브리드 앱을 만들 수 있다. 이미 nuxt로 만든 프로젝트가 있다는 전제 조건하에 cordova로 빌드하기 위한 설정을 진행한다. ios의 경우 맥북이 있어야 하기 때문에 android 기준으로 설명을 진행한다. 하지만 명령어만 조금 다르게 수행할 뿐 나머지는 동..

vuejs 초보자의 짧은 vuex 사용 팁
Study/JavaScript 2019. 11. 26. 09:23

이 글은 정리된 내용이 아니라 도움이 되지 않을 확률이 높음. 초보자가 공부하면서 찾은 내용을 적은 것이라 두서없음 vuex의 strict 설정 vuex의 export const strict = false; 설정을 하지 않으면 store 객체를 form에 직접 매칭하고 변경이 불가능하다. 원래 store의 데이터는 mutation으로 변경을 처리해야 하지만 form에 store의 객체를 직접 매칭 하게 되면 이 원칙이 깨지게 된다. 결국 어쩔 수 없이 strict를 false 처리해야 하는데 의외로 vuex 가이드에서도 배포할 때 strict true를 쓰지 말라고 한다. (성능 비용이 많이 들어간다는 이유로) https://vuex.vuejs.org/guide/strict.html vuex의 변이 감지..

article thumbnail
Spring Boot 2.2 Release Notes
Study/Java 2019. 10. 18. 06:03

Spring Boot 2.2 Release Notes Upgrading from Spring Boot 2.1 Deprecations from Spring Boot 2.1 2.1에 deprecated 선언되었던 class, method, properties가 삭제되었다. Spring Framework 5.2 Spring Framework가 5.2로 업그레이드 되었다. JMX now disabled by default JMX 기본 설정이 disabled 로 변경되었다. 해당 기능을 활성화 하려면 spring.jmx.enabled=true 설정을 사용한다. IDE 특징을 사용하여 applicatio을 관리하는 경우 해당 flag도 활성화 할 수 있다. Jakarta EE dependencies javax. 를..

JDK 13 New Features
Study/Java 2019. 9. 25. 16:58

JDK의 버전별 변경 사항은 이곳을 참고하세요. Spec Java SE 13 Platform JSR 388에 정의된 바와 같이 JSR 388 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야 함 Final Release Specification Feature Summary 전체 JEP Feature 목록은 OpenJDK의 JDK 13 문서로 확인할 수 있다. Component Feature specification / language Switch Expressions (Preview) specification / language Text Block (Preview) Switch Expressions (Preview) Switch Expression은 JDK 1..

반응형