본문 바로가기

프로젝트

(10)
[SpringBoot] 경매사이트 만들기 - 결제 서비스 (feat.아임포트, 카카오) - 2 https://record-developer.tistory.com/144 [SpringBoot] 경매사이트 만들기 - 결제 서비스 (feat.아임포트, 카카오) - 1 들어가기전.. 들어가기전 먼저 최종 계획을 말해보자면... 결제 서비스로 유저가 결제한뒤 받은 금액에서 수수료5%를 제외하고 나머지 금액을 경매물건을 올린 유저에게 이체시켜주는 시스템을 record-developer.tistory.com 이번포스팅은 위의 포스팅을 이어서 결제 검증을 하고, 결제 검증이 실패했을때 결제 승인 취소를하는 포스팅을 해보겠따! 결제 검증을 해야하는 이유? 결제 검증을 해야하는 이유는 아임포트 연동 가이드에 나와있는데 요약하자면 유저가 스크립트 조작해서 가격 변동시킬 수 있다 -> 이를 방지하기 위해 서버에서 옳바..
[SpringBoot] 경매사이트 만들기 - 결제 서비스 (feat.아임포트, 카카오) - 1 들어가기전.. 들어가기전 먼저 최종 계획을 말해보자면... 결제 서비스로 유저가 결제한뒤 받은 금액에서 수수료5%를 제외하고 나머지 금액을 경매물건을 올린 유저에게 이체시켜주는 시스템을 만들려고한다. (이체는 금융결제원의 api를 이용할생각) 이를 하기위해 먼저 아임포트 api를 이용해 결제서비스를 구현했으며 어떤식으로 구현했는지, 어떤 부분을 수정했고, 추가했는지에 대해서 하나씩 구현과정을 보면서 같이 포스팅 해보려한다! 아임포트 결제서비스를 구현하기 위해 무료로 제공되는 대표적인 api는 부트페이와 아임포트가 있다. 이중에서 필자는 아임포트를 이용했는데, 이때 결제 시스템은 KG이니시스(웹표준결제창)을 이용했다. KG이니시스를 이용한 이유는 카카오페이, 네이버페이 외에 여러가지 카드들로 한번에 결제 ..
[SpringBoot] 경매사이트 만들기 - 페이징(JPA), 좋아요 수정했음 ※수정사항 ActionBoardController의 actionDetailPost 메소드에서 전에는 게시물 번호를 String으로 매개변수로 받아서 long으로 변환해줬는데, 굳이 그럴필요가 없어서 처음부터 long으로 받도록했다. 게시물 보는사람이 회원인지 비회원인지를 구분하는 부분을 Controller에서 작성했었는데 Service 계층에서 작성하는게 관리가 쉽고, 보기 편할듯해서 ActinoBoardService에 checkMember 메소드를 만들어줬다. 이전에 게시판 작성할때 파일 업로드를 하려고 Photo 테이블을 추가했는데 수정된 ERD를 안올렸었다.. 깜빡ㅠ 좋아요 만들었을때 추가와 삭제를 모두 POST방식으로 해서 하나의 컨트롤러로 요청이 드가게 했는데, 이부분을 추가할땐 POST 요청,..
[SpringBoot] 경매사이트 만들기 - 좋아요 기능(Ajax) 이번엔 좋아요 기능에 대한 포스팅을 해보겠다ㅎㅎ 먼저 ajax로 좋아요 기능을 만들기 위해 추가된 부분 1. actionBoard.js 에 좋아요 js 추가. 2. MyPickApiController -> RestController 3. MyPickService 4. MyPickRepository 5. MyPickUpdateVO 결과 1. 좋아요 기능이 있는 부분의 jsp actionDetailPostForm.jsp ${pickCnt} ${pickCnt} 좋아요 jsp 부분이고 input 태그의 타입을 image로 설정해서 해당 이미지를 클릭했을때 매개변수(false || true)와 함께 js 쪽으로 넘어가게 만들었다. 그리고 input 태그는 현재 유저가 해당 게시물에 좋아요를 클릭했었는지 안했었는지..
[SpringBoot] 경매사이트 만들기 - 경매 게시글 작성 및 상세보기 먼저 포스팅하기전 수정사항 부터 말하려고한다. 1. 이전에 시큐리티 설정에서 비회원은 auth/** 인 url만 허용하도록 했었는데, 생각해보니 어차피 나는 @Secured를 사용하기 때문에 굳이 url을 나눌필요를 느끼지 못했다. 그래서 auth는 없앴고, 회원만 사용가능한 부분에선 컨트롤러 쪽에 @Secured를 이용해 통제하도록 했다! 2. 이미지 첨부를 위해 Photo테이블을 만들고, 기존에 ActionBoard테이블에 있떤 사진 칼럼은 삭제했다! Photo.java package org.my.toyproject.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Genera..
[SpringBoot] 경매사이트 만들기 - 회원가입 및 로그인(시큐리티 적용2) 이전 포스팅에선 수정사항, 회원가입 페이지 및 member.js까지 알아봤다. 1. 수정사항(완료) 2. 회원가입 페이지 구현(완료) 3. 로그인 페이지 구현 4. 시큐리티 적용해서 회원가입 로그인해보기! 그리고 이번 포스팅에선 3번, 4번을 포스팅 하려고한다 ㅎㅎㅎ ● 로그인!! 회원가입은 버튼을 누르게되면 js에서 ajax를 통해 회원가입을 해서 버튼이 form태그가 바깥에 있지만 하지만 로그인의 경우 스프링 시큐리티가 대신 해주기 때문에 form태그 안에 버튼이 있어야하고, 당연하게도 form태그의 action과 method를 정해줘야한다. (로그인 페이지) LoginForm.jsp Find My Id / Find My Password Login Join 로그인은 앞서 말했다시피 시큐리티가 대신 로..
[SpringBoot] 경매사이트 만들기 - 회원가입 및 로그인(시큐리티 적용1) 이번 포스팅은!! 스프링 시큐리티를 이용한 회원가입 및 로그인을 포스팅 하려고한다. 1. 수정사항 2. 회원가입 페이지 구현 3. 로그인 페이지 구현 4. 시큐리티 적용해서 회원가입 로그인해보기! 순서는 이렇게 진행할 생각이다 ㅎㅎ 그전에 먼저 수정사항부터 짚고 넘어가자. ● ERD 수정! 회원, 권한, 찜 테이블을 수정했다. 회원 테이블 : 닉네임을 기본키로 하는것보다 시퀀스로 하는게 관리하기에 더 효율적이라고 생각했음.( 닉네임과 이메일은 유니크키로 중복없게 만듦.) 권한, 찜 테이블 : 이전에 MyBatis를 사용할땐 기본키를 복합키로 줬었는데,, 알아보니 JPA에선 첫번째로 별 관계는 부모 테이블의 기본 키를 자식 테이블로 전파하면서 자식 테이블의 기본 키 컬럼이 점점 늘어난다. 두번째로 식별 관..
[SpringBoot] JPA 테이블 생성 먼저 기존 erd에서 바뀐점이 하나 있는데, 각 신고 테이블에 유저 닉네임을 외래키로 제약조건을 걸어 놨다. (누가 신고했는지에 대해 반드시 값이 있어야 한다고 생각해서 걸어놓음.) 여튼 오늘은 JPA를 이용해 위의 테이블 관계대로 테이블을 생성할 생각이다. 그러기전에 먼저 JPA에 대해 간략하게 보자. JPA JPA는 ORM의 일종으로 객체를 기준으로 해서 DB의 테이블과 매핑 시켜주는 역할을 한다. 이게 말로만 하면 잘 이해가 안갈수도 있는데, 한마디로 기존에 Java와 DB를 연결 시키고 테이블을 생성할때 "DB테이블을 SQL문 작성을 통해 생성 -> 자바에서 VO(or DTO) 클래스 만들기" 이과정을 거쳤다. 하지만 JPA를 쓰게 되면 이과정이 정반대로 일어난다. 즉, 자바 객체를 중심으로 관계..