[Spring] 커스텀 애노테이션(Custom Annotation) 만들어 직접 Validation 유효성 검사하기
·
Spring/개념
보호되어 있는 글입니다.
[Spring] @Valid와 @Validated를 이용한 유효성 검증의 동작 원리 및 사용법 예시
·
Spring/개념
보호되어 있는 글입니다.
[Spring] 엔티티(Entity) 또는 도메인 객체(Domain Object)와 DTO를 분리해야 하는 이유
·
Spring/개념
개발을 하다 보면 API의 요청이나 응답을 처리할 때 또는 다른 계정으로 넘기는 파라미터가 너무 많은 시점에 별도의 DTO를 생성해야 하나 고민을 하는 시점이 생긴다. 또한 간단한 애플리케이션이 아니고서는 엔티티와 DTO를 분리하는 것을 추천하는데, 이번에는 그 이유에 대해 알아보고자 한다. 엔티티(Entity) 또는 도메인 객체(Domain Object)와 DTO를 분리해야 하는 이유 엔티티는 비즈니스 로직을 포함하는 도메인 엔티티와 데이터베이스 관련 처리를 위한 영속성 엔티티로 나누어질 수 있다. 하지만 아래의 내용에서는 설명의 편의를 위해 2개를 합하여 설명하고자 한다. 엔티티(Entity)와 DTO를 분리해야 하는 이유 관심사의 분리 Validation 로직 및 불필요한 코드 등과의 분리 API ..
[Spring] JDBC 기본에 충실한 Transaction 동작 원리
·
Spring/개념
JDBC 트랜잭션에 대한 이해 Transaction 기본 동작 원리를 살펴보고자. 궁극적으로는 @Transactional 이 어떻게 돌아가는지를 살펴보겠지만, 우선은 그것보다도 중요한 JDBC에서 트랜잭션을 사용하는 방법에 대해서 이해하고 넘어갈 것이다. 사실 Spring의 @Transactional 애노테이션, JPA(Hibernate), JOOQ 등을 쓰면 라이브러리 내에서 관리되므로 아래와 같은 문제는 일어날 일이 없다. 앞서 언급한대로 원활한 이해를 위해 아래 JDBC가 트랜잭션을 다루는 코드를 살펴보자. import java.sql.Connection; Connection connection = dataSource.getConnection(); // (1) try (connection) { co..
[Spring] Transaction(트랜잭션)이란?
·
Spring/개념
DB의 트랜잭션 개념에 대해 학습하고 Spring에서 트랜잭션이 어떻게 동작하고 활용되는지 살펴보고자. [DB] 트랜잭션이란? 트랜잭션이란? 트랜젝션은 하나의 작업을 수행하는데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스의 *무결성을 유지하며 DB의 상태를 변화시키기 위한 작업 수행의 논리적 s-y-130.tistory.com Transaction(트랜잭션)이란? Transaction의 탄생 배경 보다 복잡한 프로그램을 개발하다 보면 쿼리 한 줄로 해결할 수 없는 로직을 처리해야하는 경우가 많다. 그리고 여러 개의 쿼리가 처리되는 상황에서 문제가 생겨버린다면 시스템에 큰 결함을 남기게 된다. 예를 들어 쇼핑물 서비스를 구현한다고 하면 아래와 같은 로직은 한 줄로 처리하는 것이 불가능할 것..
[Spring] Spring의 3가지 핵심 특징(IoC/DI, PSA, AOP)와 3가지 계층 구조(Controller, Service, Repository)
·
Spring/개념
Spring에 대한 이해 Spring Framework(스프링 프레임워크)은 자바 기반의 웹 애플리케이션 개발을 위한 프레임워크이다. 스프링은 객체 지향 개발을 매우 용이하게 할 수 있도록 도와주며, 애플리케이션을 빠르고 효율적으로 개발할 수 있도록 기본 틀과 공통 프로그래밍 모델, API 등을 제공한다. 스프링 개발자라면 최소한 이 3가지 프로그래밍 모델만큼은 잘 이해하고 자유롭게 응용할 수 있어야 한다. Spring Container(스프링 컨테이너) 스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 런타인 엔진을 제공한다. 스프링 컨테이너는 설정 정보를 참고하여 애플리케이션을 구성하는 오브젝트(빈)을 생성하고 관리한다. 그리고 의존성을 갖는 객체에 대해 의존성 주입(Dependency ..