⚡개요 Wrapper Class에 대해서 기본적인 내용을 체크하던 도중에 객체를 비교하는 과정에서 추가적인 내용을 확인해서 내용을 정리해 놓으려고 한다. ⚡ Wrapper Class 생성 방법 기본적인 생성 방법 일반적으로 new 를 통한 객체를 생성하는 방법이 있다. 하지만 이 방법은 버전에 따라서 사용을 할 수 없도록 되어있다. 심지어 사용할수 있는 버전에서 조차 "불필요한 박싱"이라는 문구가 발생한다. 일부 Wrapper Class에 대해서도 확인해 보았지만, 모두 동일한 것으로 파악되며, 대신 valueOf()를 사용하도록 권장하고 있다. (해당 부분이 왜이렇게 바꼇는지는 밑에서 설명 하도록 하겠다.❗❗❗) 이 또한 불필요한 박싱이라는 경고가 뜨게 된다. 여기까지는 대부분 알고 있는 내용이며 크게..
전체 글
나만의 기록... 까먹지말자...
⚡ 개요 래거시 APP 기준으로 신규 개발을 해야 되는 내용이 있어서 이미 쿼리가 다 짜져 있기 때문에 JPA가 아닌 mybatis를 사용해서 신규 개발을 했던 내용을 정리해놓으려고 한다. (신규로 구축하려니까 생각보다 헤맴..) 내용 중 기본적인 내용과 다른 부분이 있다면 DB를 두 개를 사용해서 연동이 들어갔다는 점이다. (mssql, oracle) ⚡ 기술 스택 Spring Boot 3.0.5 JAVA 17 MSSQL Oracle Mybatis ⚡ 사용 방법 정리 전반적인 사용 방법에 대해서 정리하기보다는 내가 좀 버벅거렸던 부분에 대해서 사용 방법을 정리하고 넘어가려고 한다. DatabaseConfig 설정 데이터 베이스를 관리할 때 Hikari Datasource (2.0부터는HikariCP가 ..
⚡ 개요 PWA는 Progressive Web App의 약자이다. PWA는 모바일 웹 애플리케이션의 새로운 형태로 사용자가 앱을 다운로드하거나 설치하지 않아도 모바일 기기에서 애플리케이션을 실행할 수 있게 해준다. PWA는 일반적인 모바일 웹 사이트와 유사하지만 추가적인 기능을 제공한다. 예를 들어 오프라인에서도 작동할 수 있고 네이티브 앱과 유사한 기능을 제공하며 앱 아이콘을 홈 화면에 추가할 수 있다. PWA는 웹 기술로 만들어지기 때문에 앱 스토어의 검토 과정을 거치지 않아도 되고 업데이트가 더욱 용이하다. 또한 여러 플랫폼에서 동작할 수 있기 때문에 개발자는 앱을 각 플랫폼마다 따로 개발할 필요가 없다. PWA는 현재 많은 기업이 적극적으로 도입하고 있으며 모바일 웹 애플리케이션의 발전에 큰 역할..
⚡프록시 패턴이란? 프록시 패턴(Proxy pattern)은 다른 객체를 대신해서 클라이언트와 상호 작용하는 객체를 제공하는 구조적인 디자인 패턴이다. 클라이언트는 프록시 객체를 사용하여 실제 객체에 대한 직접적인 접근을 피하고 프록시 객체가 실제 객체에 대한 간접적인 접근을 제공 한다. 이를 통해 실제 객체의 생성 및 소멸 등에 대한 부담을 줄이고 보안, 로깅, 캐싱 등의 부가 기능을 제공할 수 있다. 프록시 패턴은 크게 가상 프록시, 원격 프록시, 보호 프록시, 스마트 프록시 등으로 분류할 수 있습니다. 가상 프록시는 실제 객체의 생성을 지연시켜 성능을 향상시키는 역할을 한다. 원격 프록시는 네트워크를 통해 분산된 객체에 접근하는 역할을 한다. 보호 프록시는 클라이언트에게 필요한 권한이나 보안 문제를..
⚡플라이웨이트 패턴이란? 플라이웨이트 패턴(Flyweight Pattern)은 객체를 공유하여 메모리를 절약하는 구조적 디자인 패턴이다. 객체 생성 비용이 높은 경우, 객체 생성 시간이 오래 걸리는 경우, 객체가 많이 생성될 가능성이 있는 경우에 사용된다. 플라이웨이트 패턴에서는 객체를 두 가지 종류의 상태로 나눈다. 하나는 내부 상태(internal state)로 외부에서 변경할 수 없으며 다른 하나는 외부 상태(external state)로 외부에서 변경 가능하다. 내부 상태는 객체의 공유 가능한 부분이며 외부 상태는 객체의 개별적인 부분이다. 내부 상태는 객체를 공유하게 되므로 여러 개의 객체를 생성하지 않고 하나의 객체를 공유하여 메모리를 절약할 수 있다. 외부 상태는 객체마다 다르게 유지되어야 ..
⚡퍼사드 패턴이란? 퍼사드 패턴(Facade Pattern)은 복잡한 시스템 내부에 있는 다양한 모듈과 서브시스템들을 단순한 인터페이스로 대체하여 외부에서 시스템과의 상호작용을 단순화하고자 하는 디자인 패턴이다. 즉, 복잡한 시스템 구조를 가진 클래스, 라이브러리, 프레임워크 등을 사용하는 클라이언트가 시스템의 구현 내용을 몰라도 쉽게 사용할 수 있도록 하는 패턴이다. 이를 위해 시스템 내부의 다양한 모듈과 서브시스템들을 단순한 인터페이스로 제공하고 이를 사용하여 클라이언트가 시스템과 상호작용할 수 있도록 한다. 퍼사드 패턴의 기본 구조 Facade : 복잡한 서브시스템을 단순하게 제공하기 위한 인터페이스를 제공한다. 클라이언트는 이 인터페이스를 통해 서브시스템에 접근할 수 있다. Subsystem Cl..
⚡데코레이터 패턴이란? 데코레이터 패턴(Decorator Pattern)은 객체지향 디자인 패턴 중 하나로 객체에 추가적인 책임을 동적으로 부여할 수 있게 해 준다. 이 패턴은 기본 객체를 래핑하고 이 래핑 된 객체에 새로운 기능을 추가하는 방식으로 동작한다. 즉 객체에 대한 구성 요소를 수정하지 않으면서 객체의 기능을 확장하는 방법을 제공한다. 데코레이터 패턴 구성 요소 Component: 기본 객체에 대한 인터페이스를 정의 ConcreteComponent: Component 인터페이스를 구현하는 기본 객체 Decorator: Component 인터페이스를 구현하면서, 추가적인 책임을 부여할 수 있는 데코레이터를 정의 ConcreteDecorator: Decorator 인터페이스를 구현하여 데코레이터의..
⚡복합체 패턴이란? 복합체 패턴(Composite Pattern)은 객체 지향 디자인 패턴 중 하나로 객체들을 트리 구조로 구성하여 전체 - 부분 계층을 표현하는 패턴이다. 쉽게 말해 객체들을 계층 구조로 구성하여 부분과 전체를 나타내는 패턴이다. 복합체 패턴에서는 개별 객체와 복합 객체(부분과 전체를 나타내는 객체)를 같은 인터페이스를 가진다는 특징이 있다. 이를 통해 클라이언트는 개별 객체와 복합 객체를 구분하지 않고 동일한 방식으로 다룰 수 있다. 또한 복합 객체에서는 자식 객체를 추가하거나 제거하는 등의 작업을 수행할 수 있다. 복합체 패턴은 객체들이 계층 구조로 구성되어 있는 경우 예를 들어 UI 요소나 파일 시스템 등의 경우에 유용하게 사용된다. 또한 개별 객체와 복합 객체를 동일한 인터페이스..
⚡브리지 패턴이란? 브리지 패턴(Bridge Pattern)은 객체의 구현부와 추상적인 부분을 분리하여 각각을 독립적으로 변형할 수 있게 하는 디자인 패턴 중 하나이다. 브리지 패턴을 사용하면 추상화와 구현을 분리하여 클래스 간의 결합도를 낮출 수 있으며, 이는 코드의 재사용성과 유연성을 높일수 있게 해준다. 브리지 패턴은 크게 추상화(Abstraction)와 구현(Implementation) 두 가지로 구성된다. 추상화는 구현부에서 독립적으로 존재하는 객체의 추상 인터페이스를 정의하며 구현은 추상화에 정의된 인터페이스를 구현하는 구체 클래스를 제공한다. ⚡브리지 패턴은 어떤 경우에 사용하는가 ? 추상화와 구현이 각각 독립적으로 확장해야 하는 경우 추상화와 구현의 결합도를 낮추고자 하는 경우 상속으로 인..