이 글은 경제의 '경'자도 모르는 사람이 작성한 글입니다. 🤔
코로나 19로 인해 경제가 침체된 가운데, 대전시가 하나카드와 협력하여 '온통대전'이라는 카드를 만들게 됩니다.
일종의 체크카드로서, 대전에서 사용할 경우 1인당 최대 월 100만원까지 캐시백을 지급해주는 카드입니다.
친구들 또는 가족들이랑 다 같이 외식을 한다던가 10만원 되는 돈을 긁는다면, 만원을 돌려받는, 아주 사람을 기분 좋게 해주는 카드입니다.
이 카드를 잘 사용하고 있던 도중, 친구와의 대화에서 재밌는 주제가 하나 나왔습니다.
과연 캐시백 on 과 캐시백 off에 대해 캐시백의 차이가 있을까?
캐시백 on : 결제시 자동으로 남아있는 캐시백이 사용됨. 캐시백을 뺀 실제 결제금액에 대해서 다시 캐시백 적립
캐시백 off : 캐시백이 사용되지 않고 끝까지 쌓이게 됨. 나중에 캐시백을 사용하고 싶을 때 사용할 수 있음.
이 얘기의 시발점은, 2000원짜리 커피를 결제하면서 나왔습니다.
만약 캐시백 on의 경우 캐시백이 155원이 있다고 가정했을 때, 2000원 짜리 커피를 결제하게 된다면, 2000-155 = 1845원이 실제 결제 금액이 됩니다. 캐시백은 10%에 대해서 소수점을 버리고 계산하니, 184원의 캐시백이 적립되게 됩니다.
만약 캐시백 off의 경우 2000원의 커피를 결제하게 되면, 버려지는 소수점이 없으니 캐시백 200원이 그대로 쌓이게 됩니다.
여기서 떠오른 것이, 보통 물건들의 가격은 100단위 선에서 끊어지므로, 일반적으로 10% 캐시백을 받는 경우에는 소수점에서 잘려나갈 일이 없습니다.
캐시백 on의 경우, 캐시백이 지속적으로 들어가면서 1의 자리 단위까지 결제되는 경우가 많고, 그에 따라 소수점에서 날아가는 돈이 있을 것이므로 캐시백 off의 경우보다 캐시백이 적을 가능성이 있는 것입니다.
이를 가지고 국밥집에서 한동안의 토론을 거듭했고, 결국 직접 계산해보자는 얘기가 나오게 되었습니다.
계산은 다음과 같은 방식으로 진행하였습니다.
- 캐시백 on 의 경우 항상 캐시백을 사용한다.
- 캐시백 off 의 경우 끝까지 캐시백을 사용하지 않는다.
- 결제 금액의 경우 일반적인 한도인 500원~50000원의 범위안에서 100원 단위로 무작위로 뽑는다.
- 무작위 금액 1000번에 대해 계산하고, 캐시백 on/off에 대해 총 결제 금액, 총 받은 캐시백, 전체 결제 금액에 대한 캐시백 비율을 계산한다.
- 4번 과정을 1000번 반복하여, 그 평균값을 구한다.
<캐시백 on>
캐시백 on 일 때 총 결제금액: 22941441166
캐시백 on 일 때 총 받은 캐시백: 2293729515
캐시백 on 일 때 전체 결제금액에 대한 캐시백 비율: 0.099982%
<캐시백 off>
캐시백 off 일 때 총 결제금액: 25232933500
캐시백 off 일 때 총 받은 캐시백: 2523293350
캐시백 off 일 때 전체 결제금액에 대한 캐시백 비율: 0.100000%
위 결과를 보면 예상했던 것과 마찬가지로 소수점에 대한 금액이 날아가면서 수치상으로 캐시백 on의 경우 캐시백 off의 경우보다 전체 캐시백이 적다! 라는 것을 확인 할 수 있었습니다.
하지만 여기서 중요한 것은, 실제로 '온통대전'의 캐시백 한도는 100만원이라는 것입니다. 실험에서는 테스트 케이스를 늘리려고 하다보니 말도 안되는 금액(230억..)을 결제했다고 가정하여 계산을 하였지만, 저 돈을 카드로 긁을 수 있는 사람이라면...저에게 해당되는 말은 아닌 것 같습니다. ^^;
어찌됐건 최대 캐시백 한도인 100만원에 대해 캐시백 on/off의 차이 0.000018%를 계산해본다면, 캐시백 on의 경우가 캐시백 off의 경우보다 18원의 손해를 보는 것을 알 수 있습니다.
결론적으로,
위에 보시다시피 캐시백 on / off에 대해 사실상 차이는 존재하지 않습니다. 최대 캐시백인 100만원에 18원의 차이가 발생하는데, 일반 시민분들이 한달에 천만원을 체크 카드로 긁는 일은 사실상 존재하기 힘들기 때문에, 보통은 10원 이하의 차이가 발생한다는 뜻이 됩니다. 따라서, 자신이 쓰기 편한 방식으로 카드를 사용하시는 것이 곧 가장 좋은 방법인 것 같습니다.^^;
어쨌든, 다들 온통대전 많이많이 사용하시고 캐시백 최대한 챙기셔서, 일상속에 소소한 재미 한번 누려보시기 바랍니다.😊
<사용한 코드보기>
import random
import time
def cashback_on(price):
cashback = 0
total_payed = 0
total_cashback = 0
for i in range(1000):
if cashback != 0:
payed_money = price[i] - cashback
total_payed += payed_money
cashback = int(payed_money / 10)
total_cashback += cashback
else:
cashback = int(price[i] / 10)
total_payed += price[i]
total_cashback += cashback
return total_payed, total_cashback
def cashback_off(price):
cashback = 0
total_payed = 0
for i in range(1000):
total_payed += price[i]
cashback += int(price[i] / 10)
return total_payed, cashback
if __name__ == '__main__':
on_total_rate, on_total_payed, on_total_cashback = 0, 0, 0
off_total_rate, off_total_payed, off_total_cashback = 0, 0, 0
for i in range(1000):
random.seed(time.time_ns()+i)
price = [random.randint(5, 500) * 100 for i in range(800)]
price += [random.randint(50, 5000) * 10 for i in range(200)]
on_payed, on_cashback = cashback_on(price)
off_payed, off_cashback = cashback_off(price)
on_total_payed += on_payed
on_total_cashback += on_cashback
on_total_rate += on_total_cashback / on_total_payed
off_total_payed += off_payed
off_total_cashback += off_cashback
off_total_rate += off_total_cashback / off_total_payed
print('캐시백 on 일 때 총 결제금액:', on_total_payed)
print('캐시백 on 일 때 총 받은 캐시백:', on_total_cashback)
print("캐시백 on 일 때 전체 결제금액에 대한 캐시백 비율: %.6f%%" % (on_total_rate / 1000))
print('캐시백 off 일 때 총 결제금액:', off_total_payed)
print('캐시백 off 일 때 총 받은 캐시백:', off_total_cashback)
print('캐시백 off 일 때 전체 결제금액에 대한 캐시백 비율: %.6f%%' % (off_total_rate / 1000))
'etc..' 카테고리의 다른 글
[체크카드 추천] 우리카드 010pay 추천인(추천코드: XEDG6784) (8) | 2022.05.27 |
---|---|
[주저리주저리] 뒤 늦은 2021년의 결과 (카카오 인턴, 각종 공채 후기) (14) | 2022.04.12 |
[HTTP] HTTP 응답 상태 코드 / 서버 상태 코드 (0) | 2021.05.21 |
윈도우에서 이모지(🎈😀🧓🥞) 사용 방법 (0) | 2021.03.09 |
[프로그래밍 용어] Parameter와 Argument 차이점 (0) | 2021.01.05 |