[Spring] ✨ QueryDSL 개념알기 ✨
·
Spring
QueryDSL이란?QueryDSL은 JPA를 보완하는 강력한 쿼리 생성 프레임워크이다.JPQL(Java Persistence Query Language)을 자바 코드로 작성할 수 있게 해주며, 컴파일 시점에 SQL 문법 오류를 잡아낼 수 있는 큰 장점이 있다.필자는 SQL과 JPQL을 문자열로 작성하는 대신, 자바 코드로 작성함으로써 타입 안전성을 보장받을 수 있다는 점에서 놀랍게 다가왔던 것 같다.QueryDSL의 필요성?그렇다면 QueryDSL이 왜 필요할까?QueryDSL을 사용하기 전과 후로 나누어보자! 사용하기 전:데이터베이스 쿼리를 작성할 때 기존의 방식들은 몇 가지 한계점이 있었다.순수 JPA를 사용할 떄는 문자열로 쿼리를 작성해야 했기 때문에 실수하기 쉽고, 오타가 있어도 컴파일 시점에 ..
[Spring] JPA와 Spring Data JPA가 뭘까???
·
Spring
JPA란?Java Persistence API(JPA)는 자바 진영의 ORM 표준 기술이다.ORM(Object-Relational Mapping)이란 객체와 관계형 데이터베이스를 매핑해주는 기술을 의미한다.개발자가 SQL 쿼리를 직접 작성하는 대신, 객체지향적으로 프로그래밍을 하면 JPA가 적절한 SQL을 생성해서 데이터베이스와 통신을 해준다.예시 코드를 함께 살펴보자.@Entitypublic class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age;}위 코드에서@Entity 애노테이션은 이 클래스가 데이..
[Spring] MyBatis 개념정리 🤩
·
Spring
MyBatis란?먼저 MyBatis부터 알아보자.MyBatis는 자바 진영에서 널리 사용되는 퍼시스턴스 프레임워크(Persistence Framework)이다.🤔Persistence Framework?🤔-> 데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크종류에는SQL Mapper(SQL문장으로 직접 데이터베이스를 다루는 SQL Helper) : e.g. Mybatis,ORM (객체를 통해 간접적으로 데이터베이스를 다루는 ORM) : e.g. Hibernate, JPA가 있다.개발자가 SQL을 직접 제어하면서도 JDBC의 복잡한 설정을 간소화할 수 있게 해주는 강력한 도구라고 볼 수 있다.JDBC를 사용할 때 필요한 반복적인 코드(커넥션 관리, PreparedSt..
[Spring] JdbcTemplate으로 데이터베이스 접근하기!
·
Spring
Spring 프레임워크에서 데이터베이스를 다루는 방법은 여러 가지가 있다.그 중에서도 JdbcTemplate은 JDBC를 한층 더 추상화하여 개발자가 더 쉽게 데이터베이스에 접근할 수 있도록 도와주는 Spring의 핵심 컴포넌트이다.JdbcTemplate이 뭘까?JdbcTemplate은 Spring Framework에서 제공하는 JDBC 추상화 클래스이다.전통적인 JDBC의 모든 기능을 그대로 사용할 수 있으면서도, 반복적이고 복잡한 JDBC 코드를 대폭 줄여주는 장점이 있다.기존 JDBC의 try-catch 문과 같은 예외처리, Connection 객체 관리, PreparedStatement 처리 등을 JdbcTemplate이 자동으로 처리해주기 때문에 개발자는 SQL 쿼리 작성과 결과 매핑에만 집중할..
[Spring] 🔎 DataSource와 트랜잭션 개념정리 🔎
·
Spring
필자는 백엔드 개발을 공부하면서 데이터베이스 연결과 트랜잭션 관리의 중요성을 깊이 느끼게 되었다.특히 Spring에서는 DataSource와 트랜잭션이 핵심적인 역할을 하는데, 이 개념들을 제대로 이해하지 못하면 안정적인 데이터 처리가 어렵다는 것을 알게 되었다.이번 글에서는 DataSource와 트랜잭션의 개념을 정리해보고자 한다.DataSource란?데이터베이스 연결을 관리하는 것은 애플리케이션에서 매우 중요한 부분이다.DataSource는 데이터베이스 연결을 위한 표준 인터페이스로, Connection Pool을 통해 데이터베이스 연결을 효율적으로 관리한다. (이전글 참고)데이터베이스 연결은 비용이 많이 드는 작업이기 때문에, DataSource는 미리 연결을 생성해두고 필요할 때마다 이를 재사용하..
[Database] JDBC와 데이터베이스 커넥션의 이해
·
Database
웹 서비스가 점점 성장하면서 데이터베이스를 효율적으로 관리하는 것이 매우 중요해졌다고 필자는 생각한다.특히 수많은 사용자의 요청을 동시에 처리해야 하는 상황에서, 데이터베이스의 연결을 어떻게 관리하느냐는 서비스의 성능을 좌우하는 핵심 요소가 되었지 않았을까?!그래서 필자는 자바 기반 웹 애플리케이션에서 데이터베이스 연결을 관리하는 핵심 기술인 JDBC와 커넥션 풀의 개념에 대해서 정리해보고자 한다.JDBC(Java Database Connectivity)란?? 🤔JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.데이터베이스에 접근하기 위한 일관된 방법을 제공하며, 어떤 데이터베이스를 사용하더라도 동일한 방식으로 데이터베이스를 다룰 수 있게 해준다!마치 USB가 모든 기기에서 동일..