전체 글

항상 정리하며 기록하고 있습니다.
빌더 패턴이란?빌더 패턴(Builder Pattern)은 객체 생성을 단순화하고 유연성을 높이기 위한 디자인 패턴입니다. 복잡한 객체의 생성 과정을 추상화하고 객체의 구성 요소를 조립하여 객체를 생성하는 데 사용됩니다. 빌더 패턴 예시 코드 // Person 클래스: 생성할 객체의 일부인 간단한 사람 클래스public class Person { private String firstName; private String lastName; private int age; private String address; // 생성자는 private으로 설정하고, 빌더를 통해서만 객체를 생성할 수 있도록 합니다. private Person(Builder builder) { t..
Effective Java 3/E 판을 읽고 정리한 기록입니다. 사용하는 자원에 따라 동작이 달라지는  클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다. 정적 유틸리티 클래스나 싱글톤 방식은 모두 객체의 생성과 사용을 제한하거나 제어하는 방식이지만, 사용하는 자원에 따라 동작이 달라지는 클래스에는 적합하지 않습니다.  이유 - 정적 유틸리티 클래스정적 유틸리티 클래스는 주로 상태를 가지지 않고, 동일한 동작을 수행하는 메서드를 제공하는 데 사용됩니다. 따라서 사용하는 자원에 따라 동작이 달라지는 경우에는 정적 유틸리티 클래스로 구현하기 어렵습니다.  정적 유틸리티 클래스의 메서드는 주로 인자로 전달된 데이터를 기반으로 동작하기 때문에, 동작이 자원에 따라 달라지는 경우, 해당 데이터를 인자..
Effective Java 3/E 판을 읽고 정리한 기록입니다. 클래스의 인스턴스화를 막기 위해 private 생성자를 사용하는 것은 객체 지향 프로그래밍에서 중요한 기술 중에 하나입니다. 이를 통하여 클래스의 인스턴스화를 외부에서 제어할 수 있고, 불필요한 객체 생성을 방지할 수 있습니다.  클래스의 생성자(constructor)해당 클래스의 인스턴스를 생성할 때 호출되는 특별한 메서드입니다. 일반적으로 클래스를 정의할 때 생성자를 public 으로 선언하여 외부에서 접근할 수 있게 합니다. 그러나 때로는 특정한 이유로 인스턴스 생성을 외부에서 제한할 때가 있습니다.  이럴 때는 private 생성자를 사용합니다.  private 생성자 클래스 내부에서만 호출할 수 있는 생성자입니다.외부에서는 작접적으..
오늘은 디자인 패턴 스터디 4번째 항목인 전략패턴에 대하여 알아보겠습니다. 전략 패턴(Strategy Pattern) 전략 패턴은 객체지향 소프트웨어 디자인에서 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 알고리즘군을 정의하고 각각을 캡슐화하여 실행(런타임) 중에 알고리즘을 선택하여 객체의 동작을 변경할 수 있도록 해줍니다. 이는 프로그램의 유연성과 확장성을 높일 수 있습니다. 전략 패턴의 주요 요소 전략(Strategy) 전략은 알고리즘을 나타내며, 인터페이스를 통해 정의됩니다. 각각의 전략은 특정한 알고리즘을 실행하는 메서드를 포함합니다. 컨텍스트(Context) 컨텍스트는 전략을 사용하는 클라이언트 객체입니다. 컨텍스트는 전략 객체를 갖고있으며, 실행 중에 전략을 교체할 수 있습니다. 전략 패턴..
Effective Java 3/E 판을 읽고 정리한 기록입니다. "private 생성자나 열거타입으로 싱글톤을 보장한다"는 말은 객체지향 프로그래밍에서 사용되는 디자인 패턴 중 하나인 싱글톤(Singleton) 패턴을 의미합니다.  싱글톤 패턴은 애플리케이션에서 인스턴스가 단 하나만 생성되도록 보장하는 패턴입니다.  Private 생성자클래스의 생성자를 private 로 선언하여 외부에서 직접적으로 인스턴스를 생성할 수 없도록 합니다. 이는 외부에서 새로운 인스턴스를 생성하는 것을 막아, 오직 클래스 내부에서만 인스턴스를 생성할 수 있도록 합니다.  열거타입(Enum)Java에서는 열거타입을 이용해 싱글톤을 구현할 수 있습니다. 열거타입은 JVM에 의해 클래스가 로딩될 때 하나의 인스턴스로 보장되기 때문..
Effective Java 3/E 판을 읽고 정리한 기록입니다. "생성자에 매개변수가 많다면, 빌더를 고려하라"는 것은자바에서 객체를 생성할 때, 매개변수가 많은 경우, 가독성이 떨어지고 실수를 범하기 쉬워지며 코드 유지보수가 어려워질 수 있다는 의미입니다. 따라서 많은 매개변수를 가진 생성자 대신 객체를 생성하기 위한 빌더 디자인 패턴을 고려해야 한다는 것을 나타냅니다.  점층적 생성자 패턴(Telescoping constructor pattern) 점층적 생성자 패턴은 객체를 생성할 때 선택적 매개변수를 포함한 여러 개의 생성자를 제공하는 방식입니다. 이 패턴은 생성자의 매개변수 수가 늘어날수록 코드의 가독성과 유지보수가 저하될 수 있어, 선택적으로 사용되는 생성자를 제공해 불필요한 복잡성을 줄이는 ..
오늘은 디자인 패턴 스터디 3번째 항목인 데코레이터 패턴에 대하여 알아보겠습니다! 데코레이터 패턴(Decorator Pattern) 객체 지향 디자인 패턴 중 하나로, 객체에 동적으로 새로운 기능을 추가할 수 있도록 하는 패턴입니다. 이 패턴은 기본 객체를 변경하지 않고, 기능을 추가하거나 수정할 수 있도록 합니다. 데코레이터 패턴은 개방-폐쇄 원칙(Open-Closed Principle)에 따르며, 코드 변경 없이 기능 확장할 수 있도록 도와줍니다. 데코레이터 패턴 예제 코드와 주요 구성 요소 Component // Component interface interface Coffee { String getDescription(); double getCost(); } 데코레이터 패턴에서 기본이 되는 인터페..
· Frontend
이번에 회사에서 AJAX 요청시 이벤트 핸들러를 사용해서, 클라이언트에서 Exception및 인증로직을 추가해보았는데요! 유용한 함수인 것 같아서, 정리해보려합니다! ajaxSend() AJAX 요청이 발생하기 직전에 실행되는 이벤트 핸들러를 등록합니다. 이 함수를 사용하여 모든 AJAX 요청에 대한 공통된 전처리 작업을 수행할 수 있습니다. EX) 모든 요청에 인증 헤더 추가, 로딩 표시기 표시 등의 작업 수행 ajaxStart() AJAX 요청이 시작될 때 실행되는 이벤트 핸들러를 등록합니다. 이 함수를 사용하여 AJAX 요청이 시작될 때 특정 작업을 수행할 수 있습니다. EX) 페이지 로딩 표시기 활성화 등 작업 수행 ajaxStop() AJAX 요청이 모두 완료되었을 대 실행되는 이벤트 핸들러를 ..