본문 바로가기

springboot14

[Spring] inflearn 스프링 입문 - AOP AOP가 필요한 상황 1. 모든 메소드의 호출 시간을 측정하고 싶을 때 기존 방법 - 메소드마다 시작 끝 시간 측정 src/main/java/hello/hellospring/service/MemberService.java public Long join(Member member) { long start = System.currentTimeMillis(); try { // 같은 이름이 있는 중복 회원x validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } finally { long finish = System.currentTimeMillis(); long timeMs = finish.. 2022. 9. 16.
[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 6 스프링 데이터 JPA 인터페이스만으로 개발 완료. 반복적으로 개발해온 CRUD 기능도 스프링 데이터 JPA가 제공. 코드 적을 게 없음. 그냥 쓰면 됨. 스프링부트 + JPA + 스프링 데이터 JPA 프레임워크. 관계형 데이터베이스 사용 시 스프링 데이터 JPA 필수 스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 라이브러리. JPA 먼저 학습. 실제 운영시 문제들 해결할 수 없음 src/main/java/hello/hellospring/repository/SpringdataJpaMemberRepository.java SpringdataJpaMemberRepository 인터페이스 생성 인터페이스가 인터페이스를 받을 때는 extends JpaRepository T : Member ID: en.. 2022. 9. 15.
[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 5 JPA JDBC -> JdbcTemplate : 반복적인 코드 줄음. but sql 쿼리는 직접 작성해야 함. JPA 기술을 사용하면 sql 쿼리도 JPA가 자동으로 처리. 개발 생산성 높임. 객체를 JPA에 넣으면 JPA가 중간에서 DB에 sql을 날리고 데이터를 db에서 가져오는 것 처리. sql, 데이터 중심 설계에서 객체 중심 설계로 전환. build.gradle dependency 추가. jpa관련 라이브러리 추가. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' resources/application.properties JPA관련 설정 추가 jpa가 날리는 sql 볼 수 있음 spring.jpa.show-sql=tr.. 2022. 9. 15.
[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 4 스프링 JdbcTemplate MyBatis와 비슷한 라이브러리. JDBC API에서의 반복적인 코드를 제거한 라이브러리. sql은 직접 작성해야 함. JdbcTemplate을 써야 함. JdbcTemplate은 injection을 받을 수 있는 것은 아님. dataSource가 injection받음. 생성자가 딱 하나만 있으면 스프링 빈으로 등록되면 @Autowired 생략 가능 스프링이 자동으로 dataSource injection 해줌 src/main/java/hello/hellospring/repository/JdbcTemplateMemberRepository.java public class JdbcTemplateMemberRepository implements MemberRepository { .. 2022. 9. 15.
[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 3 스프링 통합 테스트 스프링을 올리고 db 연결해서 동작하는 통합 테스트 테스트케이스 - 필요한 것 injection 해서 쓰고 끝. 필드 injection 사용 구현체는 SpringConfig에서 올라옴 @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; join test db에 spring이 이미 존재 db 데이터 지우기 delete from member 다시 join 회원 가입 테스트 (@Transactional 주석처리) spring을 띄우고 configuration이 올라옴. 테스트를 실행하고 테스트가 끝나면 spring이 내려감 테스트를 반복 할 수 있어야 함 다시 join 테스트 실행하면 오류.. 2022. 9. 15.
[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 2 순수 JDBC 애플리케이션에서 db에 연동하여 데이터베이스에 insert, select 쿼리를 날려 db에 넣고 빼기 데이터 저장 기술의 발전 build.gradle 에 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 자바는 db연동을 위해 JDBC driver가 있어야 함. 이걸 가지고 서로 연동 runtimeOnly 'com.h2database:h2' db와 붙을 때 데이터베이스가 제공하는 client 필요 resources/application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=o.. 2022. 9. 15.