전체 글
-
스프링부트 게시판을 ec2로 업로드aws 2024. 1. 23. 03:13
1. 인스턴스 시작 로그인 -> 인스턴스 시작 클릭 2. 인스턴스 이름 지정 인스턴스 이름 지정 3. OS 선택 Ubuntu 선택 -> Amazon Machine Image(AMI)를 '프리 티어 사용 가능'으로 선택 4. 인스턴스 유형 선택 '프리 티어 사용 가능'이 t2.micro라서 선택 5. 키 페어 생성 키 페어 이름 입력 후 생성을 눌러 다운로드 키 페어는 생성 후 다시 받을 수 없기 때문에 잘 보관해야 한다. 6. 네트워크 설정 인바운드 보안 그룹 규칙 유형 - 'ssh' 소스 유형 - '위치 무관' 7. 스토리지 구성 프리티어는 30GiB까지 사용 가능 8. 인스턴스 생성 완료 9. 보안 그룹 선택 10. 인바운드 규칙 설정 사용자 지정 TCP - TCP - 8080 - AnywhereIP..
-
[김영한 스프링] 12. MyBatis - 기능 정리Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 22:29
MyBatis 기능 정리1 - 동적 쿼리 MyBatis에서 자주 사용하는 주요 기능을 공식 메뉴얼이 제공하는 예제를 통해 간단히 정리해 보자. MyBatis 공식 메뉴얼 : https://mybatis.org/mybatis-3/ko/index.html MyBatis 스프링 공식 메뉴얼 : https://mybatis.org/spring/ko/index.html 동적 SQL 마이바티스가 제공하는 최고의 기능이자 마이바티스를 사용하는 이유는 바로 동적 SQL 기능 때문이다. 동적 쿼리를 위해 제공되는 기능은 다음과 같다 if choose (when, otherwise) trim (where, set) foreach 공식 매뉴얼에서 제공하는 예제를 통해 동적 SQL을 알아보자. if SELECT * FROM ..
-
[김영한 스프링] 11. MyBatis - 적용Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 21:50
MyBatis 적용1 - 기본 ItemMapper package hello.itemservice.repository.mybatis; import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemSearchCond; import hello.itemservice.repository.ItemUpdateDto; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Optional; @Mapper public interface ItemMapper { void s..
-
[김영한 스프링] 10. MyBatis - 소개 & 설정Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 14:55
MyBatis 소개 MyBatis는 앞서 설명한 JdbcTemplate보다 더 많은 기능을 제공하는 SQL Mapper이다. 기본적으로 JdbcTemplate이 제공하는 대부분의 기능을 제공한다. JdbcTemplate과 비교해서 MyBatis의 가장 매력적인 점은 SQL을 XML에 편리하게 작성할 수 있고 또 동적 쿼리를 매우 편리하게 작성할 수 있다는 점이다. 먼저 SQL이 여러 줄에 걸쳐 있을 때 둘을 비교해 보자. JdbcTemplate - SQL 여러 줄 String sql = "update item " + "set item_name=:itemName, price=:price, quantity=:quantity " + "where id=:id"; MyBatis - SQL 여러 줄 update i..
-
[김영한 스프링] 09. 데이터 접근 기술(테스트) - 임베디드 모드 DB & 스프링 부트와 임베디드 모드Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 14:13
테스트 - 임베디드 모드 DB 테스트 케이스를 실행하기 위해서 별도의 데이터베이스를 설치하고, 운영하는 것은 상당히 번잡한 작업이다. 단순히 테스트를 검증할 용도로만 사용하기 때문에 테스트가 끝나면 데이터베이스의 데이터를 모두 삭제해도 된다. 더 나아가서 테스트가 끝나면 데이터베이스 자체를 제거해도 된다. 임베디드 모드 H2 데이터베이스는 자바로 개발되어 있고, JVM안에서 메모리 모드로 동작하는 특별한 기능을 제공한다. 그래서 애플리케이션을 실행할 때 H2 데이터베이스도 해당 JVM 메모리에 포함해서 함께 실행할 수 있다. DB를 애플리케이션에 내장해서 함께 실행한다고 해서 임베디드 모드(Embedded mode)라 한다. 물론 애플리케이션이 종료되면 임베디드 모드로 동작하는 H2 데이터베이스도 함께 ..
-
[김영한 스프링] 08. 데이터 접근 기술(테스트) - 데이터 롤백 & @TransactionalSpring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 13:01
테스트 - 데이터 롤백 트랜잭션과 롤백 전략 이때 도움이 되는 것이 바로 트랜잭션이다. 테스트가 끝나고 나서 트랜잭션을 강제로 롤백해 버리면 데이터가 깔끔하게 제거된다. 테스트를 하면서 데이터를 이미 저장했는데, 중간에 테스트가 실패해서 롤백을 호출하지 못해도 괜찮다. 트랜잭션을 커밋하지 않았기 때문에 데이터베이스에 해당 데이터가 반영되지 않는다. 이렇게 트랜잭션을 활용하면 테스트가 끝나고 나서 데이터를 깔끔하게 원래 상태로 되돌릴 수 있다. 예를 들어서 다음 순서와 같이 각각의 테스트 실행 직전에 트랜잭션을 시작하고, 각각의 테스트 실행 직후에 트랜잭션을 롤백해야 한다. 그래야 다음 테스트에 데이터로 인한 영향을 주지 않는다. 1. 트랜잭션 시작 2. 테스트 A 실행 3. 트랜잭션 롤백 4. 트랜잭션 ..
-
[김영한 스프링] 07. 데이터 접근 기술(테스트) - 데이터베이스 연동 & 분리Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 12:44
테스트 - 데이터베이스 연동 데이터 접근 기술에 대해서 더 알아보기 전에 데이터베이스에 연동하는 테스트에 대해서 알아보자. 데이터 접근 기술은 실제 데이터베이스에 접근해서 데이터를 잘 저장하고 조회할 수 있는지 확인하는 것이 필요하다. 지금부터 테스트를 실행할 때 실제 데이터베이스를 연동해서 진행해 보자. 앞서 개발한 ItemRepositoryTest를 통해서 테스트를 진행할 것이다. main - application.properties spring.profiles.active=local spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.username=sa logging.level.org.springframework.jdbc=..
-
[김영한 스프링] 06. JdbcTemplate - SimpleJdbcInsert & 기능 정리Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 9. 05:24
JdbcTemplate - SimpleJdbcInsert JdbcTemplate은 INSERT SQL를 직접 작성하지 않아도 되도록 SimpleJdbcInsert라는 편리한 기능을 제공한다. JdbcTemplateItemRepositoryV3 package hello.itemservice.repository.jdbctemplate; import hello.itemservice.domain.Item; import hello.itemservice.repository.ItemRepository; import hello.itemservice.repository.ItemSearchCond; import hello.itemservice.repository.ItemUpdateDto; import lombok.exte..