BackEnd11 [Spring] Flux 와 Mono의 차이를 찾던중.. Flux : 0 ~ N 개의 데이터 전달 Mono : 0 ~ 1 개의 데이터 전달 즉 Flux는 큰 데이터를 여러개로 나눠서 보낼때, Mono는 데이터가 크던지 작던지 한번에 보낼때 사용됩니다. 아래 실제 소스코드를 확인해보면 Mono 는 단 건만 Flux는 단건 다건 둘다 가능합니다. public static Mono just(T data) { return onAssembly(new MonoJust(data)); } public static Flux just(T... data) { return fromArray(data); } public static Flux just(T data) { return onAssembly(new FluxJust(data)); } 스택오버플로우를 참조 해보면 Fulx는 Co.. 2023. 8. 15. Java Service Tree Framework 의 Global Tree Map 설명 JPA Specification 검색 조건을 추상화하기 위해 사용된다. 이를 사용하기 위해 Repository에서 JpaSpecificationExecutor를 상속받아야 한다. import com.mad.treemap.model.GlobalTreeMapEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; public interface GlobalTreeMapJpaRepository extends JpaRepository,JpaSpecificationExecutor { } JpaSpecificationEx.. 2023. 7. 24. Java Service Tree Framework 의 Entity 릴레이션 관리 방안 DB 정규화에 의하여, OneToMany 를 사용 해야한다면. 아래와 같이 GLOBAL_TREE_MAP을 JoinTable로 사용하여, 연결하도록 한다. ( 단방향, 양방향 ) // -- 1:N table 연계 private Set pdServiceVersionEntities; @LazyCollection(LazyCollectionOption.FALSE) @JsonManagedReference @OneToMany(cascade = CascadeType.ALL) @JoinTable( name = "GLOBAL_TREE_MAP", joinColumns = @JoinColumn(name = "pdservice_link"), inverseJoinColumns = @JoinColumn(name = "pdservi.. 2023. 7. 24. Java Service Tree Framework 의 중재자(Mediator) 패턴 설명 지난 포스트와 같이 . JSTF 를 사용시 생산성 향상의 결과를 확인 할 수 있다. 각 도메인을 Tree Model을 활용하여 구현하다보니. 도메인간의 연결은 Entity의 연결로 이루어지고, 이는 Global Tree Map 컴포넌트로 해결을 하였으나, @Service 간의 참조는 자칫 순환 참조의 결과가 나올 수 있으므로, 이를 해결하기 위하여 중재자 패턴을 적용하고, 활용 할 수 있는 내용을 기술한다. // 중재자 인터페이스 public interface Mediator { void doSomethingInA(); void doSomethingInB(); } // 중재자 구현체 @Service public class MediatorImpl implements Mediator { private ASe.. 2023. 7. 5. Java Service Tree Framework 의 옵서버(Observer) 패턴 설명 ( DWR ) 옵서버(Observer) 패턴은 객체 사이에 일대다 의존성을 정의하는 패턴입니다. 이 패턴은 한 객체의 상태가 변경되면 그 객체에 의존하는 다른 객체들에게 자동으로 알림을 보내 업데이트를 수행할 수 있게 합니다. 자바 코드를 통해 옵서버 패턴의 예시를 살펴보겠습니다. 가정해보겠습니다. 우리는 주식 시장에서 주식 가격의 변화를 추적하는 프로그램을 개발하고 있습니다. 주식 가격은 변동이 있을 때마다 다른 객체들에게 알림을 보내어 업데이트를 수행하고자 합니다. 옵서버 패턴을 사용하여 이를 구현해보겠습니다. 먼저, 주식 가격 변동을 추적할 주체인 Subject 인터페이스를 정의합니다: public interface Subject { void registerObserver(Observer observer); vo.. 2023. 6. 29. Java Service Tree Framework 의 데코레이터(Decorator) 패턴 설명 ( 동적 테이블 :: Hibernate :: empty interceptor ) 데코레이터(Decorator) 패턴은 객체의 기능을 동적으로 확장할 수 있는 패턴입니다. 이 패턴은 객체를 감싸는 데코레이터 클래스를 통해 기능을 추가하거나 수정할 수 있으며, 원본 객체의 인터페이스를 유지합니다. 자바 코드를 통해 데코레이터 패턴의 예시를 살펴보겠습니다. 가정해보겠습니다. 우리는 커피(Coffee)를 만들고 있으며, 다양한 종류의 커피에 여러 가지 토핑(Topping)을 추가할 수 있습니다. 데코레이터 패턴을 사용하여 커피에 토핑을 추가하는 예시를 만들어보겠습니다. 먼저, 커피를 나타내는 Coffee 인터페이스를 정의합니다: public interface Coffee { String getDescription(); double getCost(); } 다음으로, 커피의 구체적인 종류를 구.. 2023. 6. 29. Java Service Tree Framework 의 컴퍼지트(Composite) 패턴 설명 ( Tree Entity 의 1:N, N:1, N:N, 양방향, 단방향 ) 컴퍼지트(Composite) 패턴은 객체들을 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴입니다. 이 패턴은 개별 객체와 그 객체들을 조합한 복합 객체를 동일한 방식으로 다룰 수 있도록 해줍니다. 자바 코드를 통해 컴퍼지트 패턴의 예시를 살펴보겠습니다. 가정해보겠습니다. 우리는 조직 구조를 표현하는 프로그램을 개발하고 있습니다. 조직은 부서(Department)와 직원(Employee)으로 구성되어 있습니다. 부서는 여러 개의 부서와 직원을 가질 수 있습니다. 컴퍼지트 패턴을 사용하여 조직 구조를 표현해보겠습니다. 먼저, 조직 구성원을 나타내는 Component 인터페이스를 정의합니다: public interface Component { void showDetails(); } 다음으로, 부서(De.. 2023. 6. 29. Engine에서 타입이 다른 인터페이스를 연결할 : 어댑터(Adapter) 패턴 ( SA,AA - DBA 및 K8S 타입 처리 ) 어댑터(Adapter) 패턴은 한 클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환하는 패턴입니다. 이 패턴은 호환되지 않는 인터페이스를 가진 두 개의 클래스를 함께 작동할 수 있게 만들어줍니다. 자바 코드를 통해 어댑터 패턴의 예시를 살펴보겠습니다. 가정해보겠습니다. 우리는 소켓(Socket) 클래스를 사용하여 전기를 공급받는 기기를 제어하고 있습니다. 하지만 우리가 사용하려는 기기는 USB(Universal Serial Bus) 인터페이스를 사용합니다. 어댑터 패턴을 사용하여 소켓 클래스와 USB 기기를 함께 작동할 수 있도록 해보겠습니다. 먼저, 우리가 사용하려는 USB 기기를 나타내는 USBDevice 인터페이스를 정의합니다: public interface USBDevice { v.. 2023. 6. 29. 이전 1 2 다음