전체 글
-
[JavaScript] 한번에 다중 파일 다운로드JavaScript Meteor 2022. 2. 27. 13:56
function multiFileDownload() { const query = 'input[name="odr-list"]:checked'; const selectList = document.querySelectorAll(query); // 개별 다운로드 버튼을 강제 클릭해줌 document.getElementById(`odr_click${selectList[forCount].value}`).click(); forCount++; if(forCount < selectList.length) { setTimeout(function () { // 자기 자신을 호출한다. 체크된 사이즈만큼 multiFileDownload() }, 1000) } else { forCount = 0; } }
-
[Maria DB] 현재날짜 기준 일주일 전 데이터 들고오기DataBase Meteor 2021. 12. 29. 16:34
DATE_ADD 함수를 이용하여 부등호로 들고오기 // 1번째 방법 select count(idx) from tb_member where create_date > DATE_ADD(now(),INTERVAL -7 DAY); DATE_ADD(now(),INTERVAL -7 DAY) 기준일자 이후의 데이터를 들고온다. (현재일자 - 7 이후의 데이터) Between을 이용하여 데이터 들고오기 // 2번째 방법 SELECT count(idx) FROM tb_member where create_date BETWEEN DATE_ADD(NOW(),INTERVAL -1 WEEK ) AND NOW(); BETWEEN A AND B 정해진 기간 사이의 데이터를 들고온다 (현재 기준 일주일전과 오늘 사이)
-
[Spring Boot] AOP JoinPoint & 바인드 변수SpringBoot Meteor 2021. 12. 29. 16:33
프로젝트를 진행하다가 보면 *관점 지향 프로그래밍을 구현해야할 때가 발생할 수 있다. *AOP - Aspect Oriented Program (관점 지향 프로그래밍) 관점지향프로그래밍이란 , 핵심 기능과 공통 기능을 분리하는 것이다. 예를 들어 회원가입을 진행하고 로그인을 진행할 때 파라미터 값들의 유효성 검증 해당 비지니스 로직 이렇게 나누어 볼 수 있다. 회원가입 , 로그인에서는 파라미터 값들의 유효성 검증은 공통 기능에 해당할 것이다. 실질적으로 회원가입의 데이터를 DB에 저장시키고, 로그인 되어질 정보를 DB에서 가져와 검증하는것이 핵심 기능이라고 볼 수 있다. 관점지향적 프로그래밍을 함으로써 핵싱 기능과 공통 기능을 분리한다. ex ) 회원 가입 유효성 검사 세션 체크 로그 남기기 등등... 포..
-
[Spring Boot] AOP JoinPoint & 바인드 변수SpringBoot Meteor 2021. 12. 29. 16:32
프로젝트를 진행하다가 보면 *관점 지향 프로그래밍을 구현해야할 때가 발생할 수 있다. *AOP - Aspect Oriented Program (관점 지향 프로그래밍) 관점지향프로그래밍이란 , 핵심 기능과 공통 기능을 분리하는 것이다. 예를 들어 회원가입을 진행하고 로그인을 진행할 때 파라미터 값들의 유효성 검증 해당 비지니스 로직 이렇게 나누어 볼 수 있다. 회원가입 , 로그인에서는 파라미터 값들의 유효성 검증은 공통 기능에 해당할 것이다. 실질적으로 회원가입의 데이터를 DB에 저장시키고, 로그인 되어질 정보를 DB에서 가져와 검증하는것이 핵심 기능이라고 볼 수 있다. 관점지향적 프로그래밍을 함으로써 핵싱 기능과 공통 기능을 분리한다. ex ) 회원 가입 유효성 검사 세션 체크 로그 남기기 등등... 포..
-
[Spring Boot] AOP pointcut post, put 어노테이션에 적용하기 (pointcut 여러개)SpringBoot Meteor 2021. 12. 29. 16:30
@Component @Aspect public class ValidationAdvice { @Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)") public void postMapping(){} @Pointcut("@annotation(org.springframework.web.bind.annotation.PutMapping)") public void putMapping(){} @Before("postMapping() || putMapping()") public void apiAdvice(JoinPoint joinPoint){ Object[] args = joinPoint.getArgs(); for (Object arg..
-
[Spring Boot] Objects.requireNonNull 메서드SpringBoot Meteor 2021. 12. 29. 16:28
Objects 클레스에있는 매개변수 널 검사용 메서드 // 예시 코드 public void test(String message) { this.message = Objects.requireNonNull(message); } message이 null이면 NullPointerException이 일어난다. 크게 개선된 것처럼 보이지 않는다. 하지만 스택 추적을 거슬러 올라가서 작업하는 방식을 생각해 보면 크게 개선되었다. requireNonNull 호출을 문제의 원인으로 보면 무엇을 실수했는지 바로 알 수 있기 때문 또 예외에 대응하는 메시지 문자열도 지정 가능하다. // 예외에 대응하는 메시지 this.direction = Objects.requireNonNull(message, “message must no..
-
[Spring Boot] @RestControllerAdvice를 이용해서 예외 처리 핸들링하기SpringBoot Meteor 2021. 12. 29. 16:27
@ControllerAdvice란? 간단하게 말해서 @ExceptionHandler, @ModelAttribute, @InitBinder가 적용된 메서드들을 AOP를 적용해 사용하기 위한 어노테이션 클래스에 선언해주면 되며, 모든 @Controller에 대한, 전역적으로 발생할 수 있는 예외를 잡아서 처리할 수 있다. @RestControllerAdvice란? @ResponseBody + @ControllerAdvice ⇒ @RestControllerAdvice @ControllerAdvice와 동일한 역할을 수행하고, 추가적으로 @ResponseBody를 통해 객체를 리턴할 수도 있다. 단순히 예외만 처리 하고 싶을 때 → @ControllerAdvice를 사용 예외처리 후 객체를 응답하고 리턴해주고 ..
-
[Spring Boot] JWT (JSON WEB TOKEN) 간단 정리SpringBoot Meteor 2021. 12. 23. 14:58
JWT가 무엇이고 어떻게 사용되는 것 인가 ? 세션 서버가 가지고있는 세션 영역 세션영역의 값이 비워지는 경우 session (서버쪽에서 session값을 날리는 경우) 사용자가 모든 브라우저를 다 닫을 때 세션의 단점 요청이 많으면 부하가 걸림 ⇒ 로드밸런싱으로 서버를 나누어서 요청을 처이함 ⇒ 1번2번3번 서버의 세션이 다 다르기때문에 1버서버세엇 인증을 받은 값이 2번서버에서는 안먹힐 수 있다. ⇒ 세션값을 DB에 저장 (io 발생 성능 저하 속도 엄청 느림) 모든 서버가 DB에서 세션값을 가져옴 (성능 저하) 네트워크 : IP ㅡㅡㅡㅡㅡㅡㅡㅡLANㅡㅡㅡㅡㅡㅡㅡㅡ 로컬 통신 근거리 통신 데이터링크 : 어떤 ..