[묘공단-스프링부트3-6장] JPA를 활용한 CRUD

힐링코더·2023년 9월 20일
0
post-thumbnail

CRUD.
어떻게 발음하시나요?
저는 처음에 이걸 크루드라 읽었는데 크러드더라고요.
지금껏 '크러드' 이야기를 꺼냈을 때 저는
1) 그게 뭐냐?
2) '씨알유디'아니냐?
3) 난 그거 CURD라 부르는데...
등의 반응을 경험했습니다.

그래서 이 부분을 먼저 명확히 하고 싶었습니다.
CRUD = "크러드"로 통일합시다...
근거: https://www.youtube.com/shorts/7ftQVAnRrq8

Flutter가 플루터가 아니고 후랏따도 아니고 플러터인 것처럼요.


오늘은 JPA를 활용해 CRUD 기능을 만드는 시간입니다.
'스프링 부트 3 백엔드 개발자 되기'책에서는 해당 내용을 테스트 코드까지 포함해서 알려 줍니다.
자세한 내용은 책을 참고하시면 됩니다.

제가 블로그에 기록할 내용은
JPA를 활용해 CRUD하는 모든 과정을 '한눈'에 볼 수 있게
간단 정리하는 겁니다.

시작하기 전에> 왜 JPA를 써야 하나요?
JPA를 쓰지 않으면 쿼리를 다 내 손으로 써야 합니다.
JPA를 쓰면 JPA가 가지고 있는 메서드를 통해 Creat, Read, Update, Delete 등의 주요 기능을 갖다 쓸 수 있습니다.

  1. 엔티티를 만들자!
    엔티티를 만들어야 ORM인 JPA를 통해 테이블과 매핑돼 작동할 자바 객체를 만들 수 있습니다.
  1. 서비스 메서드 코드를 작성하자!
    저는 컨트롤러부터 만드는 걸 좋아합니다.
    하지만 책에서 서비스 메서드 코드 작성하는 것부터 알려 주고 있으니 이제는 이렇게 하려고요.
  1. 컨트롤러 메서드 코드를 작성하자!
  1. 포스트맨에서 실행 테스트하자!
  1. 해당 기능 테스트를 위한 코드를 작성하자!
  1. Read나 Delete는 엔티티를 조작하지 않는다. 그래서 Entity를 건드릴 일이 없다.
    Create도 DTO를 Entity로 만들지, 만들어진 Entity를 건드리진 않는다.
    Update는 Entity를 건드린다!
    그래서 Entity에 요청받은 내용으로 값을 수정하는 메서드를 작성해야 한다.
    이 정도의 차이를 제외하고는 CRUD 기능 작성 방법은 거의 비슷하다.

끝입니다.
이 이상 내용을 자세히 적지 않은 이유는
1) 한글로 코드를 설명하는 게 큰 의미가 없고
2) 이런 식으로 기능을 돌아가게 하는 게 위 형태 한 가지만 있는 게 아니기 때문입니다.
책에서는 Entity랑 DTO를 모두 두었지만 Entity 없이 DTO만으로 끝내거나 서비스 인터페이스를 만들고 그걸 implement한 곳에서 서비스 메서드를 완성하거나 할 수도 있습니다.
이런 부분은... 개인이 개발 경험을 해 나가면서 채워질 부분이라 생각합니다.

위 CRUD 방식에 대한 코드를 보고 싶은 분은
https://github.com/JaeeunSkywalker/jaeeunTheBlackrabbit/tree/26caebc14c4e292d1f148823ae1e77be488f6cc2
여기를 참고하시면 되겠습니다.

이외에 본 장에서 많이 중요하다 생각하는 개념 중에 스트림이랑 빌더 패턴이 있는데
이거는 다음 기회에 스트림 별도, 빌더 패턴 별도 이렇게 포스팅하겠습니다.
(정말 중요하기 때문에...!)

이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 6장 써머리입니다.

profile
여기는 일상 블로그, 기술 블로그는 https://yourhealingcoder.tistory.com/

0개의 댓글