Java(22)
-
7. SpringBoot 입문 - AOP가 필요한 상황
AOP AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs. 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? 문제점 회원가입, 회원 조회 등에 시간을 측정하는 기능은 핵심 관심 사항이 아니다. 시간을 측정하는 로직은 공통 관심 사항이다. 시간을 측정하는 로직과 핵심 비즈니스의 로직이 섞여서 유지보수가 어렵다. 시간을 측정하는 로직을 별도의 공통 로직으로 만들기 매우 어렵다. 시간을 측정하는 로직을 변경할 때 모든 로직을 찾아가면서 변경해야 한다. AOP 적용 AOP : Aspect Oriented Programming 공통 관심 사항과 핵심 관심 사항을 분리한다. package he..
2021.06.07 -
6. SpringBoot 입문 - Spring DB 접근 기술 - JPA
H2 데이터베이스 설치 순수 JDBC Spring 통합 테스트 Spring JdbcTemplate JPA Spring Data JPA (JPA를 더 편리하게) 5. JPA JDBC에서 JdbcTemplate으로 바꿨을 때 불필요한 코드들이 줄어든 것을 알 수 있었습니다. 하지만 SQL을 개발자가 직접 작성해야하는 문제는 아직 남아있었습니다. JPA를 사용하면 SQL 쿼리도 자동으로 작성해줘 개발 생산성을 높일 수 있습니다. build.gradle 파일에 JPA 관련 라이브러리를 추가하겠습니다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 라이브러리를 추가하고 마찬가지로 refresh 해줍니다. application.prop..
2021.05.26 -
6. SpringBoot 입문 - Spring DB 접근 기술 - Spring JdbcTemplate
H2 데이터베이스 설치 순수 JDBC Spring 통합 테스트 Spring JdbcTemplate JPA Spring Data JPA (JPA를 더 편리하게) 4. Spring JdbcTemplate Spring JdbcTemplate은 순수 Jdbc와 동일한 환경설정을 따릅니다. JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서의 반복적인 코드를 대부분 제거해줍니다. 하지만 SQL은 직접 작성해야 합니다. repository/JdbcTemplateMemberRepository package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.jdbc.cor..
2021.05.26 -
6. SpringBoot 입문 - Spring DB 접근 기술 - 통합 테스트
H2 데이터베이스 설치 순수 JDBC Spring 통합 테스트 Spring JdbcTemplate JPA Spring Data JPA (JPA를 더 편리하게) 3. Spring 통합 테스트 Spring을 올리고 DB까지 연결해서 동작하는 테스트를 해보겠습니다. 기존에 해온 테스트는 순수Java 코드로 작성한 테스트였지만 이젠 Spring을 올린 상태에서 테스트해야 하므로.. @SpringBootTest 어노테이션을 추가해줍니다. /test/java/hello.hellospring/service/MemberServiceIntegrationTest package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.he..
2021.05.26 -
6. SpringBoot 입문 - Spring DB 접근 기술 - 순수 JDBC
H2 데이터베이스 설치 순수 JDBC Spring 통합 테스트 Spring JdbcTemplate JPA Spring Data JPA (JPA를 더 편리하게) 2. 순수 JDBC 애플리케이션에서 데이터베이스와 연동하여 CRUD 하는 내용을 다뤄보겠습니다. 순수 JDBC는 오래전에 개발자들이 사용했던 방법입니다. build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리를 추가해줍니다. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' Java는 기본적으로 DB와 연동하려면 JDBC Driver가 꼭 있어야 합니다. 라이브러리를 추가하면 오른쪽 상단에 gradle ..
2021.05.26 -
5. SpringBoot 입문 - 회원관리 예제 - 웹 MVC 개발
웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 home 화면에 대한 컨트롤러와 뷰의 부분을 만들어보겠습니다. controller/HomeController package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } /resources/templates/home.html Hello Spring 회원 기능 회원 가입 회원 목록 ..
2021.05.25