Skip to content

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

@huhdy32

Description

@huhdy32

high

getSolverOrCreate 메서드는 @Transactional로 관리되는 save 메서드 내부에서 호출됩니다. Solver가 존재하지 않을 경우 getSchoolCode를 통해 외부 API(memberClient.getMemberInfo)를 호출하게 되는데, 이는 데이터베이스 트랜잭션 내에서 외부 네트워크 호출을 하는 것으로 좋지 않은 패턴입니다. 외부 서비스의 응답 지연이나 실패가 데이터베이스 커넥션을 오랫동안 점유하여 전체 시스템의 성능과 안정성에 영향을 줄 수 있습니다.

가능하다면 외부 API 호출을 트랜잭션 바깥으로 옮기는 것을 권장합니다. 예를 들어, save 메서드에서 트랜잭션 시작 전에 Solver 존재 여부를 확인하고, 없을 경우에만 getSchoolCode를 호출한 뒤 트랜잭션 내에서는 이 값을 사용해 Solver를 생성하는 방식으로 리팩토링할 수 있습니다.

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