빈 bean 빈 또는 빈 오브젝트는 스프링이 IoC 방식으로 관리하는 오브젝트라는 뜻이다. 관리 되는 오브젝트라고 부르기도 한다. 주의할 점은 스프링을 사용하는 애플리케이션에서 만들어지는 모든 오브젝트가 다 빈은 아니라는 사실이다. 그중에서 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다. 빈 팩토리 bean factory 스프링의 IoC를 담당하는 핵심 컨테이너를 가리킨다. 빈을 등록하고, 생성하고, 조회하고 돌려주고, 그 외에 부가적인 빈을 관리하는 기능을 담당한다. 보통은 이 빈 팩토리를 바로 사용하지 않고 이를 확장한 애플리케이션 컨텍스트를 이용한다. BeanFactory라고 붙여쓰면 빈 팩토리가 구현하고 있는 가장 기본적인 인터페이스의 이름이 된다. 이 인터페이스에 getB..
스프링에서는 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트를 빈(bean)이라고 부른다. 자바빈 또는 엔터프라이즈 자바빈(EJB)에서 말하는 빈과 비슷한 오브젝트 단위의 애플리케이션 컴포넌트를 말한다. 동시에 스프링 빈은 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트를 가리키는 말이다. 스프링에서는 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리(bean factory)라고 부른다. 스프링 사용시 보통 빈 팩토리보다는 이를 좀 더 확장한 애플리케이션 컨텍스트(application context)를 주로 사용하게 된다. 애플리케이션 컨텍스트는 IoC 방식을 따라 만들어진 일종의 빈 팩토리라고 생각 하면 된다. 두가지가 동일하도..
전략 패턴은 디자인 패턴의 꽃이라고 불릴 만큼 다양하게 자주 사용되는 패턴이다. 개방 패쇄 원칙의 실현에도 가장 잘 들어 맞는 패턴이라고 볼 수 있다. 전략 패턴은 자신의 기능 맥락(context)에서, 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래 스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴이다. 여기서 말하는 알고리즘이란 거창한 수학적 알고리즘을 말하는 게 아니고, 독립적인 책임으로 분리가 가능한 기능을 뜻한다. 이를 대체 가능한 전략이라고 보기 때문에 패턴의 이름이 전략 패턴이다.
객체지향 기술은 어느날 한 번에 만들어진 것이라기보다는 오랜 시간에 걸쳐 점진적으로 발전 해온 기술이라고 볼 수 있다. 그렇기 때문에 객체지향 프로그래밍 언어의 종류도 다양하고 객체지향 기술을 받아들이고 적용하는 관점과 기법도 조금씩 차이가 있다. 그럼에도 객체지향이라는 이름으로 묶을 수 있는 분명한 특징이 있다. 객체지향 설계 원칙은 객체지향의 특징을 잘 살릴 수 있는 설계의 특징을 말한다. 원칙이라는 건 어떤 상황에서든 100% 지켜져야 하는 절대적인 기준이라기보다는, 예외는 있겠지만 대부분의 상황에 잘 들어맞는 가이드라인과 같은 것이다. 디자인 패턴은 특별한 상황에서 발생하는 문제에 대한 좀 더 구체적인 솔루션이라고 한다면, 객체지향 설계 원칙은 좀 더 일반적인 상황에서 적용 가능한 설계 기준이라고..
팩토리 메소드 패턴도 템플릿 메소드 패턴과 마찬가지로 상속을 통해 기능을 확장하게 하는 패턴입니다. 그래서 구조도 비슷합니다. 슈퍼클래스 코드에서는 서브클래스에서 구현할 메소드를 호출해서 필요한 타입의오브젝트를 가져와 사용합니다. 이 메소드는 주로 인터페이스 타입으로 오브젝트를 리턴하므로 서브클래스에서 정확히 어떤 클래스의 오브젝트를 만들어 리턴할지는 슈퍼클래스에서는 알지 못한다. 사실 관심도 없습니다. 서브클래스는 다양한 방법으로 오브젝트를 생성하는 메소드를 재정의할 수 있습니다. 이렇게 서브클래스에서 오브젝트 생성 방법과 클래스를 결정할 수 있도록 미리 정의해둔 메소드를 팩토리 메소드라고 하고, 이 방식을 통해 오브젝트 생성 방법을 나머지 로직, 즉 슈퍼클래스의 기본 코드에서 독립시키는 방법을 팩토리..
상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법이다. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 한다. 슈퍼클래스에서는 미리 추상 메소드 또는 오버라이드 가능한 메소드를 정의해주고 이를 활용해 코드의 기본 알고리즘을 담고 있는 템플릿 메소드를 만든다. 슈퍼클래스에서 디폴트 기능을 정의해두거나 비워뒀다가 서브클래스에서 선택적으로 오버라이드할 수 있도록 만들어둔 메소드를 훅(hook) 메소드라고 한다. 서브클래스에서는 추상 메소드를 구현하거나, 훅 메소드를 오버라이드하는 방법을 이용해 기능의 일부를 확장한다. 템플릿메소드 - 기본 알고리즘 골격을 담은 메소드를 템플릿 메소드라 부른다. 템플릿 메소드는 서브클래스에서 오버라이드 하거나 ..
디자인 패턴은 소프트웨어 설계 시 특정 상황에서 자주 만나는 문제를 해결하기 위해 사용할 수 있는 재사용 가능한 솔류션을 말한다. 모든 패턴에는 간결한 이름이 있어서 잘 알려진 패턴을 적용하고자 할 때 간단히 패턴 이름을 언급하는 것만으로도 설계의 의도와 해결책을 함께 설명할 수 있다는 장점이 있다. 디자인 패턴은 주로 객체지향 설계에 관한 것이고, 대부분 객체지향적 설계 원칙을 이용해 문제를 해결한다. 패턴의 설계 구조를 보면 대부분 비슷한데, 그 이유는 객체지향적인 설계로부터 문제를 해결하기 위해 적용할 수 있는 확장성 추구 방법이 대부분 두 가지 구조로 정리되기 때문이다. 하나는 클래스 상속이고 다른 하나는 오브젝트 합성이다. 따라서 패턴의 결과로 나온 코드나 설계 구조만 보면 대부분 비슷해 보인다..
쓰레드의 문제점과 동기화 컴퓨터는 위 그림처럼 프로그램을 수행을해서 위 계산을 보면 j에 30이 할당 된다고 예측할 수 있습니다. 그런데 만약 int i = 10 i+=10 의 연산 결과를 두개의 쓰레드에 의해 덧셈 연산을 한다고 했을때, 쓰레드는 코드영역을 공유하기 때문에 똑같은 코드를 2번 작업하여 시스템 성능을 저하 시키게 됩니다. 동기화 *임계영역(critical-section): 둘이상의 쓰레드에 의해서 공유되는 메모리 공간에 접근하는 코드영역 동기화: 1) 공유된 메모리에 둘 이상의 쓰레드가 동시에 접근하는 것을 막는 행위 2) 둘 이상의 레드 실행순서를 컨트롤 하는 행위
1. 쓰레드의 생성 프로세스와 쓰레드의 비교 *프로세스의 특징 - 프로세스는 두 개의 컴포넌트로 나뉘어지는 복잡한 개체입니다. 프로세스안에 여러 개의 쓰레드가 있다고 했을때, 쓰레드의 집합과 자원의 집합으로 나뉘게 되고 여기서 수행 유닛은 쓰레드이고, 프로세스는 쓰레드의 수행 환경을 제공합니다. 그리고 쓰레드 ID를 가지고 있습니다. 프로세스를 생성하게 되면 쓰레드가 프로세스안에 생성되게 되며, 파일 테이블과 메모리영역과 같은 자원의 집합이 있습니다. 이때 쓰레드가 1개 더 생겼다고 할 때 위 그림 처럼 자원 영역은 그대로 있고 쓰레드가 하나 더 생성 되고 이 쓰레드의 상태를 조절하는 시그널 마스트가 있고 또 개발적인 스택 영역이 하나 더 생기게 됩니다. 프로세스와 쓰레드 함수의 비교 ----------..
- Total
- Today
- Yesterday
- Page
- 메소드
- application
- apache2.x
- 쓰레드
- 연동
- apache tomcat 연동
- BEAN
- 스프링
- IoC컨테이너
- 프로세스
- 쓰레드 사용 이유
- map iterator
- tomcat8.x
- map loop
- 쓰레드의 이용
- 프로세스의 특징
- 패턴
- 빈
- map for문
- java map loop
- 어플리에키션 컨텍스트
- 빈팩토리
- apllication context
- tomcat8.5
- 프로세스의 문제점
- map foreach
- parretn
- 디자인패턴
- 설정정보
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |