공부 136

MessageConverter란?(Jackson)

자바 오브젝트와 파이썬 오브젝트가 있을 때 이 둘의 오브젝트는 서로 생김새가 다를 수밖에 없다. 그럼 이 자바 오브젝트와 파이선 오브젝트가 직접적으로 소통을 하게 되면 서로 모르는 언어로 대화하는 것과 같은 현상이 일어난다. 그래서 서로 다른타입의 언어들을 이해하기 위해서 모든 언어가 해석할 수 있는 중간 언어를 만들게 되는데 그것이 바로 중간 데이터라고 불리는 녀석들이다. JSON, XML 같은 중간 데이터가 생기게 된 배경이다 MessageConverter라이브러리(Jackson) 자바프로그램을 누군가에게 전송할 때 json데이터로 바꿔주는 것이 MessageConverter라는 것이다. 그리고 이 MessageConverter가 비단 요청할 때만 작동하는 것이 아닌 응답을 받을 때도 JSON 데이터..

Springboot 2021.08.22

톰켓이란?

시스템 콜 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

AOP실습해보기

aop 들어가기 전에 validation체크부터 먼저 해보겠다. jsp에서 만든 필터는 프로그래머 본인이 만든 필터라서 수정할 수 있는데 스프링에 필터는 이미 .class로 만들어진 jar파일이라 코드에 손을 될 수 없다. 그럼 스프링개발자들이 프로그래머들이 코드에 손댈 수 있게 필터를 수정하고 싶으면 해당 함수나 인터페이스를 찾아야한다. @Vaild BindingResult 위 코드를 보면 유효성 검사를 어노테이션으로 하고 있는 것을 볼 수 있다. 이게 무슨 뜻이냐면 스프링에서 리플렉션 해서 확인한다는 뜻. 그리고 공백(empty)과 null은 엄연히 다른 유효성 검사이다. 꼭 두 개를 다 구분해서 처리를 해 줘야 한다. 위 유효성 검사에 관한 어노테이션은 상황에 맞게 찾아서 보면 된다. @Valid ..

Springboot 2021.08.13

AOP개념

Validation체크 spring을 좀 하다 보면 유효성 검사를 하는 validation체크를 할 수밖에 없다. 사용자가 어떤 데이터를 던질지 모르고 혹시 모를 서버의 공격에 대비한 체크들을 해야 한다. 그럼 이때 예를 들어 request요청이 왔다고 했을 때 이데이 터가 쿼리 스트링이든 httpbody든 이 데이터를 filter에서 거르도록 해야 한다. 예를 들어서 post:/user에 username과 password요청이 왔다. 그럼 서버는 /user라는 http메서드와 uri를 디스페처가 감지를 하고 /user주소가 있는 함수를 찾는다. 그럼 자연스럽게 해당 함수의 매개변수를 확인한다. 이때 만약에 매개변수로 Strig username, String password, String Phone 이렇..

Springboot 2021.08.13

체크박스를 통해서 자바스크립트로 fetch요청하기

지금 하고 있는 쇼핑몰 만들기 프로젝트에서 체크된 항목들을 삭제해야 하는 기능이 있다. 그럼 하나의 값을 받아오는게 아니라 체크가 된 모든 값들을 받아와야 한다. 체크박스의 name값으로 자바스크립트에서 해당 체크박스의 체크 여부 등을 알 수 있는데 이때 체크박스의 벨류 값으로 찾아야 하는 db의 아이디 값을 value로 설정해줌으로써 위 checkNull의 값은 체크가 된 컨탠츠의 db데이터의 pk값이 들어가게 된다. 그리고 this.value로 값을 옮겨서 출력했다. 자바스크립트에서 반복해서 요청을 하도록 로직을 짜 놨기 때문에 봔환값없이(void)로 삭제만 하도록 기능을 설정했다.

Springboot 2021.08.11

지금 하는 프로젝트에서 상품평 기능 구현하기/이미지 업로드/상품평 수정/삭제 기능 구현

지금 쇼핑몰 프로젝트를 STS로 하고 있는데 상품평 기능을 구현하는 중에 블로그에 정리하면 좋을 것 같아서 정리합니다. 일단 상품평은 해당 상품의 상품평만 보여줘야 하고 상품평을 관리하는 페이지에서는 해당 유저가 작성한 상품평만 관리할 수 있도록 해야 하는 것이 관건이다. 상품평 DB생성 한 명의 유저가 여러 개의 코멘트를 가지고 있고 한 명의 유저가 여러 개의 상품을 가지고 있기 때문에 원자성 유지를 위해 여기서 폴인키를 다 가지고 있도록 설계해 줬다 상품평 작성하기 엉망이지만 대충 만들어 봤다 상품평 쓰기 버튼을 누르면 위와 같은 모달 창이 나와서 form타입으로 method는 post로 전송하게 된다. 여기서 보면 이미지 등록하기가 있다 상품 착용샷 같은 것을 올릴 수 있도록 ui를 제공하기 위해서..

Springboot 2021.08.08

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

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

Springboot 2021.08.02

자바스크립트 AJAX사용(FETCH)비동기 프로그래밍개념

자바스크립트 기본 동작원리 ajax = 비동기통신을 json으로 하는것이다. 1. nodejs는 인터프리터 언어기 때문에 컴파일 없이 바로 코드를 순차적 실행한다. 2.js는 클래스가 없다 함 수로 이루어짐 3. 비동기식 운영이(일의 순서가 없음) 강점이다. 싱글스 래드 언어라고 생각하는 것이랑 개념이 다르다. 스래드는 운영체제가 들고 있는 걸 가져와서 언어에서 쓰는 것이다.(모든 프로그램은 순차적 실행) 왜 비동기 처리를 할까? 자바와 다르게 스래드의 문맥 교환이 없기 때문에 빠르게 처리할 수 있다. 비동기 처리의 이유 자바와 다르게 이렇게 함수를 인수로 바로 넣을 수 있다. 엄청 큰 장점이다. 이렇게 화살표 함수 문법을 사용하면 자바로 치면 this를 바인딩하기 쉽다는 장점이 있다. 위와 같이 실행시..

카테고리 없음 2021.07.30