프로그래밍 80

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

자바스크립트 활용해서 스프링 서버 블로그에 수정(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

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

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

JavaScript 2021.07.13

부트스트랩 사용해서 기본적인 프론트 만들기 연습(AIRBNB)

html배치는 flex를 사용해서 할 것이다 일단 먼저 airbnb사이트 디자인을 할 때 크게 두 개의 블록으로 나눌 것인데 이때 해더와 바디로 나눌 것이다. 시멘틱 태그를 사용한다 이제 해더를 구성해보자 위 사진이 해더가 되고 일단 큰 박스부터 설계를 한다 메인 부분을 보면 컨탠츠들이 가운데 정렬이 돼 있는 것을 볼 수 있다. 그렇기 때문에 한 박스 한 박스씩 코드 처리를 해서 정렬을 하기보단 가장 큰 하나의 박스 안에 섹션들을 넣어서 관리한다. 호스트가 되어보세요 회원가입 로그인 도움말 특색 있는 숙소와 즐길 거리를 예약하세요 목적지 체크인 체크아웃 인원 인원 검색 에어비앤비 둘러보기 숙소 및 부티크 호텔 트립 어드벤처 레스토랑 에어비엔비

HTML,CSS 2021.07.13

Springboot사용해서 블로그 만들기 글쓰기기능(summernote에디터사용) 추가와 상세보기 페이지(삭제,수정) 회원정보 변경

웹에서는 인증(어선트케이션)과 권한(어 솔 라이즈)이 있다. 건물로 치면 입구에 들어가는 행위가 인증, 어떠한 방으로 들어가는 것은 권한인 것이다. jpa규칙 jpa는 형태만 똑같으면 되기 때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. jpa규칙 jpa는 형태만 똑같으면 되기때문에 password에 별칭을 달아서 형태를 유지하되 password를 session에 담기지 않도록 했다. 저번에 구현했던 회원가입 파일을 복사해서 위와 같이 수정했다. readonly는 수정이 불가능하도록 만들어주는 속성 required는 해당 태그가 입력 없이 subimt이 안되도록 사용자에게 강제하는 속성 규칙 EL표현식은 위와 같이 변수로 담아서 보내면 톰캣이..

Springboot 2021.07.07

SDK사용해서 SMS서비스 만들기

sdk(소프트웨어 디벨롭 키트) sdk는 다운로드하는 것이다 그래서 api와 다르게 주소 요청 없이 바로 사용할 수 있다. sdk를 사용하기위해서 일단 위 사이트를 가입해야 한다. 초기에 300원 정도 테스트 비용을 준다. javaProject를 만 든다. 위 jar파일을 lib폴더에 넣어서 build path를 시킨다음 위 샘플 코드에 String api_key와 api_secret키에 추가시키면 된다 위 샘플을 함수로 만들어서 사용하는 것도 좋은 방법이다.

Springboot 2021.07.06

Spring boot/JPA 실습 블로그를 만들어보자!(회원가입 페이지 주소 API사용)

주소 API 사용 API : 애플리케이션 인터페이스 주소를 요청해서 기능구현을 하는것이다. 들어가면 체험하기 탭이있다. 체험하기를 누르면 api가 나오는 것을 볼 수 있다. 위와 같은 체험하기를 통해서 내가 만들 서버에 어떤 것을 만들어야 할지 대략적으로 그려보는 것이다. 이제 api를 요청하는 방법 이제 api를 요청하기 위한 방법을 알아본다 위 가이드대로 url을 설정하면 https://www.juso.go.kr/addrlink/addrlinkurl.do?comfmkey="승인키"&returnUrl=http://localhost:8000 어떤 contentType으로 데이터를 보내는지 알려주지 않는다. 굉장히 불친절한 문서다 그래서 직접 테스트를 해서 어떤 타입으로 데이터가 오는지 알아봐야 한다. 설..

Springboot 2021.07.05