Skip to content

운영팀 Blog

아이템 기반 거래/검색 개발 후기

분류 개발 조회 수 29,163 추천 수 0

최근 공개된 아이템 기반 거래 시스템의 개발 후기를 올립니다.

 

[관련 공지: https://tradia.me/diablo2/log/11460790]

 

#수수께끼 #무한 #유닉다뎀 <- 대략 이런 기능입니다^^;

 


 

해외 사이트에는 있는데 한국사이트에는 없는게 뭐냐?

 

그건 아마 아이템 기반 거래 시스템 같습니다.

 

트레더리

트레더리 사이트를 보면 각 아이템 마다 거래가 가능합니다.

 

diablo2.io

diablo2.io 사이트는 아이템 정보와 거래 동향이 나옵니다.

 

반면 한국 사이트는 어떨까요?

 

카오스큐브

카오스큐브

 

트레디아

트레디아

 

인벤

인벤

 

아이템매니아

아이템매니아

 

플레이디아

플레이디아

 

해외 사이트는 각 아이템 별 거래 정보를 알려주는 반면, 한국 사이트는 플레이디아를 제외하곤 그렇지 못했습니다.

 

이슈/목표는 다음과 같았습니다.

  1. 판매자가 아이템 하나하나 일일이 등록하는 것은 매우 번거로운 일입니다.
    따라서 기존의 거래 시스템 형태를 유지하면서 각 아이템 별 인덱스가 가능해야 합니다.
  2. 일반 유저는 각 아이템을 검색하고 일일이 찾아가는게 매우 번거롭습니다.
    따라서 클릭 몇 번 만으로 해당 아이템의 거래 정보가 보여져야 했습니다.
  3. 아이템 사전을 보면서 관련 거래 정보가 자연스럽게 보여져야 했습니다.
    그래야 판매자의 아이템이 더 자주 보여져 구매자와 연결이 쉬워집니다.
  4. 디아블로2 모든 아이템 정보를 갖추고, 그에 대한 검색 편의와 [예: #ㅅㅅ 만 쳐도 수수께끼] 옵션 정보를 확보해야 했습니다.
    게다가 트레디아 아이템 사전은 클래식 용어로 되어 있어서 모두 갈아엎어야 했습니다.
    아이템 데이터 베이스는 어떻게 구할 것이며, 레저렉션 용어로 어떻게 번역할 것이며, 어찌어찌 그런 데이터를 확보 하더라도 검색 부하는 어떻게 감당할 것입니까?

이건 구현 불가능하다고 포기 했었습니다.

 

그런데 스킬 계산기를 준비하면서 디아블로2 게임 데이터 파일을 분해하고 힌트를 얻었는데요.

 

거기에는 아이템 이름, 스킬 이름, 옵션 용어 등이 있었습니다.

 

이 데이터를 활용한다면 레저렉션 용어는 해결할 수 있어 보여 가망이 생겼습니다.

 

이제 아이템 옵션을 어떻게 구해야 할까요? 이것을 확보하길 원했으나 그렇지 못했습니다.

 

그래서 해외 사이트 아이템 사전 뽀려와서 번역 프로그램을 제작하고 레저렉션 용어로 번역 했습니다. 꽤 힘들었습니다.. ㅠㅠ

 

아무튼 그렇게 해서 아이템 사전 검색 데이터[https://tradia.me/diablo2/log/4580422]에 위 기능을 합쳐서 레저렉션 아이템 사전은 구현할 수 있었습니다.

 

다음 차례로 아이템 사전과 거래 글을 엮어야 했는데, 문제는 유저마다 아이템 이름을 제각각 썼습니다.

 

누군가는 #애니 다른 누군가는 #어나이 또 어떤 이는 #어나이얼러스 라고 입력하겠죠.

 

아이템 사전을 보고 있을 때[https://tradia.me/diablo2/item_unique/2011232]는 키워드가 #어나이얼러스 인데 이 단어를 가지고 어떻게 거래 글에 있는 #애니 라든가 #어나이 같은 단축된 용어를 찾을 수 있을까요? 게다가 검색 부하는요?

 

며칠간 열심히 고민한 끝에 4개의 테이블을(데이터 저장소가 4개라는 말입니다) 설계했고 적절히 인덱스를 걸었습니다.

 

같이 보시죠 ㅎㅎ;

  1. 아이 템 정보 테이블 - 각 아이템의 고유 정보입니다. 1950 건의 데이터가 들어갑니다.
    primary_key(AI) + 대상 게시판 + 레저렉션 한글 명 + 레저렉션 영문 명 + 고유 링크 + 메모 + 종류 + 이미지 주소 + 기타 메모 + 한글 옵션 + 영문 옵션
  2. 검색 테이블 - 간단히 #ㅅㅅ 쳤을 때 #수수께끼 가 검색되기 위함입니다. 1만 2천건의 데이터가 들어갑니다.
    primary_key(AI) + no(위 1번의 primary_key) + 단축어 + quality + 인 기 정렬
    인덱스: no, hits, idx + quality + hits
    데이터 예) 
    image.png           
  3. 위 2번까지 아이템을 검색하는 기능이었습니다.
    이제 #수수께끼 아이템을 볼 때 거래글의 #ㅅㅅ 까지 보여지는 기능이 필요합니다.
    거래 게시판에[https://tradia.me/diablo2/trade_rl] 글을 쓸 때 # 붙은 단어를 태그 테이블에 넣습니다.
    구조: primary_key(AI) + no(위 1번의 primary_key) + 태그
    인덱스: primary_key, no + tag
    #수수께끼 아이템을 보고 있다면 위 1번 데이블의 no 컬럼으로 3번 테이블의 no 컬럼에 해당하는 데이터를 찾습니다.
    image.png
  4. 그리고 3번과 4번 테이블을 합치는데요, INNER JOIN 이라고 표현합니다.
    tag, server 컬럼이 일치하는 것을 찾습니다.
    구조: primary_key(AI) + 서버 + 태그 + quality + 갱신 시각 + 회원번호 + 문서번호 + 옵션 + 메모
    인덱스: primary_key+서버, 회원번호+태그+옵션(unique), 태그 + 서버 + quality, 문서번호 + pk, 갱신 시각
    image.png

 

정리하자면 #수수께끼 아이템을 보고 있을 때[1+2번 테이블] no 컬럼이 169에 해당하는 3번 테이블에서 태그 목록(ㅅㅅ, 수수께끼)를 얻어와 4번 테이블에서 그에 해당하는 태그로 게시글 주소를 확보합니다.image.png

 

 

 

1줄 요약: 거래 글에서 아이템 이름 앞에 # 붙이면 거래가 더 쉬워집니다! 많이 이용해주세요~^^

이비엔
cs406.iptime.org 관리자입니다.

운영팀 Blog

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 35 file 트디개발자 2023.09.20 949.1k
공지   맨땅 초보자 가이드 615 file 뮤리아 2020.10.16 1016.9k
공지   카카오톡 1:1 채팅방 만드는 법 106 트디개발자 2018.05.20 431.0k
67 PK 백마에게 당하는 흑형 2 file 이비엔 2023.05.18 28.2k
66 PK 클래식 TeamPK 홍보 2 이비엔 2023.04.25 34.8k
> 개발 아이템 기반 거래/검색 개발 후기 file 이비엔 2022.12.16 29.2k
64 PK 클래식 슴딘 TeamPK 킬 모음 이비엔 2022.11.03 29.8k
63 개발 트레디아 채팅 후기 [부제: socket.io Cluster Worker] 2 file 이비엔 2021.11.03 35.0k
62 PK 해슴딘 TeamPK 킬 모음 2021-08 1 이비엔 2021.09.02 33.7k
61 아이템 아마존 템딸 4 file 이비엔 2021.08.31 34.2k
60 개발 룬워드 계산기 제작 후기 1 file 이비엔 2021.08.21 29.9k
59 아이템 돈지랄 방패 v2.0 4 file 이비엔 2021.07.06 26.9k
58 PK 슴딘 TeamPK 킬 모음 이비엔 2021.06.21 19.7k
57 PK 네크로맨서 TeamPK 킬 모음 2021-06-20 4 file 이비엔 2021.06.20 20.0k
56 PK 해슴딘 TeamPK 킬 모음 2021-01-22 이비엔 2021.01.23 6.6k
55 아이템 디아블로2 슴딘 vs 바바리안 1 file 이비엔 2021.01.20 7.5k
54 PK 올라운드 해슴딘 완성본 (+시체) 1 file 이비엔 2021.01.18 14.7k
53 PK 비엔[해슴] vs 두식[네크] 이비엔 2020.09.01 4.5k
52 PK 비엔 vs 두식 슴슴전 이비엔 2020.09.01 4.3k
51 아이템 2팔라 20패캐 20덱 75중감 아뮬렛 복사 5 이비엔 2020.09.01 6.6k
50 PK 해슴딘 TeamPK 3킬 모음 [2020년 8월] 이비엔 2020.08.28 3.0k
49 아이템 해외서버 버그 아이템 6 이비엔 2020.08.28 5.7k
48 PK 주의: 이 영상을 보면 암에 걸립니다. 이비엔 2020.08.13 2.7k