Java26 엔티티 매니저, 영속성 컨텍스트의 개념/특징/예시 ✅ 엔티티 매니저 📌 엔티티 데이터베이스의 테이블과 매핑되는 객체. 📌 엔티티 매니저 - 엔티티를 관리하며, 데이터베이스와 어플리케이션 사이에서 객체를 생성/수정/삭제하는 역할을 함. - 엔티티 매니저는 엔티티 매니저 팩토리에서 만들어짐. - 엔티티 매니저는 엔티티를 영속성 컨텍스트에 저장함. - 원래는 요청이 들어오면, 각 요청의 개수만큼 엔티티 매니저 팩토리가 엔티티 매니저를 만들어 요청을 처리하고, 필요한 시점에 DB와 연결한 뒤에 쿼리하지만, 스프링 부트에서는 엔티티 매니저 팩토리를 하나만 생성해서 관리하고 @PersistenceCnntext 또는 @Autowired 애너테이션을 사용해 엔티티 매니저를 사용. - 스프링 부트에서는 '스프링데이터 JPA'가 엔티티 매니저를 관리하므로 직접 생성·관리.. 2023. 8. 21. ORM, JPA, 하이버네이트의 개념과 예시 ✅ ORM (object-relationcal mapping) 자바의 객체와 데이터베이스를 연결해 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구. ✅ ORM의 장단점 📌 장점 - SQL을 직접 작성하지 않고 사용하는 언어로(ex. java) 데이터베이스에 접근 가능. - 객체지향적으로 코드를 작성할 수 있기 때문에, 비즈니스 로직에만 집중 가능. - 데이터베이스 시스템에 대한 종속성 감소 : 데이터베이스 시스템이 추상화되어 있기 때문에, MySQL → PostgreSQL로 전환해도 추가 작업 필요 X - ERD에 대한 의존도 감소 : 매핑하는 정보가 정확하기 떄문에 ERD에 대한 의존도를 낮출 수 있고, 유지보수에 유리함. 📌 단점 - 프로젝트의 복잡성이 커질수록 사용 난이도 증가. - 복잡하고 .. 2023. 8. 20. 스프링부트 계층 구조 이해하기 계층이란? 계층이라는 것은 각자의 역할과 책임이 있는 소프트웨어의 구성 요소를 의미합니다. 각 계층은 특정한 역할과 책임을 가지며 서로 분리되어 작동하도록 설계되어 있습니다. 스프링부트에는 프레젠테이션, 비즈니스, 퍼시스턴스 계층이 있습니다. 이 계층은 서로 통신하며 프로그램을 구성합니다. 스프링부트의 각계층은 서로 소통할 수 있지만 다른 계층에 직접 간섭하거나 영향을 미치지 않습니다. 각 계층은 아래 그림과 같이, 양 옆의 계층과 통신하는 구조를 따릅니다. 여기서 '프레젠테이션-비즈니스-퍼시스턴스 계층'이란 개념의 영역이고, '컨트롤러-서비스-리포지토리·엔티티'가 실제 구현의 영역입니다. 계층을 분리하는 이유 이러한 계층들은 애플리케이션의 모듈화, 유지 보수 용이성, 그리고 확장성을 높이기 위해 사용되.. 2023. 8. 14. 스프링 핵심 개념 4가지 요약 정리 (Ioc, DI, AOP, PSA) 스프링 핵심 개념 4 가지 한 줄로 정리하는 스프링 핵심 4가지 IoC 객체의 생성과 관리를 개발자가 하는 것이 아니라 프레임워크가 대신하는 것. DI 외부에서 객체를 주입받아 사용하는 것 AOP 프로그래밍을 할때 핵심 관점과 부가관점을 나누어서 개발하는 것. PSA 어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것. 출처: 스프링 부트 3 백엔드 개발자 되기: 자바 편 https://product.kyobobook.co.kr/detail/S000201766024 스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고 스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면 ★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중.. 2023. 8. 13. 스프링 핵심 개념 3 : PSA (서비스 추상화) PSA는 다양한 기술과 서비스를 추상화하여 일관된 방식으로 다룰 수 있도록 도와주는 개념입니다. 이번 포스팅은 스프링 프레임워크 핵심 개념 시리즈의 마지막 포스팅으로 PSA(Portable Service Abstraction)에 대해 알아보겠습니다. ✅ PSA (Portable Service Abstraction) : PSA는 '이식가능한 서비스 추상화'라고 직역된다. PSA는 스프링에서 제공하는 개념으로, 다양한 기술들을 일관된 방식으로 다룰 수 있도록 도와주는 추상화된 인터페이스와 패턴을 말한다. 쉽게 말해, PSA는 다양한 기술을 하나의 통일된 방식으로 사용할수 있도록 도와주는 것이다. ✅ 스프링에서 PSA 예시 1. 데이터 접근 데이터베이스에 접근하기 위한 기술로 *JPA, *JDBC 같은 것들이.. 2023. 8. 12. 스프링 핵심 개념 2 : AOP (관점 지향 프로그래밍) ✅ AOP (Aspect Oriented Programming) 개념 : AOP는 관점 지향 프로그래밍를 의미하며, OOP (Object-Oriented Programming)을 보완하는 개념이다. AOP는 핵심 관점과 부가관점(로깅, 트랜잭션, 보안 등)을 분리하여 개발하는 방법을 말한다. 기존의 OOP(객체 지향 프로그래밍)은 클래스를 중심으로 코드를 구조화하는 반면, AOP는 "관심사"를 중심으로 코드를 구조화합니다. ✅ AOP 예시 위 그림으로 예를 들어보자면, 핵심 관점은 계좌이체/고객관리 로직이고, 부가 관점은 로깅/데이터베이스 연결 로직이다. ✅ AOP 장점 AOP를 통해 핵심관점과 부가관점으로 분리하면, 개발자는 핵심 관점 코드에만 집중할 수 있게 되고, 프로그램 변경과 장에도 유연하게 대.. 2023. 8. 12. 빈과 스프링 컨테이너 앞서, Ioc(제어의 역전)와 DI(의존성 주입)에 대해 설명하면서 나왔던 개념인 스프링 컨테이너와 빈에 대해 알아보도록 하겠습니다. ✅ 스프링 컨테이너 : 스프링 컨테이너는 빈을 생성/관리한다. 빈이 생성되고 소멸되기까지 생명주기를 스프링 컨테이너가 관리한다. @Autowired같은 애너테이션을 통해 빈을 주입받을 수 있게 DI를 지원한다. ✅ 빈 : 빈은 스프링 컨테이너가 생성하고 관리하는 객체이다. 즉, 스프링의 객체이다. 스프링에서는 객체를 빈으로 관리함으로써 객체의 생명주기, 의존성 관리, 설정 등을 보다 쉽게 처리할 수 있도록 도와준다. 빈을 스프링 컨테이너에 등록하기 위해 XML, 어노테이션, Java 설정 클래스 등 다양한 방식을 사용할 수 있지만,가장 일반적으로 사용되는 두 가지는 아래와.. 2023. 8. 10. 이전 1 2 3 4 다음