전체 글 171

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

8. HTTP 헤더2(캐시와 조건부 요청) - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다 캐시 기본 동작 검증 헤더와 조건부 요청 캐시와 조건부 요청 헤더 프록시 캐시 캐시 무효화 캐시 기본 동작 a. 캐시가 없을 때 1) 첫 번째 요청 브라우저에서 GET /star.jpg 첫번째 요청을 보내면, 서버는 HTTP 헤더(0.1M) + HTTP 바디=star.jpg 이미지(1.0M)를 담아 응답을 보낸다. 브라우저에 서버로부터 응답받은 이미지가 표시된다. 2) 두 번째 요청 브라우저에서 GET /star.jpg 두번째 요청을 보내면, 서버는 HTTP 헤더(0.1M) + HTTP 바디=star.jpg 이미지(1.0M)를..

7. HTTP 헤더1(일반 헤더) - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다 HTTP 헤더 개요 표현 콘텐츠 협상 전송 방식 일반 정보 특별한 정보 인증 쿠키 HTTP 헤더 개요 a. HTTP 헤더 1) 헤더 용도 HTTP 전송에 필요한 모든 부가 정보 e.g. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 표준 헤더가 너무 많기 때문에 모두 다룰 수는 없다... 필요시 임의의 헤더를 추가할 수도 있다. 2) 헤더 분류-RFC 2616(과거) 1) General 헤더: 요청/응답 메시지 전체에 적용되는 정보 (e.g. Connection: c..

6. HTTP 상태코드 - HTTP 웹 기본 지식

이 글은 배민 기술이사 김영한 이사님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식" 을 기반으로 작성되었습니다. 문제 시 삭제 조치하겠습니다. 목차는 아래와 같습니다 HTTP 상태코드 소개 2xx - 성공 3xx - 리다이렉션 4xx - 클라이언트 오류, 5xx - 서버 오류 HTTP 상태코드 소개 a. 상태 코드 상태코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 1) 1xx (Informational): 요청이 수신되어 처리중 2) 2xx (Successful): 요청 정상 처리 3) 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4) 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5..