JiwoonKimKr / prjct-personal-q3-2024

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

배송조회 &주문 상세조회 마크업_관련 API 작성_14 08 2024 #16

Closed JiwoonKimKr closed 3 months ago

JiwoonKimKr commented 3 months ago
JiwoonKimKr commented 3 months ago

image 배송조회 관련, 최근 배송 조회를 일단 목록으로 뿌리고 접근하는 방식으로 추가; 기존 "/delivery-status-view"에 "/delivery-status-view"로 넘어가도록 변경

JiwoonKimKr commented 3 months ago

image

주문 내역 조회 관련된 부분도 배송 조회처럼 Figma 기획안 흐름부터 수정; 헷갈리지 말아야 ㅠㅡㅜ

JiwoonKimKr commented 3 months ago

AOP(Aspect-Oriented Programming)구현을 간과하고 있었다. 이게 스프링 기본 3대 개념 중 하나였는데, 공부를 안 했다. DI(Dependency Injection)와 PSA(Portable Service Abstraction) 까지 포함해 3개 개념이 핵심이다. DI는 controller service repository같은 기존 어노테이션들을 쓰거나 component같이 직접 지정할 수 있는 간단한 방법들을 쓰는 걸로 쓸 수 있었다. PSA는 추후 발생할 변화에 무관하게 일관성 있는 흐름으로 서비스를 제공하는 방법이란다. DB를 오라클을 쓰다가 MySql이나 PostGreSql로 가도 온전하게 쓸 수 있는 유연성을 말한 듯 싶다. 실제로 스프링 라이브러리들은 꽤 범용성이 높아 보였다.

이 AOP이 내가 직접 건드려야 하는 부분이었다. 중복되는 특정 기능이나 부분들이 있다면 일련의 Aspect로 객체를 생성한다. 해당 Aspect 객체가 다양한 객체들의 중복되는 메소드 또는 필드를 대체할 수 있다. 고양이도 골골 소리를 내듯이 냉장고도 골골 소리를 내곤 한다. ‘골골Song’이라는 AOP객체를 만들어서 대리자(Proxy)를 내세워, 고양이와 냉장고에 ‘골골송’이란 annotation을 붙이면 기능을 할 수 있는 방식이다.

중복되는 걸 어떻게든 찾아서 이 AOP를 구현해야 한다. 이 핵심 가치 3가지는 기본적으로 현 프로젝트에서 구현하려 시도했다는 걸 보여야 한다ㅠㅡㅠ 왠지 프로젝트가 잘 풀린다 싶었다ㅠㅠ

JiwoonKimKr commented 3 months ago

구현해야하는 것들 (생각나는 대로)

  1. Client 주문조회 필터링 API 마저 구현
  2. 커뮤니티 페이지 마크업&API 작성
  3. 각 조회 페이지 페이징; MyBatis와 JPA방식 다 찾아야ㄷㄷ
  4. jQuery 달력 라이브러리 활용하여 날짜 관련 조회 다 뒤집어야ㅠㅠ
  5. 카카오 OAuth 관련 코드 리펙토링(service랑 component, util 활용해야)
  6. 아이디/비밀번호 찾기 알고리즘 구현
  7. AOP 구현 가능한 중복 aspect들 모조리 찾아서 구현
  8. Swagger(Swagger UI; URI 문서화 라이브러리) 도입
JiwoonKimKr commented 3 months ago

AOP #StopWatch

로그인 또는 결제 페이지에 오늘 배운 TimeTrace AOP 기능을 써보려고 했는데, 스프링의 StopWatch를 활용하는 것이 익숙하지 않아 힘들었다. 여러 시도 끝에, StopWatch의 자식 클래스를 utils 페키지에Spring Bean으로 등록한 후에, StopWatch 기능을 활용했는데 일단 구현은 성공했다. 그런데 오늘 배운 것과는 달리, 나는 start와 stop를 다른 annotation(메소드)에서 각기 호출해야 한다. 그래서 고민이 많다. 동일한 사용자에게 타이머가 적용될까, 소위 Thread-safe한 게 맞나 걱정이었다. 너무 모르는 게 많았다ㅠㅜㅜ