![[인프런 워밍업 스터디 클럽 1기 BE] 2주차 발자국](https://cdn.inflearn.com/public/files/blogs/37fee855-54ce-486b-bc08-e70678d26dce/인프런워밍업클럽.png)
[인프런 워밍업 스터디 클럽 1기 BE] 2주차 발자국
10개월 전
학습 내용
1. 강의
1일차: 스프링 컨테이너, 스프링 빈의 개념에 대해 학습하고, 왜 스프링 컨테이너가 좋은 코드와 관련이 있는지 알아봤다. 그리고 의존성 주입방법에 대해 학습했다.
2일차: 기존의 문자열 SQL을 활용하는 방식의 한계점을 알아봤고, 이를 해결하기 위해 Spring Data JPA를 이용하는 방법에 대해 학습했다.
3일차: 트랜잭션의 개념에 대해 배우고, @Transactional 어노테이션을 사용해 서비스 레이어의 메서드에서 트랜잭션이 보장될 수 있도록 적용해봤다. 그리고 영속성 컨텍스트에 대해 알아봤다.
스프링에서 트랜잭션을 시작하면 영속성 컨텍스트가 생기고, 트랜잭션이 종료될 때 영속성 컨텍스트도 종료된다.
영속성 컨텍스트 특징
변경 감지(Dirty Check): 영속성 컨텍스트 안의 Entity는 변경을 감지해 자동으로 저장된다.
쓰기 지연: SQL들을 트랜잭션이 commit될 때 한 번에 날린다.
1차 캐싱: 영속성 컨텍스트 안의 Entity를 저장하여 같은 엔티티 조회 시 DB 대신 이미 저장되어 있는 내용에서 조회한다.
4일차: 이전까지 배운 내용들을 종합하여 책 생성, 대출, 반납 기능 API 개발 실습을 했다.
5일차: JPA에서 연관관계를 매핑하는 방법에 대해 학습하고, 도메인 계층에 비즈니스 로직을 넣도록 기존의 대출, 반납 기능 코드를 리팩토링했다.
2. 과제
과제4: 과일정보관리 API 개발
과제5: 코드 리팩토링 연습