JiwoonKimKr / prjct-personal-q3-2024

Personal Project_Web Development_Q3_2024
http://13.125.131.19
0 stars 0 forks source link

QA 결제 관련 API 점검 & 사용자 정보 피드백 API 체크_30 08 2024 #32

Closed JiwoonKimKr closed 2 weeks ago

JiwoonKimKr commented 2 weeks ago

사용자 선호 정보를 업데이트하는 메소드는 AOP@TrackUsersFavor에 의해 호출된다. UserFavoriteBO updateUserFavors(Integer userId, Object category, Object agePetProper)@TrackUsersFavor어노테이션이 기재된 곳은 현재 2곳이다.

@TrackUsersFavor와 별개로, 특정 상품 관련 이벤트(조회 또는 구매)가 발생한 경우 productId를 저장하도록 하였다. (ProductUserInterestedBO addRecordForProductUserInterested())

JiwoonKimKr commented 2 weeks ago

image image

미루고 미루던 결제 관련 주소를 그냥 처리했닼ㅋㅋ 주소를 일반 주소와 상세 주소로 나누었다. 일단 Controller에서 .split(" ")으로 String[] 배열(array)을 무턱대고 만들어서 두 개로 나누어서 값을 넘겼다. 결제는 순탄하게 흘러갔다. 다행히 인출되지도 않았닼ㅋㅋㅋ 그러나 결제 내역을 1)단건으로 조회하고 2) 지불 금액을 비교하는 API도 작성해야 한다.

https://developers.portone.io/opi/ko/integration/start/v1/auth?v=v2#1-%ED%8F%AC%ED%8A%B8%EC%9B%90-sdk-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0- image

지금은 PG사에 수수료를 내고 가입한 상황도 아닌 탓에 조회조차 안 된다. 구현하는 것이 의미가 없다고 생각한다. 미래의 나에게 미안할 뿐 🫠🫠🥳🥳

JiwoonKimKr commented 2 weeks ago

🛑🚫STS(Eclipse)에서 Ctrl + Shift + Alt + L을 눌러서 workspace 전체 Quick-Search를 활용할 수 있다!🚫🛑 예전에는 라이브러리로 별도 설치가 필요했다고 한다. 지금은 저 단축키로 바로 사용 가능!

JiwoonKimKr commented 2 weeks ago
JiwoonKimKr commented 2 weeks ago

페이징 관련해서, Indexing할 때 받아온 List값에서 해당 PK값을 찾아야 하는 경우가 있다. 이 때 처음부터 반복문을 돌리는 것보다 속도를 높이는 접근을 넣는 게 좋을 것 같다. 이진 탐색 트리(Binary Search Tree)를 적용해봐야 겠다. 괜히 페이징 간소화 하려고 Javascript 건드리려다가 무서워서 혼났다🫠🫠 아이고

JiwoonKimKr commented 2 weeks ago

이진탐색트리를 만들고 jUnit Test를 먼저 해보았다. 오랜만에 코딩테스트를 다시 공부하는 기분이어서 긴장되었다ㅠㅠㅠㅋㅋㅋㅋㅋ

일반적인 반복문이다. 숫자가 증가할 수록 파악하는 시간도 길어진다. image

이진탐색트리 방식으로 구현하여 시간을 파악했다. 다행히 짧아졌다 🤩😁😆🙌🙌 image

물론 쪼오오오금 빨라지겠는지만ㅋㅋㅋㅋ 이진탐색트리를 직접 프로젝트에 넣는다는 것이 감사할 따름이다 🙇‍♀️🙇‍♀️🤩🤩

JiwoonKimKr commented 2 weeks ago

🛑🚫JAVA에서 List를 캐스팅 하려면 List<Upcasting> list = (List<Upcasting>) (List<?>) listVOs; 이런 방식을 써야 한다ㄷㄷㄷ🚫🛑

유틸리티를 쓰려면 일정한 형식을 가진 변수를 불러오도록 메소드를 적어야 하는 탓에, 페이징에 쓰이는 VO들한테 VOforIndexing 이런 Interface를 덧붙여 줬다. 그리고 이진트리함수 유틸리티를 변수로 적용하려고 하는데, 에러가 난다ㅠ List같은 경우 쉽사리 Casting이 이뤄지지 않았다.

그런데 나 같은 고민을 한 분들이 계셨나 보다. 바로 검색하니까 나왔다. https://backendbrew.com/docs/java/tip/list-type-casting image

List가 Collection 클래스에 속하지만, 이 마저도 근본이 있기에 Type Casting 방식을 활용할 수 있다고 한다. 신기하다🫠🫠🙌🙌