독학 146

Springboot 게시판만들기!(3)게시물 수정/삭제

이제 게시물 수정 삭제를 만들건대 다시 한번 summernote가 필요하다 프런트 서버 사진 올리는 함수는 jslib로 뺐다 그리고 수정 요청을 하면 글자 수 체크를 해야 하는데 summernote에서 글만 빼오는 방법을 아직 모른다 그래서 패스! 백엔드 서버 글 수정 boardService 글을 조회한다 articleDto articleDto=articleDao.findById(tryUpdateArticleDto.getBid()).orElseThrow(()>new IllegalArgumentException("존재하지 않는 게시글입니다")); 로그인 정보를 가져온다 userDto userDto=userService.sendUserDto(); 로그인이메일=작성자인지 검사한다 confrimUpdateArt..

Springboot 게시판만들기!(2) 게시글+댓글 불러오기!

글+댓글을 같이 들고 오자 프런트는 서버 댓글 버튼 같은 경우는 댓글 파트에서 봐보자! 백엔드 서버 restcontroller dto service 페이징 시작 지점 구하기 int first=utillService.getFirst(nowPage, pagesize); 글+댓글+댓글 총 몇 개 인지 구하기 ListgetArticleinters=articleDao.findByBidJoinComment(bid, bid,first-1,pagesize).orElseThrow(()->new IllegalArgumentException("존재하지 않는 게시물입니다")); 전체 페이지 구하기 int totalPage=utillService.getTotalpages(getArticleinters.get(0).getTota..

Springboot 게시판만들기!(1) 글목록 구현

이 토이 프로젝트도 마지막 장에 들어왔다 게시판을 이제 만들건데 글쓰기는 이전에 일부 구현했다 https://cordingmonster.tistory.com/153?category=1046973 Springboot 게시판만들기!(1) 글쓰기 summernote 연동하기 이제 에디터를 연동할 건데 ckeditor5/summernote 둘 다 성공했지만 결국 summernote를 선택했다 이유는 ckeditor5 이미지 업로드 시 쿠키를 던져야 하는데 그걸 아직 하는 법을 모른다 그거만 알면 ckeditor5 cordingmonster.tistory.com https://cordingmonster.tistory.com/154?category=1046973 Springboot 게시판만들기!(2) 글쓰기 썸네일..

Springboot 음식구매시스템!(2) 구매하기!

이제 구매만 만들고 게시판 만들러 가자! 프런트 서버 buyFoodPopUP 부모 창 함수 호출 selectItems=opener.parent.getSelectItems(); 삭제 발동될 함수 function deleteItem(className) for(var i=0;i 세틀 뱅크 현재 세틀 뱅크 디렉트 연결 예약 cordingmonster.tistory.com https://cordingmonster.tistory.com/162?category=1041862 Spring boot 결제시스템 리팩토링!(2) with 세틀뱅크/카카오페이 일반 결제 취소 = 카드/카카오페이/가상계좌 입금 후 = 돈이 들어온 후 환불만 해주면 됨 시나리오 요청-> 취소가능 여부 검증-> 예약/상품 테이블 선택 아이템 삭제-..

Springboot 음식구매시스템!(1) 상품 보여주기!

원래 그냥 바로 게시판으로 가려했는데 궁금한 게 생겼다 1. 진짜 예약 말고 상품 구매 시 잘 작동할까? 2. 좀 허전하네 커피/케이크 정도는 구매해보자 라는 생각이었다 다행히 잘 작동했다 프런트 서버 foodBuyPage 입장 시 아이템 정보를 가져온다 디폴트 coffee getFood('coffee'); 아이템 정보를 뿌린다 for(var i=0;inew IllegalArgumentException("존재하지 않는 카테고리입니다")); 상품정보 담아서 json배열로 주기 for(productDto p: productDtos){ 결과 버튼을 누르면 카테고리에 맞게 잘 가져온다 아 프런트도 css나 이런 걸 좀 공부해서 좀 이쁘게 해야 할 거 같은 생각이 든다 일단 이번 토이까지는 생짜로 가보자!

Springboot 로그인 리팩토링! with ResponseCookie

access/refresh토큰을 쿠키로 주고 있었다 프런트가 http->https가 된 이후로 크롬에서 테스트를 안 해봤는데 우연히 들어갔다가 samesite이슈에 걸려서 쿠키를 다시 발급하게 됐다 cookie->ResponseCookie로 변경하였다 cookieService httponly옵션은 없으니 수기로 작성해주자! 추가 httponly옵션 있음 테스트 이슈가 사라지고 잘 로그인된다! (Csrf토큰은 그냥 마음대로 만든곳이니 무시해주세요)

Springboot 결제시스템 리팩토링!(3) 가상계좌 입금전 부분취소 with 세틀뱅크

마지막 페이즈이다 제일 어려웠다 가상계좌는 입금 전/후로 나뉜다 거기서도 부분취소가 제일 문제가 된다 입금 후라면 그냥 환불이지만 입금 전이라면... 복잡해진다 일단 세틀 뱅크 사이트를 보는데 채번 수정? 은 찾지 못했다 대신 가상계좌 채변을 서버에서 다시 받을 수 있었다 그래서 이렇게 만들었다 시나리오 부분 취소-> 새로 채번 받기->db수정-> 기존 채번 취소 paymentService는 똑같으므로 참고 바랍니다 https://cordingmonster.tistory.com/162 Spring boot 결제취소/예약취소 리팩토링!(1) with 세틀뱅크/카카오페이 일반 결제 취소 = 카드/카카오페이/가상계좌 입금 후 = 돈이 들어온 후 환불만 해주면 됨 시나리오 요청-> 취소가능 여부 검증-> 예약/..

Spring boot 결제시스템 리팩토링!(2) with 세틀뱅크/카카오페이

일반 결제 취소 = 카드/카카오페이/가상계좌 입금 후 = 돈이 들어온 후 환불만 해주면 됨 시나리오 요청-> 취소가능 여부 검증-> 예약/상품 테이블 선택 아이템 삭제-> 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기-> 아이디별 환불 pg사 전송 가상계좌 미입금 부분 취소 = 채번 새로 받은 후 기존 채번취소 요청 요청-> 취소가능 여부 검증-> 예약/상품 테이블 선택 아이템 삭제-> 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기-> 새 채번 요청-> 새 계좌/가격 상품/예약/결제 테이블 수정-> 채번 취소 요청 고비는 크게 두 가지였다 1. 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기 2. 새 계좌/가격 상품/예약/결제 테이블 수정-> 채번 취소 요청 일단 최선을 다..

Springboot 예약내역 페이지 리팩토링! with left join

이전 원가+예약 내역 join 후 카드/카카오페이/가상계좌 이렇게 나눠져서 또 db를 들렀다가 왔다 현재 left join으로 다 들고 오게 했다 dao 날짜 미지정 검색 @Query(value = "select a.*,b.price,c.*,v.*,k.* from reservation a inner join product b on a.seat=b.product_name left join card c on a.payment_id=c.cmcht_trd_no left join vbank v on a.payment_id=v.vmcht_trd_no left join kakaopay k on a.payment_id=k.ktid where a.email=? order by a.id desc limit ?,?",nat..

Springboot 결제 시스템 리팩토링!(1) 카드/가상계좌 세틀뱅크

바보였다 테스트 신청하자마자 하면 되는 거였는데 3일 전에 알고 부랴부랴 시스템을 개편했다 진짜 힘들었다 변동사항 결제 요청 이전 아임 포트-> 세틀 뱅크 현재 세틀 뱅크 디렉트 연결 예약시스템 이전 총액 받기->가상계좌라면 날짜 받기 현재 필요 정보 한 번에 다 받기 예약+결제 이전 예약 시도-> 결제 후 검증-> db저장 현재 예약 시도-> 결제/상품 임시 테이블 저장-> 결제 검증-> 메인테이블 저장 임시 테이블은 재고에 안 잡히고 결제 영향도 없는 테이블이다 그냥 스프링 스케줄러+배치로 하루에 한 번씩만 비워주면 될 거 같다 테이블 구조도 변경하였다 예약은 예약정보만/결제는 결제정보만 들고 있을 수 있게 했다 결제 테이블도 card/vbank/kakaopay 이렇게 종류별로 나눴다 아 개편하는데 ..