자바 60

5. 스프링 데이터 JPA(2) - 적용하기

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 이전 글 스프링 데이터 JPA(1) ( https://sh1mj1-log.tistory.com/106 )에 이어지는 내용입니다. 실제로 프로젝트에 적용해보겠습니다. 4. 스프링 데이터 JPA 적용 1 먼저 스프링 데이터 JPA 을 적용하기 전에 설정부터 해줍니다. 설정 build.gradle 추가 //JPA, 스프링 데이터 JPA 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 그런데 이미 이전 글에서 JPA를 설정하면서 spring-boot-starter-data..

5. 스프링 데이터 JPA(1) 소개와 기능

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. 스프링 데이터 JPA 소개1 - 등장 이유 스프링 데이터 JPA 소개2 - 기능 스프링 데이터 JPA 주요 기능 이전 글에서 자바, 스프링에서의 데이터 접근 기술에 대해서 정리했었습니다. SQL Mapper 와 ORM 기술에 대해 알아 보았고 https://sh1mj1-log.tistory.com/99 바로 이전 글에서는 JPA 에 대해서도 구체적으로 알아보았습니다. https://sh1mj1-log.tistory.com/104 1. 스프링 데이터 JPA 소개1 - 등장 이유 이제는 스프링 데이터 JPA 에 ..

4. 데이터 접근 기술 - JPA (2) JPA 적용, 예외 변환

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. JPA 설정 JPA 적용 1 - 개발 JPA 적용 2 - 리포지토리 분석 JPA 적용 3 - 예외 변환 4. JPA 설정 이전 글에 이어서 JPA 을 프로젝트에 실제로 적용해봅시다. 먼저 설정부터 해야합니다. spring-boot-starter-data-jpa 라이브러리를 사용하면 JPA와 스프링 데이터 JPA를 스프링 부트와 통합하고, 설정도 아주 간단히 할 수 있습니다. (스프링 데이터 JPA 는 다음 글에서 구체적으로 설명할 것입니다.) build.gradle에 다음 의존 관계를 추가합니다. //JPA,..

4. 데이터 접근 기술 - JPA (1) JPA 와 JPA 을 사용해야 하는 이유

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. JPA 시작 ORM 개념 1 - SQL 중심적인 개발의 문제점 ORM 개념 2 - JPA 소개 1. JPA 시작 스프링과 JPA는 자바 엔터프라이즈(기업) 시장의 주력 기술입니다. 스프링이 DI 컨테이너를 포함한 애플리케이션 전반의 다양한 기능을 제공한다면, JPA는 ORM 데이터 접근 기술을 제공합니다. 스프링 + 데이터 접근기술의 조합을 구글 트랜드로 비교했을 때 아래와 같습니다. 글로벌에서는 스프링+JPA 조합을 80%이상 사용 국내에서도 스프링 + JPA 조합을 50%정도 사용하고, 2015년 부터 점..

3. 데이터 접근 기술 - MyBatis

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. MyBatis 소개 MyBatis 설정 MyBatis 적용1 - 기본 MyBatis 적용2 - 설정과 실행 MyBatis 적용3 - 분석 MyBatis 기능 정리1 -동적 쿼리 MyBatis 기능 정리2 - 기타 기능 1. MyBatis 소개 MyBatis 는 앞서 설명한 JdbcTemplate보다 더 많은 기능을 제공하는 SQL Mapper 입니다. 기본적으로 JdbcTemplate 이 제공하는 대부분의 기능을 제공합니다. JdbcTemplate 과 비교해서 MyBatis 의 가장 매력적인 점은 SQL을 X..

2. 데이터 접근 기술 - 데이터베이스 테스트하는 방법들

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 2편 - 데이터 접근 활용 기술" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. 테스트 - 데이터베이스 연동 테스트 - 데이터베이스 분리 테스트 - 데이터 롤백 테스트 - @Transactional 테스트 - 임베디드 모드 DB 테스트 - 스프링 부트와 임베디드 모드 1. 테스트 - 데이터베이스 연동 데이터 접근 기술을 개발할 때에는 실제 데이터베이스에 접근해서 데이터를 잘 저장하고 조회할 수 있는지 확인하는 것이 필요합니다. 테스트를 실행할 때 실제 데이터베이스를 연동해서 진행 앞서 개발한 ItemRepositoryTest를 통해서 테스트를 진행하겠습니다. main - applicati..

3. 트랜잭션 이해 (1) ACID, 계좌 이체 예제 - 스프링 DB 1편

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 아래와 같은 순서로 공부를 진행합니다. 트랜잭션 - 개념 이해 데이터베이스 연결 구조와 DB 세션 트랜잭션 - DB 예제1 - 개념 이해 트랜잭션 - DB 예제2 - 자동 커밋, 수동 커밋 트랜잭션 - DB 예제3 - 트랜잭션 실습 트랜잭션 - DB 예제4- 계좌 이체 1. 트랜잭션 - 개념 이해 데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 무엇일까요? 여러가지 이유가 있지만, 가장 대표적인 이유는 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문입니다. 트랜잭션을 이름 그대로 번역하면 거래라는 뜻으로, ..

카테고리 없음 2023.02.17

자바 코딩 테스트 - 투 포인터. 백준 2018, 1940, 1253

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다 투 포인터는 2개의 포인터로 알고리즘의 시간 복잡도를 최적화 시키는 알고리즘이다. 알고리즘이 매우 간단하여 문제를 풀면서 이해를 해봅시다. 백준 2018 번 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 1. 문제분석 먼저 시간 복잡도 분석으로 사용할 알고리즘의 범위부터 줄여야 한다. 주어진 N 의 최대값은 10,000,000 이다. 만약 이 ..

자바 코딩 테스트 - 구간 합. 백준 11659 , 11660, 10986 문제

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다 구간 합 구간 합은 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 것이다. 코딩 테스트에서 자주 사용되므로 잘 알아둡시다. 먼저 합 배열이 무엇인지 정의합시다. 만약 배열 A 가 있을 때 합 배열 S는 아래와 같다. S[i] = A[0] + A[1] + A{2] + … A[i-1] + A[i] 즉, S[i] 는 A[0] 부터 A[i] 까지의 합이다. 합 배열은 기존 배열을 전처리한 배열이라고 할 수 있다. 만약 이렇게 합 배열을 구해 놓으면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(N) 에서 O(1) 으로 줄어든다. 예를 들어서 A[i] ~ A[j] 까지의 배열 합을 구해야 한다고 합시다. 합 배열 ..

자바 코딩 테스트 - 배열과 리스트, 백준 11720, 1546 문제

'Do it! 알고리즘 코딩테스트 자바 편' 교재로 공부한 내용을 정리했습니다. 배열과 리스트 배열 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열의 특징 Index 을 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입/삭제 하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 배열의 크기는 선언할 때까지 지정할 수 없으며 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 구조가 간단하여 코딩 테스트에서 많이 사용한다. 리스트 값과 포인터를 묶은 ‘노드’를 포인터로 연결한 자료구조 리스트의 특징 인덱스가 없어서 값에 접근하려면 Head Pointer 에서부터 순서대로 접근해야 한다. 포인터로 연결되어 있으므로 데이터 ..