공부 136

공공데이터 활용하기/(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

IMPORT 일반결제 API 사용

https://www.iamport.kr/ 온라인 비즈니스의 모든 결제를 한곳에서, 아임포트 결제의 시작부터 비즈니스의 성장까지 아임포트와 함께하세요 www.iamport.kr 회원가입을 하고 관리자 페이지로 간다 가멩점 식별코드를 확인하고 https://docs.iamport.kr/implementation/payment [결제연동] 일반결제 일반결제 연동하기 해당 가이드는 아임포트 일반 결제 기능을 웹사이트에 설치하고 서버 데이터베이스에 결제 결과 정보를 저장하는 방법을 안내합니다.아임포트의 JavaScript 라이브러리를 삽입 docs.iamport.kr 위 예시를 참고하고 내가 원하는 파라미터 값을 추가시킵니다 파라미터는 https://docs.iamport.kr/tech/imp?lang=ko#p..

카테고리 없음 2021.07.26

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

통신 기본 계념과 보안 기본 계념

session ->인증이다 클라이언트와 서버가 계속 연결돼 있는 상황에선 session이 필요가 없다. 인증이 필요없기때문. 클라이언트가 요청 시에 서버는 많은 정보를 받게 된다. 어떤 것을 요청하는지부터 어떻게 요청을 하는지까지. 그럼 클라이언트가 정상적이지 않은 방법으로 요청을 할 수도 있다. 이 요청 시에는 서버에 레퍼럴 정보가 다 남는다. 만약에 이 레퍼럴 정보를 클라이언트가 조작을 하면 서버는 정상적으로 요청을 하는 줄 알기 때문에 아무리 구멍을 막는다고 해도 클라이언트가 레버럴정보만 속이면 다 뚫리게 된다. 자바에서 네이버에 크롤링을 요청할때 레퍼럴 정보를 수정해서 자바에서 요청을 했지만 브라우저가 요청한 것처럼 서버를 속여서 크롤링을 할 수 있게 되는 것. 이때 알아야 하는 중요한 지식이 h..

cs 2021.07.16

JAVA기본 메모리 운영

메모리에 올라갔다는 것은 사용할 수 있다는 뜻이다. 메모리에는 크게 세가지 영역이 있다 static, hip, stack 영역이 있다. . java파일을 컴파일할 때는 os가 아닌 jvm이 이해할 수 있는 데이터로 컴파일해준다. jvm만 운영체제에 맞춰주면 되는 것이다. jvm이 하는 일 1. 제일 먼저. class파일 로드한다 2. 모든 class파일 중에 static이라고 적혀있는 것들을 다 찾아서 메모리에 올려놓는다. 이 메모리 공간이 static공간이라고. 3. 이때 각 클래스마다 방을 나눠서 static공간에 둔다. 그래서 최초에 한번 static 하나만 띄울 수 있다. 4. new연산자를 사용하면 그 클래스에 static이 아닌 것만 다 올려준다. 개발자가 메모리에 직접 올릴 수 있다는 뜻. ..

JAVA,객체지향 2021.07.15

자바스크립트 기본개념(기본 문법, 내장객체,이벤트 리스너,호이스팅,콜백, 비동기 프로그래밍)

자바스크립트의 기본적인 개념을 위해 세가지정도 포스팅을 할 것입니다. 1. 문법 2. 내장 객체 -최상위 내장 객체 window(java에서 Object 같은 개념) -history(뒤로 돌아가기), location(페이지 이동하기), document(해당페이지의 모든 엘레멘트) 3.fetch api(PUT, DELETE) -스레드 -비동기 -이벤트 루프 -콜백 -이벤트 리스너 자바스크립트 javascript는 기생 언어이다. 즉 독자적으로 실행되지 않는 기생 언어라는 뜻임 브라우저가 읽어낼 때 html과 같이 기생돼서 작동되는 언어라는 뜻. 근데 노드 js의 탄생으로 독자적으로 사용할 수 있게 되면서 더 이상 script언어가 아니다. 노드 JS => 자바스크립트 런타임 환경 node.js다운로드. 시..

JavaScript 2021.07.13