
오늘은 지금까지 배운 내용을 가지고 직접 MSA를 구현하는 과제를 수행했다.

현재까지는 모놀리틱 아키텍쳐만 구현했었는데, 이번 과제에서는 각 기능별로 애플리케이션을 나누고 필요한 데이터를 요청해야한다.

위와같이 아키텍쳐를 구성하기위해 각 패키지 별 포트를 지정해주고, 게이트웨이를 설정한다.
Order, Product, Auth 애플리케이션에서 DB에 접근하여 자원을 사용한다.
DB 테스트를 위해 AWS의 RDS 서비스를 이용해 테스트하던 도중, 문제가 발생했다.
Git Bash를 이용해 EC2에 접속한 후 RDS 접근은 가능했지만, 내 로컬 컴퓨터에서 RDS 접근은 불가했다. VPC 설정, 보안 그룹 설정, 방화벽 등 다양한 원인을 찾아보다 튜터님께 질문을 드려 해결했다.

RDS 데이터베이스 수정을 클릭하여 추가 구성을 살펴 보면 위와 같이 '퍼블릭 액세스 가능'에 체크를 해두어야 한다. 지금까지는 퍼블릭 액세스 불가능으로 체크가 되어 있어서 접근이 불가했던 것 같다.
POST /products 상품 추가 API
상품 Entity
| Key | Value |
|---|---|
| product_id | Long (Primary, Auto Increment) |
| name | String |
| supply_price | Integer |
GET /products 상품 목록 조회 API
응답 형태: List<응답 객체>
응답 객체
| Key | Value |
|---|---|
| product_id | Long |
| name | String |
| supply_price | Integer |
POST /order 주문 추가 API
주문 Entity
| Key | Value |
|---|---|
| order_id | Long (Primary, Auto Increment) |
| name | String |
| product_ids | List<주문 매핑 상품 Entity> |
주문 매핑 상품 Entity
| Key | Value |
|---|---|
| id | Long (Primary, Auto Increment) |
| order | 주문 Entity |
| product_id | Long |
PUT /order/{orderId} 주문에 상품을 추가하는 API
요청 Body
| Key | Value |
|---|---|
| product_id | Long |
GET /order/{orderId} 주문 단건 조회 API
응답 객체
| Key | Value |
|---|---|
| order_id | Long |
| product_ids | List |
GET /auth/signIn?user_id={string} 로그인 API 구현