자바(Java)를 사용하여 애플리케이션을 개발하다 보면 컬렉션 프레임워크(Collection Framework)를 다룰 일이 매우 많습니다. 이때 NullPointerException만큼이나 개발자를 괴롭히는 것이 바로 런타임에 발생하는 ClassCastException입니다.자바 5 버전에 도입된 자바 제너릭(Java Generics)은 이러한 타입 변환 에러를 컴파일 타임에 완벽하게 잡아주는 아주 강력하고 필수적인 문법입니다. 오늘 이 포스팅에서는 자바 제네릭의 기초적인 개념부터 시작하여 제네릭 사용법, 제한된 타입 파라미터, 그리고 많은 개발자들이 헷갈려하는 와일드카드(Wildcard)와 PECS 공식까지 상세히 알아보겠습니다.1. 자바 제네릭(Java Generics)이란?제네릭(Generics)..
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 ..
- Total
- Today
- Yesterday
- 자바 프록시 패턴
- javassist
- JVM 구조
- 코드 커버리지
- dromos
- Java Reflection
- 자바 리플렉션
- classloder
- 애노테이션
- javaagent
- 자바
- 람다표현식
- 바이트 코드
- java
- java proxy pattern
- Reflection
- java optional
- JRE와 JDK의 차이점
- java11 optional
- Annotation Processor
- 리플렉션
- 클래스로더
- optional api
- 깃 기초
- 애노테이션 프로세서
- java abstractprocessor
- Functional Interface
- jvm
- bytebuddy
- 실행 엔진
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |