전체 글

·spring/summary
Job 실행 관련 프로퍼티spring.batch.job.enabled : application context 에 등록된 Job 을 실행을 활성화하는 프로퍼티true (default) : Job 을 실행 가능하도록 활성화 / false : 모든 Job 을 실행 불가능하도록 설정spring.batch.job.name : 실행할 배치 Job 을 job name 을 기준을 기반으로 선언spring.batch.job.name=값이 없으면 모든 잡을 실행 (spring batch 5.x 부터 exception 반환하며 실행하지 않음.)spring.batch.job.name=jobName1jobName1 이름의 잡만 실행하겠다는 의미spring.batch.job.name=jobName1,jobName2spring ..
·java/summary
1. 어댑터 패턴어댑터 디자인 패턴은 기존 클래스의 인터페이스를 다른 인터페이스로 사용할 수 있도록 하는 구조 패턴이다. 호환되지 않는 두 인터페이스를 연결하여 함께 작동하도록 하는 다리 역할을 한다. 이 패턴에는 독립적이거나 호환되지 않는 인터페이스의 기능을 결합하는 역할을 하는 Adapter 라는 단일 클래스가 포함된다. 이름은 어댑터(Adapter) 외에도 래퍼(Wrapper) 로 명명되기도 한다. 2. 어댑터 패턴 구성 요소Target interface설명 : 클라이언트가 기대하는 인터페이스를 정의한다. 클라이언트 코드가 사용할 수 있는 연산 집합을 나타낸다.역할 : 클라이언트 코드가 상호 작용하는 공통 인터페이스 이다.Adaptee설명: 새 시스템에 통합해야 하는 호환되지 않는 인터페이스가 있는..
·java/summary
1. 퍼사드 패턴퍼사드 패턴의 목적은 클라이언트가 사용해야 하는 복잡한 서브 시스템 의존성을 간단한 인터페이스로 추상화하는 구조적 패턴이다. 코드 작업을 위해서는 객체 초기화, 종속성 관계 추적, 메서드 실행 순서에 관한 내용에 관해 이해해야 한다. 여러 비즈니스 로직들의 세부 구현 사항을 알고 있다면 코드를 이해하고 유지 관리하기 어려워 추상화가 필요하다. 이를 해결하기 위한 방법이 퍼사드 패턴이다. 퍼사드를 사용하는 이유는 loosely coupling 이다. tight coupling 은 해당 코드를 변경하기 어렵고, 변경 이유도 많고, 테스트도 어렵다. 이를 loosely coupling 을 통해 변경에 유연하고, 테스트하기 쉬운 코드로 작성하기 위함이다. 추상화 또한 이와 관련된 내용이며 세부 ..
·java/summary
1. 커맨드 패턴(command pattern)커맨드 패턴은 호출자(클라이언트 또는 호출자) 와 수신자(작업 수행 개체)에서 분리(decoupling) 하여 유연성과 확장성을 제공하는 패턴이다. 즉, 호출자의 코드를 변경하지 않고 다양한 매개변수를 사용해 다양한 명령을 생성할 수 있다. 요청을 캡슐화해서 해당 요청 안에서 수행할 동작을 설정하고 수신자를 호출할 때 호출할 행동과 필요한 파라미터에 관한 모든 정보들을 커맨드(command) 라는 인터페이스 안으로 캡슐화하기 때문에 기능을 재사용할 수 있다.  커맨드 패턴의 OCP 을 실현할 수 있는 장점이 있다. 호출자 쪽의 코드가 변경되지 않으며 기능(command) 캡슐화 및 추가할 수 있기 때문이다. 하지만, 기능(command) 가 증가할수록 복잡도..
·java/summary
1. 책임 연쇄 패턴(Chain of Responsibility pattern)책임 연쇄 패턴은 핸들러들의 체인(사슬)을 따라 요청을 전달할 수 있게 해주는 행동 디자인 패턴이다. 각 핸들러는 요청을 받으면 요청을 처리할지 또는 체인의 다음 핸들러로 전달할지 결정한다. 책임 연쇄 패턴을 사용하면 SRP 를 지킬 수 있다. SRP 는 객체는 단 하나의 책임을 가져야 한다는 원칙이다. 즉, 변경되어야 할 이유 또한 한가지여야 한다는 의미이다. 책임 연쇄 패턴을 사용하면 각 핸들러에게 책임을 맡기고 핸들러 책임 외에는 다른 핸들러에게 위임하기 때문에 SRP 를 지킬 수 있다. 책임 연쇄 패턴은 요청을 보내는 주체와 요청을 처리하는 주체를 분리하는 패턴으로 요청을 보내는 주체가 요청을 처리하는 핸들러가 구체적인..
·java/summary
1. 싱글톤 패턴??인스턴스를 오직 한 개만 제공하기 위한 객체 생성을 위한 디자인 패턴이다. 2. 멀티쓰레드 환경에서의 동시성 문제 멀티쓰레드 환경에서는 경합 조건(race condition) 을 고려해야 한다. 특히 싱글톤의 경우에는 경합 조건에 의해 객체가 두 개 생성될 수 있다. 이를 방지하기 위해서는 동기화 메커니즘을 사용해야 하며 모니터(monitor) 기반의 synchronized 키워드를 사용해 임계 영역(critical section) 에 대해 접근을 제어할 수 있다. synchronized 을 사용 시에는 성능을 위해 임계 영역 범위를 최소화하는 것이 중요하다. double checked locking 은 멀티스레드 환경에서 객체 생성을 최적화하는 데 사용되는 소프트웨어 디자인 패턴이다..
cooper25
dev cooper