일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 스프링 빈
- DI
- jdbc
- springboot
- assertThrows
- assertThat
- 필드 주입
- 스프링 부트 입문
- JPA
- 스프링 부트
- kafka
- sqld
- thymeleaf
- 스프링 프레임워크
- 싱글톤
- java
- 생성자 주입
- 스프링부트
- 스프링
- resultMap
- 스프링 컨테이너
- DIP
- @Configuration
- SQL
- Javascript
- db
- 스프링 부트 기본
- mybatis
- Effective Java
- spring
- Today
- Total
목록분류 전체보기 (292)
선 조치 후 분석

스프링 데이터 JPA + JpaRepository 스프링 부트와 JPA만 사용해도 개발 생산성이 늘어나지만, 스프링 JPA까지 사용한다면 한계를 넘어설 수 있도록 도와준다고 한다. 스프링 부트와 JPA라는 기반 위에 스프링 데이터 JPA 프레임워크까지 사용한다면 개발이 너무나도 즐거워진다고 한다. 그리고 반복 개발하던 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다고 한다. 이제는 실무에서 관계형 데이터베이스를 사용한다면, 스프링 데이터 JPA는 이제 선택이 아니라 '필수'라고 한다. ※주의 : 스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 기술이다. 따라서 JPA를 먼저 학습한 후에 스프링 데이터 JPA를 학습하는 것을 권장한다고 한다. 1. 스프링 데이터 JPA 리포지터리 생..

[Spring] Spring Boot - 입문(20) - JPA + EntityManager + ORM + JPQL + Refactoring JDBC -> JdbcTemplete로 넘어오면서 반복되는 코드들은 많이 줄어든 것을 저번 강의에서 배웠다. 하지만 아직도 문제?라고 보는건, 여전히 'SQL 쿼리'를 직접 짜야만 한다. 그래서 오늘은 이러한 '쿼리'를 자동으로 작성해주는 'JPA'에 대해서 알아보는 내용이다. JPA 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 전환할 수 있다. JPA를 사용하면 개발 생산성을 크게 높일 수 있다. JPA는 '인터페이스'이다. 그 밑에 구현체들 중에서 'h..

[Spring] Spring Boot - 입문(19) - JdbcTemplete 사용법 JdbcTemplete : MyBatis랑 비슷한 라이브러리 Jdbc APIT에서 반복적인 코드를 제거해준다. (중복을 제거) 하지만 SQL문은 직접 작성해야 한다. JdbcTemplete은 실무에서도 많이 쓰인다고 한다. ※ 여기서 'Templete'은 '디자인패턴' 중에서 'TempleteMethod'가 있는데 그 부분이 많이 들어가 있어서라고 한다. 1. build.gradle에 dependency 설정 필요 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 2. JdbcTempleteMemberRepository 생성 + findById + ..
통합 테스트 기존에 배웠던 TEST 방식은 '순수 Java 코드'로 실행시켰다. 하지만 DB에 연결하면서 '순수 Java 코드'만으로는 TEST를 할 수가 없다. 그래서 이제는 Spring과 엮어서 TEST를 하는 방법을 배워보자. 1. TEST 코드 작성 package hello.hellospring.service; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest // 스프링이 테스트를 할 때 사용하는 것 @Transactional // 메모리를 리셋해주는 역할을 대신해주는 어노테이션 class MemberServiceIntergrationTest { @Autowired MemberService memberService; @Autow..

Jdbc 리포지토리 구현 DB에 INSERT, SELECT 쿼리를 날리는 방법을 배워보자. 대신에 오늘은 순수 JDBC 방법이라 머리가 많이 아프고 스트레스가 원초적인 방법이라고 한다. 편하게 다가가자!! 요즘엔 많이 발전했다!! 주의! 이렇게 JDBC API로 직접 코딩하는 것은 20년 전 이야기이다. 따라서 고대 개발자들이 이렇게 고생하고 살았구나 생각하고, 정신건강을 위해 참고만 하고 넘어가자. 1. 환경설정 - build.gradle파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 기본적으로 JAVA가 DB와 연동되려면 JDBC 드라이버가 꼭 있어야 한다. runtimeO..
### Error updating database. Cause: java.sql.SQLException: JDBC-12040:Statement canceled. StatementTimeout Statement 하나가 얼마나 오래 수행되어도 괜찮은지에 대한 한계 값이다. JDBC API인 Statement에 타임아웃 값을 설정하며, 이 값을 바탕으로 JDBC 드라이버가 StatementTimeout을 처리한다. JDBC API인 java.sq.Statement.setQueryTimeout() 메서드로 설정한다. 필자가 진행하는 프로젝트에서는 value='10'으로 지정되어 있었다. 쿼리는 테스트해봤지만 잘 돌아갔다. 다만, xml에 기입하여 기능을 구현하니까 계속 에러가 발생했다. 그래서 필자가 작성한 쿼..