프로젝트 5

QLRM라이브러리사용

QLRM라이브러리 사용해서 DTO를 매핑해 보겠습니다. QLRM라이브러리 의존성 org.qlrm qlrm 2.1.1 QLRM라이브러리란?? qlrm은 DB에서 Result 된 결과를 자바 클래스에 메핑 해주는 라이브러리. QLRM를 사용하는 이유 다음과같은 쿼리는 모델의 형태로 리턴 받을 수 없고 DTO로 받아내야 하는 쿼리다. 이처럼 DTO로 받아 내야 하는 쿼리라면 JPARepository를 상속받은 인터페이스로 native쿼리를 짜서 날릴 수 없다. 왜냐하면 상속받은 클래스 타입의 모델만 리턴을 해주기 때문. 그렇기 때문에 DTO로 DB에서 결과를 받아야하면 JPARepository를 사용할 수 없다. 기능예시 그래서 @Service단에서 직접 쿼리를 짜서 던져야한다. 주석이 중요한 내용이고 코드는..

Springboot 2021.12.26

현재 진행 중인 프로젝트에서 구독하기 API구현하기 (1)연관관계/모델만들기

연관관계 먼저 구독하기 API를 구현함에 앞서서 연관관계에 대해서 분석을 해야 한다. 기본적인 공식 제1 정규형인 원자성만 지켜지면 웬만해선 다 해결된다. - 1 : N의 연관관계에서는 폴인키(FK)를 Many가 가진다. - N : N 의 관계가 됐을 때는 테이블을 쪼개서 중간 테이블을 만들어 관리한다. -그리고 이 중간 테이블과의 관계는 중간 테이블이 1, 연관 테이블이 N이 된다. 구독하기는 유저끼리 서로가 해주는 것이기 때문에 N:N의 연관관계가 나온다. 그렇기 때문에 위 공식에 맞게 중간 테이블을 만들어서 관리를 해준다. 모델 만들기 @Table을 사용해서 fromUser와 toUser가 구독을 했을 때 한 번만 db에 등록되도록 Unique제약조건을 걸었다

Springboot 2021.12.17

체크박스를 통해서 자바스크립트로 fetch요청하기

지금 하고 있는 쇼핑몰 만들기 프로젝트에서 체크된 항목들을 삭제해야 하는 기능이 있다. 그럼 하나의 값을 받아오는게 아니라 체크가 된 모든 값들을 받아와야 한다. 체크박스의 name값으로 자바스크립트에서 해당 체크박스의 체크 여부 등을 알 수 있는데 이때 체크박스의 벨류 값으로 찾아야 하는 db의 아이디 값을 value로 설정해줌으로써 위 checkNull의 값은 체크가 된 컨탠츠의 db데이터의 pk값이 들어가게 된다. 그리고 this.value로 값을 옮겨서 출력했다. 자바스크립트에서 반복해서 요청을 하도록 로직을 짜 놨기 때문에 봔환값없이(void)로 삭제만 하도록 기능을 설정했다.

Springboot 2021.08.11

지금 하는 프로젝트에서 상품평 기능 구현하기/이미지 업로드/상품평 수정/삭제 기능 구현

지금 쇼핑몰 프로젝트를 STS로 하고 있는데 상품평 기능을 구현하는 중에 블로그에 정리하면 좋을 것 같아서 정리합니다. 일단 상품평은 해당 상품의 상품평만 보여줘야 하고 상품평을 관리하는 페이지에서는 해당 유저가 작성한 상품평만 관리할 수 있도록 해야 하는 것이 관건이다. 상품평 DB생성 한 명의 유저가 여러 개의 코멘트를 가지고 있고 한 명의 유저가 여러 개의 상품을 가지고 있기 때문에 원자성 유지를 위해 여기서 폴인키를 다 가지고 있도록 설계해 줬다 상품평 작성하기 엉망이지만 대충 만들어 봤다 상품평 쓰기 버튼을 누르면 위와 같은 모달 창이 나와서 form타입으로 method는 post로 전송하게 된다. 여기서 보면 이미지 등록하기가 있다 상품 착용샷 같은 것을 올릴 수 있도록 ui를 제공하기 위해서..

Springboot 2021.08.08

지금 만들고 있는 프로젝트에서 결제 API(import) 사용해보기/결제 후 결제 list화면 구현

지금 포트폴리오 만든다고 쇼핑몰을 만드는 프로젝트를 하고 있는 와중에 결제 api를 사용하는 방법을 공부 중이다 결제 api는 자바스크립트로 호출되기 때문에 onsubmit을 사용해서 action이 이뤄지지 않고 해당 자바스크립트 함수가 사용되도록 설계했다. 회원들이 불필요한 중복된 정보를 적는 건 ux가 좋지 않다 그래서 로그인된 사람만 들어올 수 있는 페이지로 프로그램을 짜고 session에 있는 user의 값을 넣어줬다 이제 결제 api를 호출할 때 사용할 db의 정보를 인수로 넣어준다. 인수에 있는 값들을 응답받을 파라미터의 값에 맞게 넣어준다. 정상적으로 api가 작동한다 이제 결제를 완료했을 때 어떤 데이터를 받을 수 있는지 알기 위해서 import페이지에서 문서를 찾아보자. 참고로 testA..

Springboot 2021.08.02