backend

· Backend
QueryDSL의 특징QueryDSL은 Java에서 안전하고 가독성 있는 쿼리를 작성할 수 있게 해주는 프레임워크이다.타입 안전성: 컴파일 시점에 쿼리의 타입을 검증하여 런타임 에러 방지가독성: 코드 형태로 쿼리를 작성하므로 가독성이 높아지고 유지보수가 용이하다동적 쿼리 지원: 조건에 따른 동적 쿼리를 유연하게 생성할 수 있다.통합성: JPA, Hibernate, SQL과 쉽게 통합 가능하다.특히 Spring Data JPA에서 기본적으로 제공하는 인터페이스인 JpaRepository와 비교해보자.JpaRepository는 메서드 이름으로 쿼리를 생성할 수 있어 간단하지만, 동적 쿼리나 Join 같이 복잡한 내용이 쿼리에 포함되기 시작하면 매우 골치아프다. 따라서 간단한 CRUD 작업은 JpaReposi..
· Backend
Service란 무엇인가?Service는 Spring Boot 어플리케이션에서 비즈니스 로직을 담당하는 레이어이다.Controller와 Repository를 연결해주는 중간 다리 역할이라고 이해하면 된다.주로 어플리케이션을 구성하는 비즈니스 로직을 바로 이 Service 레이어에서 구현하게 된다.비즈니스 로직이 Controller에 포함되지 않도록 분리하여 코드의 가독성과 유지보수성을 높인다.또한 데이터를 처리하는 과정과 Client 요청 처리 과정을 분리하여 역할을 명확히 나누어야 한다.Service 코드 작성법@Service@Transactional@RequiredArgsConstructorpublic class UserServiceImpl implements UserService { priva..
· Backend
Repository란 무엇인가?Repository는 데이터베이스와 애플리케이션 간의 데이터 접근을 담당하는 레이어이다.. Spring Data JPA에서는 Repository를 통해 데이터 조작인 CRUD(Create, Read, Update, Delete) 작업을 간단하게 처리할 수 있다.Repository의 핵심적인 역할과 특징은 다음과 같다.데이터베이스 쿼리를 추상화하여 비즈니스 로직과 데이터 접근 코드를 분리한다.반복적인 CRUD 작업을 간단한 메서드 호출로 처리할 수 있다.비즈니스 로직(Service)과 데이터베이스(Data Access)를 분리하여 유지보수를 쉽게 만든다.객체 지향적으로 데이터를 다룰 수 있으며, JPA를 통해 SQL 대신 메서드 호출로 데이터를 조작할 수 있다.Reposito..
· Backend
이전 포스팅에서 Entity 코드를 어떻게 작성하는지와 관계 설정을 어떻게 수행하는지 알아보았다.Entity는 database의 table과 매핑되는 관계이기 때문에 실제 DB에 연결해 결과가 올바르게 나오는지 확인해야 한다.Spring 프로젝트에 datasource를 연결하기 위해서는 application.yaml 파일에 환경설정을 해주어야 한다.이번 포스팅에서는 application.yaml 파일에서 데이터베이스와 관련된 설정값에 대해 다루도록 한다. Database 연결 설정spring: datasource: url: jdbc:postgresql://localhost:5432/mydatabase username: myuser password: mypassword driver-..
· Backend
Entity 간 관계 설정RDB 스키마에서 각 table 간의 1:1, 1:N, N:N 관계를 매핑하여 정의하듯이 Spring Entity에서도 데이터베이스의 관계형 모델을 표현하기 위해 다양한 relation을 설정할 수 있다.이를 위해 JPA에서 제공하는 어노테이션인 @OneToMany, @ManyToOne, @ManyToMany, @JoinColumn 등을 사용한다. @OneToOne두 Entity가 1:1 관계를 가지는 경우 사용한다.주로 한 entity가 다른 entity를 소유하는 개념에서 많이 사용된다. (ex. 특정 유저의 계좌 정보)@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)..
· Backend
Entity란 무엇인가?Entity는 Java Persistence API(JPA)에서 데이터베이스 테이블을 객체 지향적으로 표현하는 클래스이다.즉 데이터베이스의 스키마(schema)를 코드로 매핑하여 데이터베이스와 어플리케이션 간의 데이터 전송을 원활하게 만들어준다.Entity와 데이터베이스 테이블과의 관계는 다음과 같다.하나의 Entity 클래스는 데이터베이스의 한 테이블과 매핑된다.Entity 클래스의 각 변수 필드는 테이블의 열(column)에 해당한다.데이터베이스의 행(row)은 Entity 클래스의 instance object로써 표현된다.데이터베이스의 구조를 변경할 때 entity 코드의 변경만으로 동기화가 가능하고, JPA 어노테이션을 사용하여 매핑 정보를 명시한다.이를 데이터베이스와 어플..
· Backend
Spring Boot 프로젝트를 생성하고 어떻게 시작해야 하는지 막막할 수 있다.효율적이고 관리하기 쉬운 구조를 설계하기 위해 적절한 패키지 구성이 프로젝트의 확장성과 유지보수를 하는데 큰 도움이 된다.본인도 위 구조를 가지고 프로젝트를 진행하는만큼, 각 패키지들이 어떤 역할을 수행하는지 알아보자.java 디렉토리 하위 패키지Configconfig 패키지는 프로젝트의 전역 설정과 관련된 클래스들을 모아둔 패키지이다.주로 데이터베이스 설정, CORS, WebSecurity, Swagger 설정 등이 존재한다.Controller컨트롤러 패키지는 클라이언트의 HTTP 요청을 처리하고 응답을 반환하는 역할을 한다.각 기능별로 RESTful API를 제공하게 된다. 예를 들자면 유저에 대한 요청은 UserCont..
EBEL
'backend' 태그의 글 목록 (2 Page)