리팩토링 2 - 결제 검증과, XSS 등에 대한 방어 테스트
개인적으로 생각했던, 결제의 핵심은 검증과 검사였다. 여러가지 경우에 대해 방어 테스트를 진행했었지만, 리팩토링 과정에서 추가하고자 했던 검증 과정등을 정리하여보겠다. 현재 결제 과정은 1. member에 결제 요청 -> 2. 사용자 포인트가 결제 금액보다 작은지 검증 -> 3. 작다면, 그만큼 다시 front end로 전달-> 4. front end에선, 그 부족한 금액만큼 결제 진행 -> 5. 그 결제 금액을 검증받고, 저장, 승인 -> 6. purchase 부에서 다시 member 부로 전달(product의 상태 변경, 사용자 포인트 변경 등 수행) 1. 1000원을 결제하고, 100000포인트를 넣어달라는 악의적인 요청 이러한 경우는 JSON BODY로 악의적인 DATA를 전송하였거나,혹은 코드..
2024. 4. 19.
객체 구조를 어떻게 설정할까?
일단 인터페이스의 존재 이유를 깨닫자. 정보처리기사 출처 - 인터페이스란, 두 어플리케이션 간의 상호작용을 위한 중간다리 역할. 그렇다면 우리는 이 interface를 활용해서, 각 객체간의 의존성 관계를 줄여야 한다. ex) 카드사의 결제 구조를 생각한다면, service에 각 카드별 find 등을 구현한다면 최종 paycontroller에서는 수많은 객체들(삼성,bc카드)등과 다 의존되어야 한다. 그렇다면, 신한카드, 우리카드 등에 따라 다른 service를 구현해야할때, 이 모든 것을 interface로 묶어, 이 interface를 controller에서 의존받아서 사용하는 방식이 내부 정보를 가리고, 의존성을 감소시키는 데에 큰 도움이 된다. 1. 객체의 크기 findby id, findbyem..
2024. 1. 20.