Skip to content

![high](https://www.gstatic.com/codereviewagent/high-priority.svg) #224

@huhdy32

Description

@huhdy32

high

페이지 내의 학교 수만큼 외부 API(schoolClient.getSchool)를 호출하고 있어 N+1 문제가 발생합니다. 페이지 크기가 크면 심각한 성능 저하를 유발할 수 있습니다. 학교 정보를 가져오는 로직을 개선해야 합니다.

예를 들어, schoolRankQueryService에서 학교 정보를 함께 조회하거나, 컨트롤러에서 모든 학교 코드를 수집하여 한 번에 조회하는 bulk API를 SchoolClient에 구현하는 것을 고려해볼 수 있습니다.

또한, 학교 이름을 가져오는 코드를 아래와 같이 Optional.map을 사용하여 더 간결하고 안전하게 개선할 수 있습니다.

.map(schoolRankQueryResult -> {
    String schoolName = schoolClient.getSchool(RequestType.JSON.getType(), schoolRankQueryResult.schoolCode())
        .map(SchoolInfo::SCHUL_NM)
        .orElse("학교 정보 없음"); // 학교 정보가 없을 경우 기본값 설정
    return SchoolRankPageResponse.from(schoolRankQueryResult, schoolName);
})

Originally posted by @gemini-code-assist[bot] in #223 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions