본문 바로가기

전체 글17

MariaDB connector 2.x 분석 mariadb-connector-j githubmariadb jdbc에서 aurora option을 사용하면, reader, writer endpoint를 따로 설정하지 않더라도 jdbc에서 처리해 주고 있습니다.어떻게 처리하고 있는지에 대해 궁금증이 생겨서 분석을 해보았습니다.writer end-point 만 등록해도 reader end-point에 모두 접근 가능maria jdbc에서 connection 설정을 하면서, 현재 존재하는 end-point를 모두 가져와 등록합니다.이때 UrlParser로 현재 HaMode인지 판단하여, Proxy를 구현합니다.Driver public Connection connect(final String url, final Properties props) throws.. 2024. 9. 25.
Singleton Pattern Singleton Pattern 이란?애플리케이션이 시작될 때 어떤 클래스가 최초 한 번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴입니다. 생성자가 여러 번 호출되더라도 실제로 생성되는 객체는 하나이며, 최초 생성 이후 호출된 생성자는 최초에 생성한 객체를 반환합니다.즉, 인스턴스를 하나만 만들어 사용하기 위한 패턴입니다.Singleton Pattern은 하나의 인스턴스만을 생성하는 책임이 있으며, getInstance() 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행합니다.public class Singleton { private static Singleton singletonObj; private Singleton() {.. 2024. 9. 23.
DDD - Aggregate 도메인 주요 구성요소요소설명Entity고유의 식별자를 갖는 객체로 라이프 사이클을 가짐.도메인의 고유한 개념을 표현하며, 도메인 모델의 데이터를 포함하고, 관련된 기능을 함께 제공Value고유한 식별자를 갖지 않음주로 개념적으로 하나인 값을 표현할 때 사용Entity 의 속성으로 사용할 뿐만 아니라 다른 Value 타입의 속성으로도 사용Aggregate연관된 Entity와 Value 객체를 하나로 묶은 것Repository도메인 모델의 영속성 처리.(Entity 객체를 조회하거나 저장하는 기능)Domain Service특정 Entity에 속하지 않는 도메인 로직 제공. 도메인 로직이 여러 Entity와 Value가 필요한 경우 Domain Service에서 로직 구현Aggregate도메인 모델이 복잡해질.. 2024. 9. 22.
DIP 의존 역전 원칙 객체지향 설계 원칙(SOLID) 중 DIP 의존 역전 원칙에 대해서 알아보겠습니다.Dependency Inversion Principle의미"추상화에 의존해야 하며, 구체화에 의존하면 안된다."고수준(상위) 모듈은 저수준(하위) 모듈의 구현에 의존해서는 안된다.저수준(하위) 모듈이 고수준(상위) 모듈에 정의한 추상 타입(interface)에 의존해야 한다.쉽게 말해 자신보다 변하기 쉬운 것에 의존하면 안된다는 의미입니다.모듈의 수준고수준 모듈 (응용 영역, 도메인 영역)저수준 모듈 (Infrastructure)고객 맞춤 가격 계산1. 고객 정보 조회2. 고객의 등급 및 프로모션 기반으로 고객 맞춤 가격 계산1. jpa 로 db 조회고수준 모듈 : 의미 있는 단일 기능을 제공하는 모듈으로, 실제로 사용하는.. 2024. 9. 21.
DDD - 도메인 모델링 도메인 모델링도메인 모델링을 할 때 모델을 구성하는 핵심 구성요소, 규칙, 기능을 찾는 것이 가장 기본이며, 위 요소는 요구사항에서 출발합니다.요구사항에 의해 도메인 모델을 점진적으로 발전시켜 나갈 수 있으며, 도메인을 더 잘 알게 되면서 중간에 모델에 대한 부분을 변경할 수 있습니다.Entity 와 Value요구 사항에서 도출한 도메인 모델은 크게 Entity와 Value로 구분되며, 잘 구분해야 도메인을 올바르게 설계하고 구현할 수 있습니다. 그러므로 둘의 차이를 명확하게 이해하는 것이 중요합니다.EntityEntity 의 가장 큰 특징은 식별자(identity) 가 있다는 점입니다. 식별자는 Entity 객체마다 고유합니다.ValueValue 타입은 개념적으로 완전한 하나를 표현할 때 사용합니다. .. 2024. 9. 20.
DDD - 도메인이란? 도메인이란?개발자 입장에서 구현해야 할 소프트웨어 대상은 서비스 내 여러 가지 기능을 제공하고 있고, 해당 서비스는 소프트웨어로 해결하고자 하는 문제영역 도메인(domain) 에 해당합니다. 하나의 도메인은 다시 하위 도메인으로 나눌 수 있으며, 하나의 하위 도메인은 다른 하위 도메인과 연동해 완전한 기능을 제공하게 됩니다.예를 들어, 온라인 배달 시스템은 소프트웨어 대상이자 도메인에 해당하고, 하위 도메인으로는 입점하는 업체, 광고, 결제, 주문, 상품(음식), 배송 등이 해당하게 됩니다. 그리고 고객이 음식을 주문하게 되면 상품, 주문, 결제, 배송 하위 도메인이 서로 연결됩니다.도메인이 제공해야 하는 모든 기능을 직접 구현하는 것은 아니며, 일부 기능만 자체 구현하며, 나머지 기능은 외부 업체의 시.. 2024. 9. 19.