[SPRING] WEBFLUX 리액티브 오퍼레이션 정리
·
SPRING
리액티브 오퍼레이션 종류 생성 오퍼레이션 조합 오퍼레이션 변환 오퍼레이션 로직 오퍼레이션 Flux와 Mono가 제공하는 오퍼레이션을 통하여 데이터를 전달하는 파이프 라인을 생성함 생성 오퍼레이션 //하나 이상의 객체 데이터 생성 Flux numberFlux = Flux.just(1,2,3,4,5); numberFlux.subscribe(System.out::println); //list 데이터 Flux List fruits = List.of("사과", "딸기", "배"); Flux flux = Flux.fromIterable(fruits); flux.subscribe(System.out::println); just() : 하나 이상의 객체 데이터 생성 fromArray() : 배열 생성 fromItera..
[KOTLIN] DATA CLASS
·
KOTLIN
Data Class (데이터 클래스) 자바에서 자바빈 패턴을 자동으로 생성해주는 클래스라 이해함 Data Class 때문에 Lombok을 사용 안해도 되서 좋은 듯 Data Class 특징 슈퍼 클래스를 가질 수 없음 주 생성자에 기본 파라미터가 1개 이상 존재해야하며, val or var로 선언해야함 abstract / open / sealed / inner 키워드 사용 불가 Data Class에서 제공하는 것 hashCode() : 해시값 계산시 사용 copy() : 객체 복사 equals() : 데이터의 값 비교 toString() : 데이터를 문자열로 쉽게 알아보고 싶을 때 사용 componentsN() : 구조 분해 기능 Data Class 사용 예시 data class Member ( val ..
[KOTLIN] OBJECT 키워드
·
KOTLIN
Object 키워드 Object 키워드는 object expression(객체 표현식) 이랑 object declartion(객체 선언) 두가지 방법으로 사용 object expression으로 익명 클래스의 객체를 생성할 때 사용 object declaration으로 사용시 접근 시점에서 하나의 객체만 생성됨 코틀린은 Object 키워드를 통해 싱글턴 패턴을 쉽게 사용 가능함 object declaration과 companion object를 이해하기 위해 작성 Object declaration object Car { fun print() { println("자동차") } } object 키워드를 붙여서 생성해주면 싱글톤 패턴이 적용됨 코틀린은 object declaration을 통해 내부적으로 thr..
[JAVA] 메소드 레퍼런스
·
JAVA
메소드 레퍼런스 메서드 참조라는 의미 람다 표현식 몸체 부분에 기술되는 메서드를 이용해서 표현되며, 메서드의 이름만 전달함 구분자(::)를 붙이는 방식으로 메서드 레퍼런스를 표현함 기존에 선언되어 있는 메소드를 지정 메서드 레퍼런스를 사용하면 람다표현식이 더욱 간결해짐 메소드 레퍼런스 유형 ClassName :: static method : 클래스의 static method를 지정하는 경우 ClassName :: instance method : 객체의 instance method를 지정하는 경우 Object :: instance method : 선언된 객체의 instance method를 지정하는 경우 ClassName :: new : 클래스의 constructor를 지정하는 경우 메소드 레퍼런스 유형은..
[JAVA] REACTIVE STREAMS
·
JAVA
Reactive Streams 리액티브 프로그래밍 라이브러리 표준 사양 리액티브 프로그래밍에 대한 인터페이스만 제공하며, RxJava는 Reactive Streams의 인터페이스들의 구현체 Reactive Streams는 Publisher / Subscriber / Subscription / Processor 4개 인터페이스를 제공 인터페이스 설명 Publisher 데이터를 생성하고 통지 Subscriber 통지된 데이터를 전달받아서 처리 Subscription 전달 받을 데이터의 개수를 요청하고 구독을 해지함 Processor Publisher와 Subscriber의 기능이 모두 있음 Cold Publisher / Hot Publisher Publisher 종류 설명 Cold Publisher 생산자는..
[OTHER] 멱등성
·
OTHER
멱등성 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질 요청을 여러번 하더라도 한번 요청했을 때와 결과가 같은 성질 멱등성 예시 HTTP 메소드의 멱등성 ansible에서의 멱등성 HTTP 메소드의 멱등성 GET 요청으로 목록을 불러올 경우 행위가 여러번 수행해도, 서버의 상태가 변하지 않고 같은 결과를 기대할 수 있어서 멱등성이 성립됨 PUT 요청으로 특정 데이터를 수정한다고 하면, 데이터가 존재할 경우 수정이 되고 여러번 실행되더라도 요청한 값으로 수정된 결과 값이 같은 상태로 멱등성이 성립됨, DELETE요청도 마찬가지로 존재하든 하지 않던간에 요청을 보낸시점에서 사라지게 되어 멱등성이 성립됨 POST 요청은 데이터가 계속 추가가 되기 때문에 다른 결과가 발생하여 멱등성이 성립되지 않음 ans..
[JAVA] VAR 타입추론
·
JAVA
VAR 정의 지역변수 선언시 초기값을 통하여 변수의 타입을 명시적으로 적지 않아도, 컴파일러가 알아서 변수의 타입을 대입된 데이터 타입을 추론하게 해줌 (JAVA 10부터 지원함) VAR 특징 var word = "단어"; // String으로 추론 var number = 1; // int로 추론 var list = List.of(1, 2, 3) // List로 추론 형식 변수 선언 및 메서드 반환유형, 멤버 변수, 필드 선언, 생성자 형식 변수 및 다른 종류의 변수 선언에는 사용 불가 지역 변수 타입 추론할때 허용이 됨 람다 표현식에 사용 (자바 11에 해당) VAR 사용시 주의사항 var number; // 초기 값 할당 없이 변수에 'var'를 사용불가 var list = null; // null ..
[SPRING] JPA 쿼리메소드 요약
·
SPRING
JPA 쿼리메소드 요약 키워드 예제 JPQL Distinct findDistinctByLastnameAndFirstname select distinct …​ where x.lastname = ?1 and x.firstname = ?2 And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2 Is, Equals findByFirstname,findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1 Between findByStartDateBet..
[JAVA] 하이버네이트(HIBERNATE) DDL-AUTO 옵션 정리
·
JAVA
어차피 실무에서 사용하면 안됨 (none은 사용, 로컬환경 제외 ???), 공부할때 사용 ddl-auto 옵션 옵션 명 설명 create 서버 시작에 모든 테이블 생성 create-drop 서버 시작에 모든 테이블 생성, 서버 종료에 테이블 삭제 update 서버 시작에 변경된 내용 반영, 테이블이 없으면 생성 validate 서버 시작에 엔티티와 테이블 비교, 다르면 종료 none 아무것도 X