구조 정리
1. 수 많은 dto들의 위치를 정리하였다.
현재 우리의 프로젝트는 MSA 구조이기 때문에, 서로의 동작을 약속하고 개발 과정은 완전히 독립적이다.
남이 보기에도 명확하게, 한눈에 보기 쉽게 DTO를 정리하였다.
2. SERVICE가 아닌 METHOD 단위의 분할을 진행하였다.
설계 과정에서 SERVICE의 범위를 최대한 세밀하게 분리하자는 생각에 따라 각 SERVICㄷ들이 1개의 메소드를 지니게
아주 잘게 서비스를 분할하였는데, 리팩토링 과정에서 해당 과정에 따른 높은 결합도의 문제에 대한 의견을 들었다.
전체적인 결제의 검증과 저장을 한 SERVICE로 묶었다.
해당 SERVICE들은 사실 메소드의 개수가 많지 않기 때문에 분할하여도 되었지만, 서비스의 범위 자체가
요청을 보내는 부 , 요청을 받는 부로 다르기 떄문에 SERVICE 단위를 분할하였다.
Builder 패턴의 사용.
1. Setter를 제거할 수 있게 되었다
2. 결제에 문제가 생겼을시, 응답을 바로 생성하고 시간을 감소시키자.
TEST
1. MSA과정에 따른 TEST 환경 구축
현재 , PRODUCT부에 GCP등의 정보가 있기 때문에, 바로 테스트가 불가능하다.
MEMBER CONTAINER부의 코드를 임의로 변경하여 테스트를 진행해야 한다.
2. PORTONE구조에 따른 TEST상의 어려움 해결
현재 PORTONE 형식은
1. FRONT에서 결제한다. 2. FRONT에서 PAYMENT_ID를 전송해주면, 해당 내용을 PORTONE에 전송해 결제 내역을 받아온다 . ~~ 의 과정이다 .
즉, 실제로 결제 하지 않으면, 검증 TEST조차 불가능하다.
이를 위해 최초에 내가 만들었던 초 간단 FRONTEND단을 활용하여 TEST를 진행하겠다.
즉, 1. Test application으로 결제 2. 완성 service 로직으로 구현 3. Portone 개발자 채널로 확인
이제, paymet 정보를 portone에 저장시켰다.
이 pid를 넣어, postman으로 요청을 보내면 실제 결제 요청을 테스트할 수 있다.
테스트 성공
(image는 제거하였으며, gcp 정책과 json key 보호로 인해 개인 레퍼지토리를 private로 관리)
// 다음 테스트는, 잘못된 요청 시 요청 취소 TEST와
PORTONE DTO 간료화를 목표로 하겠습니다.
'프로젝트 > 리팩토링' 카테고리의 다른 글
리팩토링 3 - JPA 추상층 변경 (0) | 2024.04.19 |
---|---|
리팩토링 2 - 결제 검증과, XSS 등에 대한 방어 테스트 (1) | 2024.04.19 |
testing의 전략을 수립하자. (0) | 2024.01.21 |
결합도를 낮추는 방법 (0) | 2024.01.21 |
객체 구조를 어떻게 설정할까? (0) | 2024.01.20 |