inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입

댓글 무한 depth 질문입니다.

해결된 질문

283

pay

작성한 질문수 8

1

안녕하세요 강사님 강의 잘 듣고 있습니다.

스크린샷 2025-02-25 오후 10.56.05.png

댓글 무한 depth 강의를 듣고 있는 도중에, 전부터 궁금했던 내용인데 Repository에 extends JpaRepository를 하면 @Repository를 안 붙여도 되는 걸로 알고 있는데 붙이시는 이유가 따로 있으신지 궁금합니다.

스크린샷 2025-02-25 오후 10.54.37.png

https://sudo-minz.tistory.com/147

참고했던 블로그 글입니다!

java mysql spring-boot kafka redis

답변 2

1

쿠케

show_3_님, 안녕하세요!

 

말씀하신대로 안 붙여도 되는건데, 특별한 이유가 있진 않습니다..!

그냥 직접 작성한 코드베이스 내에서 명확하게 리포지토리 빈이란걸 나타내기 위해서 습관처럼 붙이게 되네요!

자동으로 만들어주는 것도, 결국 내부 구조 파악해서 자동으로 빈이 만들어질 수 있다는 사실을 직접 인지해야하는 부분이 되기도 하더라고요!

근데 저도 깜박하고 안 붙일 때가 있긴 해서.. 일단 빈 생성이 된다면 딱히 주요한 부분은 아니라고 생각하는 측면도 있습니다!

0

인프런 AI 인턴

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

댓글 무한 depth 강의를 수강하면서 Repository에 대해 궁금하신 점이 있으신 것 같습니다. 이와 관련하여 설명드리겠습니다.

@Repository Annotation 사용 이유

  1. 자동 스캔 및 예외 변환:

    • JpaRepository를 확장하면 Spring Data JPA가 자동으로 구현체를 생성해주어 별도의 @Repository 어노테이션을 붙이지 않아도 빈으로 등록됩니다. 그러나 @Repository는 스프링이 데이터 접근 계층의 예외를 스프링의 통합 예외로 변환하도록 돕는 역할을 합니다.
    • 즉, 정확히 @Repository를 정의하지 않아도 Spring Data JPA가 자동으로 빈을 생성해주지만, 명시적으로 선언하는 것이 스타일이자 명확한 의미 전달이라는 이유로 사용될 수 있습니다.
  2. 코드 일관성 및 가독성:

    • 팀의 코딩 규칙이나 코드의 가독성을 위해 모든 Repository에 @Repository 어노테이션을 붙이는 경우가 있습니다. 이는 일관성을 유지하고, 코드 리뷰 시 명확한 이해를 도울 수 있습니다.

추가 참고 사항

  • 만약 예외 변환이 목적이시라면, @Repository 어노테이션을 명시적으로 붙임으로써 데이터 액세스 계층에서 발생하는 예외가 Spring의 DataAccessException으로 변환되는 것을 보장할 수 있습니다.

이와 관련된 보다 깊이 있는 이해를 위해 추가로 블로그 글을 추천드리며, 이는 Spring Data JPA와 @Repository에 관련된 유용한 정보를 제공합니다.

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

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

31

1

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

48

2

게시글 테스트 데이터 삽입

0

51

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

104

2

좋아요 기능 정합성 보장 방법

0

98

2

좋아요 동시성처리 최적의 선택?

1

136

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

92

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

60

1

조회수 조회 로직 질문

1

67

2

비로그인 유저도 어뷰징 방지 정책

1

73

2

CommentServiceTest의 테스트 로직 질문

0

54

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

74

2

path 쿼리 관련 질문드립니다!

0

60

2

antigravity 에디터를 쓰신다면 종료해주세요

1

123

0

프로젝트 구조

0

88

2

article_like_count api test

0

79

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

104

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

92

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

92

3

jpa ddl-auto none을 하는 이유와 join 방법

0

97

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

90

2

커서 기반 페이지네이션 과 무한 스크롤링

0

110

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

97

2

멀티 모듈이 아닌 MSA 환경에서 common

0

156

2