Springboot 103

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

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

Springboot 2021.08.02

공공데이터 활용하기/(2pojo(json데이터 자바오브젝트로 만들어주는 사이트) /(gson사용하기)

https://www.data.go.kr/ 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 일단 여기 가입해서 활용할 데이터를 신청을 해놓는다. 승인이 떨어지기까지 시간이 좀 많이 소요되니 작업하기 전에 미리미리 해놓는 것을 추천합니다. 우리나라는 공공데이터 강국이라 고 합니다. 어떻게 강국이 됐을까요? 20년정도 전에 이제 막 스마트 몬이 나오기 시작할 때에 어떤 고등학생이 버스시간에 맞춰서 나오는 게 어려우니까 한 어플을 개발했는데 그 어플이 버스시간을 버스 홈페이지에서 클로링해서 알려주는 어플을 개발한 것이다. ..

Springboot 2021.07.29

Spring boot로 지금 하고 있는 프로젝트에서 coolsms연동해서 문자 인증 구현하기

일단 coolsms 가입해서 api인증키를 받아오셔야 구현하실 수 있습니다. https://coolsms.co.kr/ 세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스 손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식 coolsms.co.kr 컨트롤러 렌덤으로 인증번호를 6자리 뽑도록 로직을 작성했습니다. sdk사용 로직 빨간네모에는 인증키를 넣어주세요 jsp에서 name값 맞춰서 보내면 인증번호가 문자로 잘 전송된다. 참고 추가의존성 net.nurigo javaSDK 2.2

Springboot 2021.07.28

Spring boot/JPA 사용해서 이미지 업로드 구현

툴 : vscode spring프레임워크로 이미지 업로드를 구현해보자. 이미지 기본이론 일단 기본적인 이미지 요청 응답의 메커니즘을 생각해보자. 이미지 업로드를 요청했다고 생각하면 결국 통신 중에는 이미지가 문자열 데이터로 전송된다. 이때 content타입이 text/plain이라고 가정해보면 역직렬 화할 때 문자열로 출력이 될 것이다 그래서 요청 content타입을 먼저 맞춰줘야 한다. 그리고 io가 일어나서 이미지가 저장될 때 db에 바이너리 데이터가 그대로 들어가면 사진을 관리할 수 없다. 그래서 이미지는 원래 파일이기때문에 파일로 관리해야 한다. 즉 db에 주소 번지가 저장되야하는 것이다. 위 데이터를 컨트롤러에서 받기 위해선 먼저 name값이 전송되니 그 전송되는 name값으로 매개변수를 받으면..

Springboot 2021.07.28

JPA Paging 구현 연습

게시글이 많아졌을 때 스클 롤이 길어지는 게 아니라 페이지로 넘어가도록 구현해보자 PageRequest객체 위오버로딩된 자료를 보면 page와 size를 적으면 된다라고 나와있는데 위 객체만 사용한다고 되지 않는다.. 이럴 땐 requestBody로 json데이터를 받아서 디버깅해 봐야 한다. 위 json데이터를 보면 어떻게 해야 할지 답이 보인다. 1.requestBody로 내부적으로 어떻게 데이터가 들어오는지 체크한다. 2. 데이터를 보고 어떻게 처리할지 정한다. 3.PageRequest객체 사용한다.

Springboot 2021.07.27

인터셉터 처리

톰켓은 필터를 가지고 있다. 인증처리를 할 때는 필터를 만들면 된다 스프링이란는 성이 만들어지려면 조건이 필요하다 바로 톰캣(서버)이라는 더 큰 범위 안에 스프링이라는 성이 들어갈 수 있는 것이다. 그래서 1차 필터는 톰캣이 들고 있다. 외부에 접근이 들어오면 톰켓이 1차적으로 검열을 할 수 있다(톰캣은 전처리밖에 못함 EX) 중국에서 오는 IP를 다 막고 싶다거나 하는 공통적인 로직). 톰캣 파일 중에 WEB.XML 파일이 1차 검열하는 필터 파일이라고 생각하면 된다. 이 톰캣을 통과해야 스프링 안으로 들어오는데 스프링의 첫 번째 관문에서 디스페처를 만난다. 이 디스페처가 요청을 받으면 IOC컨테이너를 뒤져서 요청받은 URI를 응답할 수 있는 컨트롤러 함수를 실행시킨다. 이때 이 함수가 실행되기 직전에..

