[JPA STUDY] 4장. 엔티티 매핑
·
BE/자바 ORM 표준 JPA 프로그래밍
이전 장에서는 매핑한 엔티티를 실제로 사용하는 부분을 다뤘다면,이번 장에서는 엔티티를 매핑하는 부분을 다루게 됩니다. 매핑을 하기 위해서는 어노테이션과 xml을 사용하게 되는데 어노테이션을 사용하는 것이 더 쉽고 직관적이므로이 책에서는 어노테이션을 이용해서 매핑을 설명합니다. 먼저 객체와 테이블을 매핑하는 어노테이션에 대해 알아보겠습니다. 4.1 @EntityJPA를 사용할 때는 테이블과 매핑할 클래스에 @Entity를 붙여야 합니다. Entity의 속성으로는📍nameJPA에서 사용할 엔티티 이름을 지정하는 것입니다.설정하지 않으면 클래스 이름 그대로 사용하게 됩니다.(보통은 기본으로 클래스 이름을 사용합니다)다른 패키지에서 이름이 같은 엔티티가 있지 않게 이름을 구분하여 만들어주어야 합니다. 🏠 주..
[AWS 과금 문제] $0.005 per In-use public IPv4 address per hour : RDS에서 public ipv4 주소도 안 쓰고 있는데 왜 과금이 되고 있지?
·
project
😨 공포의 청구서현재 졸업 프로젝트 배포 관련해서 AWS를 쓰고 있는데어느날 청구서를 확인해보니 아래와 같은 항목으로 과금이 되고 있었다.  $0.005 per In-use public IPv4 address per hour라는 부분에서만 과금이 되고 있는 상태였는데이 항목은 IPv4 주소를 사용하고 있을 때 발견되는 문제이다! AWS에서는 2024년부터 IPv4 주소 고갈로 인해 IPv4주소를 가져오는데 이전과 3배 이상의 비용이 든다는 이유로IPv4 주소 사용에도 과금을 하기로 했다. 그리고, 프리티어로 사용할 때는 한 개의 EC2에서는 하나의 public IPv4 주소를 연결하는 것은 무료이다.그렇기에 나도 백엔드 서버로 활용할 EC2 서버에 탄력적 IP를 연결해둔 상태였다...!  그래서 현재 ..
[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..
[배포관련 문제해결] scheduled로 0시에 저장되는 redis 데이터가 저장이 안되는 현상 해결
·
project
어제 잘되는 걸 확인하고 잤는데 일어나보니까 redis에 데이터가 하나도 없었다...나는 redis의 zset으로 인기있는 순을 정렬하는 것인데 로그를 확인해보니2025-03-11T19:37:30.772+09:00 WARN 326893 --- [bszip] [nio-8080-exec-9] o.s.w.s.resource.ResourceHandlerUtils : "Path with "WEB-INF" or "META-INF": [src/main/webapp/WEB-INF>2025-03-11T23:31:53.777+09:00 WARN 326893 --- [bszip] [nio-8080-exec-9] o.s.w.s.resource.ResourceHandlerUtils : "Path with "WEB..
[AWS] 프론트엔드, 백엔드 route53으로 따로 배포 시 DNS 에러 문제 해결
·
카테고리 없음
💢 어떤 문제 상황이었을까요? 서버 배포가 잘 안되는 상황이었는데, 프론트엔드에서는 s3과 cloudfront를 이용해서 배포가 된 상황이었고 백엔드에서도 EC2, route 53, ACM으로 인증서 받기, 받은 인증서를 이용한 로드밸런서 생성을 통해 https로 배포를 한 상황이었다.그러나 지속적으로 DNS 문제가 발생해서 제대로 쿼리를 날리지 못하는 상황이 발생했다.DNS_PROBE_FINISHED_NXDOMAIN 프론트 팀원이 이전의 프로젝트에서도 이러한 상황이 있었다고 해서 대충 어떤 문제인지는 파악할 순 있었지만, 해당 팀원이 배포를 진행한 것은 아니였기 때문에 즉시 문제를 해결할 수는 없는 상황이었다...! 그래서 관련 블로그도 많이 찾아보고 하다가 결국 해결하기는 해서 오늘 한 번 정리를 ..
[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..