SpringBoot 96

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 aws s3연동하기! aws s3권한 설정(정책생성기)

게시판 만들기 전 사진 저장을 위해 aws s3을 사용해보자 버킷을 만들고 폴더를 만들었다 권한 설정을 해주자 권한-> 버킷 정책-> 정책 생성기를 클릭하고 붙여 넣기 해주자 (기존 정책이 있어서 붙여 넣기는 하지 않았다) 프로젝트 메이븐 레포지토리에서 얻었다 implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.4.0-b180830.0359' 없으면 이상한 오류가 나서 찾아보다 넣었다 엥근데 지금은 저거를 주석 처리해도 잘 작동한다 무슨 javax java 버전 어쩌고 오류였는데 일단 같은 오류가 난다 싶으면 넣어보자 일주일 전에 연동해 서 그런가 가물가물하다... 끝 이제 게시판을 만들러 가보자! 사진에 빠졋는데 정책 생성시 ge..

aws/S3 2021.09.07

Springboot 결제시스템!(5) 가상계좌입금확인 +예약시스템 with아임포트

자 이제 테스트 페이지에서 입금 확인을 만들어주자 시나리오 입금확인->어떤종류인지 확인(예약인지/상품인지)->DB수정 웹 훅을 해야 하기 때문에 포트 포워딩을 꼭 해야 한다 restcontroller 아임 포트 여기로 던져준다 cancel/ready/paid든 paymentService 머 스타치 id가 vbank로 시작하는지 검사하자 if(status.equals("paid")&&merchantUid.startsWith("vbank")) 맞다면 impid를 이용해 찾는다 vBankDto vBankDto=vbankDao.findByPaymentId(paymentId); 상품/예약에 따라 테이블에 접근해 상태를 수정해준다 if(vBankDto.getKind().equals("reservation")) 결제..

Springboot 예외처리! with IllegalArgumentException

항상 가지는 고민이 있었다 예를 들어 userDto dto= dao.findByEmail(email) 했을 때 잘못된 값이 와서 null 반환된다면? 물론 try catch로 묶어서 throw new 런타임 익셉션으로 던지면 되지만 제네릭을 사용해서 dto를 널을 검사하고 null이면 예외를 던지면 어떨까...? 라는 생각을 하고 구현해봤다! 새로운 클래스를 만들었다 제네릭을 이용해서 dto 받은 다음 null이라면 예외를 일으킨다! errorRestController 테스트 전화인증 로직에서 말도 안 되는 값을 넣어놨다 완료! 사실 제네릭 한번 써보고 싶었다 ㅋㅋㅋ

Springboot Jwt+아이디 찾기!

회원가입 때 받은 전화번호로 아이디를 찾아보자 그냥 휴대폰 인증 한 번 더 구현해보는 것이다! https://cordingmonster.tistory.com/107?category=1038496 Spring boot Jwt+휴대폰인증!(1) with Coolsms 이제 전화인증을 구현할 건데 아임 포트를 사용하려 했으나... 다날 서비스를 신청해야 하고 다날 서비스 신청에는 사업자등록증이 필요해서 허접하지만 직접 구현했다! 1. 세션 인증을 요청-> cordingmonster.tistory.com 이전 로직에서 바꿔져야 할 부분이 있다 if(userService.confrimPhone(phoneNum))를 제거해주자 이게 있으면 아이디 찾기 시 인증번호를 보낼 수없다 물론 다른 함수를 만들어서 써도 된다..

Springboot Jwt 토큰 재발급!(1) with 리프레시토큰

이제 로그인 시 리프레시 토큰 유효기간을 체크 해서 리프레시 토큰 기간이 남았다면 로그인 시 리프레시 토큰 미발급을 진행하겠다 이유는 우리가 하루에 네이버/카카오 등 횟수를 생각하면 그때그때마다 리프레시 토큰을 db에 넣으면 엄청나 질 것이다 예 테스트 한건만 81개이다 3일 치 다 가지고 있었다면! 엄청났을 것이고 유저가 많다면! 리프레시 토큰 db가 아주 난리가 날것이다 그래서 로그인 시 기한 검사를 해주자! application 처음으로 사용해봤다 근데 저 노란 줄... 거슬리는데 작동은 잘된다 잘못 쓰고 있나 더 검사해봐야겠다! utillService timeStamp->localDateTime으로 변환 해주자 LocalDateTime timestamp2=timestamp.toLocalDateTi..

Springboot Jwt 토큰만들기!(1) with securiy

새 토이 프로젝트를 만들기 전 이전까지는 다른 인증 시스템을 만들고 싶었다 그러던 중 jwt 토큰을 발견했었고 너무 멋있었다 다중 서버+리프레쉬 토큰 db저장 우와... 무조건 해보고 싶었다 그래서 3일 동안 시도했고 성공했다! 시작해 보자! 이분의 강의를 보고 도전해봤다! https://www.youtube.com/watch?v=cv6syIv-8eo&list=PL93mKxaRDidERCyMaobSLkvSPzYtIk0Ah&index=12 1. 의존성 주입 implementation group: 'com.auth0', name: 'java-jwt', version: '3.18.1' https://mvnrepository.com/artifact/com.auth0/java-jwt/3.18.1 참 유용하고 좋은..

Springboot  문자 인증/전송!(1) with coolsms And Message

api방식을 사용하고 싶었는데 https://docs.coolsms.co.kr/authentication/api-key API Key 인증 방식 docs.coolsms.co.kr 진짜 토큰 받는 방식이 말도 안돼서 몇 시간 동안 고민하다가 어찌어찌했는데 보내려고 보니까 Authorization: apiKey=, date=, salt=, signature= 이건 json 전송도 아니고 뭔지도 모르겠어서 포기했다.. 진짜 엄청 돌아다니다가 마지막 방법을 찾았다 일단 실패한 방법 가장 흔히 돌아다니는 방법이었는데 https://velog.io/@woo0_hooo/Spring-Boot-%EB%AC%B8%EC%9E%90-%EB%B3%B4%EB%82%B4%EA%B8%B0-%EA%B5%AC%ED%98%84 [Spri..

Springboot 예약내역 페이지 만들기!(1) with thymeleaf

이제 예약 내역 페이지를 만들 건데 1. 예약시간이 지난 예약은 표시해주지 않는다 2. 히스토리를 같이 표시해준다 vo를 고쳐주자! 추후 수정/삭제를 위해 몇 가지를 추가해주자! @Column(name = "rid",nullable = false) int rid; @Column(name="email",nullable = false) String email; @Column(name = "seat",nullable = false) String seat; controller 예약 내역 페이지에 갈 때 필요한 것들이다 reservationservice.getReservationByEmail(email)는 시간이 아직인 예약 historyservice.getHistories(email,page,totalpages..