HOME > 게시판 > 기타
게시판| 기타
※ 게시판 용도에 맞지 않는 글(광고및 홍보 글 등)은 임의삭제될 수 있습니다.

 
작성일 : 10-03-23 16:32
고수님들 답변 부탁드립니다.
 글쓴이 : 여혼
조회 : 1,343  
어느 부분에 글을 올려야 할 지 몰라
기타 영역에 이렇게 글을 올립니다.

php로 실시간 경매사이트를 구축하고 있는데,
풀리지 않는 문제가 나타나서 이렇게 질문을 올려 봅니다.

제가 구현하고 있는 사이트는 실시간 최고가 경매로서 자동입찰을 할 수 있는 경매사이트입니다.



우선 제가 구현한 것은 아래와 같습니다.

실시간 최고가 경매에서 유저들에게 보여주는 페이지를 구현했습니다.
이 때 js의 setIntval()을 통해서 매초마다 변화되는 시간을 조작할 수 있게 만들었습니다.
그리고 시간을 서버의 시간에 맞추고, 입찰참여자가 입찰을 하거나 입찰자가 있어서 입찰을 한 경우에는 정보를 바꿀 수 있도록 ajax를 통해 정보를 가져올 수 있도록 해 두었습니다. (아래 글을 보니, 동시 접속자 수의 문제가 생길 수 있다는 생각도 드는군요.)

이 정도까지는 별탈 없이 구현을 할 수 있었습니다.

그런데 실질적으로 중요한 부부은 [자동입찰]입니다.

[자동입찰]의 경우에는 자료의 변화를 주어야 하는데, 이건 클라이언트 쪽에서 줄 수 없는 것 같습니다. 제가 구현한 것은 바보같이 ajax쪽에서 구현을 했습니다. 그래서 발생했던문제가 입찰 참여자가 2명이면 DB에 입찰에 대한 정보가 같은 시간대로 2번 들어간다는 것이고, 3명이면 3번 들어가는 것이었죠.

그래서 서버쪽에서 어떤 변화를 일으켜야 한다는 결론까지는 도달했는데 그 이후에는 어떠한 방법으로 해야 하는지 답이 서지 않더군요.

그래서 이래저래 찾아봐서 얻은 결론은 DB 쪽에 Trigger를 사용하는 방법과 서버쪽에 데몬을 사용하는 방법이라는 것을 알았습니다.

자동입찰에서 체크해야 하는 부분은,
시간 체크,
자동입찰자가 보유하고 있는 동전(경매에 사용하는 사이버머니)의 양을 체크,
일정시간(1~15 사이의 경매라면 이 시간 안에 자동입찰이 자동적으로 이루어져야 함) 체크해서 자료 변경,
다른 자동입찰자의 유무 체크 및 입찰 순서,
입찰할 때 올라가는 가격폭(10원으로 설정되어 있으면, 지금 현재가가 90원이면 100원으로 변동하는) 등을
체크해야 합니다.

이것들을 다 체크하면서 제대로 돌아가는 프로그램을 짜려면 어떻게 해야 할까요?

그리고 서버에 부하를 줄이면서 하려면 어떻게 해야 할지 궁금합니다.

  좋은 답변 부탁드립니다.

참고> 현재 사용하는 Server는 Linux이고, 언어는 php, db는 mysql을 사용합니다. 
참고>제가 참고하고 있는 사이트는 http://www.swoopo.kr/입니다.

이 글을 트위터로 보내기 이 글을 페이스북으로 보내기

눈여울 10-03-27 09:39
 
트랜잭션을 걸어 작업을 처리하시거나

세마포어를 이용하여 입찰중 대기하도록 하는것도 가능할것 같습니다