전체 글 44

Deployment

1. Deployment Pod (Kubernetes의 배포 단위) 배포에 관한 객체 Pod를 배포하고 몇 개의 Pod를 실행할 지 결정할 수 있음 Docker-Compose : 여러 개의 컨테이너를 묶어서 실행 Pod : 여러 개의 컨테이너를 묶어서 쿠버네티스에서 배포하는 단위 Deployment 나 ReplicaSet 을 이용하면 여러 개의 Pod를 생성할 때 직접 명령어를 입력할 필요가 없음 Pod는 문제가 발생해서 종료될 경우 자동으로 다시 배포가 이루어짐 (바람직한 상태를 유지함) 1) nginx 배포 배포를 위한 yaml 파일 작성 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploy labels: app: nginx spec: ..

DX Data School 2024.04.09

[2024 KBO 타자 별 OPS 예측 모델 개발] KBO 타자들의 역대 기록 크롤링 [ ** utf-8 vs utf-8-sig ]

OPS 는 On-base Plus Slugging 의 약자로 야구에서 타자를 평가하는 스탯 중 하나로 출루율 (OBP) + 장타율 (SLG) 로 계산한다. MLB 에서는 꽤 오래 전부터 공식 기록으로 인정받고 있지만 KBO 리그에서는 공식적으로 인정하는 기록이 아니였기 때문에 KBO 홈페이지 기록실에는 2002년도 부터 OBP SLG OPS 기록이 업로드 되어있다. 따라서 2002~2023 년도 기록을 모두 크롤링 하여 데이터를 확보 한 뒤 모델링을 하도록 해본다. kbo 기록실이 너무 난잡하여........... 다른 참고 사이트인 https://statiz.sporki.com/ 의 기록실을 활용하여 2002년 부터 2023년동안 기록되어 있는 선수들의 기록을 크롤링 하여 모두 1003 명 분의 기록을..

Project 2024.04.08

[2024 KBO 타자 별 OPS 예측 모델 개발] 예측 해야 할 타자 리스트 작성 2

야구는 시즌 진행 중 2군(퓨처스 리그) 선수가 1군에 등록되어 경기에 출전하거나 1군 선수가 2군으로 내려가 퓨처스 리그 경기에 출전하는 경우도 있다. (부상, 컨디션 등등 영향) 따라서 1군 선수로만 OPS예측을 해도 괜찮지만 2군 선수도 포함하여 예측하기 위해 크롤링 기준일에 따라 1,2 군에 등록된 모든 포수, 내야수, 외야수 즉 타자들의 이름 명단을 크롤링 해보자 퓨처스 리그 페이지는 구단별로 클릭해서 선수들을 조회해야해서 애먹었따........ 역시 뭐든 쉽지가 않다........... from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import ..

Project 2024.04.08

[2024 KBO 타자 별 OPS 예측 모델 개발] 예측 해야 할 타자 리스트 작성

from selenium import webdriver from selenium.webdriver.common.by import By import csv driver = webdriver.Chrome() try: driver.get('https://www.koreabaseball.com/Player/RegisterAll.aspx') # 선수 이름을 저장할 리스트 - 크롤링 일자 기준 1군 등록된 포수, 내야수, 외야수 player_names = [] # 선수 이름을 찾는 코드 for i in range(1, 10): catchers = 'td:nth-child(5) > ul > li:nth-child({})'.format(i) catchers = driver.find_elements(By.CSS_SELE..

Project 2024.04.08

[2024 KBO 타자 별 OPS 예측 모델 개발] 프로젝트 기획안

1. 추진 배경 2023년 기준 관중수가 810 만명을 돌파한 프로야구는 한국 프로 스포츠 최고 인기 종목으로 프로야구의 인기와 더불어 데이터 분석에 대한 인식이 높아짐에 따라 각 구단에서 데이터 분석의 수요가 늘고 있음 야구의 경우 특정 선수의 성적 변동성이 해마다 매우 크기 때문에 내년 성적을 예측하기 까다로운 부분이 많음 ​ 2. 필요성 및 목적 필요성 프로야구의 데이터 분석 중요도가 높아짐에 따라 정확한 분석의 중요성이 대두됨 데이터 분석의 역량 증진의 필요성이 있음 목적 2024년 타자들의 상반기 OPS를 예측하는 모델 개발 야구 데이터 활용을 통한 정확한 분석으로 구단의 선수별 성적의 불확실성 문제 해결을 위함 ​ 3. 목표 문제를 해결하는 과정을 통해 데이터 분석 역량을 증진시킬 수 있다. ..

