🗂️ Study/🌿Spring

영속성 컨텍스트 Persistence를 한글로 번역하면 영속성, 지속성 이라는 뜻Persistence를 객체의 관점으로 해석해 보자면 ‘객체가 생명(객체가 유지되는 시간)이나 공간(객체의 위치)을 자유롭게 유지하고 이동할수 있는 객체의 성질’을 의미 Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간 개발자들이 직접 SQL을 작성하지 않아도 JPA를 사용하여 DB에 데이터를 저장하거나 조회할 수 있으며 수정, 삭제 가능이러한 일련의 과정을 효율적으로 처리하기 위해 JPA는 영속성 컨텍스트에 Entity 객체들을 저장하여 관리하면서 DB와 소통 영속성 컨텍스트의 기능1차 캐시 영속성 컨텍스트는 내부적으로 캐시 저장소를 가지고 있음저장하는 Entity 객체들이 1차 캐시 즉, 캐시 저장소에 저..
EntityJPA에서 관리되는 클래스(= 객체)를 의미Entity 클래스는 DB의 테이블과 매핑되어 JPA에 의해 관리데이터베이스에 쓰일 필드와 여러 엔티티 간 연관관계를 정의아래 표에서 세로의 열 부분이 Column, 가로의 행 부분이 Entity 객체, 테이블 전체가 Entity임컬럼 1컬럼 2컬럼 3컬럼 4엔티티 객체 1-1엔티티 객체 1-2엔티티 객체 1-3엔티티 객체 1-4엔티티 객체 2-1엔티티 객체 2-2엔티티 객체 2-3엔티티 객체 2-4필드 : 엔티티의 각 Columnjava private Long column1 Entity의 상태 비영속 (Transient)new 연산자를 통해 인스턴스화 된 Entity 객체를 의미아직 영속성 컨텍스트에 저장되지 않았기 때문에 JPA의 관리를 받지 않음..
ORM Object-Relational MappingObject : "객체"지향 언어 (자바, 파이썬)Relational : "관계형" 데이터베이스 (H2, MySQL)ORM은 이름 그대로 객체와 DB의 관계를 매핑 해주는 도구반복적이고 번거로운 애플리케이션 단에서의 SQL 작업을 줄여주기 위해서 ORM(객체 관계 매핑)기술들이 등장 JPA 자바 ORM 기술에 대한 표준 명세JPA는 애플리케이션과 JDBC 사이에서 동작되고 있음JPA를 사용하면 DB 연결 과정을 직접 개발하지 않아도 자동으로 처리해줌또한 객체를 통해 간접적으로 DB 데이터를 다룰 수 있기 때문에 매우 쉽게 DB 작업을 처리할 수 있음 하이버네이트(Hibernate)JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준이 ..
빈(Bean) Spring이 관리하는 객체Spring IoC 컨테이너'Bean'을 모아둔 컨테이너Spring Bean을 등록하는 방법@Component를 Bean으로 등록하려고 하는 클래스 위에 작성Bean의 이름은 클래스의 앞 글자만 소문자로 변경하여 저장이때 제대로 Bean이 되었다면 커피콩 모양의 Bean 아이콘 생성 @ComponentScan Spring 서버가 뜰 때 @ComponentScan에 설정해 준 packages 위치와 하위 packages 들을 전부 확인하여 @Component가 설정된 클래스들을 ‘Bean’으로 등록해줌. Spring 'Bean' 사용 방법 @Autowired 필드 위에 @AutowiredSpring에서 IoC 컨테이너에 저장된 memoRepository ‘Bean’..
IoC - 제어의 역전 Inversion of Control의 약자제어의 역전은 기존의 개발 방식에서 개발자가 직접 제어 흐름을 제어하는 것이 아니라, 외부의 프레임워크나 라이브러리가 제어 흐름을 대신하게 되는 것 프로그램의 제어 흐름이 뒤바뀜 클래스 간의 결합을 느슨하게 해 테스트와 유지 관리를 더 쉽게 하는 설계(design) 원칙DI - 의존성 주입Dependency Injection의 약자A 객체가 B 객체의 메서드를 필요로 할 때 A클래스 안에 B클래스의 생성자를 사용해 B의 인스턴스를 만들어 사용하는 대신, 의존성 주입은 다음 세 가지 방법 중 하나를 써서 B클래스가 A클래스에 주입되도록 함.생성자 주입Setter 주입인터페이스 주입강한 결합의 문제점Controller 5 개가 각각 Servi..
Controller클라이언트의 요청을 받음요청에 대한 로직 처리는 Service에게 전담Request 데이터가 있다면 Service에 같이 전달Service에서 처리 완료된 결과를 클라이언트에게 응답Service사용자의 요구사항을 처리 ('비즈니스 로직') 함따라서 현업에서는 서비스 코드가 계속 비대해지고 있음DB 저장 및 조회가 필요할 때는 Repository에게 요청- Service를 이해하기 위한 큰 틀1. Client가 Request를 보냄(Ajax, Axios, fetch등..)2. Request URL에 알맞은 Controller가 수신 받음 (@Controller ,@RestController)3. Controller 는 넘어온 요청을 처리하기 위해 Service 를 호출4. Service는..
litlight
'🗂️ Study/🌿Spring' 카테고리의 글 목록 (2 Page)