본문 바로가기

Spring4

[Spring] Spring Facade Pattern 1. Facade 패턴이란?포스팅에 앞서, Spring Boot에서는 Bean이 Controller, Service, Repository를 어노테이션만으로 알아서 의존성을 주입해주는 좋은 기능을 가지고 있다.그렇다면 우리가 개발을 진행하면서 하나의 Controller가 하나의 Service를 참조하고, 하나의 Service는 하나의 Repository만 참조해가면서 간단하게 데이터만 반환하는 상황만 있을까?? 간단한 기능을 만들면서도 확인한 결과 절대 아니다. 왜냐하면 하나의 데이터(DTO로 변환해서)를 반환할 때도 여러 엔티티를 참조해서 상황에 맞는 데이터를 잘 조립해서 반환해야 했기 때문이었다. Service 레이어에서 Repository를 너무 많이 의존하고 여러 엔티티를 통해 데이터를 가져온다는 .. 2024. 5. 18.
[Spring] QueryDSL을 활용한 동적 쿼리(Dynamic SQL) 조회하기 (BooleanBuilder 활용) 1. Query DSL 이란?Spring boot에서 Spring Data JPA는 개발자가 간단한 CRUD 메서드 및 쿼리 메서드를 사용할 수 있다.하지만, 원하는 조건의 데이터를 검색해야 할 때 다양한 조건들이 있다면 매개변수는 점차 증가하게 되고 성능 및 가독성이 떨어진다.이때, 개발자는 JPQL을 활용해서 직접 SQL을 작성하여 데이터를 조작할 수 있지만, 로직이 점점 복잡해지면 마찬가지로 SQL에서의 개행이 반복되다보면 해당 쿼리가 어디에 어떻게 쓰이는지 알 수 없을 때가 있다. 또한, JPQL의 경우 복잡한 SQL을 작성하다보면 나올 수 있는 오타/문법적인 오류에 대해서 컴파일 시점에 확인할 수 없고 런타임에서 발생한 에러를 추적해야 한다. 이러한 불편함을 해소해주는 요소 중 하나로 Query.. 2024. 5. 14.
[Spring] Spring MVC / 3-tier Layered Architecture 1. MVC 패턴의 개념과 Spring에서의 MVC 패턴 1-1. MVC 패턴 MVC 패턴이란? 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴어플리케이션을 개발할 때 개발 영역을 Model - View - Controller로 나누어 각 역할에 맞게 코드를 작성하는 방식UI 영역과 비즈니스 로직 영역으로 구분하여 서로에게 영향을 주지 않으며 개발 및 유지 보수가 가능하게 한다. 각 패턴 구분Model : 값과 기능을 가지고 있는 객체데이터 및 비즈니스 로직을 관리한다.추가적으로 3-tier Layer Architecture에서 서비스 계층에 비즈니스 로직이 들어가 있으므로 서비스 계층은 모델에 더 가깝다고 볼 수 있다.View : 모델에 포함된 데이터를 시각화하여 사용자에게 보여주는 역할Model을.. 2024. 4. 2.
[Spring] Spring / Spring Boot 비교 1. Spring Framework스프링 프레임워크(Spring Framework)는 Java 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크로 간단히 스프링(Spring)이라 한다.스프링은 순수 자바 객체(POJO)만을 사용하여 복잡성을 제거하고, 단순하고 가벼운 코드로 기업용 애플리케이션을 개발하기 위한 목적으로 개발된 프레임워크(Framework)이다. 1-1.  Spring Framework 특징Spring Framework는 아래의 네가지 특징을 가진다.1. 제어 역전( Invesion of Control, IoC ) 스프링은 객체의 생명 주기 및 의존성 관리를 담당하는 프레임워크에서 IoC 컨테이너를 제공한다. IoC 컨테이너를 통해 개발자는 객체의 생성과 관계 설정 및 생명.. 2024. 3. 27.