백엔드(37)
-
DTO ↔ Entity 변환하기
✏️ DTO와 Entity의 변환 방법과 어느 계층에서 변환하는 것이 효율적인가에 대하여 알아보자. JPA에서는 데이터 은닉과 보안, 성능 최적화, 네트워크 트래픽 감소, 유연성 및 확장성, 코드 유지보수성을 향상하기 위해 외부에서 입력받은 데이터를 DB에 저장하는 경우 DTO -> Entity로 변환하고 DB에서 조회한 데이터를 외부로 표출할 때에는 Entity -> DTO로 변환해야 줘야 한다. 🔎 DTO ↔ Entity 변환 방법 1. ModelMapper 개념 객체의 필드 값을 다른 객체의 필드 값으로 자동으로 맵핑해주는 라이브러리 MapStruct에 비해 성능이 떨어지며 컴파일 단계에서 오류를 처리할 수 없다. 방법 - 의존성 주입 // build.gradle 파일에 추가 implementati..
2023.11.16 -
JPA - Entity 생성을 위한 어노테이션
🧐 Entity를 생성할 때 자주 사용되는 어노테이션에 대하여 알아보자. 1. @Entity 작성한 클래스를 JPA Entity로 지정하는 역할로 객체와 DB 테이블과 매핑된다. 기본 생성자(파라미터가 없는 생성자)를 필수로 가져야 한다. (명시적으로 선언하지 않은 경우 컴파일러가 기본 생성자를 자동으로 생성) @Entity public class Player { // filed or method // 기본 생성자 public Player() { // 내용 } } 2. @Table Entity와 매핑되는 테이블의 속성(테이블 이름, 카탈로그 스키마 등..)을 지정할 수 있다. 해당 어노테이션을 추가하지 않는다면 매핑한 엔티티 이름을 테이블 이름으로 사용한다. @Entity @Table(name = "pl..
2023.11.15 -
JPA : Java Persistence API
ORM (Object Relational Mapping) : 객체와 관계형 데이터베이스 간의 매핑을 자동화하는 프로그래밍 기술이나 기술 집합이다. Ex. Hibernate, EclipseLink, MyBatis JPA : JPA는 자바 진영의 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음으로 JPA를 사용하면 객체지향 프로그래밍의 이점을 살리면서 DB와의 통합을 효율적으로 할 수 있다. JPA 특징 1. 애노테이션 기반 매핑 : 어노테이션을 사용하여 객체와 DB간의 정보를 매핑 정보를 지정하여 복잡한 쿼리를 작성하지 않고도 DB 연동을 수행할 수 있다. @Entity @Table(name = "employees") public class Employee..
2023.11.15 -
Entity vs DTO vs VO 개념과 특징
✏️ 데이터를 처리할 때 사용되는 Entity와 DTO와 VO의 개념과 특징에 대하여 알아보자 Entity 개념 Entity는 객체 지향 프로그래밍에서 데이터를 표현하는 객체로 Java에서 데이터베이스와의 상호작용을 관리하기 위한 객체로 사용된다. Entity 클래스는 데이터베이스 테이블과 일치하는 구조를 가지며, 데이터베이스의 레코드를 나타낸다. 해당 클래스는 CRUD(데이터를 저장, 검색, 업데이트 및 삭제) 작업을 할 때 사용된다. 특징 Entity 객체는 DB Table과 구조가 일치하며 Field는 테이블의 열(Column)과 일치하는데 이것을 ORM (Object-Relational Mapping)을 사용하여 자동으로 매핑할 수 있다. * DB의 테이블 내에 존재하는 컬럼만을 속성(필드)으로 ..
2023.11.08 -
Controller,Service,Repository에서의 DI
🤔 Controller,Service,Repository에서 @Autowired를 이용하여 DI를 할 수 있는 이유에 대하여 알아보자. * 예시 코드 1. Controller package com.example.demo.controller; import com.example.demo.service.DemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bi..
2023.11.05 -
스프링 빈(Bean) 이란?
Spring Bean : Spring Bean은 스프링 컨테이너가 관리하는 자바 객체로 컨테이너에 의해 생명주기(Lifecycle)가 관리된다. Bean의 생명주기(Lifecycle) : Bean 객체가 생성되고 초기화되며 소멸되는 일련의 단계를 의미한다. 생명 주기 단계 스프링 컨테이너 생성 Bean 등록 의존성 주입 초기화 사용 소멸 스프링 종료 생명 주기 단계 - Bean 등록 1. @Configuration + @Bean 조합을 이용하여 직접 등록 @Configuration public class AppConfig { @Bean public MyBean myBean() { return new MyBean(); } @Bean public AnotherBean anotherBean() { // 의..
2023.11.05