분류 전체보기56 [JAVA] Reflection 0. 이 글을 쓰게 된 이유 Spring을 학습 하다보니 자바의 리플렉션을 접하게 되었다. 리플렉션에 대해서 자세하게는 모르는 상태였어서 이번에 새로 학습하게 된 리플렉션에 대해서 정리 해보려고 한다. 1. Java Reflection API란? 구체적인 클래스 타입을 알지 못해도 그 클래스의 정보에 접근 및 조작할 수 있게 하는 API 일반적인 상황이라면 잘 이해가 안되는 정의이다. 자바에서는 구체적인 클래스가 무엇인지 알아야지 그에 대한 메서드, 타입, 변수 등에 접근할 수 있다. 하지만 reflection은 구체적인 클래스 없이도 그에 대한 정보를 모두 가져오고 심지어 조작까지 할 수 있다고 한다. 이게 무슨 뜻인지 예시를 통해 알아보자. 2. 예시 다음과 같은 Pizza 클래스가 있다고 하자. p.. 2022. 10. 6. [디자인 패턴] 프록시(Proxy) 패턴 0. 이 글을 쓰게 된 이유 Spring을 공부하던 중 프록시 패턴을 만나게 되었다. 원래 알고 있던 패턴이긴 하지만 이 참에 정리하고 가는게 좋을 것 같아서 이 글을 쓰게 되었다. 1. 프록시 패턴이란? 토비의 스프링에서는 이 프록시를 두가지로 분류한다. 클라이언트가 타깃에 접근하는 방법을 제어하기 위한 프록시(GoF의 디자인 패턴의 프록시 패턴과 같음.) 타깃에 부가적인 기능을 부여하기 위한 프록시(데코레이터 패턴이라고 한다. 여기서는 위의 1번에 해당하는 전형적인 프록시 패턴에 대해서 얘기할 것이다. 데코레이터 패턴도 거의 비슷한 구조이긴하다. 프록시 구조를 객체 다이어그램으로 나타내면 위와 같다. 간단하게 얘기하면 클라이언트가 실제 객체인 RealSubject에 접근하려면 Proxy 객체를 통해서.. 2022. 10. 5. [디자인 패턴] 템플릿/콜백(Template/Callback) 패턴 0. 이 글을 쓰게 된 이유 토비의 스프링을 공부하면서 템플릿/콜백 패턴에 대해서 접하게 되었다. 스프링에서 제공하는 코드를 보니 굉장히 많이 활용되고 있었고 활용하기 좋은 패턴이어서 정리하게 되었다. 참고로 이 패턴은 GoF의 디자인 패턴에서는 나오지 않는 패턴이다. 1. 템플릿/콜백 패턴이란? 템플릿/콜백 패턴은 전략 패턴의 일종이다. 전략 패턴의 기본적인 구조에 변화되는 부분을 매번 클래스로 만들지 않고, 익명 내부 클래스를 이용해 바로 생성하여 이용하는 식이다. 1.1 용어 정리 템플릿 템플릿은 어떤 목적을 위해 미리 만들어둔 모양이 있는 틀이다. 프로그래밍에서는 고저오딘 틀 안에 바꿀 수 있는 부분을 넣어서 사용하는 경우에 템플릿이라고 부른다. JSP는 HTML이라는 고정된 틀에 EL과 스크립릿.. 2022. 9. 30. [디자인 패턴] 전략(Strategy) 패턴 0. 이 글을 쓰게 된 이유 전략 패턴은 평소에 많이 사용하고 기본적인 패턴 중 하나이다. 이 전에도 정리한 적이 있었는데 부족한 내용이 있었기도 하고, 템플릿/콜백 패턴을 공부 하는데에 일단 전략 패턴부터 다시 정리하고 넘어가면 좋겠다 생각이 들어 정리한다. 1. 전략 패턴이란? 전략 패턴이란 행동 패턴 중 하나로, 동일 계열의 알고리즘 군을 정의하고, 각 알고리즘을 캡슐화하며(인터페이스를 통해), 이들을 상호교환이 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있다. Context 클래스는 Strategy 인터페이스 타입의 클래스를 필요하도록 설계 되었다고 하자. Strategy 인터페이스를 구현하는 클래스인 ConcreteStrategyA, C.. 2022. 9. 29. [디자인 패턴] 팩토리 메소드(Factory Method) 패턴 0. 이 글을 쓰게된 이유 토비의 스프링을 공부하던 중 팩토리 메소드 패턴에 대한 이야기가 나왔다. 경험해본 패턴이라 알고는 있었지만 정리가 되지 않은거 같아 이 글을 쓰게 되었다. 1. 팩토리 메소드 패턴이란? 팩토리 메소드 패턴은 생성 패턴 중 하나로, 객체를 생성할 때 어떤 클래스의 인스턴스를 만들지 서브 클래스에서 결정하게 되는 패턴이다. 추상 클래스인 Creator는 factoryMethod를 통해 Product 인터페이스 타입의 인스턴스를 생성하도록 설계되어있다고 하자. 추상 클래스인 Creator를 상속 받은 서브 클래스 Creator1이 factoryMethod를 오버라이딩해서 Product 인터페이스 타입의 클래스 중 어떤 구체 클래스를 사용하여 인스턴스를 만들지 결정하는 구조이다. 2... 2022. 9. 28. [CS] Cross-Origin Resource Sharing(CORS)에 대해 정확하게 알아보자 이 글을 쓰게 된 이유 프론트엔드 개발자건 백엔드 개발자건 웹 개발을 하다보면 CORS를 자주 접할 수 있다. 백엔드 개발자인 나는 단순하게 요청을 받을 수 있는 출처를 설정하는 것이라고만 추상적으로 정의하고 개발을 하고 있었다. 개념이 추상적으로 정의 되어있다보니 에러가 생겨 트러블 슈팅을 할 때 단순하게 해결 될 문제가 복잡해지고 제대로 해결도 안되는 문제가 발생하였다. 이 참에 CORS에 대해서 확실하게 정리해보자! CORS가 왜 탄생했을까? CORS 대해서 본격적으로 알아보기 전에 그 탄생 배경부터 알아보자. 이를 알기 위해서는 CORS의 반대말인 SOP(Same-Origin Policy)에 대해서 알아볼 필요가 있다. SOP(Same-Origin Policy) SOP를 간단하게 정의하자면 '다른.. 2022. 9. 28. 이전 1 ··· 4 5 6 7 8 9 10 다음