공부/개발 전체적인
-
TIL 171일 - 이뮤터블 클래스 장점공부/개발 전체적인 2022. 6. 18. 18:01
이뮤터블 클래스? 한번 객체로 생성되면 필드의 값이 바뀌지 않는 클래스를 의미한다. 장점? 사이드 이팩트를 줄여준다. Order라는 주문정보를 가지는 클래스가 있고, 이 클래스의 필드 중에 총 주문액을 가지는 필드가 있다고 하자. 그리고 Order 클래스의 멤버 변수로, detailOrder라는 금액과 관련된 정보들을 가지는 클래스가 있다고 하자. Order 객체가 생성될 때 생성자 args로 들어간 detailOrder의 정보에 의해 총 주문 금액 필드가 12000원이 되었을 때, 이뮤터블 객체가 아니라서 detailOrder의 금액과 관련된 정보들이 바뀐다면? 객체의 일관성이 깨지게 된다. /* DDD 관점에서 봤을 때 Order라는 애그리거트 루트가 정합을 지켜주지 못하는 상황이라고 볼 수 있을 듯..
-
TIL 169일 - DDD, Transaction 어노테이션공부/개발 전체적인 2022. 6. 16. 23:39
뜬금없지만... 음... DDD, TDD 이런 것들은 공부를 하더라도 한 순간에 습득이 되는 공부는 아닌 거 같다. 몰랐던 사실이 아니긴 하지만 그래도 한번 더 생각이 들었다. 실제 도메인 모델의 엔티티와 DB 관계형 모델의 엔티티는 같은 것이 아니다. 표현 영역(Presentation) 사용자가 전송한 데이터 형식이 올바른지 검사한다. 사용자가 전송한 데이터를 application service가 요구하는 형식으로 변환해서 전달한다 Application Service 도메인 모델을 이용해서 기능을 구현한다. 도메인의 상태를 변경하므로 변경 상태가 물리 저장소에 올바르게 반영되도록 트랜잭션을 관리해야 한다. 애그리거트 도메인 규칙에 따라 함께 생성되는 구성요소는 한 애그리거트에 속할 가능성이 높다. 애그..
-
TIL 167일 - 복잡한 행동을 하는 REST API의 네이밍은 어떻게...?공부/개발 전체적인 2022. 6. 15. 00:02
REST API는 자원과 method를 통해 해당 API가 어떤 동작을 하는지 알 수 있다. GET /users/{id} 위 같은 API는 id와 동일한 유저 데이터를 가져오고 PUT /users/{id} 위 같은 API는 바디 리퀘스트에 담긴 값을 사용해서 id와 동일한 유저의 데이터를 수정할 것으로 예측할 수 있다. 그런데 어떤 user에게 임시 비밀번호를 발급을 한다고 하고, 이메일이나 핸드폰으로 임시 비밀번호를 보내준다면? 이런 행동은 어떻게 정의할 수 있는거지? 뭐하는 서비스인지 정확히는 모르지만 아래 서비스에서는 email 전송을 아래처럼 표현하고 있다. POST /email POST /email/batch (여럿에게 보내기) https://postmarkapp.com/developer/use..
-
TIL 165일 - DDD공부/개발 전체적인 2022. 6. 12. 16:31
같은 용어라도 도메인마다 의미가 달라질 수 있다. 도메일 모델 패턴 일반적인 아키텍쳐 구성 presentation: 사용자의 요청을 처리하고 사용자에게 정보를 보여준다. application: 사용자가 요청한 기능을 실행한다. 비즈니스 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행한다. domain: 시스템이 제공한 도메인 규칙을 구현한다. infrastructure: DB나 메시징 시스템과 같은 외부 시스템과의 연동을 처리 도메인 모델 아키텍쳐 상의 도메인 계층을 객체 지향 기법으로 구현하는 패턴 도메인 모델 도출(쪽을 보면서 알게된? 코드) 어떤 멤버 변수의 값을 확인할 때 나쁜 예 String state ... state.equals("ASD"); 좋은 예 State state ..
-
TIL 164일 - 끄적끄적...공부/개발 전체적인 2022. 6. 11. 21:02
https://www.baeldung.com/spring-boot-configure-multiple-datasources Configure and Use Multiple DataSources in Spring Boot | Baeldung Learn how to configure multiple data sources with Spring Boot. www.baeldung.com 스프링에서 여러 데이터 소스 쓰는 거 해보려고 했는데.... 하아... 괜히 멀티 모듈로 프로젝트 진행해 가지고 스프링 자체도 모르는데 멀티 모듈로 하다 보니까 이만저만 문제가 있는게 아니다... 하나씩 했어야 했는데.... 후... 내일은 멀티모듈을 그냥 싱글 모듈로 바꾸는 작업을 할까 고민중...