반응형

DAO와 리포지토리 패턴

1. 개요 종종 리포지토리와 DAO의 구현은 특히 데이터 중심 앱에서 상호 교환 가능한 것으로 간주됩니다. 이것은 그들의 차이점에 대한 혼란을 만듭니다. 이 기사에서는 DAO와 리포지토리 패턴의 차이점에 대해 설명합니다. 2. DAO 패턴 DAO 패턴 이라고도 하는 데이터 액세스 개체 패턴 은 데이터 지속성의 추상화 이며 종종 테이블 중심인 기본 저장소에 더 가까운 것으로 간주됩니다 . 따라서 대부분의 경우 DAO는 데이터베이스 테이블과 일치하여 스토리지에서 데이터를 전송/검색하는 보다 직접적인 방법을 허용하고 추악한 쿼리를 숨깁니다. DAO 패턴의 간단한 구현을 살펴보겠습니다. 2.1. 사용자 먼저 기본 사용자 도메인 클래스를 생성해 보겠습니다. public class User { private Lon..

Spring 2022.12.15

MVC와 MVP 패턴의 차이점

1. 개요 이 사용방법(예제)에서는 Model View Controller 및 Model View Presenter 패턴 에 대해 알아봅니다 . 또한 그들 사이의 차이점에 대해서도 논의할 것입니다. 2. 디자인 패턴과 아키텍처 패턴 2.1. 건축 패턴 아키텍처 패턴은 소프트웨어 아키텍처에서 일반적으로 발생하는 문제에 대한 일반적이고 재사용 가능한 솔루션입니다. 이들은 코드베이스에 광범위한 영향을 미칩니다. 예를 들어 이러한 요소는 소프트웨어에 수평 또는 수직으로 영향을 미칩니다. 수평적으로는 레이어 내에서 코드를 구조화하는 방법을 의미합니다. 반대로 세로는 요청이 외부 레이어에서 내부 레이어로 그리고 그 반대로 처리되는 방식을 의미합니다. 보다 일반적인 아키텍처 패턴 중 일부는 MVC , MVP 및 MV..

Spring 2022.12.15

DTO 패턴(데이터 전송 객체)

1. 개요 이 예제에서는 DTO 패턴 , 정의, 사용 방법 및 시기에 대해 설명합니다. 결국 우리는 그것을 올바르게 사용하는 방법을 알게 될 것입니다. 2. 패턴 DTO 또는 데이터 전송 개체는 메서드 호출 수를 줄이기 위해 프로세스 간에 데이터를 전달하는 개체입니다. 이 패턴은 Martin Fowler가 그의 저서 EAA 에서 처음 소개했습니다 . Fowler는 패턴의 주요 목적이 단일 호출에서 여러 매개변수를 일괄 처리하여 서버 왕복을 줄이는 것이라고 설명했습니다. 이렇게 하면 이러한 원격 작업에서 네트워크 오버헤드가 줄어듭니다. 또 다른 이점은 직렬화 논리(객체 구조와 데이터를 저장하고 전송할 수 있는 특정 형식으로 변환하는 메커니즘)의 캡슐화입니다. 직렬화 뉘앙스에서 단일 변경 지점을 제공합니다...

Spring 2022.12.14

Java의 Memento 디자인 패턴

1. 개요 이 예제에서는 Memento 디자인 패턴이 무엇이며 어떻게 사용하는지 알아봅니다. 먼저 약간의 이론을 살펴보겠습니다. 그런 다음 패턴의 사용법을 설명하는 예제를 만듭니다. 2. 메멘토 디자인 패턴이란? Gang of Four가 저서에서 설명한 Memento 디자인 패턴 은 행동 디자인 패턴입니다. Memento 디자인 패턴은 취소할 수 있는 작업을 구현하는 솔루션을 제공합니다. 주어진 순간에 개체의 상태를 저장하고 이후 수행된 작업을 실행 취소해야 하는 경우 복원함으로써 이를 수행할 수 있습니다. 실제로 상태를 저장해야 하는 개체를 Originator라고 합니다. Caretaker는 Memento라고 하는 상태의 저장 및 복원을 트리거하는 개체입니다. Memento 개체는 Caretaker에 ..

Spring 2022.12.14

자바의 옵저버 패턴

1. 개요 이 사용방법(예제)에서는 Observer 패턴을 설명하고 몇 가지 Java 구현 대안을 살펴보겠습니다. 2. 관찰자 패턴이란 무엇입니까? 관찰자는 행동 디자인 패턴입니다. observable 과 observers 객체 간의 통신을 지정합니다 . Observable 은 관찰자 에게 상태 의 변화 를 알리는 객체입니다 . 예를 들어 뉴스 대행사는 뉴스를 수신할 때 채널에 알릴 수 있습니다. 뉴스 수신은 뉴스 에이전시의 상태를 변경하고 채널에 알림을 발생시킵니다. 직접 구현하는 방법을 살펴보겠습니다. 먼저 NewsAgency 클래스를 정의합니다. public class NewsAgency { private String news; private List channels = new ArrayList()..

Spring 2022.12.14

Java의 방문자 디자인 패턴

1. 개요 이 사용방법(예제)에서는 동작 GoF 디자인 패턴 중 하나인 방문자를 소개합니다. 먼저 그 목적과 해결하려는 문제를 설명합니다. 다음으로 방문자의 UML 다이어그램과 실제 예제 구현을 살펴보겠습니다. 2. 방문자 디자인 패턴 방문자 패턴의 목적은 기존 개체 구조를 수정하지 않고 새 작업을 정의하는 것입니다. 구성 요소로 구성된 복합 객체 가 있다고 상상해 보십시오 . 개체의 구조는 고정되어 있습니다. 변경할 수 없거나 새로운 유형의 요소를 구조에 추가할 계획이 없습니다. 이제 기존 클래스를 수정하지 않고 어떻게 새 기능을 코드에 추가할 수 있습니까? 방문자 디자인 패턴이 답이 될 수 있습니다. 간단히 말해서 우리가 해야 할 일은 구조의 각 요소에 방문자 클래스를 받아들이는 함수를 추가하는 것입..

Spring 2022.12.14

Java의 인터프리터 디자인 패턴

1. 개요 이 사용방법(예제)에서는 동작 GoF 디자인 패턴 중 하나인 인터프리터를 소개합니다. 처음에는 목적에 대한 개요를 제공하고 해결하려는 문제를 설명합니다. 그런 다음 Interpreter의 UML 다이어그램과 실제 예제 구현을 살펴보겠습니다. 2. 통역사 디자인 패턴 즉, 패턴 은 인터프리터 자체에서 평가할 수 있는 객체 지향 방식으로 특정 언어의 문법을 정의합니다 . 이를 염두에 두고 기술적으로 사용자 지정 정규식, 사용자 지정 DSL 인터프리터를 구축하거나 인간 언어를 구문 분석하고 추상 구문 트리를 구축한 다음 해석을 실행할 수 있습니다. 이것들은 잠재적인 사용 사례의 일부일 뿐이지만 잠시 생각하면 IDE에서와 같이 더 많은 사용 사례를 찾을 수 있습니다. IDE는 우리가 작성하는 코드를 ..

Spring 2022.12.14

Java의 상태 디자인 패턴

1. 개요 이 사용방법(예제)에서는 동작 GoF 디자인 패턴 중 하나인 상태 패턴을 소개합니다. 처음에는 목적에 대한 개요를 제공하고 해결하려는 문제를 설명합니다. 그런 다음 State의 UML 다이어그램과 실제 예제 구현을 살펴보겠습니다. 2. 상태 디자인 패턴 상태 패턴의 주요 아이디어는 객체가 클래스를 변경하지 않고 동작을 변경할 수 있도록 허용하는 것입니다. 또한 이를 구현하면 if/else 문이 많이 없어도 코드가 더 깔끔해집니다. 우체국으로 보내지는 소포가 있다고 상상해보십시오. 소포 자체를 주문한 다음 우체국으로 배달하고 최종적으로 고객에게 받을 수 있습니다. 이제 실제 상태에 따라 배송 상태를 인쇄하려고 합니다. 가장 간단한 접근 방식은 일부 부울 플래그를 추가하고 클래스의 각 메서드 내에..

Spring 2022.12.14

Java에서 템플릿 메서드 패턴 구현

1. 개요 이 빠른 사용방법(예제)에서는 가장 인기 있는 GoF 패턴 중 하나인 템플릿 메서드 패턴 을 활용하는 방법을 살펴봅니다 . 단일 메서드에 논리를 캡슐화하여 복잡한 알고리즘을 더 쉽게 구현할 수 있습니다. 2. 시행 템플릿 메서드 패턴이 어떻게 작동하는지 보여주기 위해 컴퓨터 스테이션 구축을 나타내는 간단한 예제를 만들어 보겠습니다. 패턴의 정의가 주어지면 알고리즘의 구조는 템플릿 build() 메서드 를 정의하는 기본 클래스에서 정의됩니다 . public abstract class ComputerBuilder { // ... public final Computer buildComputer() { addMotherboard(); setupMotherboard(); addProcessor(); r..

Spring 2022.12.14

Java의 책임 사슬 디자인 패턴

1. 소개 이 기사에서는 널리 사용되는 행동 설계 패턴 인 책임 사슬에 대해 살펴보겠습니다 . 이전 기사 에서 더 많은 디자인 패턴을 찾을 수 있습니다 . 2. 책임의 사슬 Wikipedia 는 책임 사슬을 "명령 개체의 소스와 일련의 처리 개체"로 구성된 디자인 패턴으로 정의합니다. 체인의 각 처리 개체는 특정 유형의 명령을 담당하고 처리가 완료되면 명령을 체인의 다음 프로세서로 전달합니다. 책임 사슬 패턴은 다음에 유용합니다. 명령의 발신자와 수신자를 분리 처리 시간에 처리 전략 선택 패턴의 간단한 예를 살펴보겠습니다. 3. 예시 우리는 책임 사슬을 사용하여 인증 요청을 처리하기 위한 사슬을 만들 것입니다. 따라서 입력 인증 Provider는 명령 이 되고 각 인증 프로세서는 별도의 프로세서 개체가 ..

Spring 2022.12.14
반응형