분류

2017년 3월 21일 화요일

주유비를 아껴보자 주유할인 정리

우리동네는 대전IC로 나가는 차량이 많아서인지 주유소가 정말 다양하게 종류별로 한개도 아니고 두세개씩 줄지어 서있다. 그래서 유가를 비교하기 참 좋다. 그리고 그래서 다 비슷하게 판다. 앞집에서 1470원이면 뒷집은 1469원 이정도 차이? -_- H사 G사 S사 모두 똑같다. 다른 동네는 지나가다 보면 정유사별로 많게는 100원넘게 차이가 나는 경우도 있는데, 울집앞은 그냥 다 똑같으니 오히려 신뢰가 간달까 -_-? (딴데는 콩기름이라도 섞어파는건지 궁굼할정도이다.)

다른 동네와 환경이 다르기때문에 기름값에 기대하는건 단 한가지가 되었다.

할인! 할인! 할인!.

근데 애석하게도 나는 할인을 많이 해주는 신용카드가 없고 그래서 인터넷을 뒤적이다 보니 정리를 하게 되었다.

각 주유사별 할인, 적립율은 어떨까?
1위 sk https://www.enclean.com/card/card.partner.new.do
리터당 최대 300원 할인 ~ 60원 할인
+ 맴버십 20원 할인
+ 앱 20원 할인 (일부카드만 가능)

2위 GS http://www.kixx.co.kr/GSnPoint/GSnPoint_Refuel_CreditCard.aspx?GSProId=GSnPoint_Refuel_CreditCard
리터당 최대 160원 할인 ~ 30원 할인
+ 맴버십 1-10 point/l

3위 현대 : http://www.oilbankcard.com/card2012/card/joincard.jsp?page_num=620&pre_page_num=810
리터당 최대 120원 ~ 30원 할인
+ 맴버십 5point 적립
+ oh point 1point 적립

이렇게 따져놓고 보니 뭘로 해도 sk가 포인트랑 맴버십, 할인(적립) 율은 최고다.
하지만 높은 할인을 지원하는 카드는 대부분 신용카드고, 체크카드에선 대게 60원-30원 사이의 할인을 해주고 있다. 그렇다면 체크카드만 사용하는 나에게는 어디가 가장 유리할까?

당연히 추가 맴버십 할인이 가장 큰 sk가 유리하다. 이유는 우리동네는 기름값이 다 똑같으니까. (다른동네 가면 다를수 있어요)

그래서 첫번째는 주유할인 + 자주가는 대형마트 할인이되는 카드를 신청하게 되었고, 해피오토 맴버쉽에 가입하는 방법을 알아보게 되었는데, 연회비를 무려 3만5천원이나 내야 했다. 이거 돌려주는게 아니라 쓸데없는거 붙여서 돈받을라한다?

헐!

그래도 주유소 맴버십인데 무료로 할 방법이 있겠지 하고 제휴카드를 뒤져보니, 딱히 내돈 안들이고 할 만 한 녀석이 2가지나 있다.

첫번째는 SKT를 사용할경우 맴버십 포인트를 15000점 차감하고 해피오토맴버십을 받는것
https://www.happyauto.co.kr/cardinfo/card.do?mode=tcarlife
두번째는 평소 쌓아둔 OK캐쉬백을 6000포인트를 차감하고 해피오토 맴버십을 받는것
http://www.okcashbag.com/life/event/eventContent.do?eventId=68626

일단 나는 첫번째 방법을 사용하기로 했다. (작년까지는 11번가에서 매우 자주 맴버십 포인트를 이용해 물건 구매를 해서 5월에 바닥났는데 올해는 이상하게 현재까지 1원도 쓰지 않았다. )
sk는 나에게 나름 좋은 회사다. (통신이라고 포켓파이 16500원/월 쓰는데 매년 포인트로 5만씩 환급해준다. 그리고 이런식으로 매우 유용하다. )

lg는 10년썼다고 vvip등급을 주고는 있지만, 영화볼때 이외에 포인트를 사용할 곳이 없고, 영화를 매달 두편씩 보더라도 사용보다 적립이 더 많아서 매년 12만 포인트를 소멸시키는 중이다.(SK처럼 포인트를 좀 유용하게 쓸수있게 해다오)

암튼 저 카드를 받고 나니 이번엔 추가 20원 적립해주는 앱이라고 자몽을 받으란다. 뭐 연동되는거겠거니 하고 다운받고 로그인 해보니 상당히 편리해 보이기는 한데 쓸수가 없다. 국민카드는 현재 안된단다. (댓글로는 전산오류로 일시적으로 안되는거라고 하는데. 위키에 보니까 2년째 그냥 안되는 중이라고 나온다)
국민카드에 대한 지원이 2017년 4월 4일부터 정상화되었다.


