- Spring Cache AnnotationstarryeyeSpring Framework 에서 제공하는 Cache 어노테이션에 대해 알아보자.. 들어가기 앞서 Spring Cache 에 대해 간단하게 알아보자 Spring Cache 애플리케이션의 캐싱 동작을 어떤 캐시 라이브러리를 사용하던지.. 일관된 방식으로 적용되도록 관리한다에 목적이 있다. Spring Cache 는 Spring Framework 의 일부로 제공되는 모듈이며, 캐싱 로직을 비즈니스 로직으로부터 분리(관심사 분리)하여 코드를 깔끔하게 유지할 수 있도록 도와주는 추상화 계층이다. 참고> Spring Data Redis 의 RedisTemplate 은 Redis 와 상호작용하기 위한 템플릿 클래스이다. Redis 서버와 통신하며, 데이터의 실제 연산(저장, 검색 등)을 제공해준다. Redis 데..
- 2023-06-04 00:13:00(1년 전)
- Spring Data RedisstarryeyeSpring Data Redis 에 대해 알아보자.. Spring Data Redis 의 간단한 이해 Spring Data Redis 는 Redis 데이터베이스와 상호작용할 수 있게 해주는 프레임워크이다. Spring Data Redis 는 Spring Data Jpa 처럼 Spring Data 프로젝트의 일부이다. JPA 를 사용한 데이터 엑세스를 위한 많은 보일러플레이트 코드를 줄일 수 있었는데.. 마찬가지로, Spring Data Redis 도 Redis 를 사용한 데이터 엑세스를 굉장히 간단하게 해준다. 사실 여기까지만 말해도 Spring Data Jpa 를 이미 알고 있다면 벌써 감이 많이 잡힐 것이다.. Redis 의 라이브러리 1. Jedis - Spring Data Redis 에서 지원하는..
- 2023-06-03 02:57:10(1년 전)
- Spring 의 DB 연동 기술 히스토리 요약starryeyeDB 연동 기술의 진화 Application → DB 커넥션 연결, SQL 전송, 결과 응답을 DB마다 다르게 개발 해줘야 함.. (각 DB 마다 모두 함수 사용법이 다름..) → JDBC 자바 표준 인터페이스 등장 Application → JDBC → DB JDBC가 등장하면서 DB 마다 다른 연동 기술을 통합 해줬다. - JDBC 인터페이스의 구현체(JDBC 드라이버)는 각 DB 사에서 개발 ))) 불편한 점 - 커넥션 연결, SQL 전송, 결과 응답 등 반복 코드를 모두 개발 필요 → SQL Mapper 등장 Application → SQL Mapper → JDBC → DB SQL Mapper 를 사용하여 Jdbc를 간접적으로 이용할 수 있게 되었다. 개발자 입장에서는 JDBC의 반복코드를 제거하였..
- 2023-03-10 20:02:59(2년 전)
- JPA 핵심 정리 - 모음starryeye들어가기전에.. "자바 ORM 표준 JPA 프로그래밍" 책 3회차 복습 기념(?) 포스팅 JPA를 포스팅으로 정리하는건 너무 방대하고 힘들다.. 책을 보는 수 밖엔.. 방법이 없다.. 조금씩만 해보자.. 이 포스팅은 글쓴이가 쉽게 까먹을 것 같은 핵심 개념을 쭉 나열한다. 따라서 각 개념마다 연관성이 없을 수 있다. 1. 짧은 개념은 여기 포스팅에 계속 정리.. 2. 긴 설명이 필요한건 따로 포스팅.. 3. case별 JPQL 모음 따로 포스팅.. (지하철 타고 보기 좋음) JPQL(Java Persistence Query Language)은 객체지향 쿼리 언어이다. 엔티티 객체(클래스, 필드)를 대상으로 검색하기 위해 태어난 언어이다. 영속성 컨텍스트란.. 엔티티를 영구 저장하는 환경이라는 뜻이다. 엔..
- 2023-02-22 21:30:02(2년 전)
- JPA 핵심 정리 - EntityManagerstarryeyeEntityManagerFactory EntityManager를 생성해준다. JPA를 동작시키기 위한 기반 객체와 JPA 구현체에 따라 DB 커넥션 풀도 생성한다. EntityManagerFactory는 생성비용이 아주 크기 때문에 Application 전체에서 한번만 생성하고 공유해서 사용해야한다. EntityManager EntityManagerFactory에서 생성할 수 있다. EntityManager를 통해서 엔티티를 DB에 CRUD 할 수 있다. (쉽게 생각해서 가상의 DB라고 생각하자.) 내부에 DataSource(DB Connection)를 유지하면서 데이터베이스와 통신한다. -> 따라서, 스레드간 공유는 하면 안된다. Springboot 에서는.. 위 두 객체를 그냥 의존성 주입 받고 쓰면..
- 2023-02-22 18:04:38(2년 전)
- JPA 핵심 정리 - Table 매핑starryeye@Entity 이 클래스를 테이블과 매핑한다고 JPA에게 알려준다. (엔티티 클래스가 된 것) @Table 엔티티 클래스에 매핑할 테이블 정보를 알려준다. (생략하면 엔티티 이름을 테이블 이름으로 매핑) @Id 엔티티 클래스에서 @Id 어노테이션이 적용된 필드를 테이블의 PK에 매핑한다. (해당 필드를 식별자 필드라 부른다.) @Column 적용된 필드를 컬럼에 매핑한다. -> 생략하게되면 필드명을 사용해서 컬럼명으로 매핑된다. -> 대소문자를 구분하는 데이터베이스를 사용하면 @Column(name = "컬럼명") 처럼 명시적으로 매핑
- 2023-02-22 17:44:50(2년 전)
- JPA 핵심 정리 - 정의starryeyeJPA는 자바 진영의 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세이다. ORM이란.. 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 대표적으로 hibernate가 있다. (JPA의 대표적 구현체) https://hibernate.org/ 패러다임의 불일치.. 간단하게 요약하자면, 객체와 관계형 데이터베이스는 지향하는 목적이 서로 다르다. -> 관계형 데이터베이스는 데이터 중심으로 구조화 되어있고, 집합적 사고를 요구 -> 객체지향의 추상화, 상속, 다형성의 개념을 저장할 수 없음 JPA를 사용해야하는 이유.. 1. 생산성 JDBC API를 사용한 지루한 중복 작업, S..
- 2023-02-22 17:26:54(2년 전)
- Spring Transaction 5starryeye트랜잭션이 둘 이상 있을 경우 어떻게 동작 할까? (트랜잭션 내부에서 트랜잭션이 또 적용되면?) 트랜잭션 전파(Transaction Propagation)에 대하여 학습해보자.. 기본 대원칙 1. 모든 논리 트랜잭션이 커밋되어야 물리 트랜잭션이 커밋된다. 2. 하나의 논리 트랜잭션이라도 롤백되면 물리 트랜잭션은 롤백된다. 기본 대원칙에 대해 자세히 알아보자. 물리 트랜잭션, 논리 트랜잭션 위 그림 처럼, 클라이언트가 어떤 로직1을 호출 하면 트랜잭션이 수행되고 로직1은 로직2를 호출하여 트랜잭션이 또 한번 수행된다고 생각 해보자. 스프링은 첫번째 두번째 트랜잭션을 논리 트랜잭션, 두개를 묶어 물리 트랜잭션이라 개념을 만들었다. 물리 트랜잭션 물리 트랜잭션은 실제 데이터베이스에 적용되는 트랜잭션을 뜻한다...
- 2022-09-28 22:30:56(2년 전)
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)