목록도도하게 개발하자 (97)
도도한 개발자
인프런 김영한님의 스프링 DB 2편 - 데이터 접근 활용 기술 강의 중 스프링 트랜잭션 전파 섹션을 기반으로 작성한 글입니다. 이전 글에서 트랜잭션 전파의 기본 옵션인 REQUIRED 옵션으로 내부 트랜잭션이 외부 트랜잭션에 참여하는 과정을 여러 경우로 나눠 정리해봤습니다. [DB] 트랜잭션 전파 - 외부 트랜잭션과 내부 트랜잭션은 서로 어떻게 영향을 미칠까? 인프런 김영한님의 스프링 DB 2편 - 데이터 접근 활용 기술 강의 중 스프링 트랜잭션 전파 섹션을 기반으로 작성한 글입니다. 트랜잭션 전파를 정리하기 전에 트랜잭션의 동작 과정을 빠르게 짚 kiarakim.tistory.com 위 글의 마지막으로 떠오른 궁금증을 이어 마저 정리해보겠습니다. 💭 내부에서 롤백되어도 외부에서 커밋되면 외부 커밋만이라..
🐈⬛ 오늘 공부한 내용 트랜잭션 전파 정리하기 🐾 느낀 점 & 배운 점 누가 보면 트랜잭션 전파랑 사랑에 빠진 줄 알겠다. 매일 하루에 글 하나씩 쓰는 사람들은 어떻게 그렇게 부지런히 글을 쓰는거지? 나는 오늘 하루를 다 바쳤는데.. 너무 대단하다. 일단 나는 평균보다 타자가 느린 것 같고, 뭘 어떻게 써야할 지 아직은 감이 안오는 것 같다. 그래도 한 번 쓰고 나니까 기분은 좋네! 오늘 정리한 글 https://kiarakim.tistory.com/139 [DB] 트랜잭션 전파 - 외부 트랜잭션과 내부 트랜잭션은 서로 어떻게 영향을 미칠까? 인프런 김영한님의 스프링 DB 2편 - 데이터 접근 활용 기술 강의 중 스프링 트랜잭션 전파 섹션을 기반으로 작성한 글입니다. 트랜잭션 전파를 정리하기 전에 트랜..
인프런 김영한님의 스프링 DB 2편 - 데이터 접근 활용 기술 강의 중 스프링 트랜잭션 전파 섹션을 기반으로 작성한 글입니다. 트랜잭션 전파를 정리하기 전에 트랜잭션의 동작 과정을 빠르게 짚어보겠습니다. 🐈⬛ 트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻합니다. 로그를 찍으며 확인해봅시다. "트랜잭션 시작" 아래 Creating new transaction으로 트랜잭션을 시작했고, Hikari connection pool에서 커넥션을 획득합니다. 트랜잭션을 커밋하면 커넥션이 반환되어 트랜잭션이 종료됩니다. 롤백도 마찬가지로 트랜잭션 시작 - 롤백 - 트랜잭션 종료 - 커넥션 반환이 되죠. 🐈⬛ 만약 트랜잭션이 두 개라면? 파란색 박스는 트랜잭션의 시작과 종료에 따라 ..
🐈⬛ 오늘 공부한 내용 트랜잭션 전파 복습 🐾 느낀 점 & 배운 점 공부한 시간이 너무 짧아서 쓸 게 없는데.. 글 하나 쓰고 있는거 살짝 맛보기라도 💭 감정회고 족발과 막국수를 부수겠다 했지만 부숴진 건 나였다.(근데 족발이 아니라 보쌈이었음) 진짜로. 체한 채로 먹어서 더 체했고 이게 몸살로까지 이어졌다. 오늘 아침에서야 조금 괜찮아졌는데 아직까지도 좀 상태가 메롱인 것 같다. 어제 오늘 공부를 거의 못해서 좀 찝찝한데, 오늘까지 쉬지 뭐
🐈⬛ 오늘 공부한 내용 생각없이 깃을 사용하면 2년치 커밋을 잃게된다 🐾 느낀 점 & 배운 점 그놈의 .gitignore 때문에 그래. 캐시된거 지우려고 빌드하려고 ./gradlew clean build 하는데 명령어를 찾을 수 없다고 하네.. 그래서 이것 저것 시도해보다가 새로운 마음으로(기존 커밋은 유지되는 줄 알았지..) 새 프로젝트를 생성해서 새 로컬디렉토리에 집어넣고 기존 원격 저장소랑 연결했다. 그러고 따로 빼놨던 소스파일들을 force push... 하지 말았어야 했나...? 기존의 모든 커밋들이 migrate all files로 덮어씌워지는 각오까지 했는데 이건 뭐 아예 커밋이 증발해버림. 깃 너무 어려워 깃 어려워~🫠 로컬 커밋 트리는 당연히 새 프로젝트니까 비어있고. 그런데 원격 커밋..
🐈⬛ 오늘 공부한 내용 분산 키-값 저장소 CAP 정리: 데이터 일관성 / 가용성 / 파티션 감내 [스프링 DB 2편 - 데이터 접근 활용 기술] Querydsl 스프링 트랜잭션 스프링 트랜잭션 전파 🐾 느낀 점 & 배운 점아침에 일어나면 책 를 읽으며 하루를 시작하고 있다. 술술 읽혀 좋긴 하다만 중간중간 이 기술을 우리 프로젝트에 어떻게 도입해보면 좋을까라는 고민에 빠져 책을 덮기까지 오래걸린다. 오늘은 6장 키-값 저장소 설계와 7장 분산 시스템을 위한 유일 ID 생성기 설계를 학습했는데 키-값 저장소를 읽으며 정리해보고 싶은 부분을 여기에 간략히 남겨보고자한다. 분산 시스템을 설계할 때 꼭 알아두어야 할 이론이 있는데 바로 CAP(Consistency, Availability, Partition..
🐈⬛ 오늘 공부한 내용 스프링 DB 2편 - 스프링 jdbcTemplate, JPA, 스프링 JPA h2 서버도 안띄우고 '왜 나만 안돼..' 하지 말자 🐾 느낀 점 & 배운 점 음~ 계획 달성 실패! 역시 하루에 14시간짜리 강의를 다 듣는건 무리였다. 14시간이 무야 반도 못 들음. 나름 선택과 집중을 한다고 myBatis 부분은 건너뛰었는데 그래도 오래걸리는구만. JPA를 뭔지도 모르고 프로젝트에 일단 도입하고 나서 이제서야 조금 공부하고 있는데 '아하~' 하면서 깨닫는 순간이 많이 찾아오는 것 같다. 스프링이 제공하는 @Transactional 어노테이션은 로직이 성공적으로 수행되면 커밋하도록 동작한다. 그런데 이 어노테이션을 테스트에서 사용하면 스프링은 테스트를 트랜잭션 안에서 실행하고, 테스..
🐈⬛ 오늘 공부한 내용 시스템 설계 면접이 있는 이유 처리율 제한 장치 - 토큰 버킷, 누출 버킷, 고정 윈도 카운터, 이동 윈도 로그, 이동 윈도 카운터 스프링 DB 1편 강의 - 트랜잭션, 자바 예외 이해, 예외 처리, 반복,, 끝 🐾 느낀 점 & 배운 점 시스템 설계 면접이 있는 이유: 우리들의 설계 기술을 시연하는 자리로써 설계 과정에서 내린 결정들에 대한 방어 능력을 보이는 자리이며, 면접관의 피드백을 건설적인 방식으로 처리할 자질이 있음을 보여주기 위함. 가상 면접~~~ 책을 읽고 있긴 하다만 내가 과연 이 내용을 조금이라도 활용할 수 있는 면접을 볼 수 있을까 하는 의문이 생긴다. 신입 개발자 이런거 상관없이 다 알아야 하는 건가 싶고. 조급해지지 말자. 내 목표는 취업이 아니라 역량 있는..