1. 구구의 [Transaction과 Spring Transaction] 강의를 들었다
트랜잭션이란? 여러 SQL문을 한 번에 커밋(commit) 또는 롤백(rollback) 할 수 있는 작업 단위
실무에서 쿼리 칠 일 있으면 무조건 BEGIN ... COMMIT 하기
언제 트랜잭션(Transaction)을 사용하는가?
둘 중 하나라도 실패하면 되돌려야 할 때
SQL문이 단건이면 트랜잭션을 안 써도 될까?
- DB 내부에서는 여러 작업이 수행될 수 있다.
- 수천개 레코드 조회
- 컬럼에 따라 인덱스도 갱신
- 단건 조회라도 트랜잭션을 붙이고 readonly 옵션을 사용하자
트랜잭션 경계 : 트랜잭션 시작 ~ 트랜잭션 커밋(또는 롤백)
엑셀이 아니라 DB를 쓰는 이유가 바로 ACID 모델
atomic은 transaction이 보장해준다. 여러 쿼리가 있어도 다같이 실패하거나 다같이 성공하거나
consistency는 버퍼풀(충돌났을 때 복구해주는)이 보장해준다. 버퍼에 데이터를 백업해두고 recovery할 수 있도록
isolation. 동시성.
consistency vs durability -> crash recovery vs backup 를 자세히 보자
여러명의 사용자가 한 데이터에 동시에 접근할 때
mysql에서는 phantomRead 현상없음. 그래서 저자(real mysql)가 for update를 사용해 강제로 만듬
@transactional은 unchecked exception만 롤백
2. Jdbc만들기 미션 2단계를 완성해서 제출했다.
1단계에서 받은 리뷰 반영!!
지금까지 제네릭을 이론으로만 알고있었던 것 같다.......ㅋㅋㅋㅋㅋ
제나최고!!
https://github.com/woowacourse/jwp-dashboard-jdbc/pull/422
템플릿 메소드 패턴 vs 전략패턴 vs 템플릿 콜백 패턴
3. 스픽스픽스픽
영어회화공부 해야지해야지..하고 생각만 했었는데,
우연히 본 광고에 이끌려서 ㅎ 스픽이라는 영어회화앱을 시작했다!
오늘은 Day0이랑 롤플레이 2개했음! 재밌다 ㅎㅎㅎ
영어 잘하고 싶어요~~~