본문 바로가기

전체 글226

데이터베이스의 종류 문서 기반 데이터베이스 (Document-based DB) 문서 기반 데이터베이스는 NoSQL 데이터베이스의 하나로, BSON(Binary JSON)이나 XML과 같은 형식으로 데이터를 저장하는 방식을 가지고 있습니다. 데이터를 "문서(Document)"라는 개념으로 저장하며, 이는 키-값 쌍으로 구성된 유연한 데이터 구조를 의미합니다. 주로 JSON 형식을 사용하여 데이터를 저장하고, 문서 간에는 스키마가 고정되어 있지 않아 유연하게 데이터를 관리할 수 있습니다. 대표적인 문서 기반 데이터베이스로는 MongoDB가 있습니다. 컬럼 기반 데이터베이스 (Columnar DB) 컬럼 기반 데이터베이스는 관계형 데이터베이스의 테이블과는 달리, 데이터를 행(row)이 아닌 컬럼(column) 단위로 저장하는 방.. 2023. 7. 24.
Riot API 이용 방침 문의 안녕하세요. 플레이어님. 어둠 꽃의 독으로 목소리를 잃었지만, 글로써 플레이어님과 소통하고 싶어 찾아온 [GM] 아펠리오스 입니다. 답변이 늦어져서 대단히 죄송합니다. 플레이어님이 불편한 느끼지 않도록 최선을 다하도록 하겠습니다. 플레이어님께서는 라이엇 API 와 관련하여 문의를 접수해 주신 것 같은데요. 라이엇 게임즈에서는 외부에 API를 제공하고 있습니다. 그렇기 때문에 외부 사이트에서 이를 이용해 전적 사이트를 만드는 등에 이용이 가능한데요. 라이엇의 API를 받기 위해서는 아래 사이트를 통하여 로그인 하신 뒤, [KEY] 를 발급 받아서 사용하실 수 있는 점 참고 부탁드립니다. 📢 [STATS STRAIGHT FROM THE SOURCE] ☜ 클릭 📢 또, 공개된 API를 이용하고 싶으셨던 것 같.. 2023. 7. 24.
[데이터 수집] 데이터 정의서 [데이터 명세] [TFT 최상위 플레이어 매치 데이터] 1. 데이터 정의 TFT 매치의 최종 결과 데이터이며, 국가별 Top10의 플레이어들의 최근 20경기 정보를 수집합니다. 2. 수집 방법 Riot API 에서 제공하는 TFT-MATCH-V1을 이용합니다. 3. 수집 경로 Riot Developer Portal(https://developer.riotgames.com/apis#tft-match-v1/) 4. 데이터의 논리적 구조 4.1 Matches 이름 설명 match_id 매치 아이디입니다. match_datetime 매치가 시작한 날짜 정보입니다.(Unix timestamp) match_length 매치 길이입니다.(단위: 초) tft_set_number TFT set 번호입니다. 4.2 Mat.. 2023. 7. 23.
[데이터 수집] 프로젝트 정의서 [여러 국가 최상위 플레이어들의 TFT 매치 데이터 수집] 기간: 2023-07-17 ~ 2023-07-21 (총 5일) 정의: Riot API를 활용하여 TFT 최상위 플레이어들의 매치 데이터를 수집합니다. 목적: TFT 매치 데이터를 수집하여 메타분석, 챔피언이나 아이템들의 상관관계를 분석할 수 있습니다. 범위: 아메리카, 아시아, 유럽 서버에 해당하는 나라, 최상위 플레이어(Top10)들의 매치 데이터를 수집합니다. 나라와 서버 정보는 다음과 같습니다. 브라질(BR1), 유럽서부(EUW1), 유럽북동(EUN1), 일본(JP1), 한국(KR), 라틴아메리카북부(LA1), 라틴아메리카남부(LA2), 북미(NA1), 오세아니아(OC1), 필리핀(PH2), 러시아(RU), 싱가포르(SG2), 태국(TH2).. 2023. 7. 23.
로그 필터 설정 파이썬에서 필터를 사용하여 디버그 모드의 로그만 출력하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법 중 하나는 logging 모듈을 사용하는 것입니다. logging 모듈은 로깅과 관련된 다양한 기능을 제공합니다. 아래는 디버그 모드의 로그만 출력하는 방법을 보여주는 예제 코드입니다. import logging # 로깅 설정 logging.basicConfig(level=logging.DEBUG) # 디버그 레벨 이상의 로그를 출력 # 로거 객체 생성 logger = logging.getLogger('my_logger') # 필터 설정 class DebugFilter(logging.Filter): def filter(self, record): return record.levelno == loggi.. 2023. 7. 23.
루트로거, 차일드로거 로깅 모듈에서는 루트 로거를 기준으로 차일드 로거를 확인할 수 있습니다. 루트 로거는 기본 로거로 모든 로그 메시지를 처리하는 로거이며, 다른 로거들은 루트 로거를 기준으로 차일드 로거가 됩니다. 파이썬 logging 모듈의 logging.getLogger() 함수로 로거를 생성할 때, 로거의 이름을 지정하면 해당 이름의 로거가 생성되고, 이름을 지정하지 않으면 기본 로거인 루트 로거가 생성됩니다. 루트 로거를 기준으로 차일드 로거를 확인하는 방법은 다음과 같습니다: import logging # 루트 로거를 얻어옵니다. root_logger = logging.getLogger() # 루트 로거의 차일드 로거 목록을 확인합니다. child_loggers = root_logger.manager.logger.. 2023. 7. 23.
파이썬 로깅 포맷 문자열 파이썬에서 로깅 포맷 문자열을 지정하는 데 사용되는 주요 문자열들은 다음과 같습니다. %(asctime)s: 로그 메시지가 기록된 시간을 나타냅니다. %(levelname)s: 로그 메시지의 레벨을 나타냅니다 (DEBUG, INFO, WARNING, ERROR, CRITICAL). %(name)s: 로거의 이름을 나타냅니다. %(message)s: 실제 로그 메시지를 나타냅니다. %(pathname)s: 로그를 호출한 파일의 전체 경로를 나타냅니다. %(filename)s: 로그를 호출한 파일의 파일명만을 나타냅니다. %(module)s: 로그를 호출한 파일의 모듈 이름을 나타냅니다. %(lineno)d: 로그를 호출한 파일에서의 라인 번호를 나타냅니다. %(funcName)s: 로그를 호출한 함수의 이.. 2023. 7. 23.
로그에 클래스이름 출력하기 클래스 이름을 직접 문자열로 쓰지 않고서도 로그 메시지에 클래스 이름을 나타내는 방법은 logging.Logger 클래스의 getChild() 메서드를 사용하는 것입니다. 이를 통해 자식 로거를 생성하고, 이 자식 로거에 클래스 이름을 전달하여 로그 메시지를 출력할 수 있습니다. 다음은 getChild() 메서드를 사용하여 클래스 이름을 로그 메시지에 포함하는 방법을 보여주는 예제 코드입니다. import logging # 전역 로그 설정 logging.basicConfig(level=logging.DEBUG) # 커스텀 포매터 정의 class CustomFormatter(logging.Formatter): def format(self, record): # 클래스 이름과 위치 정보를 추가하여 로그 메시지.. 2023. 7. 23.
커밋 히스토리를 지우는 방법 커밋 히스토리를 지우는 작업은 주의해야 할 점이 많으며, 역사적인 변경 사항을 영구적으로 제거하는 것이므로 신중하게 사용해야 합니다. 커밋 히스토리를 지우는 방법은 다음과 같습니다. 주의: 커밋 히스토리를 수정하거나 삭제하는 작업은 원격 저장소와 공동 작업 중인 경우에는 권장하지 않습니다. 다른 사용자의 변경 내용과 충돌을 일으킬 수 있고, 원격 저장소의 히스토리가 꼬일 수 있습니다. 이런 작업은 개인 프로젝트에서만 시도하는 것이 좋습니다. git reset 명령어 이 방법은 가장 최근의 커밋부터 지정한 커밋까지의 히스토리를 수정합니다. 그러나 이 방법은 원격 저장소에 푸시한 후에는 사용하지 말아야 합니다. # 최근 3개의 커밋을 지우고 해당 변경사항은 스테이징 영역으로 유지 git reset HEAD~.. 2023. 7. 23.