현재의 내가 미래의 나에게
close
프로필 배경
프로필 로고

현재의 내가 미래의 나에게

  • 분류 전체보기 (55)
    • Spring (11)
    • Database (1)
    • Java (3)
    • CI CD (2)
      • GitHub Action (1)
    • Docker (1)
    • Git, GitHub (6)
      • Git (3)
    • 개발 환경 설정 (4)
    • 운영체제 (3)
    • 인턴 (2)
    • 외주 (3)
    • 강의메모 (11)
    • 메모 (2)
    • 책 (4)
      • 자바 웹 개발 워크북 (2)
      • 오브젝트 (2)
    • 우아한 테크 코스 (1)
  • 홈
  • 태그
  • 방명록
[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch10. 스프링 트랜잭션 전파 1 - 기본

[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch10. 스프링 트랜잭션 전파 1 - 기본

(복습) 스프링 트랜잭션 전파 - 트랜잭션 (각각) 두 번 사용트랜잭션이 각각 따로 사용되는 경우 :하나의 트랜잭션이 완전히 끝나고 나서 다음 트랜잭션을 수행한다.  예시 코드@Testvoid double_commit() { log.info("트랜잭션1 시작"); TransactionStatus tx1 = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("트랜잭션1 커밋"); txManager.commit(tx1); log.info("트랜잭션2 시작"); TransactionStatus tx2 = txManager.getTransaction(newDefaultTransactionAttribute..

  • format_list_bulleted 강의메모
  • · 2024. 4. 27.
  • textsms
[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch9. 스프링 트랜잭션 이해(feat. 트랜잭션 AOP 사용시 주의 사항)

[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch9. 스프링 트랜잭션 이해(feat. 트랜잭션 AOP 사용시 주의 사항)

트랜잭션 적용 확인@Transactional 을 통해 선언적 트랜잭션 방식을 사용하면 단순히 애노테이션 하나로 트랜잭션을 적용할 수 있다.이 기능은 트랜잭션 관련 코드가 눈에 보이지 않고, AOP를 기반으로 동작하기 때문에, 실제 트랜잭션이 적용되고 있는지 아닌지를 확인하기가 어렵다. 확인하는 방법을 알아보자@Slf4j@SpringBootTestpublic class TxBasicTest { @Autowired BasicService basicService; @Test void proxyCheck() { //BasicService$$EnhancerBySpringCGLIB... log.info("aop class={}", basicService.getClass..

  • format_list_bulleted 강의메모
  • · 2024. 4. 27.
  • textsms
[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch3. 테스트 (feat. 임베디드 모드 쓰고 싶다면? build.gradle에 우선 h2 설정부터!!)

[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch3. 테스트 (feat. 임베디드 모드 쓰고 싶다면? build.gradle에 우선 h2 설정부터!!)

@SpringBootTest@SpringBootTest는 @SpringBootApplicatoin를 찾아서 설정으로 사용한다.  테스트 - 데이터베이스 분리컬에서 사용하는 애플리케이션 서버와 테스트에서 같은 데이터베이스를 사용하고 있으니 테스트에서 문제가 발생한다.이런 문제를 해결하려면 테스트를 다른 환경과 철저하게 분리해야 한다. 가장 간단한 방법은 테스트 전용 데이터베이스를 별도로 운영하는 것이다. 테스트에서 매우 중요한 원칙은 다음과 같다.테스트는 다른 테스트와 격리해야 한다. 테스트는 반복해서 실행할 수 있어야 한다.DELETE SQL을 사용하면 되는 거 아냐? 테스트가 끝날 때 마다 추가한 데이터에 DELETE SQL 을 사용해도 되겠지만, 이 방법도 궁극적인 해결책은 아니다. 만약 테스트 과정..

  • format_list_bulleted 강의메모
  • · 2024. 4. 27.
  • textsms

[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch2. 스프링 JdbcTemplate

인프런 김영한님 스프링 DB 2편 - 데이터 접근 활용 기술강의 중 2장을 보고 핵심 내용을 정리했습니다. JdbcTemplate 소개 및 장단점SQL을 직접 사용하는 경우에 스프링이 제공하는 JdbcTemplate은 아주 좋은 선택지다. JdbcTemplate은 JDBC를 매우 편리하게 사용할 수 있게 도와준다. 장점설정의 편리함JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있는데, 이 라이브러리는 스프링으로 JDBC를 사용할 때 기본으로 사용되는 라이브러리이다. 그리고 별도의 복잡한 설정 없이 바로 사용할 수 있다. 반복 문제 해결JdbcTemplate은 템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다.개발자는 SQL을 작성..

  • format_list_bulleted 강의메모
  • · 2024. 4. 27.
  • textsms

[강의메모] 스프링 DB 2편 -데이터 접근 활용 기술 - ch1. 시작 (feat.@EventListener(ApplicationReadyEvent.class),Import, Profile)

인프런 김영한님 스프링 DB 2편 - 데이터 접근 활용 기술강의 중 1장을 보고 핵심 내용을 정리했습니다. @EventListener(ApplicationReadyEvent.class)@Slf4j@RequiredArgsConstructor public class TestDataInit { private final ItemRepository itemRepository; /** * 확인용 초기 데이터 추가 */ @EventListener(ApplicationReadyEvent.class) public void initData() { log.info("test data init"); itemRepository.save(new Item("itemA", ..

  • format_list_bulleted 강의메모
  • · 2024. 4. 27.
  • textsms
[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch6. 스프링과 문제 해결 - 예외 처리, 반복

[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch6. 스프링과 문제 해결 - 예외 처리, 반복

인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 6장을 보고 핵심 내용을 정리했습니다.  체크 예외와 인터페이스서비스 계층은 가급적 특정 구현 기술에 의존하지 않고, 순수하게 유지하는 것이 좋다. 이렇게 하려면 예외에 대한 의존도 함께 해결해야한다. 예를 들어서 서비스가 처리할 수 없는 SQLException 에 대한 의존을 제거하려면 어떻게 해야할까? 예외 전환!!서비스가 처리할 수 없으므로 리포지토리가 던지는 SQLException 체크 예외를 런타임 예외로 전환해서 서비스 계층에 던지자.  이렇게 하면 서비스 계층이 해당 예외를 무시할 수 있기 때문에, 특정 구현 기술에 의존하는 부분을 제거하고 서비스 계층을 순수하게 유지할 수 있다. 인터페이스 도입M..

  • format_list_bulleted 강의메모
  • · 2024. 4. 24.
  • textsms
[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch5. 스프링과 문제 해결 - 자바 예외 이해

[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch5. 스프링과 문제 해결 - 자바 예외 이해

인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 5장을 보고 핵심 내용을 정리했습니다. 예외 계층Object : 예외도 객체이다. 모든 객체의 최상위 부모는 Object 이므로 예외의 최상위 부모도 Object 이다.Throwable : 최상위 예외이다. 하위에 Exception 과 Error 가 있다.Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다. 애플리케이션 개발자는 이 예외를 잡으려고 해서는 안된다. (흔히 catch (Exception e)까지만 하는 이유)상위 예외를 catch 로 잡으면 그 하위 예외까지 함께 잡는다. 따라서 애플리케이션 로직에서는 Throwable 예외도 잡으면 안되는데, 앞서 이야..

  • format_list_bulleted 강의메모
  • · 2024. 4. 24.
  • textsms
[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch4. 스프링과 문제 해결 - 트랜잭션

[강의메모] 스프링 DB 1편 - 데이터 접근 핵심 원리 - ch4. 스프링과 문제 해결 - 트랜잭션

인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 4장을 보고 핵심 내용을 정리했습니다. 애플리케이션 구조를 나누는 이유여러가지 애플리케이션 구조가 있지만, 가장 단순하면서 많이 사용하는 방법은 역할에 따라 3가지 계층으로 나누는 것 이다.프레젠테이션 계층UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청을 검증주 사용 기술: 서블릿과 HTTP 같은 웹 기술, 스프링 MVC 서비스 계층비즈니스 로직을 담당주 사용 기술: 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성데이터 접근 계층실제 데이터베이스에 접근하는 코드주 사용 기술: JDBC, JPA, File, Redis, Mongo ...순수한 서비스 계층여기서 가장 중요한 곳은 어..

  • format_list_bulleted 강의메모
  • · 2024. 4. 23.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (55)
    • Spring (11)
    • Database (1)
    • Java (3)
    • CI CD (2)
      • GitHub Action (1)
    • Docker (1)
    • Git, GitHub (6)
      • Git (3)
    • 개발 환경 설정 (4)
    • 운영체제 (3)
    • 인턴 (2)
    • 외주 (3)
    • 강의메모 (11)
    • 메모 (2)
    • 책 (4)
      • 자바 웹 개발 워크북 (2)
      • 오브젝트 (2)
    • 우아한 테크 코스 (1)
최근 글
인기 글
최근 댓글
태그
  • #flexbox
  • #type-of
  • #map-get()
  • #그리드_시스템_훈련
  • #Sass
  • #mixin_position
  • #Sass-Text Style
  • #$map( key: value )
  • #pos-center
  • #Psuedo-Element
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바