[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는 미리 연결을 생성해두고 필요할 때마다 이를 재사용하..
[Spring] Controller의 Return Type과 Parameter 가이드 👍
·
Spring
Spring Controller란?Controller의 Return Type과 Parameter가 무엇인지 알기전에 Sptring Controller가 무엇인지 알아야한다.필자의 이전 글에서도 설명했지만 다시 한 번 설명하고자 한다. Spring MVC에서 Controller는 웹 애플리케이션의 핵심 구성요소이다.HTTP 요청을 받아 비즈니스 로직을 처리하고, 적절한 응답을 반환하는 역할을 수행한다.Controller는 @Controller 또는 @RestController 어노테이션을 통해 정의되며, 각각의 메서드는 특정 URL 요청을 처리한다고 보면 된다.@RestController@RequestMapping("/api")public class UserController { private fin..
[Spring] Spring Singleton Pattern과 주요 어노테이션 정리 ✅
·
Spring
1. Spring과 Singleton Pattern??필자가 Spring 프레임워크를 공부하면서 가장 먼저 접했던 개념은 Singleton Pattern이었던 것 같다.학기중에 OODP(객체지향 설계패턴)수업에서 배우기도 했던 싱글톤 패턴이기도 해서 이해하기 쉬웠던 것 같다. Singleton Pattern이 뭘까?간단하게, 싱글톤 패턴은 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.Spring에서는 Bean이라고 부르는 객체들이 기본적으로 Singleton으로 관리된다. 예를 들어, 다음과 같은 서비스 클래스가 있다고 가정해보겠다.@Servicepublic class UserService { private static int instanceCount = 0; public U..
[Spring] POJO, IoC, DI, AOP, Filter 핵심 개념 완벽 정리 🧹
·
Spring
이 게시물에서는 필자가 Spring Framework의 핵심 개념들인 POJO, IoC, DI, AOP, Filter에 대해 공부한 부분들을 정리하고자 한다.각 개념의 정의부터 실제 구현 방법, 그리고 왜 이러한 패턴을 사용하는지까지 다뤄보고자 한다.1. POJO (Plain Old Java Object)POJO는 특정 프레임워크나 기술에 종속되지 않은 순수한 "자바 객체"를 의미한다.크게 세 가지의 특징을 가지는데 아래와 같다.특정 클래스를 상속받지 않음특정 인터페이스를 구현하지 않음특정 어노테이션을 포함하지 않음코드로 한 번 살펴보자.// POJO 예시public class Student { private String name; private int grade; public S..
[Spring] ⚡️ Spring MVC와 Spring Boot 개념 정리 ⚡️
·
Spring
필자는 최근에 실무에서 가장 많이 사용된다는 Spring MVC와 Spring Boot를 접하게 되었고,이 둘을 공부하면서 배운 내용들을 정리해보려고 한다.Spring MVC란?Swift, React를 공부하며 MVC 자체 대한 공부를 많이 했던지라 Spring MVC를 접했을 때 마냥 막막하지는 않았다.하지만 백엔드 관련해서의 MVC는 어떻게 접근해야되는지 이해하기가 힘들었던 것 같다. 일단 MVC 패턴이란 무엇일까?MVC 패턴은 애플리케이션을 세 가지 역할로 구분한 개발 방법론이다.Model: 데이터와 비즈니스 로직을 담당View: 사용자에게 보여지는 화면Controller: Model과 View를 연결하는 다리 역할Spring MVC의 동작 원리는 무엇일까?Spring MVC는 프론트 컨트롤러 패턴..
[Railway] Railway로 스프링 프로젝트 무료 배포하기 (MySQL 연동까지)
·
배포
필자는 웹서비스 개발을 공부하다가 Railway.app에 프로젝트를 배포할 수 있는 기회가 주어졌다.혼자서 공식문서와 구글링을 하며 이곳저곳 알아보러 다닌 부분이 많이 힘들었어서 배포 과정을 정리하고자 한다.1. 회원가입 하기회원가입을 하게 되었을 때, 위 사진과 같이 대시보드가 열릴 것이다.첫 가입을 하게 된 경우 $5의 Free Trial Token을 얻게 되는데 이 부분이 무료 배포의 핵심이다! 2. 대시보드 밑에 생성한 프로젝트 들어가기 프로젝트를 들어가 보면 내가 생성한 두개의 Deployment 박스들이 보일 것이다.오른쪽 위에 보이는 Create를 눌러서 생성한 것인데 필자는 먼저 Railway에서 MySQL을 설정하는 방법부터 설명하려 한다.2-1. Railway에서 MySQL 설정하기Ra..