그간 지나가면서 눈으로 일일히 확인해야 했던 기름값을 그것도 내가 적립, 할인 많이 받을 수 있는 특정 업체만 골라서 볼 수 있다는 것. 기존 고객이든 신규고객이든 이런 서비스는 매력적일 것 이다.

어째 쓰다보니 SK만 좋은것 처럼 썼지만, 오늘일자로는 그렇다. 과거에 어느 회사가 더 잘해줬건, 미래에 어느회사가 더 잘해주건 내가 알바 아니다. 암튼 오늘 잘주는 놈은 SK인걸로

JAVASCRIPT 두 직선의 교차점을 찾는 법

자바스크립트를 통해 GUI를 구성해보기 위해 이런저런 실험을 하는 중인데, 여러 도형간을 연결하는 선을 만들고 싶었고, 해당 선을 만들려다 보니, 각 선분이 교차하는 지점이 매번 도형 내부에 위치되어 보기 싫어지는 현상이 발생했다.

각 도형의 외곽선과, 내부 선의 교차점을 찾아내 첫 도형의 교차점에서 시작해 다음 도형의 교차점에서 종료되는 코드를 만들고 싶었고, 해당 교차점을 찾아내는 것이 의외로 수학의 기하학이라는 수학을 활용해야 하는 복잡한 연산임을 깨닫고, 이런 저런 검색을 하게되었다.

두 직선의 교차점을 찾는 방법을 프로그래밍 코드화 하기 위해 제타위키 에서 나온 교차점 공식을 적용 한 코드를 작성하게 되었다.

두 직선의 교차점 - 제타위키

도형에는 외곽선이 하나가 아닌 여러개이기에,
해당 선분을 빼내어 배열에 넣고 해당 배열의 각 변의 시작점과 종로점의 x축, y축을
각각 (x1, y1, x2, y2)로 입력하였다.

또한 교차를 검사할 대상의 경우 단 하나의 선이므로, 해당 선의 좌표는 x1, y1, x2, y2로 이루어진 하나의 선이다.

/**
 * 기하학 공식 대입 도형의 외곽선과 라인의 크로스포인트를 찾는 역할
 * @param ob1 크로스 포인트를 찾을 도형의 선 집합
 * @param ob2 크로스포인트를 찾을 선
 * @returns
 */

  1. function findCrossPoint(sr, tr){
  2. var pos = [];
  3. for(var i = 0; i < sr.length; i++){
  4. var tmp = sr[i]; 
  5. var p1 = (tmp.x1 - tmp.x2)*(tr.y1 - tr.y2) - (tmp.y1-tmp.y2)*(tr.x1-tr.x2);//분모로 사용됨
  6. // p1 ==0 이면 평행선 또는 일치 이므로 제외(분모)
  7. if(p1 != 0){
  8. var x = 0; 
  9. var y = 0; 
  10. var x = (((tmp.x1 * tmp.y2) - (tmp.y1 * tmp.x2))*(tr.x1 - tr.x2) 
  11. - (tmp.x1 - tmp.x2) * ((tr.x1 * tr.y2) - (tr.y1 * tr.x2))) / p1; 
  12. var y = (((tmp.x1 * tmp.y2) - (tmp.y1 * tmp.x2))*(tr.y1 - tr.y2) 
  13. - (tmp.y1 - tmp.y2)*((tr.x1 * tr.y2) - (tr.y1 * tr.x2))) / p1; 
  14. if((x - tmp.x1) * (x - tmp.x2) <= 0 && (y - tmp.y1) * (y - tmp.y2) <= 0 //교점이 1선분 위에 있고
  15.    && (x - tr.x1) * (x - tr.x2) <= 0 && (y - tr.y1) * (y - tr.y2) <= 0 //교점이 2선분 위에 있을경우
  16. ){
  17. pos.push({ x : x , y : y }) ; 
  18. }
  19. }
  20. }
  21. return pos; 
  22. }

위에서 if문을 통해서 선분 교점의 위치가 음수나 0보다 작거나 같다는 검증을 하는 이유는 선의 전체 거리가 아닌 확장되는 축의 방향을 기준으로 교점을 검사하기에 경우에 따라서 선분이 더 확장될경우 생성되는 교점마저 추출되기 때문이다.


또한 배열에 좌표값을 넣어서 반환하는 이유는, 하나의 선이 두개 이상의 도형 선을 교차하여 통과하는 일이 발생할 수 있기 때문이다. 선하나 제대로 긋겠다고 기하학을 사용하게 될줄은... ㅎㅎ; 고딩떄 수학을 안한것이 새삼 후회하게 된다.