반응형 All127 부작용(Side-Effect) 없는 스트림(Stream) API 사용 이펙티브 자바 (Effective Java) 아이템 46의 내용이 과거 업무중 스트림 API를 잘못 사용했던 경험과 매우 유사해서 정리차원에서 작성하는 글입니다. 두개의 API를 호출하여 2개의 리스트를 받고, 그 리스트들의 원소의 합을 Map에 담는 코드를 스트림 API를 이용하여 작성한 경험이 있었다. public class Service { public Map getSum() { List list1 = apiCall1(); // 리스트를 받는 API 1... List list2 = apiCall2(); // 리스트를 받는 API 2... Map map = new HashMap(); list1.stream().forEach(data -> { if(map.get(data.getId()) == null).. 2023. 3. 6. [스프링 DB 2편 - 데이터 접근 핵심 원리] 04. MyBatis 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 item.. 2023. 2. 20. [스프링 DB 2편 - 데이터 접근 핵심 원리] 03. 테스트 테스트 - 데이터베이스 연동 데이터 접근 기술에 대해서 더 알아보기 전에 데이터베이스에 연동하는 테스트에 대해서 알아보자. 데이터 접근 기술은 실제 데이터베이스에 접근해서 데이터를 잘 저장하고 조회할 수 있는지 확인하는 것이 필요하다. 지금부터 테스트를 실행할 때 실제 데이터베이스를 연동해서 진행해보자. 앞서 개발한 ItemRepositoryTest 를 통해서 테스트를 진행할 것이다. 테스트를 실행하기 전에 먼저 지금까지 설정한 application.properties 를 확인해보자. main - application.properties src/main/resources/application.properties spring.profiles.active=local spring.datasource.url=j.. 2023. 2. 20. [스프링 DB 2편 - 데이터 접근 핵심 원리] 02. 스프링 JdbcTemplate JdbcTemplate 소개와 설정 SQL을 직접 사용하는 경우에 스프링이 제공하는 JdbcTemplate은 아주 좋은 선택지다. JdbcTemplate 은 JDBC를 매우 편리하게 사용할 수 있게 도와준다. 장점 설정의 편리함 JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있는데, 이 라이브러리는 스프링으로 JDBC를 사용할 때 기본으로 사용되는 라이브러리이다. 그리고 별도의 복잡한 설정 없이 바로 사용할 수 있다. 반복 문제 해결 JdbcTemplate은 템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다. 개발자는 SQL을 작성하고, 전달할 파리미터를 정의하고, 응답 값을 매핑하기만 하면 된다. 우리가 생각할 수 있는 대부분의.. 2023. 2. 20. 이전 1 2 3 4 ··· 32 다음 반응형