목록Java (6)
MyPrograming

Proxy Pattern (프록시 패턴) 이란? - proxy는 대리인이라는 의미로, 무언가를 대신 처리한다는 뜻이다. 어떤 객체를 사용하고자 할 때, 이 객체를 직접적으로 참조하는 것이 아니라, 해당 객체를 대행(proxy)하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있다. 또한 실제 객체의 기능이 반드시 필요한 시점까지 객체의 생성을 미룰 수도 있다. ▶ 프록시의 종류 가상 프록시 반드시 필요로하는 시점까지 객체의 생성을 연기하고, 해당 객체가 생성된 것처럼 동작하도록 만들고 싶을때 사용하는 패턴이다. 프록시 클래스에서 작업들을 처리하고, 리소스가 많이 요구되는 작업들이 필요할 때에만 주체 클래스를 사용하도록 구현한..

Factory Pattern (팩토리 패턴) 이란? 가장 유명한 디자인 패턴 중 하나인 팩토리 패턴은 구체적인 용어로, 팩토리 메서드 패턴(Factory Method Pattern)으로도 널리 알려져 있다. 팩토리 패턴은 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴이다. 즉 여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을 때, input에 따라 하나의 자식 클래스의 인스턴스를 return 해주는 방식이다. 팩토리 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미룬다. 이 패턴은 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져온다. ▶ 팩토리 패턴의 유용성 어떤 클래스가 자신이 생성해야 하는 객체의 ..

Strategy Pattern (전략패턴) 이란? 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고, 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴으로 '행위 패턴' 의 하나이다. 즉, 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 여기서 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비지니스 규칙, 문제를 해결하는 알고리즘 등을 말한다. 전략 패턴의 특징 각 행동을 모듈화해서 독립적이고 상호 교체 가능하게 만듦 strategy, context, client 의 세 요소로 구성 client 에서 strategy 객체를 생성해 cont..

IOC (Inversion Of Control) ? IOC란, 해석하면 제어의 역전이다. 즉, 제어권이 역전 혹은 기존의 제어방식을 뒤집었다는 말이다. 객체에 대한 제어권이 개발자가 아닌 컨테이너로 넘어가 객체의 생성부터 생명주기 관리까지 전부 컨테이너가 맡아서 처리하기 때문에 제어권을 컨테이너가 갖고 있다. 컨테이너가 직접 Bean을 생성 / 관리하기 때문에 개발자는 new 등으로 선언하지 않아도 됨으로써 각 클래스들의 의존성을 줄여준다. 1) Bean : 스프링에서 제어권을 가지고 직접 만들어 관계를 부여하는 오브젝트 스프링을 사용하는 애플리케이션에서 만들어지는 모든 오브젝트가 빈은 아니다. 스프링의 빈은 스프링 컨테이너가 생성하고 관계 설정, 사용을 제어해주는 오브젝트를 말한다. 2) Bean fa..
Java Bean? Java Bean은 데이터를 표현하는 것을 목적으로 하는 자바 클래스로, Java Bean 규약에 맞춰서 만드는 클래스이다. 기본 생성자가 존재해야 한다. 모든 멤버 변수의 접근 제어자는 private이다. 멤버 변수마다 getter / setter가 존재해야 한다. -> boolean인 경우는 'is'를 붙임 외부에서 멤버변수에 접근하기 위해서는 메소드로만 접근할 수 있다. 직렬화(Serializable)가 가능해야 한다. ※ 직렬화 : 시스템 내부에서 사용하는 객체 혹은 데이터를 외부의 시스템에서도 사용할 수 있도록 변환하는 것으로, 자바에서는 JVM의 Heap 영역에 상주하는 객체를 byte 형태로 변환시키거나(직렬화), byte 형태를 다시 자바 객체로 변환하는 것(역직렬화)을..
1. 소수(prime number) 소수란, 1보다 큰 자연수 중에서 1과 자기 자신만을 약수로 갖는 자연수를 의미한다. ex) 7 -> 1,7 9 -> 1,3,9 이처럼 소수는 2개의 약수만을 갖고, 그 약수는 1과 자신 뿐이다. 만약 이 외의 약수를 갖고있는 자연수라면 소수라고 할 수 없으며 합성수라고 부르게 된다. 2. 에라토스테네스의 체 에라토스테네스의 체는 가장 대표적인 소수(prime number) 판별 알고리즘이다. 진행 방법은 아래와 같다. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 2는 소수이므로 오른쪽에 2를 쓴다. 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는..