Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REFACTOR] SourceCodeService 메서드 분리에 대한 리팩토링 #651

Closed
jminkkk opened this issue Sep 16, 2024 · 1 comment
Closed
Labels
refactor 요구사항이 바뀌지 않은 변경사항

Comments

@jminkkk
Copy link
Contributor

jminkkk commented Sep 16, 2024

📌 어떤 기능을 리팩터링 하나요?

SourceCodeService에 레거시 코드들이 보입니다. 재사용할 수 있는 부분에 대해 코드를 변경하고, 애매한 코드 네이밍을 변경합니다.
아래 예시들

AS-IS

image
    @Transactional
    public void deleteByIds(List<Long> templateIds) {
        templateIds.forEach(sourceCodeRepository::deleteByTemplateId);
    }

deleteByTemplateId 메서드 n번 호출 & 쿼리 n번

  1. sourceCodeService.deleteByIds()

소스 코드 아이디로 삭제하는 것 같지만 템플릿 아이디로 삭제하는 것임
위와 같은 혼동 가능성이 있는 메서드명 변경하기

TO-BE

image
    @Transactional
    public void deleteByIds(List<Long> templateIds) {
        sourseCodeRepository.deleteAllByTemplateId(templateIds);

        // 또는 sourseCodeRepository.deleteAllByTemplateIdInBatch(templateIds);
    }

각각 repository 메서드 1번 호출 & 쿼리 n번(deleteAllByTemplateId) 또는 1번(deleteAllByTemplateIdInBatch)

등등이 더 있을 수 있습니다.

  1. sourceCodeService.deleteByTemplateIds()

⏳ 예상 소요 시간

2시간

🔍 참고할만한 자료(선택)

createSourceCodes() 메서드에 @transactional 관련

createSourceCodes에서는 saveAll만 호출하고 있습니다. 따라서 트랜잭션으로 묶이지 않아도 된다고 생각합니다~
또한 saveAll은 이미 내부에서 @transactional를 선언하고 있어 일부 save 실패 시 롤백됩니다.

image
@jminkkk jminkkk added the refactor 요구사항이 바뀌지 않은 변경사항 label Sep 16, 2024
@jminkkk
Copy link
Contributor Author

jminkkk commented Sep 17, 2024

해당 이슈는 #650 에서 처리하므로 이슈 닫겠습니다~!

@jminkkk jminkkk closed this as completed Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor 요구사항이 바뀌지 않은 변경사항
Projects
None yet
Development

No branches or pull requests

1 participant