[Java/디자인 패턴] 메서드 체이닝(Method Chaining), 플루언트 인터페이스(Fluent Interface), 빌더 패턴(Builder Pattern)
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 메서드 체이닝(Method Chaining), 플루언트 인터페이스(Fluent Interface), 빌더 패턴(Builder Pattern)에 대해서 알아봅니다.1) 메서드 체이닝(Method Chaining)💡 메서드 체이닝(Method Chaining)- 여러 메서드 호출을 연결하여 호출하는 프로그래밍 기술입니다. 이를 이용하면 코드를 간결하게 작성하고 가독성을 높일 수 있습니다.- 이를 통해 객체의 메서드를 연속적으로 호출하여 작업을 수행할 수 있으며, 각 메서드는 호출된 객체를 반환하여 다음 메서드 호출이 가능하게 합니다.- 이러한 메서드 체이닝은 플루언트 인터페이스(Fluent Interface)나 빌더 패턴(Builder Pattern)을 구현하는 데에 자주 사용되며, 간결하고..
[Java] 람다식(Lambda Expression), 함수형 인터페이스(Functional Interface) 이해하기
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Java에서 사용되는 람다식(Lambda Expression)과 함수형 인터페이스(Functional Interface)에 대해 알아봅니다. 1) 순수 함수, 일급 함수, 고차 함수 💡 순수 함수, 일급 함수, 고차 함수 - 람다, 함수형 인터페이스를 이해하기 이전에 일반 함수, 일급 함수, 고차 함수에 대해서 이해를 하고 이후 상세히 알아봅니다. 용어 설명 예시 순수 함수(Pure function) - 매개 변수가 존재하거나 존재하지 않을 수 있고 연산을 수행한 후 결과를 반환하는 함수를 의미합니다. - 일반 함수 일급 함수(First-class function) - 함수를 변수에 할당하거나 다른 함수의 인자로 전달하거나 함수의 반환 값으로 사용할 수 있는 특성의 함수를 의미합니다. - ..
[Java/디자인패턴] 싱글턴 패턴(Signleton Pattern) 이해하기 -1 : 정의 및 종류
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 싱글턴 패턴(Signleton Pattern)에 대해서 이해를 돕기 위해서 공유하기 위한 목적으로 작성한 글입니다. 1) 디자인 패턴(Design Pattern)💡 디자인 패턴(Design Pattern) - 소프트웨어에서 특정 문제를 해결하기 위해 개발된 재사용성이 가능한 솔루션을 의미합니다. - 디자인 패턴을 통해 재사용성, 유지 보수성, 확장성을 향상하는데 도움이 됩니다[ 더 알아보기 ] 💡 디자인 패턴의 종류 1️⃣ 생성 패턴 (Creational Patterns) - 객체의 인스턴스화 과정을 추상화하고, 객체를 생성하는 방법을 다양화하는 패턴입니다. 이에는 Singleton, Factory Method, Abstract Factory 등이 포함됩니다. 2️⃣ 구조 패턴 (Struc..
[Java] RESTful API 설계 방법 -2 : 구성하기
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Restful API의 제약 조건과 설계 방법에 대해 이해한 것을 바탕으로 실제 RESTful API를 구성하는 목적으로 작성하였습니다. 💡 [참고] 이전에 작성한 Restful API 설계방법의 이론의 글에서 이어지는 내용입니다. [Java] Restful API 설계 방법 -1 : 이해하기 해당 글에서는 Restful API에 대해서 이해하며 이를 통해 설계를 하는 방법에 대해서 이해하기 위해 작성한 글입니다. 1) REST / RESTful API 💡 REST(Representational State Transfer)란? - 웹 애플리케이션을 개발 adjh54.tistory.com 1) 테스트 개발 환경 💡 해당 개발 환경에서는 'Spring Boot Starter Web' 라이브러리..
[Java] RESTful API 설계 방법 -1 : 이해하기
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Restful API에 대해서 이해하며 이를 통해 설계를 하는 방법에 대해서 이해하기 위해 작성한 글입니다. 1) REST / RESTful API 💡 REST(Representational State Transfer)란? - 웹 애플리케이션을 개발하기 위한 아키텍처 스타일 중 하나로 클라이언트와 서버 간의 ‘통신 방식’을 규정한 것입니다. - 해당 통신 방식은 ‘HTTP 프로토콜’을 기반으로 하며 자원, 행위, 표현 세 가지 요소로 구성됩니다. 💡 REST API (Representational State Transfer) 란? - REST 아키텍처 스타일에 따라 구성한 API를 의미합니다. 💡 RESTful API (Representational State Transfer)란? - HT..
[Java] 계층화된 아키텍처(Layered Architecture) : N Tier Architecture
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Java의 아키텍처 구성 중 계층화된 아키텍처인 N Tier 아키텍처에 대해서 이해를 돕기 위해 작성한 글입니다. 1) 계층화된 아키텍처(Layered Architecture) 💡 계층화된 아키텍처란? - 계층화된 아키텍처 패턴은 계층(Layer) 단위로 분리하여 계층마다 특정 역할을 수행하도록 구성된 아키텍처를 의미합니다. [참고] N-계층에 따라서 각각의 아키텍처를 아래의 그림과 같은 형태로 분리하여 관리합니다. 2) 계층화된 아키텍처(Layered Architecture) 종류 2계층 아키텍처(2-Tier Architecture) 💡 2계층 아키텍처는 프리젠테이션 레이어(Presentation Layer), 데이터 레이어(Data Layer)로 구성된 아키텍처를 의미합니다. 3계층 아..
[Java] 프로그래밍 패러다임 이해하기
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 프로그래밍 패러다임에 대해서 이해하고 각각의 용어에 대해서 이해를 돕기 위해서 작성한 글입니다. 1) 프로그래밍 패러다임 💡 프로그래밍(Programming) 이란? - 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 의미합니다. 💡 패러다임(Paradigm) 이란? - 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념을 의미합니다. 💡 프로그래밍 + 패러다임(Programming Paradigm) 이란? - 개발자가 프로그래밍을 위해 어떠한 '관점'을 가지고 개발을 할지에 대해서 결정을 하는데 도움을 주는 것을 의미합니다. [출처]..
[Java] 생성자 패턴 - Builder() 심화 속성 이해하기 -1 : Lombok Annotation
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 생성자 패턴 중 Builder() 패턴을 기반으로 상세 속성을 이용하여 심화 내용의 이해를 돕기 위한 목적으로 작성한 글입니다. 💡 해당 글은 이전에 작성한 Builder() 생성자 패턴에 대한 글에 이어지는 내용입니다. [Java] 생성자 패턴 이해하기 : 점층적 생성자, 자바 빈즈, Builder 패턴) 해당 글에서는 생성자 패턴에 대해서 이해하고, 어떤 패턴으로 생성자를 구성하는 것이 좋을지에 대해서 공유합니다. 1) 생성자 패턴의 종류 1. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 💡 adjh54.tistory.com 1. @Builder(toBuilder = boolean) : default false 💡 Builder의 속성중 ‘toBuil..
[Java] 생성자 패턴 이해하기 : 점층적 생성자, 자바 빈즈, Builder 패턴)
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 생성자 패턴에 대해서 이해하고, 어떤 패턴으로 생성자를 구성하는 것이 좋을지에 대해서 공유합니다. 1) 생성자 패턴의 종류 1. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 💡 점층적 생성자 패턴 - 생성자를 매개변수에 개수만큼 구성하는 패턴을 의미합니다. public class SuccessCode { private int status; private String code; private String message; // 매개변수 1개 SuccessCode(int status) { this(status, null, null); } // 매개변수 2개 SuccessCode(int status, String code) { this(status, code, ..