Spring
2. 타임리프 - 스프링 통합과 폼
타임리프 스프링 통합 Tutorial: Thymeleaf + Spring Preface This tutorial explains how Thymeleaf can be integrated with the Spring Framework, especially (but not only) Spring MVC. Note that Thymeleaf has integrations for both versions 3.x and 4.x of the Spring Framework, provided by two separate libraries c www.thymeleaf.org 타임리프는 스프링 없이도 동작하지만, 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다. 그리고 이런 부분은 스프링으로 백엔드를 개발하는 개발자..
1. 타임리프 - 기본 기능
프로젝트 생성 프로젝트 선택 Project: Gradle - Groovy Project Language: Java Spring Boot: 2.5.x Project Metadata Group: hello Artifact: thymeleaf-basic Name: thymeleaf-basic Package name: hello.thymeleaf Packaging: Jar Java: 11 타임리프 소개 Thymeleaf Integrations galore Eclipse, IntelliJ IDEA, Spring, Play, even the up-and-coming Model-View-Controller API for Java EE 8. Write Thymeleaf in your favourite tools, us..
[Spring] 엔티티(Entity) 또는 도메인 객체(Domain Object)와 DTO를 분리해야 하는 이유
개발을 하다 보면 API의 요청이나 응답을 처리할 때 또는 다른 계정으로 넘기는 파라미터가 너무 많은 시점에 별도의 DTO를 생성해야 하나 고민을 하는 시점이 생긴다. 또한 간단한 애플리케이션이 아니고서는 엔티티와 DTO를 분리하는 것을 추천하는데, 이번에는 그 이유에 대해 알아보고자 한다. 엔티티(Entity) 또는 도메인 객체(Domain Object)와 DTO를 분리해야 하는 이유 엔티티는 비즈니스 로직을 포함하는 도메인 엔티티와 데이터베이스 관련 처리를 위한 영속성 엔티티로 나누어질 수 있다. 하지만 아래의 내용에서는 설명의 편의를 위해 2개를 합하여 설명하고자 한다. 엔티티(Entity)와 DTO를 분리해야 하는 이유 관심사의 분리 Validation 로직 및 불필요한 코드 등과의 분리 API ..
[Spring] JDBC 기본에 충실한 Transaction 동작 원리
JDBC 트랜잭션에 대한 이해 Transaction 기본 동작 원리를 살펴보고자. 궁극적으로는 @Transactional 이 어떻게 돌아가는지를 살펴보겠지만, 우선은 그것보다도 중요한 JDBC에서 트랜잭션을 사용하는 방법에 대해서 이해하고 넘어갈 것이다. 사실 Spring의 @Transactional 애노테이션, JPA(Hibernate), JOOQ 등을 쓰면 라이브러리 내에서 관리되므로 아래와 같은 문제는 일어날 일이 없다. 앞서 언급한대로 원활한 이해를 위해 아래 JDBC가 트랜잭션을 다루는 코드를 살펴보자. import java.sql.Connection; Connection connection = dataSource.getConnection(); // (1) try (connection) { co..