인프런 커뮤니티 질문&답변

hello님의 프로필 이미지
hello

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

JPA를 이용한 사용자 추가와 삭제 - HTTP POST/DELETE method

jpa와 hibernate

작성

·

163

0

deleteUser 구현할 때에

userRepository.deletedById(id); 일때 해당 user 레포지토리는 jpa 레포지토리를 상속받은 인터페이스이지만 

아무것도 작성하지 않았음에도 불구하고 동작하는 이유는 hibernate가 설치되어 있어서 그런것인가요?

그럼 만약 hibernate를 안쓰고 직접 구현하고 싶다면 UserRepository 인터페이스가 JpaRepository를 상속한 부분을 지우고 코드 작성하고 구현체 만들면 되는건가요?

답변 2

0

MSA에서는 sql쿼리로 개발하는것을 지양(?) 하나요?

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

말씀하신 것 처럼, JpaRepository를 상속 받는 것만으로도 기본적인 CRUD를 사용할 수 있습니다. 상속받은 인터페이스에 추가로 CRUD 관련 메소드를 선언해서 사용할 수도 있습니다. 물론, JPA를 직접 구현하실 수도 있습니다만, 그렇다면 JPA를 사용하는 목적이 없어진다고 생각됩니다. CRUD에 된 작업을 최소화하고 비즈니스 로직에 집중하기 위해서 JPA를 사용하고 다양한 SQL의 조합이나, 비즈니스 로직을 SQL로 처리하는 경우에는 JPA 보다는 직접 JDBC를 사용하는 편이 좋다고 생각됩니다. 

그러나, 만약 마이크로서비스 애플리케이션을 고려하신다면, 이러한 방식은 마이크로서비스 아키텍처(Micsroservice Architecture)와의 성격과는 맞지 않다고 생각됩니다, MSA는 SQL에서 처리해야 하는 비즈니스 로직을 최소화하면서 각 서비스 간의 종속성을 낮추는 것이 목적이기 때문입니다. 

감사합니다. 

hello님의 프로필 이미지
hello

작성한 질문수

질문하기