특정 책에 관심이 있어 클릭해서 상세페이지에 들어갔을 때, 클릭했던 책을 거래한 사람이 함께 거래했던 책을 추가적으로 보여주고 싶었다.유사한 관심사를 가진 사용자에게 함께 거래한 책을 추천함으로써 거래율을 증가시킬 수 있을 것이라 기대했기 때문이다. 주문을 할 때에 아래처럼 값을 보내주고 있다.orderList를 그대로 DB에 저장하고 싶지만, DB에 객체를 넣어줘야해서 보기가 불편할 것 같았다. { "renterUserId" : 1, "userName": "John Doe", "phoneNumber": "1234567890", "address": "123 Main St, Cityville, ST 12345", "deliveryMemo": "Leave at the front ..
분류 전체보기
참고 링크https://scoring.tistory.com/entry/JPA-양방향-연관관계와-연관관계의-주인-양방향-매핑-정리⭐ JPA 연관 관계 한방에 정리 (단방향/양방향, 연관 관계의 주인, 일대일, 다대일, 일대다, 다대다)본문 바로가기 JPA에서 가장 중요한 것연관 관계 매핑은 그 때 그 때 찾아보기보다는 비즈니스 로직, 비즈니스 요구사항에 따라 개발자가 더 적절한 관계 설정 방법을 선택해야하는 주제이기 때문에 학습하기 위하여 아래에 정리를 했습니다. 연관 관계 정의 규칙연관 관계를 매핑할 때, 생각해야 할 것은 크게 3가지가 있습니다.방향 : 단방향, 양방향 (객체 참조)연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:..
기존 양방향JPA 연관관계를 사용하여 사용자가 거래내역을 조회했을 때, 거래했던 상품들을 보여주고자 했다.Rental 클래스에 주문내역을 보여주고, RentalProducts에서 한 주문내역에 대한 제품들을 보여주도록 관계를 만들었다.💡 양방향 매핑 규칙객체의 두 관계중 하나를 연관관계의 주인으로 지정연관관계의 주인만이 외래 키를 관리(등록, 수정)주인이 아닌쪽은 읽기만 가능주인은 mappedBy 속성 사용X주인이 아니면 mappedBy 속성으로 주인 지정💡 연관 관계의 주인(Owner) 지정 방법외래키가 있는 곳을 주인으로 지정할것!→ Rental의 객체에서 값을 바꿨는데, RENTALPRODUCTS테이블에 쿼리문이 나가면 혼란스럽다. @OneToMany, @ManyToOne을 사용하여 양방향 매..
상황재고가 1개 남은 도서를 2명의 대여자가 대여 버튼을 동시에 눌렀을 때 재고를 초과하는 상황이 발생을 방지하고자 한다. 예를 들어, 선착순 쿠폰을 100개만 발급하고자 하는 경우랑 비슷하다고 보면 될 것같다. user가 대여 버튼을 누르면 Kafka를 이용하여 product-service로 대여 데이터를 전송한다. USER-SERIVCE// UserController@PostMapping("/addDeliveryOrder/{userId}")public void addDeliveryOrder(@PathVariable Long userId, @RequestBody RequestAddDeliveryOrder requestAddDeliveryOrder) { productService.addDelive..
문서 편집 Command + C: 복사Command + X: 잘라내기Command + V: 붙여넣기Command + A: 전체 선택Command + Z: 실행 취소Command + Shift + Z: 다시 실행Command + B: 굵은글씨(볼드체)Command + I: 이탤릭체(Italic)Command + U: 밑줄(Underline)option + command + 더하기(+): 글자 크기 크게option + command + 빼기(-): 글자 크기 작게Command + K: 하이퍼링크 추가Control + A: 줄의 처음으로 이동Control + E: 줄의 끝으로 이동Control + U: 줄 전체 삭제Control + K: 커서 위치에서 줄 끝까지 삭제Control + W: 커서 위치에서 단어 ..
처음에 설계했던 것과 달리 바뀐 부분도 보완하고누구나 어떤 프로젝트인지 개요만 보고이 구조 그림을 본다면 돌아가는 흐름을 바로 파악할 수 있는 구조를 그리고 싶었다. 아무래도 MSA로 프로젝트를 만들었다보니 많은 서비스가 분산되어 있어서어떻게 보기좋게 만들어야 할지 고민이 되었다. 검색해도 시스템에 대한 구성도뿐이라 참고하는 데에 도움이 되지 않았다. 구조를 그려내는 다양한 방법이 있다것을 알게 되었고내가 원하던 것은 어플리케이션 구성도라는 것이었다! 시스템 구성도정의: 하드웨어와 소프트웨어의 연결 구조를 보여주는 그림.목적: 시스템 전체의 구성 요소와 그들 간의 관계를 이해.초점: 하드웨어, 네트워크 장치, 서버 등의 상호 연결. 소프트웨어 구성도정의: 소프트웨어 내부 구조를 시각적으로 나타낸 그..
기존에는 아래 표처럼 user 1명이 제품을 찜하면 1행에 1개의 상품이 들어가도록 했다.그렇게 findAll로 1번 유저 찾아오기로 찜목록을 확인했다.1명의 uesr가 100개의 상품을 찜하면 100개의 행이 생긴다.이처럼 이렇게 할 경우에는 DB차지가 심하다는 걸 깨달았다. 그래서 새롭게 알게되어 다른 방법으로 찜 상품 폴더를 만들어 보고자 한다.아래처럼 1행에 1개의 상품을 넣는 것이 아니라, 배열을 만들어 찜 상품을 추가할 때는 product_id 필드만 수정하면 되는 방향으로 해보려고 한다. user_id product_id1112132122 puroduct_id에 넣을 때, 배열을 만들어 [1, 2, 3] 이렇게 넣는다.하지만 저장할 때는 Gson라이브러리를 사용해 Json형태로 저장하고..
org.apache.kafka:kafka_2.13와 org.springframework.kafka:spring-kafka 두 가지 의존성은 각각 Apache Kafka와 Spring Kafka 라이브러리를 제공합니다. 이 둘은 서로 다른 목적을 가지고 있으며, 주로 Kafka를 사용할 때 함께 사용되지만, 서로 다른 역할을 수행합니다.org.apache.kafka:kafka_2.13이 의존성은 Apache Kafka 클라이언트를 제공합니다. Kafka 클라이언트는 Kafka 브로커와 상호작용하기 위한 기본적인 라이브러리입니다. 이를 통해 프로듀서와 컨슈머를 직접 구현할 수 있습니다. 2.13 부분은 Scala 버전과 관련이 있으며, Kafka가 Scala로 작성되었기 때문에 필요합니다.주요 기능:Kafk..
dependencywepmysqljpa application.yml spring: jpa: hibernate: ddl-auto: create show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/coupon_example username: root password: 1234 요구사항선착순 100명에게 할인쿠폰 제공하는 이벤트 제공조건1. 선착순 100명에게만 지급되어야 한다.2. 101개 이상이 지급되면 안된다.3. 순간적으로 몰리는 트래픽을 버틸 수 있어야 한다. Coupon Entity@Entitypublic class..
//게시판의 게시글을 삭제하는 메서드 @Transactionalpublic void removeBoard(Long id)throws Exception{ replyDAO.removeAll(id); //삭제할 게시글의 답글 삭제 boardDAO.deleteBoard(id); //게시글 삭제 } 💡 @Transactional 애너테이션메서드 또는 클래스가 트랜잭션 내에서 실행되어야 함을 나타내는 데 사용된다. 💡 트랙잭션?데이터베이스 작업의 원자성을 보장하며, 작업이 성공하면 커밋되고 실패하면 롤백된다. 이렇게 함으로써 데이터 일관성을 유지할 수 있다.동시 접근하는 여러 프로그램 간 격리를 제공한다 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관..