서블릿 필터 Filter란? // 흐름 HTTP 요청 → WAS → 필터 → 서블릿 → 컨트롤러 // 제한 HTTP 요청 → WAS → 필터(서블릿 호출 x) // 체인 HTTP 요청 → WAS → 필터 → 필터2 → 필터3 → 서블릿 → 컨트롤러서블릿이 지원하는 기능으로 서블릿이 호출하기 전에 필터 로직이 실행되며, 특정 URL 패턴을 사용하여 특정 URL 요청에 대하여 적용할 수 있습니다. 필터는 로직에 의해서 적절하지 않은 요청이라고 판단할 경우 서블릿 호출을 하지 않습니다. 그리고 필터는 체인으로 구성되는데, 중간에 필터를 자유롭게 추가할 수 있습니다. 참고로 서블릿은 spring의 DispatcherServlet 입니다. Filter 사용 public interface Filter { publi..
설정 config $ git config --global user.name "{사용자 이름}" $ git config --global user.email {이메일} Git을 설치하고 나서 가장 먼저 해야 하는 것은 사용자이름과 이메일 주소를 설정해야 합니다. Git은 커밋할 때마다 이 정보를 사용하고 한 번 커밋한 후에는 정보를 변경할 수 없습니다. $ git config --list credential.helper=osxkeychain core.excludesfile=/Users/{유저}/.gitignore_global core.editor=vim user.name={사용자 이름} user.email={이메일} init.defaultbranch=main filter.lfs.process=git-lfs ..
Optional이란? Optional Class는 Integer나 Double Class처럼 'T'타입의 객체를 포장해 주는 Wrapper Class이자 컨테이너 객체입니다. 컨테이너 안에 값이 들어 있을 수도 있고, 값이 없어 비어있는 컨테이너 일수도 있습니다. 해당 Optional은 Java 11 기준으로 설명하겠습니다. Optional 특징 값이 비어있을 수도 있다는 가정하에 사용하므로 직관성이 좋습니다. Null 값을 직접 사용하지 않아 NullPointerException 예외에 대하여 유연해집니다. Null 체크 기능을 직접 구현 안 해도 됩니다. Optional 생성 1. static Optional of(T value) 명시된 값을 가지는 Optional 객체를 반환합니다. 명시된 값이 아..
Stream이란? 다량의 데이터를 읽어온 다음, 사용자가 원하는 데이터로 가공하여 보여주는 객체입니다. 원본 데이터는 수정하지 않으며, Terminal Operation이 끝날 경우 소실됩니다. Stream 구조 0 또는 다수의 Intermediate Operation(중개 연산)과 1개의 Terminal Operation(최종 연산)으로 구성되어 있습니다. Intermediate Operation은 새로운 Stream을 반환하고 항상 Lazy(게을러)하여 Terminal Operation이 실행될 때까지 시작되지 않습니다. Stream의 특징 원본 데이터를 수정하지 않습니다. 손쉽게 병렬 처리를 할 수 있습니다. 함수형 인터페이스를 지원합니다. Stream은 일회성입니다. Stream 작업은 내부 반복..
함수형 인터페이스(Functional Interface)란? 추상 메소드를 단 하나만 가지고 있는 SAM (Single Abstract Method) 인터페이스입니다. @FuncationInterface 애노테이션을 가지고 있습니다. 함수형 인터페이스를 더 알아보기 전에 우선 람다 표현식 및 메소드 레퍼런스부터 알아보겠습니다. 람다 표현식(Lambda Expressions)이란? 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있습니다. 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있습니다. 그리고 코드를 확연히 줄일 수 있습니다. RunSomething runSomething = new RunSomething() { @Override public int doIt(int number)..
인터페이스란? 클래스들이 구현해야 하는 동작들을 추상적으로 선언하는 추상 자료형입니다. Interface라는 키워드를 사용하여 선언합니다. 강제적으로 구현해야 하는 추상 메소드가 있으며, static과 final이 둘 다 선언되는 상수가 있습니다. 자바 8버전부터, default 메소드와 static 메소드를 인터페이스에 구현할 수 있습니다. 기존 자바 7버전 이하에서는 추상화 클래스에서 공통코드를 구현체 메소드로 구현하여 상속 할 경우 추상화 클래스만 상속 받을 수 있기 때문에 더 이상 상속이 불가능하였습니다. 하지만, 자바 8버전부터는 인터페이스에서 default 메소드와 static 메소드가 추가되어 상속에 대하여 자유가 생겼습니다. 기본 메소드(Default Method) 인터페이스에 메소드를 구..
- Total
- Today
- Yesterday
- dromos
- 바이트 코드
- Functional Interface
- 깃 기초
- jvm
- 리플렉션
- javaagent
- 애노테이션 프로세서
- 실행 엔진
- java abstractprocessor
- 프록시패턴
- classloder
- 자바 리플렉션
- 클래스로더
- Annotation Processor
- java11 optional
- java optional
- Reflection
- java proxy pattern
- 애노테이션
- 람다표현식
- JRE와 JDK의 차이점
- javassist
- bytebuddy
- JVM 구조
- 자바 프록시 패턴
- 코드 커버리지
- java
- optional api
- Java Reflection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |