entityManager 와 transactionManager는 서로 협력하여 DB 작업을 안전하게 하는데 도와준다.
SQL vs ORM
SQL vs ORM 2탄
관련 대화
raw SQL과 ORM을 통해 DB에서 원하는 정보의 데이터를 가져오는 성능을 비교하는 글이다.
사실 나는 이 글을 읽기 전까지만해도 ORM이 무조건 좋다라고 생각했었는데 그러한 생각을 깨준 글이기도 하다.
ORM의 문제점을 언급한 것 중에 가장 인상깊었던 것은 '기본적으로 ORM으로 데이터를 처리하는게 SQL을 활용하는 것보다 SQL을 활용하는 것보다 성능이 월등히 떨어진다'라는 것이었다. ORM 내부적으로 SQL로 변환하는 과정을 거치고, 조인이 많아질 수록 성능은 기하급수적으로 감소한다고 한다.
2탄에서는 그럼에도 불구하고 ORM을 쓰는 이유에 대해 서술하고 있었다. ORM을 통해 영속성을 관리함으로써 도중에 Exception이 발생하더라도, 데이터 정합성 이슈를 해결할 수 있다고 한다. 이 글을 통해 ORM과 SQL에 대해 다시 생각해 볼 수 있었다.
달리는 인증 서비스의 NoSQL을 바꾸자. - 전략편
이번 편은 전략편이기 때문에 Couchbase를 nosql(mongoDB)와 RDB로 바꾸는 이유와 그에 따라 해결해야 할 문제들에 대해 이야기 하고 있었다.
사실 Couchbase는 처음 들어보는데 mongoDB과 같은 Key-Document구조를 가진 nosql이라고 한다. 지마켓에서는 기존의 couchbase는 인증 서버를 담당하고 있었는데 데이터가 많아지면서, 성능적인 이슈와 인프라 이슈로 인해 mongoDB로 변경하고, 정합성 관리나 백업, 성능적인 이점으로 RDB를 같이 넣게 되었다고 서술되어 있다.
변경과정에서 해결해야 할 문제들은
이렇게 4가지를 말하면서 글을 마무리 지었다. 아직은 전략편이라, 앞으로 쓰여질 실전편에서 이러한 해결문제들을 어떻게 해결해나갔는지 궁금하다.