데이터베이스 트랜잭션(transaction)을 아십니까? 그리고 트랜잭션의 매우 중요한 속성들인 ACID를 아십니까? 모르신다면 들렀다 가시지요

Поделиться
HTML-код
  • Опубликовано: 25 янв 2025

Комментарии • 50

  • @ezcd
    @ezcd  2 года назад +9

    ✅ 이 영상을 시작으로 총 여섯 가지 주제의 트랜잭션 관련 영상을 준비했습니다
    전체 큰 그림을 먼저 보시고 싶으신 분들은 아래 링크에서 확인해 주세요 !
    easy-code-yo.tistory.com/26
    🔶 몇 가지 코멘트를 남깁니다.
    1. 02:40 : 정확히 말하면 일부만 성공해도 디비에 반영할 수는 있습니다.
    일부만 성공해도 commit 명령을 실행하면 DB에 영구적으로 반영됩니다. 하지만 그렇게 하면 데이터베이스가 이상한 상태에 빠질 것이기 때문에 그 누구도 그렇게 하지 않을 겁니다. 이런 맥락에서 '일부만 성공해서 DB에 반영되는 일은 일어나지 않는다'라고 표현을 한 것인데, 최종 검토를 하다 보니 오해를 불러일으킬만한 좋지 않은 워딩을 한 것 같습니다.
    2. 13:06 @Transactional 어노테이션 관련해서 매우 간단하게 설명했습니다.
    자세한 사용법과 백그라운드 지식은 관련 문서를 참고해 주세요
    3. 15:45 transaction 중간에 문제가 발생하면 대부분의 경우에는 rollback을 합니다.
    그럼에도 특수한 상황에서는 rollback 하지 않고 트랜잭션을 계속 진행할 수도 있기 때문에 이렇게 표현을 한 것입니다
    4. 23:55 commit된 transaction이 처리한 내용들은 (일반적으로) 비휘발성 메모리에 영구적으로 저장이 됩니다.
    반면에, 변경은 됐지만 아직 commit 되지 않은 내용들은 비휘발성 메모리에 임시로 저장될수도 있고 혹은 메인 메모리에 저장될 수도 있습니다.
    자세한 내용은 각 DBMS의 메뉴얼을 참고해 주세요
    5. MySQL 예제는 InnoDB 엔진을 사용했습니다.
    p.s. 3주 정도 쉬고 오랜만에 영상을 찍어서 그런지 열심히 준비했지만 아쉬운 부분들이 있네요ㅠ
    이후 영상들은 더 깔끔하게 잘 만들어 보겠슴당~!

  • @ego2177
    @ego2177 16 дней назад

    ACID에 대해 완전히 이해한것 같습니다. 감사합니다 스승님

    • @ezcd
      @ezcd  15 дней назад

      헤헿 좋게 봐주셔서 넘 감사합니다 :) ❤️

  • @nick6267
    @nick6267 2 года назад +3

    영상 하나에 시간을 얼마나 들이셨을지ㅋㅋ안봐도 비디오네요..
    고생 많으셨습니다! 조회수가 얼른 빵빵터져야 할텐데

    • @ezcd
      @ezcd  2 года назад +1

      크 ㅠㅠㅠ 감사합니다!! 응원해주신 덕분에 조만간 조회수 빵빵 터질 것 같아요 👍

  • @고그미-e1u
    @고그미-e1u 2 года назад +4

    어렴풋이 이해하고 있던 acid에 대해 덕분에 정확히 이해했어요! 좋은 영상 감사합니다!! 👍🏻

    • @ezcd
      @ezcd  2 года назад +1

      크 댓글 감사합니다~!! 도움이 된 것 같아서 뿌듯하네요 :)
      앞으로도 좋은 내용의 영상으로 도움드릴 수 있도록 하겠습니다 👍

  • @formplat492
    @formplat492 2 года назад +2

    너무 좋네요

    • @ezcd
      @ezcd  2 года назад +2

      헤헤 감사함당~! ^^7

  • @호장-n6f
    @호장-n6f Год назад +4

    와 진짜 말도 안된다 하나하나 레전드네

  • @한대근-y4o
    @한대근-y4o Год назад

    정말 나만알고싶은 채널이다.... 좋은 영상 감사합니다.
    현업 복귀하신걸로 아는데 항상 좋은일만 있길 바라겠습니다.

  • @seereal6736
    @seereal6736 2 года назад +2

    준비해주신 자료도 좋고 설명도 너무 훌륭하게 잘하시는 것 같아요~
    트랜젝션 개념 잘 듣고 갑니다 :D

    • @ezcd
      @ezcd  2 года назад +2

      크~ 좋게 말씀해주셔서 감사합니다 :)
      자주 놀러와 주세요~ 알찬 내용으로 준비해 놓겠습니다 👍

  • @sea-m6p
    @sea-m6p Год назад

    많은 도움이 됐습니다. 좋은 영상 감사합니다!

  • @이동준-p3i
    @이동준-p3i Год назад

    정말 좋은 영상인 것 같아요!
    구독하고 자주 찾아오겠습니다~

    • @ezcd
      @ezcd  Год назад

      헤헤 칭찬의 말씀과 구독 정말 정말 감사합니다~!! 자주 놀러오세용 :)

  • @Corrine-p8p
    @Corrine-p8p 2 года назад +2

    JPA 로 CRUD 처리만 하다가... 쉬운코드님 영상보고 데이터베이스를 이제야 좀 알게되는 거 같네요 정말 감사합니다 👍

    • @ezcd
      @ezcd  2 года назад +2

      크~~ 도움이 된 것 같아서 뿌듯하고 좋네요 😀
      앞으로도 좋은 영상으로 자주 찾아뵐게요 👍

  • @woosukbyun2455
    @woosukbyun2455 Год назад

    양질의 강의 감사합니다!

  • @lIIIIllIIl
    @lIIIIllIIl Год назад

    진짜 댓글 잘 안다는데.. 설명이 너무 좋네요.. 앞으로도 좋은 영상 많이 부탁드립니다

    • @ezcd
      @ezcd  Год назад

      헤헤 칭찬 감사함다~!
      앞으로도 좋은 영상으로 꾸준히 인사들리게요 자주 놀러와 주세용 :)

  • @sesburg
    @sesburg 5 месяцев назад

    이건 대학 강의 수준이네요 ㄷㄷ 잘 보고 갑니다!

  • @user-wm4ml3tb4j
    @user-wm4ml3tb4j Год назад +2

    양질의 강의를 무료로 풀어주셔서 감사합니다...ㅜㅜ 강의들 조금 더 다듬고 차별화해서 과목별로 묶고 커리큘럼으로 짜서 인프런이나 유료강의로 해도 바로 구매해서 두고두고 볼 거 같습니다 ㅜㅜ 아 물론 강의 퀄리티는 지금도 너무 훌륭하고 좋아요!

    • @ezcd
      @ezcd  Год назад +1

      헤헿 영상들을 좋게 봐주셔서 감사합니다 :)
      쉬운코드는 기본적으로 무료 강의를 지향하고 있어서요, 언제든지 다시 보고 싶으시면 채널로 오셔서 마음 편히 보실 수 있도록 하고 있습니다
      (물론 저도 언젠가는 유료 강의도 해볼 생각입니다 ㅎㅎ)

  • @gamsaham3079
    @gamsaham3079 2 года назад

    정말 좋은 강의 (쉽게 알려주면서 내용에 깊이가 있음) 을 무료로 알려 주셔서 감사하네요.

    • @ezcd
      @ezcd  2 года назад

      헤헤 유익하게 봐주셔서 저도 감사합니다 :) 👍
      자주 놀러와 주세용~

  • @nicewook
    @nicewook Год назад

    이렇게 좋은 강좌를 무료로 보고 있으니 송구할 따름입니다. 감사합니다.

  • @UCSRfAgYAB1u52MIwt0k6bvw
    @UCSRfAgYAB1u52MIwt0k6bvw Год назад

    트랜잭션, ACID 관계를 너무 잘 설명해 주시고 이해도 잘되어서 너무 감사드려요! 오래오래 만들어주세요 ㅠㅠ

    • @ezcd
      @ezcd  Год назад

      헤헤 감사합니다아 :)
      기분이 좋네요ㅎㅎ
      앞으로도 꾸준히 영상 올릴게요 👍

  • @JY-Dev
    @JY-Dev 2 года назад

    와 진짜 항상 느끼는거지만 설명 너무잘하세요

    • @ezcd
      @ezcd  2 года назад

      크 ㅠㅠ 감사합니다!! 👍
      정말 열심히 설명하고 또 편집해서 나온 영상들이라 그런거 같아요 ㅠㅠ

  • @김지훈-c5x4z
    @김지훈-c5x4z 2 года назад +1

    잘먹겠습니다@@@@@

    • @ezcd
      @ezcd  2 года назад +1

      개발 맛집 채널입니다 잘 부탁드립니다!!ㅎㅎ

  • @김동현-h7d
    @김동현-h7d Год назад

    정말 잘 보고 있습니다. 현업 복귀하셔서도 잘 하시길 바라지만 또 영상을 볼 때 마다 복귀하신 것이 아쉽기도 하네요.

  • @endcoding501
    @endcoding501 Год назад

    트랜잭션, commit, rollback 개념만 들어 봤는데 이렇게 알게 되니 좋군요 좋은 강의 감사합니다🐤

  • @mwoleuba8430
    @mwoleuba8430 2 года назад

    기본적으로 Mysql에서는 트랜잭션이 ON이기고 default로 설정된 mysql 격리레벨에 따라 락이 걸릴수있다.
    원자성: 트랜잭션 내에 쿼리가 모두 성공하거나 실패하거나
    일관성: 데이터베이스 데이터가 일관성있게 즉 데이터가 깨지지 않게끔 하는것
    격리성: 트랜잭션 충돌을 막을 수 있게끔 격리레벨 설정을 통해 트랜잭션 충돌을 낮출수있다.
    영존성: 커밋된 트랜잭션은 영구적으로 저장되어야 한다(DB 시스템에 문제가 생겨도 문제가 되지 않게끔)

    • @ezcd
      @ezcd  2 года назад +1

      크 깔끔한 정리 정말 최고십니다! 👍

  • @장대영-t8f
    @장대영-t8f 16 дней назад

    안녕하세요 궁금한 점이 있는데 19:15부터 설명에서 나오는 read, write가 update문 내부적으로 실행 되는 단계를 나타내는건가요?? 아니면 select 문을 read로 update문을 write로 나타내는건가요??

    • @ezcd
      @ezcd  15 дней назад +1

      오, 후자라고 봐주시면 될 것 같아요~

    • @장대영-t8f
      @장대영-t8f 15 дней назад

      @ 감사합니다!!

    • @장대영-t8f
      @장대영-t8f 15 дней назад

      @@ezcd 그러면 mvcc영상까지 나오는 모든 read를 select write를 update라고 생각하고 영상을 봐도 무방할까요??

    • @ezcd
      @ezcd  14 дней назад +1

      @@장대영-t8f 오, 그건 그때그때 문맥에 따라 봐주시면 될 거 같아요. write 는 insert, update, delete 를 모두 포함하는, 즉 상태를 변경할 수 있는 operation 이라고 봐주시면 될 것 같슴돠

    • @ezcd
      @ezcd  14 дней назад +1

      ​@@장대영-t8f 기억이 좀 가물가물하지만 대부분의 예제들은 다 update 로 사용되긴 했던 것 같네요

  • @김민수-x6r6d
    @김민수-x6r6d Год назад

    문득 궁금한 점이 생겨서 질문 드립니다!
    송금 과정 예시 중에 잔액을 업데이트할 때 read -> write로 총 2개의 연산을 통해 수행되는데,
    보통은 update문 (update ... set balance = balance -200000 where id = 'J')을 통해 1개의 단일 연산으로 atomic하게 수행하지 않나요??

  • @sunkyoungjin7744
    @sunkyoungjin7744 Год назад

    너무 감사합니다!! 이해가 잘되네요! 혹시 실례가안된다면 강의내용 공부해서 정리한거 출처밝히고 블로깅해도 괜찮을까요??

    • @ezcd
      @ezcd  Год назад

      오 그럼요~! 출처만 잘 밝혀주시면 저도 채널 홍보도 되고 좋습니다 :)

  • @hh-hv5xe
    @hh-hv5xe Год назад

    @Transactional 과 autocommit이 비슷한 기능을 수행한다 생각했는데 오히려 반대네요. autocommit은 각 sql문을 하나의 트랜잭션처럼 취급하는 거고 @Transactional은 메서드 단위에 적용되어 해당 메서드 내 sql문의 집합을 하나의 트랜잭션으로 취급한다고 이해하였습니다.

    • @ezcd
      @ezcd  Год назад

      넵 맞습니다 👍
      저도 그렇게 이해하고 있습니다 :)

  • @chotnt
    @chotnt 8 месяцев назад

    좋아요 눌러서 봤는지 안봤는지 체크하기 운동 시작