728x90 반응형 Spring, SpringBoot, JPA8 3. 엔티티 매핑 언젠간 고치겠지.. 나 힘들어...1. 객체와 테이블 매핑@Entity@Entity 애노테이션이 붙은 class는 JPA가 관리하며, 엔티티라고 한다. 따라서 JPA를 사용해서 테이블과 매핑할 class는 해당 애노테이션을 필수로 붙여야 한다. 아래는 JPA 스펙상 꼭 지켜야 할 주의사항이다.기본 생성자(파라미터가 없는 public 또는 protected 생성자)가 필수로 있어야 한다.JPA 리플렉션 등의 기술을 써서 객체를 프록시하는 경우에 필요하기 때문이다.final class, enum, interface, inner class엔 사용할 수 없다. inner static은 됨final을 떼야 할 이유는 여러가지이다 → 왜 상속이 되어야 하느냐?jpa에 클래스를 만들다보면은 이 친구들이 코드를 살짝 .. 2025. 8. 16. 2. 영속성 관리 3. 영속성 관리1. 영속성 컨텍스트JPA를 공부하면서 가장 먼저 마주치게 되는 개념 중 하나가 영속성 컨텍스트(Persistence Context) 라고 해요.영속성 컨텍스트는 "엔티티를 영구적으로 저장하고 관리하는 공간"입니다.쉽게 말해, 자바 객체(Entity)를 데이터베이스와 연결된 상태로 관리해주는 JPA의 메모리 상 컨테이너 같은 거예요.예를 들어 EntitiyManager.persist(entity); 코드를 통해 엔티티를 영속화(영속성 컨텍스트에 저장)할 수 있어요.엔티티 매니저 팩토리와 엔티티 매니저JPA에서 영속성 컨텍스트에 접근하려면 EntityManager라는 인터페이스를 사용해야 해요.EntityManager.persist(entity) → 객체를 영속성 컨텍스트에 저장(영속화)내.. 2025. 8. 16. 1 JPA 소개 및 시작 1. JPA 소개객체 지향 개발을 하고 싶은데, 왜 SQL만 치고 있을까?우리가 개발을 할 때 사용하는 언어는 보통 Java 같은 객체 지향 언어입니다. (Scala, C# 등등이 있져)클래스 만들고, 필드 만들고, 메서드 만들고… 객체들끼리 서로 관계도 맺고 상속도 하면서 자연스럽게 설계하죠.그런데 데이터를 저장할 땐 어쩔 수 없이 관계형 데이터베이스(RDB)를 사용하게 됩니다. * 물론 데이터 저장하는 법은 NoSQL, File등 다양합니다 (= 객체를 영구 보관하는 저장소로 생각) 현실적인 대안으로 RDB만 언급하겠어요그리고 여기에 데이터를 넣고 꺼내려면… SQL을 써야 하죠.SELECT * FROM member WHERE id = 1;익숙한 문장이긴 한데, 여기서 의문이 하나 생깁니다."나는 객체.. 2025. 8. 12. Spring Security와 사용자 역할 관리: 오늘의 학습 내용 정리 오늘은 Spring Security를 사용한 사용자 인증 및 권한 관리에 대해 깊이 있게 다뤄보았습니다. 특히 사용자 역할 설정과 관련된 몇 가지 흥미로운 이슈들을 해결하면서 많은 것을 배웠습니다. 이 포스트에서는 오늘 학습한 주요 내용들을 정리해보겠습니다.1. 사용자 역할 확인 로직먼저, 사용자의 역할을 확인하는 로직에 대해 알아보았습니다. Spring Security에서는 보통 다음과 같은 방식으로 역할을 확인합니다:if (!UserRoles.BOSS.contains(loginUser.getRole())) { // 사용자가 BOSS 역할이 아닐 때의 로직}이 코드는 UserRoles.BOSS가 Set 타입이고, loginUser.getRole()이 사용자의 역할을 반환한다고 가정합니다.2. 사용.. 2024. 8. 27. JWT를 이용한 Spring Security 인증 구현하기 안녕하세요! 오늘은 Spring Boot 애플리케이션에서 JWT(JSON Web Token)를 사용한 인증 시스템 구현에 대해 알아보겠습니다. 특히 Access Token과 Refresh Token을 활용한 보안 강화 방법에 초점을 맞추어 설명하겠습니다.1. JWT란?JWT는 당사자 간 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방식의 표준입니다. 이 토큰은 디지털 서명이 되어 있어 신뢰할 수 있습니다.2. TokenProvider 구현하기먼저, JWT 토큰을 생성하고 검증하는 TokenProvider 클래스를 구현해봅시다.@Componentpublic class TokenProvider { // Access 토큰을 위한 암호화 키 private final Key accessKey; .. 2024. 8. 27. SpringBoot Project 게시판 만들기 2 우선 프로젝트의 기본 구조를 설명하자면 mvc2 패턴으로 앞으로 작성해야 할 패키지는 controller, service, repository, dto, entity, html 코드이다.mvc 모델은 다음과 같다.Client: 사용자가 웹 브라우저를 통해 서버에 요청을 보낸다Controller: 클라이언트의 요청을 받아 적절한 서비스 메서드를 호출한다. 서비스에서 반환된 결과를 바탕으로 HTML 페이지를 생성하여 클라이언트에게 응답한다.Service: 비즈니스 로직을 처리하는 계층으로, 데이터 조작 및 변환을 수행한다. 필요한 경우 DTO를 사용하여 데이터를 전달한다Repository: 데이터베이스와 상호 작용하는 계층으로, 엔티티 객체를 사용하여 데이터를 저장하고 조회한다.DTO (Data Transf.. 2024. 5. 24. 이전 1 2 다음 728x90 반응형