[JPA STUDY] 4장. 엔티티 매핑
·
BE/자바 ORM 표준 JPA 프로그래밍
이전 장에서는 매핑한 엔티티를 실제로 사용하는 부분을 다뤘다면,이번 장에서는 엔티티를 매핑하는 부분을 다루게 됩니다. 매핑을 하기 위해서는 어노테이션과 xml을 사용하게 되는데 어노테이션을 사용하는 것이 더 쉽고 직관적이므로이 책에서는 어노테이션을 이용해서 매핑을 설명합니다. 먼저 객체와 테이블을 매핑하는 어노테이션에 대해 알아보겠습니다. 4.1 @EntityJPA를 사용할 때는 테이블과 매핑할 클래스에 @Entity를 붙여야 합니다. Entity의 속성으로는📍nameJPA에서 사용할 엔티티 이름을 지정하는 것입니다.설정하지 않으면 클래스 이름 그대로 사용하게 됩니다.(보통은 기본으로 클래스 이름을 사용합니다)다른 패키지에서 이름이 같은 엔티티가 있지 않게 이름을 구분하여 만들어주어야 합니다. 🏠 주..
[JPA STUDY] 03. 영속성 관리
·
BE/자바 ORM 표준 JPA 프로그래밍
지난 주에 스터디한 내용으로는기존의 방식은 관계형 데이터베이스와 객체와의 패러다임 불일치 등으로 인한 문제가 발생한다는 점을 알아보았고그에 따라 "왜 JPA를 사용해야 하는가"와직접 엔티티매니저를 이용한 간단한 CRUD 작업을 JPA로 해보았습니다.  이번주에는 영속성 관리에 대해 정리해보는 시간입니다 😊 JPA가 제공하는 기능은 크게 두 가지입니다.그 중 이번에는 매핑한 엔티티를 실제 사용하는 부분을 알아 보겠습니다!  ★ 3.1 엔티티 매니저 팩토리와 엔티티 매니저지난 시간의 실습을 통하여 엔티티 매니저를 통해엔티티와 관련된 일을 처리하는 간단한 방식에 대해 알아보았습니다. 그리고 엔티티 매니러를 생성하는 곳은 바로 엔티티 매니저 팩토리 였습니다.아래와 같은 코드로 엔티티 매니저 팩토리를 생성합니다..
[node.js/md-site]Session 기반 kakao login 구현
·
BE/node.js
📍Login 방식서버가 클라이언트 인증을 확인하는 방식은 쿠키 세션 토큰이 대표적이다.cookie의 경우에는 보안에 취약하고 용량이 제한적이라는 단점이 있다.그래서 요즘에는 거의 다 jwt 아니면 session을 사용하는 것 같다 ㅎㅎ❓ Session 기반클라이언트의 민감한 인증 정보를 서버 측에서 저장 / 관리cookie는 브라우저가 관리했다…서버 메모리 저장해도 되고 데이터베이스에 저장해도 된다!Session 인증 방식 정리유저가 로그인하면 세션에 서버에 저장session id를 기준으로 정보 저장함서버는 브라우저의 쿠키에 session id 저장request에서 session id를 쿠키에 담아 전송서버는 클라이언트가 보낸 session id와 서버에서 가지고 있는 session id를 비교하여 ..
[ JPA STUDY ] 2장.JPA 시작
·
BE/자바 ORM 표준 JPA 프로그래밍
이 장에서는 jpa를 이용하여 테이블을 CRUD하는 jpa 어플리케이션을 만들어본다.📍2.1 이클립스 설치와 프로젝트 불러오기IDE로 이미 인텔리제이가 깔려있어서 그걸 사용하기로 했다...ㅎㅎ📍2.2 H2 데이터베이스 설치h2도 이미 깔려있었고 Member 테이블만 만들어주었다.📍2.3 라이브러리와 프로젝트 구조jpa 구현체로 하이버네이트를 사용하기 위한 핵심 라이브러리는 아래와 같다1. hibernate-core : 하이버네이트 라이브러리2. hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리3. hibernate-jpa-2.1-api : JPA 2.1 표준 API를 모아둔 라이브러리🍥 2.3.1 메이븐과 사용 라이브러리 관리메..
[ JPA STUDY ] 1장. JPA 소개
·
BE/자바 ORM 표준 JPA 프로그래밍
📍JPA 공부를 시작하며...프로젝트를 진행하면서 JPA를 사용했고 지금도 사용 중이긴 하지만, 그 안에 담긴 원리를 제대로 파악하고 있지 않은 채 JPA를 활용하고 있어서 때로는 답답했고 구글링을 하고 관련 블로그도 찾아보긴 했지만, 매번 찾아보는 것도 일이었다. 그래서 이번 기회에 김영한님의 'JAVA ORM 표준 JPA 프로그래밍'을 통해서 영속성, 트랜잭션 등 JPA 관련 공부를 해보기로 했다.📍01. JPA 소개💬 1-1 SQL을 직접 다룰 때 발생하는 문제점자바 어플리케이션은 대부분 MySQL과 같은 RDB를 데이터저장소를 활용하고 이를 관리하는 용도로 SQL을 사용한다.JDBC API를 이용해서 SQL을 DB에 전달하기 때문에 SQL을 다루게 된다. ✅ 반복되는 코드로 인한 비효율성CR..
[Spring Boot] Redis를 이용한 좋아요 순 리뷰 정렬 api 구성
·
BE/스프링부트
🥐 왜 Redis를 사용하게 되었는가?책 리뷰와 책 리뷰에 대한 좋아요, 두 테이블이 존재하는 상태에서 각 리뷰마다 좋아요 개수를 알아내는 것은 사실 sql 쿼리로도 구현해낼 수 있다. 그러나 그렇게 하게 되면, 많은 데이터가 존재하는 경우 지속적으로 해당 쿼리를 실행시켜서 가져오기 때문에 성능 저하 발생할 수 있다고 생각했고, 그런다고 하는 이야기를 전해들었다! 그래서 구글링을 통해서 redis에서 캐싱을 이용해서 좋아요 수를 가져오기로 했다. 그렇지만,, 나는 redis에 대해 잘 알지 못했고 엄청 억지로 코드를 작성하게 되었다.(부끄부끄 😳) 그래도 작성한 코드이니 한 번 정리하는 것이 좋을 것 같아 이 글을 쓰고 있다.ㅜㅜ 레쭈고 ~ ♣ 🥐 Redis.. 이것 뭐예요???Redis는 치타, ..
[Spring Boot] 최신 순 리뷰 불러오는 api 작성
·
BE/스프링부트
이번에는 작성된 책 리뷰를 불러오는 api를 만들었다.한 개의 테이블에 해당되는 정보만 불러오면 편했을 것 같은데, 그게 아니라서 편하지는 않았다 ... 아직 내가 부족해서 그런 거겠지만 🥲 그리고 구조도 고민되는 부분이 많았고 코드를 짜면서도 비효율적이라는 생각이 많이 들었다.. 그런데 어떻게 개선해야될지를 잘 모르겠어서 추후에 꼭 수정해야겠다는 생각을 했다📖 BookReview DTO @Builder@Getter@NoArgsConstructor@AllArgsConstructorpublic class BookReviewResponse { private Long bookReviewId; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yy..
[Spring Boot] 작성한 도서 리뷰 저장하기
·
BE/스프링부트
앞으로 코드 작성 후에 조금이나마 왜 이 코드를 작성했는지 적어보려고 한다  사실 이전에 진행한 도서 검색은 단순히 도서 리뷰 작성을 위한 한 걸음이었을 뿐이다.일단은 도서 검색 -> 검색한 도서의 isbn을 통한 도서 리뷰 작성이 도서 리뷰 작성의 큰 틀인데,오늘은 도서 리뷰를 작성할 수 있는 api를 만든 것에 대해 정리를 해보려고 한다... 근데 너무 주먹구구로 한 감이 있어서 단순 정리용이다...! 절대 이 글을 참고해서 뭘 만들면 안됨!! 🥐 DB 구성 이런 식으로 DB를 짜놓았는데 사실 여기서 지우거나 만든 column도 있다 ㅎㅎ그리고 좋아요도 다른 테이블로 저장하게끔 되어있다일단은 좋아요 기능은 추후에 만들거라 아직 구성은 하지 않은 상태이다. 리뷰랑 책, 회원이 연관관계이므로 이 부분에..
[SpringBoot] 카카오 도서 검색 api 사용하기
·
BE/스프링부트
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 위의 링크에서 친절하게 설명되어 있는 내용을 사용해서 개발을 하게 되었다. 🧑‍💻 왜 카카오 도서 검색 api를 사용했을까?책 리뷰를 남기는 서비스를 개발 중인데 이 작업에서 사용자가 책 제목이나 작가로 책을 검색하면 클라이언트로 정보를 전달해주는 작업이 필요했다. 처음에는 출판 전산망 api를 사용하려고 했는데 이 api를 사용하려면 신청서를 제출해야 하기도하..