diff --git a/README.md b/README.md
index 3272211..dd46dcf 100644
--- a/README.md
+++ b/README.md
@@ -6,16 +6,29 @@
이에 따라 gradle을 이용하여 모듈이 둘로 나뉘어져 있는 디렉토리 구조를 확인할 수 있다.
서비스를 위해서는 `payment-command` 모듈과 `payment-query` 모듈을 각각 실행해야 한다.
+#### payment-command 모듈
+CRUD 중에서 CUD 만을 담당하는 모듈이다.
+본인의 테이블에 DB를 저장하며, 해당 이벤트를 Kafka에 발행하여 Query 모듈에 알려준다.
+DDD의 핵심 도메인들은 이곳에 구현이 된다.
+
+#### payment-query 모듈
+CRUD 중에서 R 만을 담당하는 모듈이다.
+payment-command에서 발행한 이벤트를 Kafka로부터 consume하여 본인의 DB를 업데이트 한다.
+이 모듈은 DDD의 핵심 도메인 중심이 아닌, 클라이언트에게 필요한 정보를 제공한다. 위의 command 모듈과는 다르게 조회의 효율성, 클라이언트의 호출과 관련하여 조회에 유연하게 구성해야 한다.
+
### - Infra Used
```
-1. MySQL 8.0.21
-2. Kafka
+1. MySQL 8.0.21 for Command
+2. MySQL 8.0.21 for Query
+3. Kafka
```
-위의 인프라는 로컬 테스트를 위해서 docker-compose를 이용하여 간단하게 실행할 수 있도록 되어 있다.
+위의 인프라는 로컬 실행을 위해서 docker-compose를 이용하였다.
```
docker-compose up -d
```
-spring boot autoconfigure 덕분에 kafka는 위의 docker-compose 파일을 이용하여 접근할 경우,
-따로 설정이 필요가 없다. 로컬 테스트용 설정이기 때문에 간단하게
+CQRS에서 DB를 분리하는 방법은 여러가지가 있지만, 가장 보편적인(?) 방식인 물리 DB를 나누는 방식을 이용하였다.
+command와 query 모듈은 각각 다른 DB를 보게된다.
+
+kafka의 경우 application.yaml에 특별한 설정 없이도 kafka에 자동으로 붙게 설정이 되어 있다.(autoconfigure 덕분에)
+이외의 운영을 위한 상세 설정은 생략했다.
-
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
index d5c3f23..42e05d2 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,7 +1,7 @@
version: '3'
services:
- mysql:
- container_name: payment-mysql
+ mysql-command:
+ container_name: command-mysql
image: mysql:8.0.21
restart: always
environment: # -e 옵션
@@ -13,6 +13,19 @@ services:
volumes:
- ./db:/var/lib/mysql
platform: linux/amd64
+ mysql-query:
+ container_name: query-mysql
+ image: mysql:8.0.21
+ restart: always
+ environment: # -e 옵션
+ - MYSQL_DATABASE=payment
+ - MYSQL_ROOT_PASSWORD=payment
+ - TZ=UTC
+ ports:
+ - "3307:3307"
+ volumes:
+ - ./db:/var/lib/mysql
+ platform: linux/amd64
zookeeper:
container_name: payment-zookeeper
image: wurstmeister/zookeeper
diff --git a/payment-query/src/main/resources/resources/application.yaml b/payment-query/src/main/resources/resources/application.yaml
index 4a2daf5..83654d7 100644
--- a/payment-query/src/main/resources/resources/application.yaml
+++ b/payment-query/src/main/resources/resources/application.yaml
@@ -1,2 +1,14 @@
server:
port: 8082
+
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3307/payment?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true
+ username: root
+ password: payment
+ jpa:
+ hibernate:
+ ddl-auto: update
+ show-sql: true
+ database-platform: org.hibernate.dialect.MySQL8Dialect
\ No newline at end of file