AOP(Aspect Oriented Programming) AOP란 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 합니다. 시간 측정 로직 먼저 AOP에 대한 자세한 설명을 바로 시작하지 않고 다음과 같은 상황을 가정해보겠습니다. 만약 모든 메소드의 호출시간을 측정하고 싶다면 어떻게 해야할까? ...
스프링 입문 22 - 7.스프링 DB 접근 기술 (6)
스프링 데이터 JPA (Java Persistence API) 이전 강의를 통해서 스프링 부트와 JPA만 사용해도 개발 생산성이 많이 증가하는 것을 확인할 수 있었습니다. 추가로 스프링 데이터 JPA를 사용하면, 기존의 한계를 넘어 리포지토리 구현 클래스 없이 인터페이스만으로 개발을 할 수 있습니다. 개발해온 기본 CRUD 기능도 스프링 데이터 JP...
스프링 입문 21 - 7.스프링 DB 접근 기술 (5)
JPA (Java Persistence API) 이전 강의에서 순수 JDBC 에서 JDBC Template으로 변경해서 작성해야 하는 코드를 확 줄일 수 있었습니다. 하지만 아직까지 SQL은 직접 작성해야하는 단점이 있었습니다. JPA를 사용하면 SQL 쿼리도 JPA가 자동으로 처리를 해주어 개발 생산성을 크게 높일 수 있습니다. 마치 이전 Memo...
스프링 입문 20 - 7.스프링 DB 접근 기술 (4)
스프링 JdbcTemplate JdbcTemplate은 이전에 만들었던 순수 Jdbc와 동일한 환경설정을 하면 됩니다. 스프링 JdbcTemplate라이브러리는 JDBC API에서 본 connection 같은 반복적인 코드를 대부분 제거해줍니다. 하지만 SQL은 직접 작성해야 합니다. Template이라고 부르는 이유는 디자인 패턴중에 템플릿 메...
스프링 입문 19 - 7.스프링 DB 접근 기술 (3)
스프링 통합 테스트 이번 시간은 이전 시간에 만든 DB와 스프링이 JDBC로 연결된 코드를 모두를 테스트 할 것입니다. 이전 코드를 살펴보면, 스프링과 관련 없는 자바 코드입니다. 하지만 이전 코드는 스프링이 직접 관리해주는 코드입니다. 따라서 이번 테스트는 스프링과 연관하여 진행해보겠습니다. 테스트 클래스 작성 이전에 만든 MemberServ...
스프링 입문 18 - 7.스프링 DB 접근 기술 (2)
순수 JDBC 이번 시간은 애플리케이션과 DB를 연동해서 DB에 데이터를 실제로 저장해보겠습니다. 요즘은 이런 방식으로 진행하지 않습니다. 환경 설정 1. build.gradle 파일에 라이브러리를 추가합니다. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeO...
스프링 입문 17 - 7.스프링 DB 접근 기술 (1)
이전 시간은 임시 데이터를 메모리에 저장을 했다면 지금부터는 간단한 H2라는 데이터베이스를 설치하여 이곳에 데이터를 저장하고 꺼내오는 방식을 스프링에 적용시켜보도록 할 것입니다. H2 데이터베이스 설치 H2 데이터베이스 : 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공합니다. (https://www.h2database.com/...
스프링 입문 16 - 6.회원 관리 예제 - 웹 MVC 개발
회원 웹 기능 이전시간에 memberController를 만들어 의존관계를 설정해놓은 것을 바탕으로 회원관리 예제를 웹 MVC로 개발 해볼 것입니다. memberController를 통해서 회원을 등록하고 조회 하는 것을 만들어 보겠습니다. 1. 홈 화면 추가 @Controller public class HomeController { ...
스프링 입문 15 - 5.스프링 빈과 의존관계 (2)
자바 코드로 직접 스프링 빈 등록하기 이전시간에 등록한 @Service, @Repository, @Autowired를 모두 지우고 진행합니다. Hello.Hellospring 패키지에 SpringConfig라는 클래스를 생성하고 @Configuration를 추가합니다. 그 후 @Bean 어노테이션과 함께 memberService 를 추가합니다....
스프링 입문 14 - 5.스프링 빈과 의존관계 (1)
컴포넌트 스캔과 자동 의존관계 설정 이전까지는 memberservice랑 리포지토리를 만들었습니다. 그리고 member객체를 만들어 memberservice를 통해서 가입을 진행시키고 리포지토리에 저장을 시키고 가져오는 로직을 구성하고 테스트까지 진행해봤습니다. 이번시간에는 화면에 나타내기 위해 Controller랑 BeutifulSoup가 필요합니...