반응형

언어(Language)/Java 95

[Java] 레코드 클래스 살펴보기 (Record Class)

Record Class자바의 레코드 클래스는 Java 14부터 프리뷰 상태로 도입되어 Java 16에서 정식으로 지원하게 된 새로운 클래스다. 레코드는 데이터를 담기 위한 클래스를 더욱 간결하고 안전하게 작성하기 위한 기능을 제공한다. 레코드 클래스를 사용하면 기존 POJO 클래스를 작성할 때 필요한 보일러플레이트 코드를 줄이는 효과를 얻을 수 있다. 레코드의 특징final 클래스로 상속이 불가능하다.인터페이스 구현이 가능하다.모든 필드는 불변(private final)으로 값을 변경할 수 없다.getter 메서드를 기본으로 제공한다.모든 필드를 포함한 생성자를 기본으로 제공한다.toString(), equals(), hashCode() 메서드를 기본으로 제공한다. 클래스와 레코드 비교아래 두 예제는 동..

[Java] 싱글톤 패턴(Singleton Pattern) - 개념 및 예제

싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 객체 지향 프로그래밍에서 특정 클래스가 단 하나만의 인스턴스를 생성하여 사용하기 위한 패턴이다. 생성자를 여러 번 호출하더라도 인스턴스가 하나만 존재하도록 보장하여 애플리케이션에서 동일한 객체 인스턴스에 접근할 수 있도록 한다. 싱글톤 패턴을 사용하는 이유 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 경우 인스턴스를 여러 개 만들게 되면 불필요한 자원을 사용하게 되고, 프로그램이 예상치 못한 결과를 낳을 수 있다. 따라서 객체를 필요할 때마다 생성하는 것이 아닌 단 한 번만 생성하여 전역에서 이를 공유하고 사용할 수 있게 하기 위해 싱글톤 패턴을 사용한다. 싱글톤 패턴의 장단점 장점 유일한 인스턴스 : 싱글톤 패턴이 적용된 클래스의 ..

[Java] 데코레이터 패턴(Decorator Pattern)이란? - 개념 및 예제

데코레이터 패턴(Decorator Pattern) 데코레이터 패턴(Decorator Pattern)은 객체 지향 디자인 패턴 중 하나로 객체에 동적으로 기능을 추가하여 확장할 수 있는 구조 패턴이다. 이 패턴은 상속을 통해 클래스를 확장하는 대신, 객체를 감싸는 방식을 사용하여 기능을 추가하거나 변경한다. 따라서 기존 코드를 수정하지 않고도 새로운 기능을 추가하거나 수정할 수 있게 된다. 데코레이터(Decorator)라는 단어의 의미인 장식자, 꾸미는 사람으로 접근하면 데코레이터 패턴의 역할을 쉽게 이해할 수 있을 것이다. 데코레이터 패턴의 장단점 장점 유연한 확장 : 새로운 기능을 추가하거나 기존 기능을 수정할 때 동적으로 기능을 추가하거나 변경할 수 있다. 코드 재사용 : 기존 코드를 수정하지 않고도..

[Java] 프록시 패턴(Proxy Pattern)이란? - 개념 및 예제

프록시 패턴(Proxy Pattern) 프록시(Proxy)는 대리자, 대변인이라는 뜻을 가진 단어다. 대리자/대변인은 다른 누군가를 대신해 그 역할을 수행하는 존재를 말한다. 따라서 프록시 패턴은 특정 객체의 대리자나 대변인 역할을 하는 프록시 객체를 제공하는 디자인 패턴이다. 프록시 패턴을 사용함으로써 클라이언트는 특정 객체를 직접 참조하여 접근하는 것이 아닌 프록시 객체를 통해 상호작용한다. 프록시 객체의 장단점 장점 접근 제어 : 클라이언트가 실제 객체에 직접 접근하지 않도록 제어하여 객체의 접근을 관리하고 권한 검사 등을 수행할 수 있다. 지연 초기화 : 실제 객체의 생성 및 초기화를 지연시키는 데 사용하여 필요한 순간만에 생성 및 초기화하여 성능을 최적화할 수 있다. 캐싱 : 결과를 캐싱하여 중..

[Java] 어댑터 패턴(Adapter Pattern)이란? - 개념 및 예제

어댑터 패턴(Adapter Pattern) 어댑터를 번역하면 변환기(Converter)라고 할 수 있다. 변환기의 역할은 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것이다. 주변에서 흔히 볼 수 있는 변환기로 충전기가 있다. C to C 케이블을 바로 콘센트에 연결할 수 없기 때문에 충전기가 케이블과 콘센트를 연결해 주는 변환기 역할을 수행한다. 즉, 어댑터 패턴은 애플리케이션에서 서로 호환되지 않는 인터페이스를 가진 두 개체를 함께 동작할 수 있게 만들기 위해 연결하는 디자인 패턴이다. 주로 기존의 클래스나 라이브러리를 수정하지 않고, 다른 클래스나 라이브러리와 통합하기 위해 사용된다. 어댑터 패턴 예시 어댑터 패턴이 적용되지 않은 경우 ServiceA.Java public class Ser..

[OOP] 디자인 패턴(Design Pattern)이란? - 장점 및 종류

디자인 패턴(Design Pattern)이란? 디자인 패턴은 개발하면서 발생하는 반복적인 문제들을 어떻게 해결할 것인지에 대한 해결 방안으로 실제 현업에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 모범 사례(Best Practice)다. 이러한 디자인 패턴은 객체 지향 4대 특성(캡슐화, 상속, 추상화, 다형성)과 설계 원칙(SOLID)을 기반으로 구현되어 있다. 디자인 패턴의 장점 재사용성 : 반복적인 문제에 대한 일반적인 해결책을 제공하므로, 이를 재사용하여 유사한 상황에서 코드를 더 쉽게 작성할 수 있다. 가독성 : 일정한 구조로 정리하고 명확하게 작성하여 개발자가 코드를 이해하고 유지보수하기 쉽게 만든다. 유지보수성 : 코드를 쉽게 모듈화 ..

[OOP] 의존성 역전 원칙(DIP: Dependency Inversion Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

[OOP] 인터페이스 분리 원칙(ISP: Interface Segregation Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

[OOP] 리스코프 치환 원칙(LSP: Liskov Substitution Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

[OOP] 개방 폐쇄 원칙(OCP: Open Closed Principle) 개념 및 예제

객체 지향 설계 원칙(SOLID) 객체 지향 언어의 등장 이후 수많은 시행착오와 베스트 프랙티스 속에서 객체 지향 설계 5가지 원칙이 등장했는데, 바로 SOLID다. SOLID는 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 것이다. SOLID는 다음 5가지 원칙의 앞 글자를 따서 부르는 이름이다. SRP(Single Responsiblity Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Inte..

반응형