ItemRepository 인터페이스 생성 이유??
157
작성자 없음
작성한 질문수 0
1. 강의 내용과 관련된 질문인가요? (아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
ItemRepository 인터페이스 생성한 이유가 궁금해서 질문드립니다.
강의에서 해당 인터페이스를 생성하는 이유가 영한님이 알려주신 강의에서는 jdbctemplate, mybatis, jpa등등 데이터 접근 기술들을 알려주셔서 해당 구현체들을 추상화 목적으로 만드신건가요?? 아니면 현업에서는 일반적으로 영한님처럼 파일 구조로 만드나요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
항상배고픔님의 질문에 대해 답변 드리겠습니다.
질문하신 ItemRepository 인터페이스 생성 이유와 관련하여, 강의에서 다루는 주된 목적은 여러 데이터 접근 기술(jdbcTemplate, mybatis, jpa 등)을 추상화하여 통일된 인터페이스를 통해 데이터 접근 계층을 유연하게 관리하기 위함입니다. 이렇게 하면, 실제 데이터 접근 기술이 변경되더라도 서비스 계층의 코드 변경을 최소화할 수 있고, 다양한 구현 기술을 쉽게 전환할 수 있는 구조를 만들 수 있습니다.
강의 “JpaRepositoryV2 도입 이유“에서 비슷한 개념의 중요성에 대해 설명하고 있습니다. 이 내용은 ItemRepository와 같은 인터페이스를 생성하고 사용하는 과정에서 데이터 접근 기술의 추상화 및 일관된 데이터 접근 인터페이스를 제공하는 것의 중요성을 강조합니다. 이러한 접근 방식은 현업에서도 널리 사용되며, 유지보수와 확장성, 그리고 기술 독립성을 향상시키는 데 큰 도움이 됩니다.
현업에서 파일 구조를 만드는 방식은 프로젝트 특성, 팀의 선호도, 그리고 사용하는 기술 스택에 따라 다를 수 있습니다. 하지만 일반적으로 인터페이스 기반의 추상화를 통해 데이터 접근 계층을 관리하는 것은 좋은 실천방법으로 권장됩니다. 이는 코드의 결합도를 낮추고, 유연성과 테스트 용이성을 높일 수 있기 때문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
RepositoryTest의 패키지 위치가 domain인 이유
0
29
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
29
1
update()에 사용하는 setter 질문드립니다.
0
47
1
SQL 중심적 개발의 문제점에 대한 질문
0
72
1
혹시 Containing 을 안쓰신 이유가 있을까요?
0
83
2
[공유] 스프링부트 4.x 버전 mybatis 연동
0
173
1
@repository 어노테이션
0
89
3
ItemService
0
58
1
논리 커밋, 물리 커밋 질문드립니다.
0
54
1
내부 트랜잭션 커밋은 필수인가요?
0
57
1
프록시 커넥션 객체를 반환할 때 생성하는건가요?
0
54
1
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
2
178
2
JPQL 대신 네이티브 쿼리를 사용해야 하는 경우
0
77
1
@EventListener(ApplicationReadyEvent.class) 관련
0
88
1
트랜잭션 동기화 매니저와 데이터 소스
0
76
1
DB 관련 강의 개설 계획은 없으신건가요?
0
133
2
물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요
0
94
1
스프링 3 버전 이상 rollbackFor 변경된듯요
1
112
1
트랜잭션 전파 질문.
0
87
1
프로젝트 오픈 에러
0
126
1
외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다
0
83
2
같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환
0
72
1
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
0
102
1
커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문
0
98
2





