본문 바로가기

전체글115

스프링의 등장과 스프링 부트 목차개요스프링 프레임워크의 등장스프링의 역사스프링 프레임워크의 확대스프링 부트의 등장스프링 부트의 핵심 기능 5가지스프링 프레임워크와 스프링부트1. 개요초반에는 EJB(Enterprise Java Bean)라는 기술이 자바 진영의 표준 기술로 개발시장을 독점하고 있었다. EJB의 치명적인 단점으로 코드들이 EJB에 지나치게 의존적으로 개발을 진행해야한다는 것이다. EJB가 너무 복잡하면서 의존적으로 개발이 되다 보니 순수한 자바를 사용하자는 용도로 POJO(Plain Old Java Object)라는 용어가 나올 정도로 어렵고 제한적인 기술이다. 2. 스프링 프레임워크의 등장전설의 시작..2002년 로드 존슨이 EJB의 비즈니스 자체의 복잡함의 문제점을 지적하며 (J2EE Design and Develo.. 2023. 11. 30.
SELECT * 을 쓰면 안되는 이유 목차개요SELECT * FROM table 이 안좋은 7가지 이유2-1. 불필요한 I/O(입력 출력)2-2. 네트워크 트래픽 증가2-3. 애플리케이션 메모리 낭비2-4. ResultSet의 컬럼 순서에 의존하는 결과2-5. 테이블에 새로운 컬럼을 추가하면 뷰에 오류 발생2-6. JOIN 쿼리 충돌2-7. 테이블 간에 데이터를 복사할 때 문제 발생결론1. 개요쿼리를 조회할 경우, SELECT * FROM table 문을 자주 사용했다. * 을 이용해 모든 칼럼의 데이터를 가져오는 것 보다 필요한 칼럼을 명시해서 가져오는게 더 좋다고 키워드를 던져 주셔서 찾아 보게 되었다.2. SELECT * FROM table 이 안좋은 7가지 이유처음 SQL을 배울때 기본적으로 SELECT * FROM table과 같이.. 2023. 11. 29.
생성자주입을 선택해라! 목차개요다양한 의존성 주입방법2-1. 생성자 주입(Constructor Injection)2-2. 수정자 주입(Setter Injection)2-3. 필드 주입(Field Injection)생성자주입을 선택하는 이유3-1. 불변3-2. 누락 방지3-3. final 키워드결론1. 개요스프링에서 의존관계 주입에는 생성자 주입, 필드 주입, 수정자 주입이 존재한다.과거에는 수정자 주입과 필드 주입을 많이 사용했지만, 스프링을 비롯한 DI프레임워크 InteliJ 등등 대부분이 생성자 주입을 권장한다.왜 생성자 주입을 권장하는지 아래에서 살펴보자.2. 다양한 의존성 주입방법2-1. 생성자 주입(Constructor Injection)생성자 주입은 생성자를 통해 의존 관계를 주입하는 방법이다.@Service pub.. 2023. 11. 28.
Java 에서 싱글톤패턴 구현방식 목차개요Eager InitializationStatic Block InitializationLazy InitializationThread Safe SingletonBill Pugh Singleton ImplementaionEnum Singleton결론1. 개요싱글톤 패턴은 어떤 클래스의 인스턴스가 오직 하나만 생성되는 것을 보장하며, 이 인스턴스에 접근할 수 있는 사용할 수 있도록 제공하는 패턴이다.싱글톤 패턴을 구현하는 방법을 중점으로 해당 내용을 정리해보려고 한다.2. Eager InitializationEager Initialization은 가장 간단한 형태의 구현 방법이다. 이는 싱글톤 클래스의 인스턴스를 클래스 로딩 단계에서 생성하는 방법으로 Thread-safe하다.그러나 어플리케이션에서 해당.. 2023. 11. 24.
데코레이터패턴(__**Decorator Pattern**__)이란? 목차데코레이터패턴(Decorator Pattern)이란?데코레이터 패턴 구조패턴 적용하기장점과 단점자바와 스프링에서 찾아보는 패턴프록시 패턴과 데코레이터 패턴1. 데코레이터패턴(Decorator Pattern)이란?데코레이터 패턴(Decorator Pattern)은 대상 객체에 대한 기능 확장이나 변경이 필요할때 객체의 결합을 통해 서브클래싱 대신 쓸수 있는 유연한 대안 구조 패턴이다.데코레이터 패턴을 이용하면 필요한 추가 기능의 조합을 런타임에서 동적으로 생성할 수 있다.2. 데코레이터 패턴 구조Component (Interface) : 원본 객체와 장식된 객체 모두를 묶는 역할ConcreteComponent : 원본 객체 (데코레이팅 할 객체)Decorator : 추상화된 장식자 클래스원본 객체를 합.. 2023. 11. 23.
프록시패턴(Proxy Pattern)이란? 목차프록시패턴(Proxy Pattern)이란?프록시 패턴 구조패턴 적용하기장점과 단점자바와 스프링에서 찾아보는 패턴1. 프록시패턴(Proxy Pattern)이란?프록시 패턴은 대상 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다.프록시를 번역하면 대리자, 대변인의 의미를 갖고 있다. 즉, 프록시에게 어떤 일을 대신 시키는 것이다.객체 지향 프로그래밍에 접목해보면 클라이언트가 대상 객체를 직접 쓰는게 아니라 중간에 프록시(대리인)을 거쳐서 쓰는 코드 패턴이라고 보면 된다. 따라서 대상 객체(Subject)의 메소드를 직접 실행하는 것이 아닌, 대상 객체에 접근하기 전에 프록시(Proxy) 객체의 메서드를 접근한 후 추가적인 로직을 처리한뒤 접근하게 된다.그냥 객체를 이용하.. 2023. 11. 22.