springboot 5

[자바/JAVA] 객체는 뭐로 만들어? Class, Interface, Record?

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영합니다! Java에서 DTO(Data Transfer Object)는 데이터 전송을 위해 사용되는 객체로, 일반적으로 여러 계층(Controller → Service → Repository) 간 데이터를 주고받을 때 활용됩니다.DTO를 만들 때 사용할 수 있는 방법으로 class, record, interface 등이 있으며, 이 글에서는 각 방식의 차이점과 장단점을 살펴본 후, DTO에 자주 사용하는 어노테이션까지 정리해 보겠습니다.1. class를 이용한 DTO🔹 특징일반적인 클래스를 사용하여 DTO를 정의필드, 생성자, getter/setter, toString(), equals(), hashCode() 등을..

백엔드 2025.02.12

[자바/JAVA] DAO, DTO, VO, Entity의 차이점과 역할

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다! Java에서 데이터 관리를 위해 자주 사용되는 개념으로 DAO(Data Access Object), DTO(Data Transfer Object), VO(Value Object), Entity가 있습니다. 각각의 개념이 무엇이며 어떤 역할을 하는지, 그리고 실무에서 어떻게 활용되는지를 정리해 보겠습니다.1. DAO (Data Access Object)📌 정의DAO는 데이터베이스와 직접적으로 상호 작용하는 객체입니다. 주로 SQL 쿼리를 실행하고, 데이터를 조회·삽입·수정·삭제하는 역할을 합니다.📌 역할데이터베이스와 애플리케이션 간의 데이터 전달을 담당SQL 실행 및 트랜잭션 관리데이터베이스 연결 및 자원..

백엔드 2025.02.11

[자바/JAVA] 자바 스프링 AOP(Aspect-Oriented Programming) 이해하기

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다!1. AOP란?AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 공통 관심 사항(cross-cutting concerns) 을 분리하여 모듈화하는 프로그래밍 기법입니다. 스프링 AOP는 주로 로그, 트랜잭션, 보안, 예외 처리 같은 공통적인 기능을 분리하여 관리할 때 사용됩니다.기존의 객체지향 프로그래밍(OOP)에서는 관심사(비즈니스 로직) 와 공통 기능(로깅, 보안 등) 이 뒤섞이기 쉬운데, AOP를 사용하면 핵심 로직과 공통 기능을 분리할 수 있습니다.2. AOP 핵심 개념🎯 Aspect(애스펙트)공통 기능을 정의하는 모듈입니다.예를 들어, 로깅 기능을 @Aspect로 ..

백엔드 2025.02.08

[자바/JAVA] JPA N+1 문제란?

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다! JPA에 이어시 JPA 사용시 발생할 수 있는 N+1 문제에 대해서 정리했습니다.N+1 문제는 JPA에서 연관된 엔티티를 조회할 때 발생하는 불필요한 추가 쿼리 문제를 의미합니다.즉, 하나의 메인 엔티티(1)를 조회할 때, 연관된 N개의 엔티티를 각각 추가로 조회하면서 총 N+1개의 쿼리가 발생하는 문제입니다. 📌 N+1 문제 발생 예시예를 들어, User와 Order가 1:N 관계를 가지고 있다고 가정해봅시다.@Entitypublic class User { @Id @GeneratedValue private Long id; private String name; @OneToMany(ma..

백엔드 2025.02.05

[자바/JAVA] JPA(Java Persistence API) 개념 정리🚀

안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다!📌 JPA란 무엇인가?**JPA(Java Persistence API)**는 자바 애플리케이션에서 관계형 데이터베이스(RDB)를 객체 지향적으로 다룰 수 있도록 지원하는 ORM(Object-Relational Mapping) 기술입니다. SQL을 직접 작성하는 대신, 자바 객체(Entity)와 데이터베이스 테이블 간의 매핑을 통해 데이터 저장 및 조회를 수행할 수 있습니다.1️⃣ JPA의 핵심 개념🔹 1.1 ORM(Object-Relational Mapping) 이란?JPA는 ORM(Object-Relational Mapping) 기술의 한 종류입니다.✅ ORM이란? 객체(Object)와 관계형 데이터베이..

백엔드 2025.02.02