자바/기타
-
[책 리뷰] 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] OAuth2자바/기타 2021. 3. 24. 23:11
구성 요소 Resource Owner 보호 자원에 대한 액세스 권한을 부여할 수 있는 엔티티. Resource Owner가 사람이면, 이를 최종 사용자라 합니다. Resource Server 보호 자원을 호스팅하고, 보호 자원에 대한 요청을 액세스 토큰을 사용해서 수락하고 응답하는 서버입니다. 이 경우 API gateway는 보호 된 리소스 앞에 있는 리소스 서버를 구현하는 게이트웨이 역할을 합니다. Client Application Resource Owner를 대신하여 부여된 권한을 가지고 보호 된 요청을 만드는 클라이언트 어플리케이션입니다. Authorization Server 리소스 소유자를 인증하고 권한을 얻은 후 Authorization Server는 클라이언트 어플리케이션에 액세스 토큰을 발급..
-
[Java] JPA (Java Persistence API)자바/기타 2021. 3. 23. 10:07
ORM (Object-Relation Mapping, 객체-관계 매핑) vs SQL Mapper ORM은 DB 테이블을 자바 객체로 매핑함으로써 객체관의 관계를 바탕으로 SQL을 자동으로 생성하지만, Mapper는 SQL을 명시해주어야 한다. ORM은 RDB의 관계를 Object에 반영하는 것이 목적이라면, Mapper는 단순히 필드를 매핑시키는 것이 목적이라는 점에서 지향점의 차이가 있다. JPA (Java Persistence API) 자바 ORM 기술의 표준 명세로, 스프링에서 제공하는 것이 아닌 JAVA에서 제공하는 API이다. 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 스프링의 PSA(POJO를 사용하면서 특정 기술을 사용)에 의해서 표준 인터페이스를 정해..