Springboot 2021.07.26

visual studio code에서 Spring boot/JPA개발환경 설정

visual studio가 가벼운 이유는 필요할 때마다 다운로드할 수 있도록 설계돼있기 때문이다. sts를 사용하기 위해서 툴들을 다운로드하여준다 sts project 만들기 java에서 프로젝트명은 무조건 소문자로 작성해야 한다 java에서 대문자를 사용하는 건 클래스뿐 대략적으로 기본적인 dependencies만 잡아주고 경로 설정해서 누르면 성공 꼭 넣고 싶은 폴더에 마우스를 올리고 새 파일을 만들어준다. vs에서는 확장자명을 적어줘야 한다. 그리고 vs를 껐다가 켜서 왼쪽 하단에 나오는 것들은 always로 설정해서 툴이 알아서 필요한 것들을 다운로드할 수 있도록 설정해 준다. 위사항을 설정해 주면 저장 시 자동정렬을 해주는데 어떤 언어를 자동정렬을 할 건지 설정을 해준다 java를 선택해주면 저..

Springboot 2021.07.21

Exception처리(기본개념)

try라는 스택과 catch스택이 있는 이유는 프로그램은 컴파일 시 오류와 런타임 오류(클라이언트와 통신)가 있다. 기본적으로 웹서버는 웹서버 시 오류가 발생할 수 있다. 통신을 하는 코드는 전부다 try/catch로 묶어야 한다. 클라이언트랑 하는 것도 통신 db에 있는 데이터를 가져오는 것도 통신이다. 메모리에 있는 데이터를 하드에 저장하는 것도 통신이다. 위와 같이 통신이 있는 코드는 전부 try/catch로 묶어야 한다. 근데 스프링에선 파일을 리턴하는 컨트롤러와 데이터를 리턴하는 컨트롤러가 있는데 try/catch는 string데이터를 리턴한다. 결국 구조적으로 컨트롤러에서 Exception 처리를 할 수 없다. 프레임워크의 규칙 때문에 Exception처리를 할 수 없는 것이다. 그래서 스프링..

Springboot 2021.07.20

Spring boot/JPA 로 블로그만들기. 코멘트 기능 구현(댓글)

user-Agent: 여기에 명시된 브라우저가 아니면 요청을 할 수 없다. Referrer: 이전에 머물렀던 페이지 url 크롤링할 때 위와 같은 브라우저의 속성 값을 Postman으로 Requset header에 담아서 보낼 수 있다 그럼 내가 자바로 요청을 했지만 크롬으로 요청했다고 속여서 보내면 위 보안 체크 사항들을 속일 수 있다. 실제 만드는 사람 입장에서 막을 수 있는 방법이 위 사항들에 대한 접근 제한을 하는 방법밖에 없는데, 위 사항 들을 속일 수 있다면 특별한 경우가 없다면 접근하지 못하는 웹브라우저가 없다 댓글 기능 기본적으로 post요청을 해야 하고 form에 데이터를 담아서 보내면 간단하게 할 수 있겠지만 그렇게 되면 페이지 전체의 데이터를 넘겨받아야 하기 때문에 효율적이지 못하다...

Springboot 2021.07.19

자바스크립트 활용해서 스프링 서버 블로그에 수정(update)과 삭제(delete)해 보기

스프링 서버는 put을 사용해서 update를 할 때 자바스크립트를 이용해야 한다 form 태그에는 post와 get밖에 없기 때문입니다. 그럼 put을 사용할 때 두 가지 방법이 있다. 1.form에 있는 데이터를 한꺼번에 들고 오는 방법. 2. onsubmit 속성은 submit버튼이 ture면 함수가 실행되고 false면 실행되지 않는다. onsubmit을 사용했을 때 장점은 action을 하기 전에 유효성 체크를 같이 하는 용도로 나왔었다. gkwlaks 지금은 put 하기 위해 사용된다. 근데 submit버튼을 누르면 페이지가 새로고침이 되기 때문에 그것을 막아줘야 한다. event.preventDefault() 자바스크립트는 어떤 이벤트가 됐던 모든 이벤트가 발생하면 현제 이벤트의 모든 정보를..

Springboot 2021.07.15