분류 전체보기
-
[책 리뷰] 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; }
-
[해시] 완주하지 못한 선수 (JAVA)알고리즘/해시 2021. 4. 30. 11:42
import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Map participantMap = new HashMap(); for(String p : participant) { participantMap.put(p, participantMap.getOrDefault(p, 0)+1); } for(String c : completion) { if(participantMap.containsKey(c)) { Integer count = participantMap.get(c); participantMap.put(c, count-1); } } for(S..