| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- proxy
- 파이썬
- 스프링 시큐리티
- 약수
- Spring
- BOJ
- 운영체제
- CS
- 객체지향
- redis
- spring security
- Junit5
- test
- 최소 신장 트리
- java
- MST
- 알고리즘
- 프록시
- OS
- 백준
- 다이나믹 프록시
- 모던자바
- 모던 자바 인 액션
- 리플렉션
- 문자열
- Reflection
- Deadlock
- 자바
- Python
- 스프링
- Today
- Total
목록전체 글 (98)
Dev 달팽이 @_''
Java - 프록시 패턴 Sequence Diagram 프록시 패턴(Proxy Pattern) 프록시와 리얼 서브젝트가 공유하는 인터페이스가 있고, 클라이언트는 해당 인터페이스 타입으로 프록시를 사용 클라이언트는 프록시를 거쳐서 리얼 서브젝트를 사용하기 때문에 프록시는 리얼 서브젝트에 대한 접근을 관리하거나 부가기능을 제공하거나, 리턴값을 변경할 수도 있음 리얼 서브젝트는 자신이 해야 할 일만 하면서(SRP : Single Responsibility Principle,단일 책임 원칙) 프록시를 사용해서 부가적인 기능(접근 제한, 로깅, 트랜잭션 등)을 제공할 때 이런 패턴을 주로 사용 프록시 간단한 예제 Book.java public class Book { public String title; publi..
Java - 간단한 DI 프레임워크 만들기 스프링을 경험한 사람이라면 Dependency Injection를 들어봤을 것이다. 이번에는 간단하게 DI를 만들어보겠다. Injection.java import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface Injection { } Retention 어노테이션을 사용하여 어노테이션을 runtime시까지 사용하도록 설정해줍니다. ContainerService.java public static T getObject(Class classType){ return createInsta..
Java - 리플렉션(클래스 정보 수정 또는 실행) Class 인스턴스 만들기 Class.newInstance()는 deprecated 됐으므로 이제 부터는 생성자를 통하여 만들어야 함 //Class API를 통해서 인스턴스를 만드는 방법 Class bookClass = Class.forName("org.example.Book"); Constructor constructor = bookClass.getConstructor(String.class); Book book = (Book)constructor.newInstance("myBook"); System.out.println(book); 생성자로 인스턴스 만들기 Constructor.newInstance(params) Field에 접근하고 수정하는 방법 ..
Java - 리플렉션 API(클래스 정보 조회) 자바 리플렉션(Java Reflection) 리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법 스프링에서 BeanFactory는 어플리케이션이 실행한 후 객체가 호출 될 당시 객체의 인스턴스를 사용 이 때 필요한 기술이 리플렉션 Class : https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html Class에 접근하는 방법 public class App { public static void main(String[] args) throws ClassNotFoundException { // 방법 1. 모든 클래스를 로딩 한 다음 Class의 인스턴스가 생김 // 타입.class로 접근할..