aop 4

전처리 후처리 개념 (AOP)

클라이언트가 실수로 잘못된 데이터로 서버에 요청을 할 수도 있고 서버에서도 오류창을 리턴을하는데 이 오류창 또한 보안상, 그리고 사용자 ux 불만 등등 많은 안 좋은 영향을 끼친다. 전처리는 클라이언트가 데이터를 입력을 하기도 전에 오류가 날것같은 데이터를 입력하지 못하도록 막는 것이다. 즉 꼭 서버를 건들지 않더라도 앞단에서 처리를 할 수 있는 일들을 전처리라고 한다. 전처리를 흔히 Validation체크를 한다고 한다. 후처리를 꼭 서버에서 체크를 해 봐야 알 수 있는 것 들이다. (DB를 타야만 하는 로직들) 후처리를 흔히 exceptionhendler라고 한다. 그럼 위 그림처럼 어떤 요청을 처리할 때는 클라이언트가 어떤 데이터를 요청할지 모르기 때문에 재한 사항을 줘야 한다. 위 그림에서 처럼 ..

Springboot 2021.12.11

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