작성
·
924
답변 1
0
mirr 님 안녕하세요.
우선 intellij 를 통한 테스트코드의 수행시간은 컴퓨터환경같이 외부환경에 따라 달라질 수 있기때문에 테스트코드의 수행시간으로 비교하면 안될것 같습니다.
redisson 과 mysql 의 db lock 을 비교하기보다는 redis 와 mysql 을 비교하는 것이 조금 더 나을 것 같습니다.
redis 의 경우 inmemory database 이기때문에 굉장히 빠르게 동작하기때문에 mysql 보다 성능이 좋다고 말씀을 드렸습니다.
또한 mysql 의 비관적락을 사용하게 된다면 독점 사용을 위해 레코드에 lock 을 걸게되고 이는 비용이 비싼 작업입니다.
예제와 같이 로직이 간단할 때는 괜찮을 수 있겠으나, 여러 테이블의 데이터를 접근할 때 데드락이 발생할 수 있는 위험도 가지게 됩니다.
하지만, 모든 상황에서 redis 가 성능이 좋을수는 없습니다.
예를들어 충돌이 빈번하지 않은 (예를들어 1년에 1번) 경우에는 lock 을 사용하는것이 낭비일 수 있습니다.
이런 경우에는 낙관적락을 사용하는것이 조금 더 성능이 좋을 수 있습니다.
감사합니다.
개인적인 의견으로는 강의에서 만든 테스트코드의 속도가 성능의 지표가 될수는 없을 것 같습니다.
테스트데이터가 적기때문에 제대로 된 테스트라고 할 수 없기때문입니다.
정확한 테스트는 데이터를 적재한 후 성능테스트를 수행하는것이 좋아보입니다.
감사합니다 :)
답변 감사합니다.
컴퓨터환경에 따라 수행시간이 변동될 수 있으나, 같은 컴퓨터 환경에서 테스트 코드를 수행했기때문에 테스트 코드의 속도가 성능의 지표가 될 수 있을 거라고 생각하였습니다. 혹시 이 생각이 틀린 걸까요?