패키지

· Java
Java 패키지를 Github에 간단히 릴리즈 해 배포 후 다른 프로젝트에서 쉽게 사용할 수 있다. 나의 경우는 프로젝트마다 Message Queue를 사용하는데 큐를 보내고, 받는 페이로드를 공통으로 사용하고 있다. 보안이 중요하지 않은 코드는 릴리즈 해 사용하는것도 편리한 방법이 될 것 같다. 인텔리제이, Gradle 기준으로 정리하겠다. 일단 배포할 모듈을 생성한다. 예제를 찾다보면 maven plugin을 적용하면 된다고 하는데 Gradle 7버전에는 maven plugin이 지원되지 않는듯하다. Gradle 7버전 이상을 사용한다면 모듈을 생성 후 build.gradle에 maven-pulish 플러그인을 적용해준다. plugins { id 'java' } // maven-publish 추가 시..
· DDD
여러 애그리거트가 필요한 기능 도메인 영역의 코드를 작성하다 보면 한 애그리거트로 기능을 구현할 수 없을 때가 있다. 여러 애그리거트로 로직을 구현하게 되면 어떤 애그리거트가 주체인지 애매하다. 만약 한 애그리거트가 주체로 구현할 경우 해당 애그리거트는 책임 범위를 넘어서는 기능을 구현하기 때문에 코드가 길어지고 외부에 대한 의존이 높아지게 된다. 게다가 애그리거트의 범위를 넘어서는 도메인 개념이 애그리거트에 숨어들어서 명시적으로 드러나지 않게 된다. 이런 문제를 해소하기 위해 도메인 서비스를 별도로 구현한다. 도메인 서비스란? 한 애그리거트에 넣기 애매한 도메인 개념을 구현하려면 애그리거트에 억지로 넣기보다는 도메인 서비스를 이용하여 도메인 개념을 명시적으로 드러내면 된다. 도메인 서비스는 상태가 없이..
· DDD
의존성이란? 변경에 의한 영향을 받는 경향 B가 변경될때 A도 함께 변경 → A가 B에 의존하고있다. 클래스 의존성 Association (연관관계) class A { private B b; } Dependency(의존관계) class A { public B method(B b) { return new B(); } } Inheritance(상속관계) class A extends B { } Realization(실체화 관계) class A implements B { } 패키지 의존성 패키지에 포함된 클래스 사이의 의존성 예를들어 A패키지에서 클래스에서 B패키지에 있는 클래스에 의존성이 있다면 패키지 의존성이 존재한다. 좋은 의존성은? 1. 양방향 의존성을 피하라! Bi-Directional(양방향) A가 ..
beekei
'패키지' 태그의 글 목록