전체 글

Factory Method Factory Method 패턴 💡 인스턴스를 생성하는 공장은 Template Method 패턴으로 구성한 것 인스턴스의 생성 방법을 상위 클래스에서 결정하되, 구체적인 클래스 이름까지 결정하지 않음 구체적인 살은 모두 하위 클래스에서 결정! ⇒ 인스턴스 생성을 위한 프레임워크와 실제 인스턴스를 생성하는 클래스를 나눌 수 있음 등장인물 Product (제품) 프레임워크 package 생성되는 인스턴스가 가져야 할 인터페이스(API)를 결정하는 추상 클래스 구체적인 내용은 하위 클래스 `ConcreteProduct` 에서 결정 package framework; public abstract class Product { public abstract void use(); } Creat..
Template Method 패턴 💡 상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 구체적인 내용을 결정 등장인물 `AbstractClass` (추상 클래스) 템플릿 메소드를 구현하며, 템플릿 메소드에서 사용할 추상 메소드를 선언 추상 메소드는 하위 클래스인 `ConcreteClass` 에서 구현 public abstract class AbstractDisplay { // 하위 클래스에 구현을 맡기는 추상 메소드 public abstract void open(); public abstract void print(); public abstract void close(); // AbstractDisplay에서 구현하는 메소드 -> 템플릿 메소드 public final void display() { ..
Adapter 💡 ‘이미 제공된 것’과 ‘필요한 것’ 사이의 ‘차이’를 메우는 디자인 패턴 Wrapper 패턴이라고도 불림 [예제] 상속을 사용한 패턴 클래스에 의한 Adapter 패턴 Banner 클래스 미리 제공되는 클래스 public class Banner { private String string; public Banner(String string) { this.string = string; } public void showWithParen() { System.out.println("(" + string + ")"); } public void showWithAster() { System.out.println("*" + string + "*"); } } Print 인터페이스 필요로 하는 인터페이스 ..
Iterator 무엇인가 많이 모여 있을 때 이를 순서대로 가리키며 전체를 검색하고 처리를 반복하는 것 iterator: 반복자 Iterable Interface 처리를 반복할 대상을 나타냄 이 인터페이스를 구현하는 클래스는 배열처럼 뭔가 많이 모여있는 것(=집합체)가 된다 package java.lang.* public interface Iterable { public abstract Iterator iterator(); } `iterator()`: 집합체에 포함된 요소를 하나하나 처리해 나가고 싶을 때 사용 Iterator Interface 하나하나의 요소처리를 반복하기 위한 것 → 루프 변수 역할 package java.util.* public interface Iterator { public ab..
💡 SpringMail을 사용하여 메일 전송 구현 GitHub - jeongum/spring-mail Contribute to jeongum/spring-mail development by creating an account on GitHub. github.com 개발환경 SpringBoot 3.1.4 kotlin / java 17 build.gradle.kts 설정 사용할 springframework mail 설정 추가 implementation("org.springframework.boot:spring-boot-starter-mail") application.yml 설정 메일 전송에 필요한 smtp 설정 spring: mail: host: smtp.gmail.com port: 587 username:..
AWS EC2 Ubuntu 서버에 ElasticSearch와 대시보드 Kibana를 설치한다! 패키지 관리 1. apt를 이용하여 설치 가능한 패키지 리스트를 최신화 2. HTTPS를 통해 패키지를 다운로드할 수 있게하는 `apt-transport-https` 설치 $ sudo apt-get update $ sudo apt-get install apt-transport-https Elasticsearch 설치 전 세팅 ElasticSearch GPG Key ElasticSearch 패키지의 신뢰성을 확인하기 위해 사용되며, 패키지가 안전하게 다운로드되고 설치되도록 하는 보안 장치 아래 명령어를 실행하여 ElasticSearch Public GPG 키 추가 $ wget -qO - | sudo gpg --d..
점이
DOTELOPER