inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 스터디 클럽 1기 BE] 두번째 발자국

전다윤
0

Section - 3 역할의 분리와 스프링 컨테이너

 

스프링 컨테이너의 의미와 사용 방법

 

스프링 컨테이너와 빈?

 

스프링 컨테이너를 왜 사용할까?

Service의 코드를 변경하지 않고 Repository를 변경할 수 있다. (BookMemoryRepository -> BookMySqlRepository)

 

스프링 빈 다루기

Section - 4 생애 최초 JPA 사용하기

 

Spring Data JPA를 사용한 데이터베이스 조작

 

SQL 직접 작성의 한계점

해결책

JPA (Java Persistence API)

 

JPA

 

Hibernate

Spring Data JPA

 

 

트랜잭션과 영속성 컨텍스트

 

트랜잭션

 

영속성 컨텍스트

 

영속성 컨텍스트의 특수 능력 4가지

  1. 변경 감지(Dirty Check)

     

     

    1. 영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save하지 않더라도, 변경을 감지해 자동으로 저장된다.

  2. 쓰기 지연(Lazy Loading)

    1. DB의 INSERT / UPDATE / DELETE SQL을 바로 날리는 것이 아니라, 트랜잭션이 commit될 때 모아서 한 번만 날린다.

    2. 통신 횟수가 줄어든다.

  3. 1차 캐싱

    1. ID를 기준으로 Entity를 기억한다.

    2. 이렇게 캐싱된 객체는 완전이 동일하다.

 

조금 더 복잡한 기능을 API로 구성하기

HTTP Body 스펙이 동일할 때, DTO를 새로 만들어야 할까?

[과제 #4] API 개발

MYSQL DB 데이터를 저장하고 데이터를 처리해볼 수 있었다. 그리고 이를 Postman을 이용해 확인해 볼 수 있었다.

[과제 #5] 클린 코드


지난주에는 스프링과 DB에 대한 기본적인 내용을 학습했다면 이번 주에는 스프링의 핵심 개념에 대해 알 수 있었다. 그래서 이전의 수업들에 비해 수업 내용을 이해하는 데 더 많은 시간이 필요했던 것 같다. 그리고 과제 5와 특강을 통해 클린 코드와 테스트의 중요성에 대해서 다시 한번 느낄 수 느낄 수 있었다. 이번 주에는 여유가 없어서 주어진 강의와 과제만 진행했는데, 다음 주에는 배운 내용에 대해서 추가적인 공부를 할 수 있었으면 좋겠다.

백엔드 인프런워밍업클럽1기BE

답변 0