1. AOP(관점 지향 프로그래밍)의 등장 배경과 필요성자바(Java) 웹 백엔드 개발을 위해 스프링(Spring) 프레임워크를 학습하다 보면 DI(의존성 주입)와 함께 가장 중요하게 다루어지는 개념이 바로 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)입니다.객체 지향 프로그래밍(OOP)은 애플리케이션을 여러 개의 독립적인 객체로 나누고, 이들의 상호작용으로 로직을 구성합니다. 덕분에 비즈니스 로직의 모듈화와 재사용성이 크게 향상되었습니다. 하지만 애플리케이션의 규모가 커지면서 OOP만으로는 해결하기 어려운 문제에 직면하게 됩니다.바로 흩어진 관심사(Cross-cutting Concerns)의 문제입니다. 게시판 서비스를 예로 들어보겠습니다. '게시글 작성', '게시글..
서블릿 필터 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 객체를 반환합니다. 명시된 값이 아..
- Total
- Today
- Yesterday
- javassist
- java optional
- bytebuddy
- JRE와 JDK의 차이점
- java11 optional
- Functional Interface
- dromos
- javaagent
- JVM 구조
- java abstractprocessor
- Reflection
- 자바 리플렉션
- 클래스로더
- java
- jvm
- 바이트 코드
- 람다표현식
- java proxy pattern
- Annotation Processor
- 리플렉션
- Java Reflection
- 실행 엔진
- optional api
- 자바
- 애노테이션 프로세서
- 코드 커버리지
- 애노테이션
- classloder
- 깃 기초
- 자바 프록시 패턴
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
