Skip to content

admin 대시보드 조회 에러#302

Merged
dbswjd7 merged 86 commits intodevfrom
fix/239-admin-get-fix
Feb 6, 2026
Merged

admin 대시보드 조회 에러#302
dbswjd7 merged 86 commits intodevfrom
fix/239-admin-get-fix

Conversation

@dbswjd7
Copy link
Contributor

@dbswjd7 dbswjd7 commented Feb 6, 2026

admin 대시보드에서 조회 timeout이 발생하는 문제를 해결했습니다.

기존 내용

: AdminStatsService의 주문 영역(getOrderStats)에서 조회 속도가 느려지고 있었습니다.

  • orderRepository.findAll() 로 전체 주문 데이터를 메모리로 로딩 후 총 매출 및 상태별 통계를 계산
  • 주문 목록 조회: fetch join으로 order + orderitem을 불러와 row가 뻥튀기된 상태에서 정렬, 중복제거를 수행해 불필요 쿼리가 발생
  • DTO 변환 과정: order 조회 후 각 order에 대한 options 불러오는 N+1 문제 발생 (lazy로딩)

개선 내용

Admin 관련 주문 조회 로직을 InternalOrderAdminService로 분리하고, 다음과 같이 DB 중심 집계 방식으로 구조를 개선했습니다.

  1. 목록 조회 개선
  • 기존: fetch join조회
  • 개선:
    • 단순 findAll(Pageable) 기반 조회로 변경
    • DTO 변환 시 options 접근 제거 → N+1 문제 차단
  1. 통계 계산 로직 DB 집계 방식으로 변경
  • 기존 방식:
List<OrderEntity> allOrders = orderRepository.findAll();
// 이후 총매출, 상태별 카운트 계산
  • 개선 방식 (DB 중심 집계):
long totalOrders = orderRepository.count();
BigDecimal totalRevenue = orderItemRepository.sumTotalRevenue();
List<Object[]> statusResults = orderRepository.countGroupByStatus();
  • 총 주문 수 → COUNT(*)
  • 총 매출 → SUM(menuPrice * quantity)
  • 상태별 통계 → GROUP BY orderStatus
  • ->모든 계산을 DB에서 수행하고 결과만 반환하도록 개선

추가로

BE: storename, 가격을 불러오는 로직 추가 필요
FE: 이에 따른 수정 필요

Yoonchulchung and others added 30 commits January 21, 2026 09:18
CI에서 동작 가능한 코드 수정을 진행했습니다. 코드 스타일을 준수할 수 있도록 몇몇 파일 수정을 진행했습니다.
로그아웃 용 refresh token service를 생성했습니다. 
토큰 재발급을 위한 TokenHashing file 생성, 해당 부분에서 yaml파일에 추가한 부분이 있습니다.
이외 파일 변경은 pr check를 위한 수정입니다.

로그아웃 로직은 아래와 같습니다.
로그인 시 발급한 AccessToken(JWT)가 만료될 시
→ Refresh Token으로 Access 재발급
로그아웃
→ Refresh Token revoke
로그아웃, pw변경에 사용될 AuthTokenDTO를 생성했습니다
category 전체조회, 매장조회, 생성, 수정, 삭제 기능의 service, controller를 구현했습니다.

권한
controller에서 preauthroize로 관리
생성, 수정, 삭제 - ADMIN
조회는 authorized면 가능

store관련 코드
storecontroller의 조회, 수정, 삭제에 대한 접근권한을 설정했습니다. (이에 따라 securityconfig 파일에서
경로 삭제) -> storeservice에서 비지니스로직 처리해주시면됩니다.
Spot폴더를 실수로 첨부한 에러 삭제합니다.
Payment의 API 추가했습니다

---------

Co-authored-by: yunjeong <99129298+dbswjd7@users.noreply.github.com>
Co-authored-by: yunjeong <99129298+dbswjd7@users.noreply.github.com>
중복 Spot폴더 삭제로 인해 category관련 pr을 전부 revert했고, 해당 폴더를 제외한 나머지 category api
원상 복구입니다.

