Study/Spring Boot 4

DTO, Domain 비교

DTO vs Domain (Entity) — 왜 분리해야 할까?스프링 부트로 프로젝트를 하다 보면,Controller에서 데이터를 주고받을 때 Entity를 그대로 쓸지, DTO를 따로 만들어야 할지 헷갈릴 때가 많다.둘 다 데이터를 담는 객체지만, 역할과 사용 목적이 완전히 다르다.1. Domain(Entity)Entity는 데이터베이스와 직접 연결되는 객체다.스프링에서는 주로 @Entity 어노테이션을 붙여서 DB 테이블과 1:1 매핑한다.역할DB 테이블과 직접 연결JPA 어노테이션으로 구조 정의비즈니스 로직의 핵심 객체문제점보안 이슈: 비밀번호나 내부 식별자 같은 정보가 그대로 노출될 수 있다.불필요한 데이터: 연관관계가 함께 조회되어 응답이 무거워진다.변경에 취약: 요청/응답 형식이 자주 바뀌면 ..

Study/Spring Boot 2025.11.01

Repository, Service, Controller 계층 비교

스프링 부트로 웹 애플리케이션을 개발하다 보면 “Controller, Service, Repository”라는 구조를 자주 마주하게 된다.이 세 계층은 각각 표현, 비즈니스, 데이터 접근 역할을 분리해 코드의 유지보수성과 확장성을 높여준다.이번 글에서는 스프링 부트의 기본 아키텍처인 3계층 구조(Controller–Service–Repository) 가어떤 역할을 맡고 어떻게 협력하는지를 정리한다.1. Repository 계층( = 데이터 접근 계층 )역할 :데이터 베이스와 직접 소통CRUD 작업 수행책임 :데이터 저장/조회/수정/삭제 수행DB 쿼리 실행엔티티와 DB 테이블 매핑특징 :비즈니스 로직 없이 순수 데이터 접근만Spring Data JPA 사용 시 인터페이스만으로 구현 가능 예시코드 ) ..

Study/Spring Boot 2025.11.01

개발환경

https://product.kyobobook.co.kr/detail/S000001248954 스프링5 프로그래밍 입문 | 최범균 - 교보문고스프링5 프로그래밍 입문 | 스프링 프레임워크의 버전업으로 개선된 내용을 담았습니다.필자의 한마디 : 처음 스프링을 배우고자 하는 독자들이 입문할 때 필요한 것은 스프링의 방대한 내용이product.kyobobook.co.krhttps://wikidocs.net/160048#jdk_1 1-02 스프링 부트 개발 환경 준비하기* `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/v1.02](https://github.com/pahkey/sbb3/tree/v1.02…wikidocs.net 위 두개를 참고해서 세팅함 1. 준비물총 3..

Study/Spring Boot 2025.07.05

스프링(Spring)이란 무엇인가?

1. 스프링 정의: 스프링은 자바 기반의 웹 애플리케이션 개발을 쉽고 효율적으로 해주는 프레임 워크이다.- 자바로 웹, API, 백엔드 서버를 개발할 때 빠르고 편리하게 만들어주는 오픈소스 프레임워크이다. - 복잡한 설정과 반복 작업을 줄여 개발자가 비즈니스 로직에 집중할 수 있도록 도와준다.- 스프링은 개발자가 직접 객체 생성, 연결, 설정을 일일이 하지 않아도 되게 해주어 개발을 훨씬 편하게 만들어준다는 것이다. 2. 스프링 역사 & 사용 이유조금 길어질 수 있지만, 스프링과 스프링 부트를 사용하게 된 역사를 먼저 이해해보자. 역사를 이해하면 왜 사용하는지가 납득될 것이다. 1) 초창기 자바 웹 개발: Servlet과 JSP자바로 웹 개발을 처음 시작할 때는 서블릿과 JSP를 사용했다.- 클라..

Study/Spring Boot 2025.07.03