자바
-
[책 리뷰] DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기자바/기타 2021. 5. 7. 11:07
도메인 소프트웨어로 해결하고자 하는 문제 영역 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 도메인 모델 특정 도메인을 개념적으로 표현한 것 도메인 모델 패턴 아키텍쳐상의 도메인 계층을 개체 지향 기법으로 구현하는 패턴 핵심 규칙을 구현한 코드는 도메인 모델에만 위치하기 때문에 규칙을 바꾸거나 규칙을 확장해야 할 때 다른 코드에 영향을 덜 주고 변경 내역을 모델에 반영할 수 있다. 도메인 계층은 도메인의 핵심 규칙을 구현한다. 주문 도메인의 경우 '출고 전에 배송지를 변경할 수 있다'는 규칙과 '주문 취소는 배송 전에만 할 수 있다'는 규칙을 구현한 코드가 도메인 계층에 위치하게 된다. public class Order { private OrderState state; private ShippingI..
-
[UML] 클래스 다이어그램자바/기타 2021. 5. 7. 10:35
클래스 다이어그램 클래스의 구성요소 및 클래스간의 관계를 표현하는 UML 클래스 다이어그램을 이용하면 의존관계를 명확하게 보여준다. 클래스 다이어그램을 이용한 관계 표현 Generalization (일반화) 우리가 일반적으로 알고 있는 상속을 의미 public class Board { private String title; private String contents; private List comments; } class SchedulerBoard extends Board { private LocalDate startDate; private LocalDate endDate; pubic void validateDateLine() { ... } } Realization (실체화) interface에 있는 함..
-
[JAVA] Map자바/기타 2021. 4. 30. 15:02
getOrDefault(key, default value) Map에 Key가 존재하면 Value 값을 가져오고 존재하지 않으면 default 값으로 설정 Map map = new HashMap(); map.put(key, map.getOrDefault(key, 0)+1); Map을 Value 값에 따라 정렬하는 방법 public List sortByValue(Map map) { List keySetList = new ArrayList(map.keySet()); // 내림차순 Collections.sort(keySetList, (o1, o2) -> (((Comparable) map.get(o2)).compareTo(map.get(o1)))); return keySetList; }
-
[Stream] int 숫자 배열을 filter를 통해서 내림차순으로 정렬하기자바/자바8 2021. 4. 22. 22:02
int[] A = new int[]{3, 2, -2, 5, -3}; int[] positives = IntStream.of(A).boxed().sorted(Comparator.reverseOrder()) .filter(o -> o >= 0) .mapToInt(i -> i) .toArray(); int[] negatives = IntStream.of(A).boxed().sorted(Comparator.reverseOrder()) .filter(o -> o i) .toArray(); for(int value : positivies) { if(IntStream.of(negatives).anyMatch(o -> o == -value)) return value; }
-
[JAVA] OAuth2자바/기타 2021. 3. 24. 23:11
구성 요소 Resource Owner 보호 자원에 대한 액세스 권한을 부여할 수 있는 엔티티. Resource Owner가 사람이면, 이를 최종 사용자라 합니다. Resource Server 보호 자원을 호스팅하고, 보호 자원에 대한 요청을 액세스 토큰을 사용해서 수락하고 응답하는 서버입니다. 이 경우 API gateway는 보호 된 리소스 앞에 있는 리소스 서버를 구현하는 게이트웨이 역할을 합니다. Client Application Resource Owner를 대신하여 부여된 권한을 가지고 보호 된 요청을 만드는 클라이언트 어플리케이션입니다. Authorization Server 리소스 소유자를 인증하고 권한을 얻은 후 Authorization Server는 클라이언트 어플리케이션에 액세스 토큰을 발급..