코딩/코딩 테스트(9)
-
JAVA 자바 디자인 패턴 : MVC 패턴, MVP 패턴, MVVM 패턴 장점 단점, 예시
JAVA 자바 디자인 패턴 : MVC 패턴 MVC 패턴(Model-View-Controller)은 사용자 인터페이스를 구현하기 위해 사용되는 디자인 패턴으로, 애플리케이션을 세 가지 주요 구성 요소로 나누어 관리합니다: 모델(Model): 데이터와 비즈니스 로직을 처리합니다. 애플리케이션의 데이터 구조를 정의하고 데이터베이스와의 상호작용 및 비즈니스 규칙을 담당합니다. 뷰(View): 사용자에게 정보를 표시하는 방법(사용자 인터페이스)을 정의합니다. 모델이 가지고 있는 정보를 받아 사용자에게 보여주는 역할을 합니다. 컨트롤러(Controller): 사용자의 입력을 받아 처리하는 부분으로, 사용자의 입력에 따라 모델과 뷰를 업데이트합니다. 자바 스윙을 사용한 MVC 예시 다음은 자바 스윙을 사용하여 간단한..
2024.04.16 -
JAVA 자바 디자인 패턴 : 프록시 패턴, 이터레이터 패턴, 장점 단점, 예시
JAVA 자바 디자인 패턴 : 프록시 패턴 프록시 패턴(Proxy Pattern)은 객체의 대리인 또는 자리채움자로 작동하는 객체를 제공하여 원래 객체에 대한 접근을 제어하거나 기능을 추가하는 디자인 패턴입니다. 이 패턴은 클라이언트와 실제 객체 사이에 중재자 역할을 하는 프록시 객체를 두어, 직접적인 객체 접근을 피하고 여러 가지 유용한 용도로 활용됩니다. 주로 사용되는 용도로는 지연 초기화, 접근 제어, 로깅, 캐싱 등이 있습니다. 프록시 패턴의 종류 프록시 패턴은 크게 세 가지 유형으로 나뉩니다: 가상 프록시(Virtual Proxy): 객체의 생성을 지연시키는 데 사용됩니다. 보호 프록시(Protection Proxy): 객체에 대한 접근을 제어하는 데 사용됩니다. 리모트 프록시(Remote Pr..
2024.04.16 -
JAVA 자바 디자인 패턴 : 전략 패턴, 옵저버 패턴, 장점 단점, 예시
JAVA 자바 디자인 패턴 : 전략 패턴 전략 패턴(Strategy Pattern)은 행동을 클래스의 집합으로 정의하고, 이들을 상호 교환 가능하게 만드는 디자인 패턴입니다. 이 패턴은 객체의 행동을 동적으로 변경할 수 있게 해주어 같은 문제를 해결할 수 있는 여러 알고리즘을 클라이언트 코드에서 직접적으로 분리할 수 있게 합니다. 전략 패턴은 클라이언트가 사용할 알고리즘의 변형을 캡슐화하고, 각 알고리즘을 서로 교체할 수 있게 함으로써 동일한 작업을 다른 방식으로 수행할 수 있도록 합니다. 전략 패턴 구현 예시 다음은 자바로 구현한 간단한 전략 패턴의 예입니다. 여기서는 여러 종류의 정렬 전략을 사용하는 상황을 가정합니다. // 전략 인터페이스 정의 interface SortingStrategy { vo..
2024.04.16 -
JAVA 자바 디자인 패턴 : 팩토리 패턴, 장점 단점, 예시
JAVA 자바 디자인 패턴 : 팩토리 패턴 팩토리 패턴(Factory Pattern)은 객체 지향 프로그래밍에서 객체의 생성을 처리하는 디자인 패턴 중 하나입니다. 이 패턴은 객체 생성 과정의 복잡성을 감소시키고, 클라이언트 코드와 객체 생성 사이의 의존성을 줄이는 데 목적이 있습니다. 팩토리 패턴은 크게 두 종류로 나뉩니다: 팩토리 메서드 패턴(Factory Method Pattern)과 추상 팩토리 패턴(Abstract Factory Pattern). 팩토리 패턴 예시 예를 들어, 다양한 타입의 차량을 생성하는 간단한 팩토리 메서드 패턴을 구현해 보겠습니다. abstract class Vehicle { abstract void startEngine(); } class Car extends Vehicl..
2024.04.16 -
JAVA 자바 디자인 패턴 : 싱글톤 패턴, 장단점, 의존성 주입, 예시
JAVA 자바 디자인 패턴 : 싱글톤 패턴 자바에서 싱글톤(Singleton) 패턴은 객체의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체를 접근할 수 있게 하며, 같은 객체 인스턴스만을 계속해서 재사용합니다. 주로 공유 리소스에 대한 접근 제어나, 설정 정보 같은 경우에 유용하게 사용됩니다. 자바에서 싱글톤 패턴 구현 예시 싱글톤 패턴을 구현하는 방법은 여러 가지가 있지만, 가장 보편적인 방법은 private 생성자와 static 메소드를 사용하는 것입니다. 여기서는 Thread Safe하고 성능도 비교적 우수한 방법인 "Initialization-on-demand holder idiom"을 예로 들어 설명하겠습니다. public class S..
2024.04.16 -
자바 JAVA 코딩테스트 util heap 선언 및 사용법
자바 JAVA 코딩테스트 util heap 선언 및 사용법 자바에서 힙(Heap) 구조는 주로 PriorityQueue 클래스를 사용하여 구현됩니다. PriorityQueue는 자바의 java.util 패키지 안에 있는 클래스로, 힙을 기반으로 하는 우선순위 큐를 제공합니다. 이 큐는 기본적으로 최소 힙의 속성을 가지며, 가장 작은 요소가 항상 루트에 위치합니다. 사용자가 원하는 대로 커스텀 비교자(Comparator)를 사용하여 최대 힙 등 다른 종류의 힙을 구현할 수도 있습니다. PriorityQueue 선언하기 PriorityQueue를 사용하기 위해서는 먼저 해당 클래스를 임포트해야 합니다. 그 후에 PriorityQueue 인스턴스를 생성할 수 있습니다: import java.util.Prior..
2024.04.12