일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링 로그
- 낙관적락 비관적락 차이
- JPA Lock
- Transaction isolation level
- JPA 동시성
- Inno DB
- component
- JPA 비관적락
- Optimistic Lock
- 개발
- spring security 인증
- 안드로이드
- Redis
- 캠프
- 서버개발캠프
- flask
- JPA
- 스프링 log
- 디자인 패턴
- bean
- spring
- 서버
- 스마일게이트
- spring security
- JPA 낙관적락
- 암호화
- Android
- 스프링
- Pessimistic Lock
- annotation
- Today
- Total
목록디자인패턴 (4)
모르는게 많은 개발자
이번 포스팅에서는 팩토리 패턴의 개념에 대해 포스팅하고자 한다. 1. 심플 팩토리 패턴 팩토리 패턴에는 팩토리 메소드 패턴, 추상 팩토리 패턴이있다. 이 두가지 패턴을 알기전에 먼저 심플 팩토리(Simple Factory)패턴에 대해 간략하게 설명하고 가자. 심플 팩토리 패턴은 간단하게 말해서 객체를 생성하는 클래스를 따로 두는 것을 의미한다. 클라이언트에서 휴대폰을 주문하는 코드를 예시로 해보자. //휴대폰을 만드는 공장 public class SimplePhoneFactory { public Phone orderPhone(String type) { Phone phone = createPhone(type); phone.complete(); return phone; } private Phone creat..
1. 옵저버 패턴 옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자들(Observer) 목록을 '이벤트를 발생시키는 이벤트 객체'에 등록하여 이벤트가 발생할 때마다 메소드를 통해 관찰자들(Observer) 객체들에게 알려주어 그에 맞게 행위를 하는 디자인 패턴이다. 아래 UML 다이어그램을 보자 Observer라는 인터페이스에는 notify()라는 함수가 정의되있다. notify()는 이벤트가 발생했을 때 처리할 행위를 정의한다. Subject(이벤트 발생 객체)에는 observerCollection이 존재하는데 여기에 Observer객체들이 저장된다. 그리고 notifyObservers()는 Observer 객체들의 목록들의 notify()를 실행해 이벤트 발생에 따른 처리를 각 Observer에게 전..
1. 빌더 패턴 빌더 패턴은 객체를 생성할 때 흔하게 사용하는 패턴이다. 아래와 같은 방식으로 객체가 생성되면 Builder Pattern을 활용한 것이다. Person person = Person.builder() .name("a") .age(13) .build(); 빌더 패턴은 흔히 생성자 인자 많을 때 고려된다. 빌더 패턴 구현 예제를 보기전에 객체를 만드는 패턴 두가지를 알아보자. 2. 점층적 생성자 패턴 점층적 생성자 패턴은 내가 사용할 인자를 받는 생성자를 모두 만드는 것이다. 예를 들어 아래 코드처럼 a만 인자로 받는 생성자가 필요할 수도 있고, a, b, c, d를 모두 받는 생성자가 필요한 등 내가 사용할 생성자들을 모두 만들어서 사용하는 패턴이다. class Person { String..
1. 싱글톤 패턴 싱글톤 패턴이란 클래스의 인스턴스를 하나만 생성하여 사용하는 패턴이다. 주로 특정 객체를 여러곳에서 공유해야 할 때 사용한다.(Ex: DB Conntection pool) 싱글톤 패턴을 이용함으로써 메모리에 인스턴스 하나를 등록해 여러 쓰레드에서 동시에 하나의 객체를 이용할 수 있게 할 수 있다. 이것으로 인해 주의할 점은 여러곳에서 동시에 접근해서 생길 수 있는 문제(동기화 문제)를 잘 파악하고 설계해야한다. 싱글톤 패턴을 만들땐 기본적으로 생성자를 private로 해서 외부에서는 직접 인스턴스를 생성할 수 없게 하고, 사용자에게 인스턴스를 전달하는 static 메소드가 있다. 아래 예제를 보자. 아래 예제를 보면 객체는 오로지 getInstance()를 통해서만 생성되거나 얻을 수 ..