Description API 별 발생하는 쿼리 개수와 트랜잭션 범위 점검하기
API 유형
트랜잭션 범위
트랜잭션 시작/종료 위치
Read 성 API
각 도메인 서비스 내부
도메인 서비스의 메서드
Write 성 API
Facade 전체
Facade의 진입/종료 지점
Task List
쿼리 추출 및 분석
각 API 호출 시 발생하는 SQL 원본 쿼리와 개수를 기록합니다.
트랜잭션 범위 점검
API 호출 시 트랜잭션의 시작과 종료 범위를 확인합니다.
결과 정리
API 이름, 발생 쿼리 개수, SQL 원본, 트랜잭션 범위를 표 형식으로 정리합니다.
API 분석 결과
/gongbaek
트랜잭션 시작 : GroupController#registerGongbaek 호출
트랜잭션 종료 : ResponseBuilder.created() 응답 반환 시
SQL 쿼리 개수 : 최소 3개 ~ 최대 (3 + N)개
사용자 조회: 1개 (UserService#getUserById)
강의 시간 슬롯 중복 확인: 1개 (LectureTimeSlotService#isExistInLectureTImeSlot)
그룹 데이터 삽입: 1개
추가 데이터 삽입: N개 (커버 이미지, 그룹 멤버 등)
API Endpoint
SQL Query 원본
발생 쿼리 개수
트랜잭션 범위
/gongbaek
SQL 보기
최소 3개 ~ 최대 N개
Facade 시작 ~ Facade 끝
/api/v1/fill/groups
트랜잭션 시작 : GroupController#getFillGroups 호출
트랜잭션 종료 : ResponseBuilder.ok() 응답 반환 시
SQL 쿼리 개수 : 최소 2개 ~ N개
사용자 조회: 1개 (UserService#getUserById)
그룹 데이터 조회: N개 (ActiveCombinedGroupVoPreparer#prepareGroupVos 등)
강의 시간 슬롯 확인: N개 (LectureTimeSlotService#isActiveGroupsInLectureTimeSlot)
API Endpoint
SQL Query 원본
발생 쿼리 개수
트랜잭션 범위
/api/v1/fill/groups
SQL 보기
최소 2개 ~ 최대 N개
domain 서비스에 국한된 범위
/group
트랜잭션 시작 : GroupController#applyGroup 호출
트랜잭션 종료 : ResponseBuilder.ok() 응답 반환 시
SQL 쿼리 개수 : 총 7개
사용자 조회: 1개 (UserService#getUserById)
그룹 조회: 1개 (EveryGroupService#findEveryGroupEntityByGroupId)
같은 학교 검증: 2개 (SameSchoolValidator#isUserReadMySchoolEveryGroup)
그룹 신청 중복 검증: 1개 (EveryGroupService#validateApplyEveryGroup)
시간 슬롯 중복 확인: 1개 (LectureTimeSlotService#isActiveGroupsInLectureTimeSlot)
그룹 신청 처리: 1개 (UserEveryGroupService#applyEveryGroup)
API Endpoint
SQL Query 원본
발생 쿼리 개수
트랜잭션 범위
/group
SQL 보기
7개
Facade 시작 ~ Facade 끝
Reactions are currently unavailable
You can’t perform that action at this time.