본문 바로가기
TIL

복잡한 정산을 쉽고 효율적으로 하는 법을 생각해 보았다!(feat. 바보짓)

by 치우치지않는 2025. 5. 23.

정말 오랜만의 블로그 글이다..! 

오늘은 친구 생일 파티에서 생긴 소동(?) 에 대해 글을 남겨보고자 한다. 

 

사건의 발단은 이렇다. 

"나", "A", "B" 가 "루피" 의 생일파티에 줄 선물과 케이크를 샀다. 

이때 케이크는 B 가 18000원을 주고 구매했고,

나는 선물을 40176원을 주고 구매했다. 

 

그럼 각자가 부담해야할 총액은 

(18000 + 40176) / 3 = 19392원 이 된다. 

 

그런데 B 가 실수로, 나에게 19392원을 송금해버렸다. 

 

B 에게 다시 19392원을 돌려주고 다시 계산하는 방법도 있었으나,

나는 한 가지 독특한 방법을 제안한다. 

 

내가 B 에게 18000원을 송금함으로써, 내가 케이크를 구매한 것으로 간주하고, A와 B에게 19392원을 받는다는 방법이었다. 

 

그런데 이렇게 놓고 보니.. 

 

B 는 나에게 19392원을 송금했고, 나는 B 에게 18000원을 송금하였다. 즉 나는 + 1392원 밖에 받지 못한 것이다. 

 

그래서 나는 B 에게 다시 18000원을 보내서, 총 19392원을 보내달라고 하였다. 

 

내가 사로잡힌 논리는, "A 와 B 에게서 19392원씩을 받아야 내가 손해가 아니다"는 생각이었다. 

 

그래서 B 는 다시 나에게 18000원을 송금했다. 

 

이때 B 는 자신의 총 지출액이 19392원을 훨씬 상회한다는 생각이 들었고, 나 또한 무언가가 잘못되었단 느낌이 들었다. 

 

"A 와 B 에게서 19392원씩을 받아야 내가 손해가 아니다" 는 맞는 것 같은데, 어디에서 오류가 생겼을까?

 

그렇다. 나는 아까 B 에게 케이크를 내가 구매하는 것을 전제로 19392 원을 받아놓고서, 18000원을 송금한 후 최종적으로 얻게되는 차익이 19392원이 되어야 한다고 착각한 것이다.

 

그 결과 B 는 18000원을 더 내게 되었다. 

 

처음에 설계한 아이디어 자체는 틀리지 않았다. 그런데 내가 중간에 헷갈리는 바람에 B 가 돈을 훨씬 많이 내는 대참사가 벌어져버렸다. 

 

일단 이 문제를 우리는 이렇게 해결했다.

 

결국 나는 착각으로 더 받았던 18000원을 다시 B 에게 돌려주었고, 이로써 B 는 나에게 처음 실수로 보낸 19392원만 송금한 상태가 되었다.

A 는 B 와 나에게 각각 케이크 값의 1/3인 6000원, 모자값의 1/3인 13392원을 송금해주었다. 

B 는 나에게 19392원을 송금한 상황인데, B 가 나에게 송금해야하는 돈의 총량은 모자값 13392원에서 6000원을 뺀 7392원이므로, 내가 다시 B 에게, 이미 받은 19392원에서 7392원을 제외한 12000원을 돌려주었다. 

 

즉, 내가 케이크를 구매했다고 가정한 것을 폐기하고, 모자값과 케이크값을 별도로 정산한 것이다. 

 

지금은 세 명이어서 모자값과 케이크값을 각자에게 보내는 것이 크게 번거롭지 않지만, 만약 사람이 수가 커지고 이 모든 사람들이 각자 한 개씩 가격이 서로 다른 물건을 구매한 상황이라면 어떨까? 

상황은 매우 복잡해질 것이다. 

 

그래서 나는 내가 처음에 떠올린 아이디어를 이용해 이 복잡한 정산 상황에서도 요긴하게 쓰이게 하고 싶어졌다!

 

그래서 생각해 본, 

복잡한 정산을 쉽고 효율적으로 하는 법은 아래와 같다. 

 

나의 논리를 그래프로 표현한다면 아래와 같이 표현할 수 있다. 

 

 

 

한 사람이 총무를 맡는다. 여기에서는 "현수" 가  총무이다. 

 

그룹 내에서, 물건을 구매한 모든 사람은 그 금액을 "총무"에게 알린다. 

그럼 "총무"는, 그 사람에게 해당 금액만큼의 돈을 송금해준다. 그리고 이를 장부에 적는다. 

"총무" 자신이 물건을 구매했다면, 그 금액만큼의 돈도 장부에 적는다. 

 

모든 사람들의 금액을 장부에 적은 후에는, 장부에 있는 모든 금액을 합한 다음, 그룹 인원수 로 나눈다. 이것이 의미하는 바는 한 사람이 부담해야 하는 금액의 총액이다. 

 

한 사람이 내야하는 돈의 총액 = 장부에 있는 모든 금액의 합 / 그룹 내 인원수

 

그럼 다음 모든 사람들이 이 금액만큼을 "총무"에게 송금한다. 

 

이렇게 관리하게 되면, 한 사람이 구매한 이력이 있는 사람들에게 모두 돈을 보낼 필요가 없이 "총무"에게만 돈을 송금하면 된다. 

 

"총무" 가 조금 번거로워진다는 단점은 있겠지만, "총무" 를 중심으로 돈의 흐름 방향이 정해져 있고 {내가 보낼 돈 - 너가 보낼 돈} 과 같은 차액 계산이 여러 번 필요하지 않다는 점에서 효율적이다. 

 

 

대학 친구들과 매년 생일파티를 여는데, 이제 그때마다 번거롭게 계산을 할 필요는 없을 것 같다! 

골치 아픈 정산 문제로 골머리를 앓고 있는 사람에게 부디 이 글이 읽힐 수 있기를ㅎㅎ

 

(파이썬 코드로도 작성해볼 예정이다!)

댓글