🌱 Spring

본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 경로 표현식 경로 표현식은 .(점)을 찍어 객체 그래프를 탐색하는 것이다. 상태 필드(static field) : 단순히 값을 저장하기 위한 필드 연관 필드(association field) : 연관관계를 위한 필드 단일 값 연관 필드 : @ManyToOne, @OneToOne, 대상이 엔티티 컬렉션 값 연관 필드 : @OneToMany, @ManyToMany, 대상이 컬렉션 특징 상태 필드 : 경로 탐색의 끝이며, 더이상 탐색이 불가능하다. String query = "select m.username, m.age from Member m"; 단일 값 연관 필드 : 묵시적 내부 조인이 발생..
본 포스팅은 [인프런] 스프링 DB 1편 - 데이터 접근 핵심 원리 강의를 바탕으로 공부하고 정리한 글입니다. 트랜잭션 커밋, 롤백 트랜잭션 전파에 대해 알아보기 이전에 간단한 트랜잭션 코드를 통해 트랜잭션이 어떻게 동작하는지 확인해보자. @Slf4j @SpringBootTest class BasicTxTest { @Autowired PlatformTransactionManager txManager; @TestConfiguration static class Config { @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSou..
본 포스팅은 [인프런] 스프링 DB 2편 - 데이터 접근 활용 기술 강의를 바탕으로 공부하고 정리한 글입니다. 스프링 트랜잭션 스프링 트랜잭션 사용 방식 1. 선언적 트랜잭션 관리 @Transactional 애노테이션을 선언해 트랜잭션을 적용 해당 로직에 트랜잭션을 적용하겠다고 선언하기만 하면 트랜잭션이 적용되는 방식 2. 프로그래밍 방식 트랜잭션 관리 트랜잭션 매니저 또는 트랜잭션 템플릿 등을 사용해 트랜잭션 관련 코드를 직접 작성하는 방식 프로그래밍 방식의 트랜잭션 관리를 사용하면, 애플리케이션 코드가 트랜잭션이라는 기술 코드와 강하게 결합되기 때문에 실무에서는 대부분 선언적 트랜잭션 관리를 사용한다. 스프링이 제공하는 트랜잭션 AOP 스프링은 트랜잭션 AOP를 처리하기 위한 모든 기능을 제공한다. ..
데이터베이스 연동 📁 application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/test username: sa password: driver-class-name: org.h2.Driver spring.datasource : DB 연결정보 JPA ddl-auto 옵션 📁 application.yml spring: jpa: open-in-view: false hibernate: ddl-auto: create open-in-view : osiv 웹 요청이 완료될 때까지 영속성을 가지는 옵션 (켜두면 성능상 안 좋기 때문에 false 사용) hibernate.ddl-auto : create : 기존 테이블 삭제 후 다시 테이블 생성 (DROP + C..
Auditing 기능이란? JPA를 사용해 도메인을 관계형 데이터베이스 테이블에 매핑할 때 도메인들이 공통적으로 가지고 있는 컬럼이 존재한다. 대표적으로 생성일, 등록일 같은 것들이 있다. 데이터베이스에 누가, 언제했는지 기록을 남기는 생성일, 수정일 컬럼은 굉장히 중요한 데이터라고 할 수 있다. 그래서 Spring Data JPA는 Auditing이라는 기능을 제공해준다. 이 기능은 시간에 대해 자동으로 값을 넣어주는 기능으로, 도메인을 영속성 컨텍스트에 저장하거나 조회 후 수정하는 경우 자동으로 시간을 매핑해 데이터베이스의 테이블에 넣어준다. 사용방법 👉🏻 의존성 추가 📁 build.gradle dependencies { implementation 'org.springframework.boot:spr..
본 포스팅은 [인프런] 스프링 DB 2편 - 데이터 접근 활용 기술 강의를 바탕으로 공부하고 정리한 글입니다. 데이터 접근 기술 SQL Mapper 기술 개발자가 SQL만 작성하면 해당 SQL의 결과를 객체로 편하게 매핑해준다. JDBC를 직접 사용할 때 발생하는 여러가지 중복을 제거해주고, 기타 개발자에게 여러 편리한 기능을 제공해준다. 예) Jdbctemplate, MyBatis ORM 관련 기술 SQL Mapper 기술은 SQL을 개발자가 직접 작성해야 하지만, JPA는 기본적인 SQL을 대신 작성하고 처리해준다. 따라서 개발자는 저장하고 싶은 객체를 마치 자바 컬렉션에 저장하고 조회하듯이 사용하면 ORM 기술이 데이터베이스에 해당 객체를 저장하고 조회해준다. 예) JPA, Hibernate, 스프..
본 포스팅은 [인프런] 스프링 DB 1편 - 데이터 접근 핵심 원리을 강의를 바탕으로 공부하고 정리한 글입니다. 커넥션 풀이란? 웹 컨테이너(WAS)가 실행되면 일정량의 커넥션을 미리 만들어 pool에 보관했다가, 클라이언트 요청이 오면 자신이 가지고 있는 커넥션을 빌려주고 임무가 완료되면 다시 커넥션을 반납 받아 pool에 보관하는 프로그래밍 기법이다. 기존에 데이터베이스에 접근하기 위한 커넥션을 획득하기 위해서는 다음과 같은 과정을 거친다. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회 DB 드라이버는 DB와 TCP/IP 커넥션을 연결 (이때 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작 발생) DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW 같은 부가정..
서블릿 자바에서 동적인 웹 페이지를 개발하기 위한 기술 톰캣 서버 서블릿을 실행시켜주는 역할 사용자 요청을 받아 경로(Path)를 추출하고, 경로에 해당하는 서블릿을 찾아서 서블릿에게 사용자 요청을 위임하고, 서블릿에서 작업을 마치면 응답을 받아 클라이언트에게 전달하는 역할을 한다. 톰캣 서버를 총칭하여 WAS(Web Application Server) 또는 서블릿 컨테이너(Servlet Container)라고 한다. Reference [YouTube] Servlet Container와 Servlet의 관계 - 박재성 Servet Container 정리
an2z
'🌱 Spring' 카테고리의 글 목록