2022/02 10

Filter vs HandlerInterceptor - 간단 logging 기능 구현

저번에 Filter 와 HandlerInterceptor의 차이점에 대해서 공부를 해보았다. https://tech-monster.tistory.com/119 Filters vs HandlerInterceptors - 개념 오늘은 filter와 interceptor에 대해서 정리하려고 한다. 둘 다 기능은 비슷한데 어떤 차이가 있는지 잘 모르겠다! 그래서 이번 기회에 정리하려고 한다. 1. Filter J2EE의 표준 스펙 기능.(Springframework의 tech-monster.tistory.com 이번에는 이것들을 직접 구현해서 적용해볼 것이다. 1. Filter 적용해보기 filter를 먼저 적용해보려고 한다. 들어오는 모든 요청과 응답을 로그로 남겨볼 것이다. controller, LogFil..

Filters vs HandlerInterceptors - 개념

오늘은 filter와 interceptor에 대해서 정리하려고 한다. 둘 다 기능은 비슷한데 어떤 차이가 있는지 잘 모르겠다! 그래서 이번 기회에 정리하려고 한다. 1. Filter J2EE의 표준 스펙 기능.(Springframework의 기능이 아님). filter는 인터페이스로 선언되어있다. Oracle에서는 다음과 같이 설명한다. A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. Filters perform filtering in the doFilter me..

MySql 초기 세팅

1. MySql 다운로드 받기 (8.0.28) mysql 다운로드를 받기 위해 다음 사이트를 참고했다. 참고 : https://m.blog.naver.com/bjh7007/221829548634 위의 사이트에서 다운을 하라는 방식으로 우선 삭삭삭 진행을 했다. 2. 비밀번호를 잃어버렸다면? 아니... 나는 다운을 받고 몇일 있다가 오늘 한번 접속해 봐야겠다 하고 접속을 하려했는데 비밀번호를 잃어버리고 말았다. 가희 금붕어의 기억력에 필적하는 나의 기억력... 무엇? 하여간... 잃어버린 비밀번호를 찾기는 좀 힘들고 이것을 text파일을 이용해서 세팅이 가능하다. 우선 local instance MySQL80을 클릭하면 사용자 이름과 함께 무엇을 입력하라고 나온다. 처음에는 특별한 설정을 하지 않았으면 r..

DB/MySql 2022.02.27

1200. Minimum Absolute Difference

https://leetcode.com/problems/minimum-absolute-difference/ 문제를 풀다가 내 자신이 바보같지만... 정리하는 시간을 가져보았다. 문제 설명 전문 Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements. Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows a, b are from arra < bb - a equals to the minimum absolute difference of a..

Remove-covered-intervals!

무엇을 하든지 꾸준함이 중요한 것 같다. 그래서 필자는 leetcode를 시간이 날 때 마다 열심히 풀려고 한다. 이곳의 좋은점은 매일 매일 문제를 하나씩 제공한다는 사실! (물론 그냥 찾아서 할 수 있는데 그것도 좋고!) 어제와 오늘에 걸쳐서 문제를 풀어봤는데 이에 대해 공부한 내용을 적으려고 한다. 문제를 먼저 풀어보고 싶은 사람들은 위 문제들의 주소를 첨부해 두었으니 풀면 좋다 https://leetcode.com/problems/remove-covered-intervals/ Remove-covered-intervals! 요약을 하자면 이중배열이 존재하는데 이 배열 안의 배열의 길이는 무조건 2이고, 어느 한 배열이 하나의 배열의 범위 안에 들어가면 제거하고 그렇게 남은 배열 성분의 숫자를 출력하는..

Glory of Rest 란 뭘까? + HATEOS 적용기

최근에 필자가 HATEOS 의 기능에 대해 어쩌다가 알게 되었는데 이와 관련된 설명들을 찾아보았다. HATEOS는 무엇이며 HATEOS는 왜 쓰는 것일까? 그전에 알아야 하는 정보에 대해서 설명하고자 한다. https://martinfowler.com/articles/richardsonMaturityModel.html 한국어로 내가 훔쳐(?)서 적는 것보다 영어로 직접 읽기를 바라는 분들은 위의 출처 사이트를 참조하면 된다. 1. Glory of Rest 우선 Glory of Rest 가 무엇인지 알아야 할 것 같다. REST를 위한 영광의 단계라는데... REST를 잘 활용하기 위한 단계라고 보면 될 것 같다. REST 는 우선 많은 사람들이 알고 있겟지만 Representational State Tr..

interface vs abtract class

공부를 하는 와중에 추상클래스를 사용할 일이 있었는데 인터페이스와 추상클래스의 차이점을 이야기하라고 하면 이야기를 못하겠었다. 그래서 이번 기회에 두개의 차이점에 대해 다시 알아보고자 한다. 1. 인터페이스(Interface)란? interface 는 한 클래스를 구현하기 위해 사용되는 청사진입니다. 인터페이스는 구체적인 메소드를 포함하지 않습니다. 인터페이스는 초기화 될 수없지만 인터페이스를 상속하는 클래스들은 초기화 할 수 있다. 인터페이스는 인스턴수 변수를 절대 포함하지 않지만, public static final 변수를 포함할 수 있다. 인터페이스의 모든 메소드는 추상 메소드다. *추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니..

Spring Web Socket 적용하기

웹 소켓이 무엇인가? docs.spring.io에서 Spring web socket을 어떻게 사용하는지 찾고 있는데 이에 대한 설명도 함께 수록되어 있었다. 출처 : https://docs.spring.io/spring-framework/docs/5.0.4.RELEASE/spring-framework-reference/web.html#websocket 소개에는 WebSocket의 응답 및 요청 protocol에 대해서 설명해준다. 간략하게 요청 형식을 보자면 다음과 같다. A WebSocket interaction begins with an HTTP request that uses the HTTP "Upgrade" header to upgrade, or in this case to switch, to t..

Spring VS Spring boot

필자는 inflearn의 강의에 중독될 만큼 많은 강의를 사서 수강하고 있다. (나는야 욕심쟁이... 올 ㅋ) 근데 문득 든 궁금증인데 왜 다들 Spring boot 를 이용해서만 강의를 할 까 하는 생각이 들었다. 확실히 Spring boot 가 프로젝트를 생성하고 사용하는데 기본적인 설정을 많이 해줘서 편하기 때문에 하는 것 같은 생각이 들긴 했다. 이것이 맞는 이유인지도 궁금하고 진짜 차이점이 무엇인지 알아보기로 했다. 구글에 한번 검색을 해봤다. ... Spring ... vs Spring ... boot ... 가장 상단에 노출된 사이트에 한번 들어가보니 정리가 잘 되있다. 내용 발췌 Spring란? What is Spring? Spring is a lightweight application f..

@Json~~~ 관련 annotation 정리

우리가 클래스를 하나 만들었다고 가정하자. ... @Data @AllArgsConstructor @NoArgsConstructor @Entity public class Users { @Id @GeneratedValue private Integer id; @Size(min = 2, message="Name은 2글자 이상 입력해 주세요.") private String name; @Past private Date joinDate; private String password; private String ssn; } 위의 정보를 바탕으로 사용자 정보를 조회하고 싶은데 조회할 때 마다 아니... password가 같이 넘어오게 된다. 이러한 경우 조회시 필드에서 제외하고 싶은 성분을 @JsonIgnore 어노테이션..