반응형
- Singleton Pattern (싱글톤 패턴):
- 목적: 클래스의 인스턴스가 하나만 생성되도록 하는 패턴.
- 예제: Spring에서 @Service나 @Component 어노테이션을 사용하여 Bean을 정의하면 해당 Bean은 기본적으로 싱글톤 스코프로 생성됨.
@Service public class MySingletonService { // 싱글톤으로 동작하는 서비스 }
- Factory Method Pattern (팩토리 메서드 패턴):
- 목적: 객체 생성을 서브 클래스에서 결정하도록 하는 패턴.
- 예제: Spring에서 @Bean 어노테이션을 사용하여 메서드를 통해 Bean을 생성하는 방식.
@Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } }
- Observer Pattern (옵저버 패턴):
- 목적: 객체 간에 일대다 의존성을 정의하여 한 객체의 상태 변경이 다수의 객체에 자동으로 통지되도록 하는 패턴.
- 예제: Spring의 이벤트 시스템.
// 이벤트 객체 public class MyEvent extends ApplicationEvent { public MyEvent(Object source) { super(source); } } // 이벤트 리스너 @Component public class MyEventListener implements ApplicationListener<MyEvent> { @Override public void onApplicationEvent(MyEvent event) { // 이벤트 핸들링 로직 } } // 이벤트 발행 @Service public class MyEventPublisher { @Autowired private ApplicationEventPublisher applicationEventPublisher; public void publishEvent() { applicationEventPublisher.publishEvent(new MyEvent(this)); } }
- Template Method Pattern (템플릿 메서드 패턴):
- 목적: 알고리즘의 뼈대를 정의하고 일부 단계를 서브 클래스로 미루는 패턴.
- 예제: Spring의 JdbcTemplate.
@Repository public class MyRepository extends JdbcDaoSupport { public List<MyEntity> findAll() { return getJdbcTemplate().query("SELECT * FROM my_table", new MyEntityRowMapper()); } }
이러한 디자인 패턴들은 소프트웨어 개발에서 특정 문제를 해결하기 위한 일반적인 해결책을 제공합니다. 패턴을 이해하고 적절하게 활용함으로써 코드의 유지보수성과 확장성을 향상시킬 수 있습니다.
반응형
'개발 > Spring Boot' 카테고리의 다른 글
[Spring Boot] Mock MVC란? (0) | 2023.12.14 |
---|---|
[Spring Boot] jpa n+1 문제 (1) | 2023.12.05 |
[Spring Boot] Spring Batch란? (0) | 2023.11.23 |
[Spring Boot] Junit이란? (0) | 2023.11.20 |
[Spring Boot] Spring Security란? (0) | 2023.11.10 |