본문 바로가기
회고

TIL_211210

코동이 2021. 12. 10.

1. Facts(사실, 객관)

 

- 필터 CONTORLLER 리팩토링

- 필터 화면 조회 방식 개선

- 일시불 결제 오류부분 수정

- 프로젝트 AccountHistory 저장 오류

 

2. Feelings(느낌, 주관)

 

필터점검 요일과 배정기사님이 자동으로 매칭되지만, 언제든지 바뀔 수 있고 결국 고객과 상담후에 결정되기 때문에 마이페이지의 조회 정보를 고객이 오해하는 일이 생겼다. 따라서 날짜를 가리고 언제든지 변경이 될 수 있다는 문구를 추가했다. 이 과정에서 그동안 만들어졌던 코드를 리팩토링 했다. 수십개의 변수를 가진 VO로 DB조회를 하는데, 그 VO 안에는 막상 고객고유식별키밖에 없다. 따라서 조회조건에 따라, 또 반환조건에 따라 단순 문자열로 조회하거나 새로운 클래스를 만들어 불필요한 정보를 담지 못하도록 개선했다.

일시불 결제 로직을 수정했다. 현업에서 며칠간 주문건이 들어오지 않아 시스템에 문제가 없는지 확인을 해달라는 요청을 했다. 이전에 배포한 시점 이후로 주문건이 없었다. 결제관련 클래스를 건드리긴 했는데, 주문결제 자동 영업시스템 코드작성이 있었고 분명 모두 주석처리를 했다. 여기서 가장 먼저 어디를 확인해야할지 고민을 했다. 먼저 나이스페이 상점에 갔는데 아무런 결제 이력이 없었다. 만약에 결제 시도를 했는데 정상 진행이 되지 않았다면 중간에 바로 취소가 되고 가결제 기록이 남았을 것이다. 또한 결제가 되지 않았으면 분명 고객센터에서 연락이 왔을 것이다. 이렇게 로직에는 아무 이상이 없음을 확인했다. 하지만 내가 실제 결제를 했더니 결제취소가 되면서 환불처리를 당했다. 너무 당황스러웠고 나이스페이를 바로 확인하니 결제정보와 환불 정보가 기록됐다. 오류가 있었지만 고객이 결제를 하지 않아 아무런 문제도 되지않았음을 다행으로 생각하면서도 빠르게 조치를 취하려고 노력했다. 로그 이력을 확인해보았는데, 순차적으로 DB칼럼 NOT NULL 위배, 오라클 SEQUENCE 위배, 결제요청주소 틀림의 문제였다. 테스트환경에서는 테스트를 하면서 작동가능하게 수정했지만, 정작 운영환경에서 제대로 동기화를 하지 못한 탓이다. 주소저장방식을 바꾸면서 DB에 새롭게 적용되는 정책이 적용되지 않았다. 또한 결제 요청도 로컬에서 테스트를 위해 https 요청을 http로 바꿨는데 확인하지 못하고 커밋했으며 아무도 발견하지 못했다. 이번 기회를 통해 다시한번 코드 검증과 동기화 및 실제 결제 관련 수정이 있으면 운영에서 어떻게 확인할 수 있는지 고민하는 기회게 되었다.

히스토리 로그를 저장하고 싶어서 @PostPersist와 @PostUpdate를 사용했다. 하지만 제대로 작동하지 않고 계속 ConcurrentModificationException 오류가 났는데 해결하지 못했다. 다양한 검색과 실험들을 하였지만 모두 실패해서 다음에 도전 할 생각이다.

 

 

3. Findings (배운 점)

 

반응형

'회고' 카테고리의 다른 글

TIL_211214  (0) 2021.12.15
TIL_211213  (0) 2021.12.14
TIL_211209  (0) 2021.12.09
TIL_211208  (0) 2021.12.08
TIL_211206  (0) 2021.12.07