Java, Kotlin, Spring
-
자바 8 - 함수형 인터페이스 Predicate<T>Java, Kotlin, Spring 2022. 1. 12. 08:06
자바의 람다 표현식 - 정의와 사용방법에 이어서 자바의 람다 표현식 - 활용 방법 까지 알아보았다. 자바 8 버전에는 람다와 메소드 참조를 쉽게 사용할 수 있도록 도와주는 함수형 인터페이스들을 제공한다. 함수형 인터페이스들은 java.util.function 패키지에 정의되어 있다. 제공하는 인터페이스의 종류는 공식문서에서 확인하자. 이 포스팅에서 사용한 예제코드는 Github 에서 확인할 수 있다. 1. 사전 준비 우리는 Predicate, Consumer 그리고 Function 를 알아볼 것이다. 각각의 함수형 인터페이스를 사용할 객체로 Vehicle 클래스를 만들어서 사용해보자. public class Vehicle { private Type type; private String vendor; pr..
-
자바의 람다 표현식 2 - 활용 방법Java, Kotlin, Spring 2022. 1. 12. 08:05
이 전 포스팅에서 람다의 정의와 사용방법에 대하여 알아보았다. 이번 포스팅에서는 람다가 적용되어 있지 않은 기존 코드에 람다를 적용하여 변화를 살펴보고, 어떠한 점을 얻게 되었는지 살펴보자. 1. 반복되는 동작을 발견하기 동작 파라미터화는 반복되는 동작을 파라미터로 전달받음으로써 해당 부분에 대한 제어권을 호출 영역으로 넘기는 것이다. public String processFile() throws IOException { try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) { return br.readLine(); } } 위의 예제 코드에서와 같이 파일 처리같은 작업은 대부분 자원을 열고, 처리한 다음, 자원을 닫는 순서로 진..
-
자바의 람다 표현식 1 - 정의와 사용방법Java, Kotlin, Spring 2022. 1. 12. 08:03
C와 Java의 기본 문법을 막 공부하고, 몇 가지 간단한 프로그래밍을 할 수 있었던 시점에 자바스크립트는 두 언어와 달리 함수를 다루는 방식이 매우 자유롭다는 것을 처음 알고나서 매우 신기했던 기억이 있다. 람다 표현식은 이급 객체(second-class)에 머물던 자바의 함수(객체 내 메소드)를 일급 객체(first-class)으로 바꾼 것이다. 좀 더 자세히 알아보도록 하자. 1. 메소드를 값으로 취급 function withFoo(func) { const foo = function () { console.log('foo'); }; return function () { foo(); func(); }; } const bar = withFoo(function () { console.log('bar');..
-
Spring Security 간단 용어 정리Java, Kotlin, Spring 2022. 1. 12. 07:54
Spring Security Authentication 용어 정리 SecurityContextHolder - 인증된 유저의 세부사항이 저장되는 장소 SecurityContext - SecurityContextHolder에서 얻어지며 현재 인증된 유저의 Authentication을 포함하고 있음 Authentication - 인증받을 유저나 SecurityContext안에 현재 유저에게 credential을 제공하기 위해 AuthenticationManager에 입력될 수 있음 GrantedAuthority - Authentication에서 인증받은 유저에게 부여되는 권한 AuthenticationManager - Spring Security의 Filter가 인증을 수행하는 방법이 정의된 API Provi..