spring 17

톰켓이란?

시스템 콜 HTTP는 운영체제가 들고 있는 소켓이라는 것을 이용해서 만들어졌는데 만약에 프로그램이 운영체제가 들고 있는 기능을 불러서 사용하는 것을 시스템 콜이라고 한다. HTTP 기반은 소켓이다. 웹 서버란? HTTP 웹 서버는 갑이다. 쉽게 말해서 하나의 영상을 공유할 때 그 영상을 받는 쪽이 갑이 아닌 영상을 주는 쪽이 갑이 되기 때문이다. 갑이라는 건 을이 필요한 데이터를 가지고 있다는 것이다. 그래서 항상 HTTP통신은 을이 갑한테 REQUEST를 한다. 이때 REQUEST 할 때 위치를 알아야 하기 때문에 IP주소를 알아야 한다. 그리고 두 번째는 REQUST 할 때 정확한 명시가 필요하기 때문에 URL을 사용한다 URL은 자원을 요청하는 주소 그래서 갑(웹서버)은 항상 가만히 있다가 URL을..

Springboot 2021.08.20

AOP 사용해서 sentry및 Log적용

log나 sentry 같은 공통기능들은 advice에서 처리를 해야 프로그램이 엄청 심플해진다. advice파일이 하나여야한다는 법칙은 없기 때문에 상황에 따라서 공통 관심사가 생기면 추가시켜주면 된다. log 남기기 info는 정상적일 때 실행되는 정보를 알려주는 log 문제가 생겼을 때는 log.warn이나 log.error를 남긴다. 개발을 할 때는 log.debug를 사용한다. debug는 debug모드에서만 실행된다. 로그에는 레벨이란 게 있다 1. error 2.warn 3.info 4.debug 이렇게 있는데 만약에 로그 레벨을 info로 해놓으면 info이상만 뜬다. 그럼 이 해당 로그가 뜰 때마다 파일로 남기고 싶을 때는 어떻게 할까? 위 파일을 만든다. 아래 코드는 그냥 복붙 해서 사용..

Springboot 2021.08.13

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

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

Springboot 2021.07.29

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

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

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

Springboot 2021.07.07

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

Spring boot/JPA /DB 기본 개념 테이블과 오브젝트(2){JPA의 ORM기술}

ORM 기술 jpa의 뜻은 java persistence API이다 persistence는 영속이란 뜻이다. 자바로 영구히 데이터를 저장할 수 있는 API라는 뜻이다. 영구히 데이터베이스에 저장할 수 있도록 함수를 제공해주는 것이다. jpa의 기반 기술은 hirebernate =>ORM(오브젝트 릴레이션 매핑) 기술을 사용한다 실습 일단 저번 포스팅에서 사용했던 테이블의 데이터를 다 날리고 새로 만들어 보자 기존에 있던 폴인키는 int 타입에 userId로 돼있었는데 그 폴인키를 지우고 위와 같이 코딩해줬다 위 주석은 중요한 내용이니 꼭 숙지해야 한다. 그리고 저장을하면 CREATE가 돼있기 때문에 테이블이 새로 생성되는데 위 주석처럼 jpa에서 자동으로 폴인키를 설정해준다. @ManyToOne을 알면 ..

Springboot 2021.07.01

Spring boot/JPA실습 부트스트랩 사용해서 로그인 기능 연습해보기(2)

저번 포스팅에서 이어서 작성됐습니다. 로그인 기능 위 로그인 기능이 실제 서비스라고 가정한다면 사용자에게 굉장히 불친절한 서비스라고 볼 수 있다. 1. 메시지 경고창이 없음 2. 아이디 지워지는 게 맘에 들지 않는다. 3. 회원정보 수정이 없다. 그래서 위 불편사항을 수정해 보겠다. 3. 회원정보 수정이 없다. 위 teglib는 필요할 때마다 내가 복사해서 쓸 것이다. 주석을 꼭 참고해서 보시길. jstl문법이다 if문이라고 생각하면 된다. test속성의 값으로 조건을 걸면 된다. empty연산자는 null과 equls를 동시에 체킹 해준다. 로그아웃 기능 구현 1. 메시지 경고창이 없다 java에서의 String특징 String컨스턴트 풀 컨스턴트 = 상수 String이 기존에 있던 객체에 추가적으로 ..

Springboot 2021.06.30

Spring boot/JPA실습 부트스트랩 사용해서 로그인 기능 연습해보기(1)

부트스트랩을 사용해서 간단하게 블로그를 만들어보는 연습을 해볼게요 부트스트랩은 쉽게 설명하자면 디자인 라이브러리이다 위 주석을 꼭 공부할 것! 그리고 위 코드 위에 의존성 주입하는 코드는 너무 당연해서 포스팅하지 않았습니다. 저번 포스팅을 참고해주세요 아래에 사이트는 트위터에서 재공 하는 부트스트랩입니다. https://www.w3schools.com/ 부트 스트렙을 사용할 때 잘 어떻게 사용해야 할지 잘 모르겠을 땐 일단 위에 사진처럼 들어가서 다 복사한다. 그리고 test폴더를 만들어서 한번 테스트를 해본 후에 어디에 뭘 넣을지 선택하면 되는 것이다. 위와 같이 18번 줄부터 21번 줄까지 코드를 보면 css와 js를 다른 서버로 자원을 요청하도록 주소가 적혀있다. CDN 컨텐트 딜리버리 네트워크 위..

Springboot 2021.06.29