분류 전체보기

    Chapter 03. JDK의 함수형 인터페이스

    Chapter 03. JDK의 함수형 인터페이스

    3.1 네 가지 함수형 인터페이스Function: 인수를 받고 결과를 반환합니다.Consumer: 인수만 받고 결과를 반환하지 않습니다.Supplier: 인수를 받지 않고 결과를 반환합니다.Predicate: 인수를 받아서 표현식에 대해 테스트하고 boolean 값을 결과로 반환합니다.Function하나의 입력과 출력을 가진 전통적인 함수Function은 하나의 입력값을 받아 하나의 결괏값을 반환한다.@FunctionalInterface public interface Function { R apply(T t); } public class FunctionExample { public static void main(String[] args) { Function intToStr..

    Chapter 02. 자바 람다

    2.1 자바 람다란?람다 표현식은 자바 코드가 한 줄 또는 블록 단위로 이루어져 있으며 0개 이상의 매개변수를 갖고 값을 변환할 수 있다.public class BasicLambda { public static void main(String[] args) { Runnable greet = () -> System.out.println("Hello, Labmda!"); greet.run(); }}람다 문법매개변수메서드의 인수와 마찬가지로 쉼표로 구분합니다. 컴파일러가 매개변수의 타입을 추론할 수 있는 경우 매개변수의 타입을 생략할 수 있습니다.묵시적으로 타입이 지정된 매개변수와 명시적으로 타입이 지정된 매개변수를 혼용하는 것은 허용되지 않습니다.매개변수가 하나인 경우 괄호..

    K8S Deploy github action 소개 1

    GITHUB ACTIONS을 통한 ECR 배포 및 EKS를 사용하기 위한 배포 스크립트이며, Github Actions에 대한 소개입니다.깃헙 액션 레파지토리를 참고하면 좋습니다.ON & ENVon: push: branches: [ "dev" ]env: AWS_REGION: ap-northeast-2 AWS_ACCESS_KEY_ID: ${{ secrets.PROJECTT_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.PROJECTT_AWS_SECRET_ACCESS_KEY }}{{ secrets.something }}의 경우 GitHub Secrets에 등록된 값으로 대체됩니다.branches 배열의 경우 OR 조건으로, 배열 안에 작성된 ..

    Chapter 01. 함수형 프로그래밍 소개

    함수형 프로그래밍 소개어떤 것이 언어를 함수형으로 만드는가?프로그래밍 언어가 추상 함수(abstract function)을 생성하고 조합함으로써 논리 연산을 표현할 수 있을 때 함수형 언어로 간주.람다 대수를 구성하는 세가지 구성 요소- 추상화: 단일 입력을 받는 익명 함수, 람다를 의미- 응용: 값에 추상화가 적용되어 결과를 생성. 개발자의 관점에서는 함수나 메서드 호출을 의미.- 베타 축약: 추상화된 변수를 적용된 인수로 대체제어 흐름이나 알고리즘을 설명하지 않고, 연산의 논리를 선언적 문장으로 표현할 수 있다.함수형 프로그래밍은 불변성을 강조하며, 상태를 변경하는 대신 새로운 상태를 생성한다.문장이 아닌 표현식을 사용하여 결과와 프로그램이 작동하는 방식을 설명.무엇을 해야하는지가 아닌, 무엇을 원하..

    [Spring Security] OncePerRequestFilter, GenericFilterBean에 대하여

    [Spring Security] OncePerRequestFilter, GenericFilterBean에 대하여

    JWT를 구현하는 Security 구현에 대한 글들을 보면 JWT filter 구현시, OncePerRequestFilter를 사용하는 경우가 많다. (사실 단 한 번도 빠짐없이 모두 OncePerRequestFilter를 사용하는 것으로 보였다.) Spring Security 기능에 필터를 추가하고자 한다면 Filter를 사용하면 된다. 그럼에도 불구하고 OncePerRequestFilter를 사용하는 이유는 뭘까? OncePErRequestFilter는 무엇일까? (나는 지금까지 왜 이걸 궁금해하지 않고 그냥 복붙 하여 쓰고만 있었을까..) OncePerRequestFilter를 알기 전에 먼저 GenericFilterBean라는 추상 클래스에 대해 먼저 알아보는 게 좋겠다. (OncePerReque..

    [Spring Security] UserDetails Class에 대하여

    UserDetails 클래스 public interface UserDetails extends Serializable { /** * Returns the authorities granted to the user. Cannot return null. * @return the authorities, sorted by natural key (never null) */ Collection

    [Spring Security] Security 종속성 추가 후, 자동 로그인 화면이 뜨는 이유

    [Spring Security] Security 종속성 추가 후, 자동 로그인 화면이 뜨는 이유

    종속성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' Spring Security를 사용하기 위해, 위의 종속성을 추가함과 동시에 아래와 같은 로그인 화면이 뜨는 것을 볼 수 있다. 로그인 화면이 뜨는 이유 package org.springframework.boot.autoconfigure.security.servlet; 시큐리티 종속성 추가 후, 다음 패키지로 이동하면 SpringBootWebSecurityConfiguration라는 하나의 클래스를 확인할 수 있다. @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = Type.SER..

    [DynamoDB] 다이나모DB Local 설치

    [DynamoDB] 다이나모DB Local 설치

    DynamoDB Local 설치 도커를 사용하여 다이나모 디비를 받아옵니다. (Docker가 설치되어 있어야 합니다.) docker pull amazon/dynamodb-local DynamoDB 실행 docker run -d -p 8000:8000 amazon/dynamodb-local 확인 (aws cli가 설치되어 있어야 합니다.) aws dynamodb list-tables --endpoint-url http://localhost:8000