전체 글(73)
-
[GOF] 추상 팩토리 패턴
1. Abstrract Factory Pattern 연관성이 있는 객체 군이 여러개 있을 경우 이들을 묶어서 추상화하고, 팩토리 객체에서 집합으로 묶은 객체 군을 구현화하는 패턴 특정 객체를 사용할 때 팩토리 클래스만을 참조하여 특정 객체에 대한 구현부를 감추어 역할과 구현을 분리 AbstractFactory : 최상위 공장 클래스. 여러개의 제품들을 생성하는 여러 메소드들을 추상화한다. ConcreteFactory : 서브 공장 클래스들은 타입에 맞는 제품 객체를 반환하도록 메소드들을 재정의 한다. AbstractProduct : 각 타입의 제품들을 추상화한 인터페이스 ConcreteProduct (ProductA ~ ProductB) : 각 타입의 제품 구현체들. 이들은 팩토리 객체부터 생성 Clie..
2024.04.02 -
[JPA] Java Persistence API 를 사용하는 이유
1. JPA 자바 진영에서 ORM(Object - Relation Mapping) 기술 표준으로 사용되는 인터페이스 모음 구현된 클래스와 맵핑 해주기 위해서 사용되는 프레임워크 JPA를 구현한 대표적인 오픈소스로는 Hibernate 가 있다. ORM(Object - Relation Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 Mapping( 연결 ) 해주는 것을 의미한다. 객체지향 프로그래밍 - 클래스 사용 / 관계형 데이터베이스 - 테이블 사용 객체모델과 관계형 모델간의 존재하는 불일치를 ORM을 통해 객체간의 관계를 바탕으로 SQL문을 자동으로 생성 2. JPA 사용이유 기존의 개발 방식(Mybatis)은 SQL 중심적인 개발이었지만, JPA를 사용하면서 객체 중심으로 개발이 가능하..
2024.03.21 -
[JPA] 영속성 컨텍스트
1. 영속성 컨텍스트 ORM은 객체와 데이터베이스 테이블의 맵핑을 통해 엔티티 클래스 객체안에 포함된 정보를 테이블에 저장하는 기술 JPA에서는 엔티티 객체 정보를 영속성 컨텍스트를 통해 어플리케이션 내에서 오래 지속되도록 보관한다. Server side와 Database 사이에 엔티티를 저장하는 논리적인 영역이라고 할 수 있다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 영속성 컨텍스트는 엔티티 매니저(Session)를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저(Session)을 통해서 영속성 컨텍스트에 접근할 수 있고 영속성 컨텍스트를 관리할 수 있다. EntityManagerFactory : EntityManager를 생성한다...
2024.03.20 -
JWT 와 RTR기법
1. JWT jwt는 사용자가 로그인을 하면 서버는 해당 사용자가 인증(Autehntication)되었고, 기본적인 정보를 토큰으로 만들어 응답 사용자는 이 토큰을 기반으로 인가(Authorization)를 필요로 하는 요청에는 Header에 토큰을 담아서 보내게된다. Json 개체로 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 정의하는 개방형 표준 Header (헤더) alg : 해싱 알고리즘을 지정한다. 해싱 알고리즘은 기본적으로 HS256을 사용한다. typ : 토큰의 타입을 지정. JWT이기 때문에 typ는 JWT 고정 Payload (내용) 토큰에 담을 정보를 담는곳 정보 하나하나가 클레임(claim)이라고 부르고 Key : Value로 이루어져있다. 민감한 정보는 넣지않는것이 좋다 공개클..
2024.03.20 -
[GOF] 템플릿 메소드 패턴
1. Template Method Pattern 여러 클래스에서 공통으로 사용하는 메소드를 템플릿화하여 상위 클래스에 정의하고, 하위 클래스마다 다르게 구현하는 패턴 상속이라는 기술을 극대화 시켜 알고리즘의 뼈대를 맞추는것 이미 많은 프레임워크에서 많은부분 템플릿 메소드 패턴 코드가 우리도 모르게 적용되어 있다. AbstractClass(추상 클래스) : 템플릿 메소드를 구현하고, 메소드에서 돌아가는 추상 메소드를 선언한다. ConcreteClass(구현 클래스) : AbstractClass를 상속하고 추상 메소드를 구체적으로 구현한다. 2. 템플릿 메소드 패턴 흐름 abstract class AbstractTemplate { // 템플릿 메소드 : 메서드 앞에 final 키워드를 붙이면 자식 클래스에서..
2024.03.19 -
[GOF] 상태(State) 패턴
1. State Pattern 상태 패턴은 객체가 특정 상태에 따라 행위를 달리하는 상황에서, 상태를 객체화 하여 상태가 행동을 할 수 있도록 위임하는 패턴 객체 상태를 클래스로 표현한 패턴 State 인터페이스 : 상태를 추상화한 고수준 모듈 ConcreteState : 구체적인 각각의 상태를 클래스로 표현. State 역할로 결정되는 인터페이스(API)를 구체적으로 표현 Context : State를 이용하는 시스템. 시스템 상태를 나타내는 State 객체를 합성(composition)하여 가지고 있다. interface AbstractState { void requestHandle(Context cxt); } class ConcreteStateA implements AbstractState { @O..
2024.03.18