inflearn logo
강의

Course

Instructor

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

Order Lookup V5: Direct DTO Lookup in JPA - Optimized Collection Lookup

메서드를 분리하는 기준

61

gomdole030581

108 asked

0

강의 내용을 보시면 한 메서드안에서 코드를 작성하시다가 리팩토링을 해서 메서드를 따로 분리하셨는데, 메서드를 분리하는 기준이 따로 있을까요?

한 메서드 안에서, 로직이 너무 길어지면 메서드를 따로 만들어서 분리해야하는것일까요?

java spring spring-boot jpa

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

오리쉐리님께서 질문해주신 “메서드를 분리하는 기준”에 대해 답변 드리겠습니다. 메서드를 분리하는 일반적인 기준은 코드의 가독성과 유지보수성을 높이기 위함입니다. 다음은 메서드 분리에 대한 일반적인 원칙들입니다:

  1. 단일 책임 원칙(Single Responsibility Principle): 한 메서드가 하나의 책임만 가져야 합니다. 즉, 메서드는 하나의 기능 또는 목적을 수행하도록 설계되어야 하며, 여러 가지 일을 하도록 되면 분리하는 것이 좋습니다.

  2. 코드의 반복 제거: 동일한 로직이 여러 곳에 반복된다면, 해당 로직을 하나의 메서드로 분리하여 재사용성을 높이는 것이 좋습니다.

  3. 가독성: 메서드가 너무 길어지거나 복잡해지면 다른 개발자가 이해하기 힘들어질 수 있습니다. 이럴 때는 로직을 부분으로 나누어 각각의 메서드로 분리하여 명확성을 높일 수 있습니다.

  4. 테스트 용이성: 작고 명확한 메서드는 테스트하기 쉽습니다. 특정 기능을 테스트하기 위해 큰 메서드 전체를 실행하는 것보다, 작게 쪼개진 메서드를 개별적으로 테스트할 수 있습니다.

  5. 재사용성: 분리된 메서드는 다른 클래스나 메서드에서 재사용하기 쉽습니다.

이와 같은 원칙에 따라 메서드를 설계하다 보면, 자연스럽게 더 잘 설계된 클린 코드가 됩니다. 토픽 관련하여 더 많은 고민과 답변이 오간 게시물들을 참고하면 도움됩니다.

아래 유사한 질문과 답변을 참고해보세요:
1. 질문있습니다 - 클래스와 메서드 네이밍 규칙에 대한 고민
2. 리포지토리 분리 - 서비스와 리포지토리 간의 관계
3. 애플리케이션 로직 수행 설명

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강의 관련 외 질문입니다.

0

64

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

85

1

BeanCreationException

0

86

3

Update 후 UpdateMemberResponse 매핑할 때

0

46

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

97

2

페이징 + 검색조건 관련해서 질문드립니다.

0

70

1

Query Dsl Q파일 질문입니다.

0

81

1

루트 쿼리라는것은

0

58

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

108

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

83

2

fetch join과 영속화와 OSIV의 관계

0

83

2

Distinct 사용 전 결과에 대한 의문

0

113

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

55

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

77

2

dto 필드 속 엔티티 여부

0

58

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

@PostConstruct 프록시 관련 질문드립니다

0

85

1

DTO 대신 Form 사용은 안되나요?

0

133

1

OSIV ON 상태일 때

0

95

1

fetch join VS fetch join 페이징 궁금증

0

179

2

양방향 연관관계 알아보는 법?

0

104

1

16강 17강 간단 정리 이게 맞을까요 ?

0

165

2

데이터 초기화 시 CASCADE 옵션 궁금증

0

89

2