(서브모듈 삭제 명령어 존재를 모르고 경로가 Spot/Spot이 아닌 Spot으로 잡혀 rm명령을 시도하지 않고 그냥 revert
했습니다.)
DB를 연동해서 실행 가능한지 확인합니다.
main으로 브랜치 PR시 보안 문제를 검사합니다.
## Summary
- main 브랜치와의 merge conflict 해결
- `deploy.yml`의 Dockerfile 경로를 `./Docker/Dockerfile`로 유지

Co-authored-by: yunjeong <99129298+dbswjd7@users.noreply.github.com>
Co-authored-by: Yeojun <52143231+Yun024@users.noreply.github.com>
Co-authored-by: first-lounge <137966925+first-lounge@users.noreply.github.com>
메뉴 main 수정

---------

Co-authored-by: yoonchulchung <yoonchul005@gmail.com>
Co-authored-by: dbswjd7 <yj2171063@ewhain.net>
Co-authored-by: yeojun <yeojun@yeojunui-MacBookPro.local>
Co-authored-by: eqqmayo <eqqmayo@gmail.com>
Co-authored-by: Yoonchul Chung <84674889+Yoonchulchung@users.noreply.github.com>
Co-authored-by: Yeojun <52143231+Yun024@users.noreply.github.com>
Co-authored-by: yunjeong <99129298+dbswjd7@users.noreply.github.com>
Co-authored-by: eqqmayo <144116848+eqqmayo@users.noreply.github.com>
FE와 연동하는 과정에서 조회, 생성 과정에서 오류가 있어 해결했습니다.
메뉴 Service 로직 수정
메뉴 및 메뉴 옵션 DTO 수정
메뉴 및 메뉴 옵션 업데이트 관련 DTO 파일 삭제
메뉴 Controller 수정
메뉴 및 메뉴 옵션 Repository 수정
메뉴 api 수정

---------

Co-authored-by: yoonchulchung <yoonchul005@gmail.com>
Co-authored-by: Yoonchul Chung <84674889+Yoonchulchung@users.noreply.github.com>
UserEntity에서 Store 조인 해제

---------

Co-authored-by: Yoonchul Chung <84674889+Yoonchulchung@users.noreply.github.com>
Yoonchulchung and others added 28 commits January 22, 2026 17:17
spring gateway를 구성하였음
- 라우팅
  - User 8081
  - Order 8082
  - Store 8083
  - Payment 8084
- 추가로 /api/login, /api/join, /api/auth/refresh도 user-service로 라우팅해 로그인
동작하도록 하였음

- jwt 인증은 gateway가 아닌 기존 로직처럼 filter에서 수행하는 코드

OpenFeign
- FeignCommonConfig에서 feign관련 설정 파일 관리
- 공통error처리 로직 작성
- 내부 feign 통신에서도 Header intercept해서 jwt토큰 인가해 적용

---------

Co-authored-by: Yoonchul Chung <84674889+Yoonchulchung@users.noreply.github.com>
Co-authored-by: first-lounge <137966925+first-lounge@users.noreply.github.com>
Co-authored-by: Yeojun <52143231+Yun024@users.noreply.github.com>
Co-authored-by: yoonchulchung <yoonchul005@gmail.com>
Co-authored-by: yeojun <yeojun@yeojunui-MacBookPro.local>
Co-authored-by: eqqmayo <eqqmayo@gmail.com>
Co-authored-by: eqqmayo <144116848+eqqmayo@users.noreply.github.com>
Co-authored-by: first-lounge <zxcz9878@gmail.com>
@dbswjd7 dbswjd7 merged commit 44cce3d into dev Feb 6, 2026
3 checks passed
@dbswjd7 dbswjd7 deleted the fix/239-admin-get-fix branch February 6, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants