ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] JDBC, JDBCTemplate, JPA
    TIL(Today I Learned) 2022. 12. 27. 21:05

    *20221227의 회고

     

     

       오늘은 스프링 입문 강의에서 DB와 연결하는 부분에 대하여 학습하였다. 그 과정에서 배운 내용에 대해 정리해보려 한다.

     

    • Java 에서 Long 타입은 DB 에서 bigint 타입이다.

     

    • Java 는 기본적으로 DB랑 연동되려면 jdbc 드라이버가 꼭 있어야 함.

     

    • JDBC : Java DataBase Connectivity. 자바에서 DB에 접속할 수 있도록 하는 자바 API

     

    • Test 코드 작성 시 @Transactional 을 Test 에 달면,
      •  Test 를 실행할 때 transactional을 먼저 실행하고, 그 다음 DB의 데이터를 insert query 하고 다 넣은 다음에 test 가 끝나면 롤백을 해줌
      •  DB에 넣었던 데이터를 깔끔하게 반영되지 않게 하고 지워줌
      • 테스트 시작 전에 트랜잭션을 시작하고 테스트 완료 후에 항상 롤백. 따라서 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않음

     

    • @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다 -> 시간오래걸림
      • 스프링을 함께 띄워 테스트를 하기 보단, 스프링 없이 자바 코드 만으로 단위 테스트를 진행하는 편이 더 낫다.
      • 스프링 통합 테스트도 물론 가끔은 시행하고 중요하기도 하다.

     

    • JDBC Template : JDBC API 에서 반복코드를 대부분 제거해준다. 하지만 SQL 은 직접 작성해야 한다.

     

    • JPA
      • JDBC Template 에서 SQL 을 직접 작성해야 했는데, JPA 에서는 직접 SQL을 작성하지 않아도 된다.
      • JPA 는 인터페이스 이다. 구현체는 Hibernate, Eclipse 등 회사별로 다양하게 존재한다.
      • Spring 에서는 보통 Hibernate 사용.
      • 자바 진영의 표준 인터페이스이다.
      • JPA 를 쓰려면, @Transactional 에노테이션이 서비스 로직에 붙어있어야 함. 데이터를 저장하거나 변경할 땐 항상 @Transactional 에노테이션이 있어야 함.

     

       내일은 얼마 남지 않은 입문 강의를 끝내버리고 좀 더 심화적인 내용을 공부하게 될 것이다. 요즘 다시 쉬운 개념부터 차근 차근 정리해 나가다 보니 공부가 다시 재밌어 진다. 매우 좋은 일이다! 팀 프로젝트 전까지 최대한 필요한 내용에 대해 숙지를 해놔서 재밌게 프로젝트에 임하고 싶다. 오늘의 회고 끝~! 

Designed by Tistory.