Project 2024.04.08

쿠버네티스 (Kubernetes)

1. 컨테이너 오케스트레이션 1) 개요 다수의 컨테이너를 유기적으로 연결 및 실행할 뿐 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 만들어주는 것 2) 솔루션 Docker Swarm 간단하고 설치도 용이한데 기능이 다양하지 않아 소규모 환경에서는 유용하지만 대규모 환경에서는 거의 사용하지 않음 Mesos 아파치의 오픈 소스 프로젝트로 트위터, 에어비엔비, 애플, 우버 등에서 사용한 검증된 솔루션으로 대규모 서버 환경에서 자원을 유연하게 공유하고 하나의 자원처럼 관리하는 DC/OS의 지원으로 매우 간결하지만 기능적으로 충분하긴 하지만 여러 가지 솔루션을 유기적으로 구성해야 하는 부담 발생 nomad 베이그런트를 제작한 해시코프에서 만든 솔루션으로 특징은 Docker Swarm과..

DX Data School 2024.04.08

Docker 2

1. Container 관련 명령 1) Container로 애플리케이션 실행 이미지는 읽기 전용의 불변 값으로 만들어짐 (정적 - Class) 이러한 이미지를 바탕으로 도커 엔진은 컨테이너 (동적 - Instance)를 생성할 수 있는데 이 때 이미지와 함께 읽고 쓰기가 가능한 레이어를 추가해서 만들어진다. 2) Container는 Process 컨테이너는 이미지를 기반으로 만들어지는 snapshot 컴퓨터 프로그램이 실행중이면 프로세스라고 하는데 Container는 격리된 공간에서 동작하는 프로세스임 docker run 명령어로 컨테이너가 만들어지고 동작하는데 이는 서버 호스트 운영체제가 독립적으로 동작하는 것과 유사하다 3) Image를 받아 Container를 생성 및 실행 과정 gihyodocke..

DX Data School 2024.04.08

Docker

1. Docker 1) 개요 Container 형 가상화 기술을 구현하기 위한 애플리케이션(Docker Engine) 과 이 애플리케이션을 조작하기 위한 명령행 도구(Docker CLI)로 구성되는 애플리케이션 같이 사용하는 프로그램 데이터를 다른 컨테이너 와 격리시키는 기능을 제공하는 애플리케이션 2) 특징 Micro Service 전환은 물론 DevOps, Testing 등 다양한 분야에서 활용 Linux Container 구현체의 사실상(de-facto) 표준 3) Docker는 Linux를 사용 Docker는 Linux를 필요로 함 Windows 나 Mac OS에서는 Docker를 구동할 수 있는지만 이 경우 내부적으로 Linux 가 사용되며 Container에서 동작하는 프로그램도 Linux 용..

DX Data School 2024.04.05

Container 와 Virtualization

1. Container 와 Virtualization 1) Virtualization(가상화) 서버, 스토리지, 네트워크 및 물리적 시스템에 대한 가상 표현을 생성하는데 사용할 수 있는 기술 가상화 소프트웨어는 물리적 하드웨어 기능을 모방해서 하나의 물리적 컴퓨터에서 여러 가상 시스템을 동시에 실행하는 것이 가능하도록 함 하드웨어 리소스를 효율적으로 사용해서 투자 대비 이익을 더 많이 얻을 수 있고 클라우드 컴퓨팅 서비스를 지원해서 조직의 인프라를 더욱 효율적으로 관리할 수 있음 ​ 2) 장점 효율적인 리소스 사용 자동화된 IT 관리 신속한 재해 복구 ​ 3) 가상화 서비스 서버 가상화 스토리지 가상화 네트워크 가상화 네트워크 기능 가상화 SDN (Software Defined Networking) 물리..

DX Data School 2024.04.05

CI/CD

1. CI/CD 1) 개요 CI/CD의 개념은 Continuous Integration (지속적인 통합), Continuous Delivery (지속적인 제공), Continuous Deployment (지속적인 패포) 애플리케이션 개발 단계를 자동화해서 애플리케이션을 보다 짧은 주기로 고객에게 전달하기 위한 방법 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하는 방법이다 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 레포지토리에 병합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제 해결 2) 지속적인 통합 (Continuous Integration) 개발팀이 작은 변경..

DX Data School 2024.04.05