Aurora 리스트, 스냅샷, 복원 CLI - AWS Aurora MySQL (RDS)
안녕하세요. Johncomputer 입니다.이번에는 아마 최근들어서 더 많은 분들이 이용하고 계신 Aurora MySQL에 대해서 같이 다뤄보려고 합니다.운영을 하다보면 "자동화", "대규모" 작업을 하게 되는 경우가 있는데이럴때는 항상 웹 화면에서 하나씩 다루기는 힘들거든요...그렇다 보니 Lambda 라던가 EC2 아니면 개인 PC에서 CLI로 명령을 할 수 있는 방법이 있는데요한번 같이 보겠습니다. 디테일한 옵션은 아래에 있고 전 주로 사용하는 스크립트 위주로 올려드릴게요https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html describe-db-clusters — AWS CLI 1.38.20 Command Ref..
2025.03.29
no image
AI 빅데이터 분석을 이용한 로또 번호 예측하기 (Ver.2)
안녕하세요. Johncom 입니다.AI 분석 로또 번호 추첨기가 인기있는 글이 되어서 이번에 조금 더 간편한 버전으로 왔습니다.업그레이드 버전에 앞서 내용들을 알고 싶으시다면 아래 링크 2개 참고하시면더욱 이해가 빠릅니다.(상, 하)https://johncom.tistory.com/71 AI 빅데이터 분석을 이용한 로또 번호 예측하기 (상) - GPT와 함께안녕하세요. JohnComputer 입니다.오늘은 한번 GPT를 이용해서 로또 번호 예측 시스템을 만들어 보려고 해요. 아래는 GPT와 빅데이터 분석에 대한 글들이 있어로또 예측기를 바로 만들고 싶은 분들 (johncom.tistory.com https://johncom.tistory.com/72 AI 빅데이터 분석을 이용한 로또 번호 예측 만들기 (..
2024.12.28
no image
MySQL 테이블 DB 사이즈 구하기 - row 개수 / 행 개수
안녕하세요. Johncom 입니다. information Schema의 테이블에는 테이블 관련 정보들이 정의되어 기록되고 있습니다.모든 값들은 byte 단위로 기록되고 있어 간단한 변환이 필요합니다.아래 내용은 "MB" 기준으로 계산 되어 "GB" 계산을 진행하려면 /1024를 추가해야 합니다. DESC information_schema.TABLES;+-----------------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------------+---------------------+------+-----+---..
2024.10.23
no image
한방 패키지 APM(Apache, MySQL, PHP) 구성하여 웹 서버 만들기
안녕하세요. JohnCom 입니다.오랜만에 웹서버 구축할 일이 생겨서 하나하나 기록 겸처음 시작하는 분들께 도움이 되고자 글을 작성합니다. 웹 개발을 시작하면처음 배우게 되는 언어로 여러 시작을 할텐데자바공화국인 한국에서는 조금 덜 쓰지만 전세계적으로 가장 많이 사용하고배우기 빠른 언어인 PHP그리고 사용자들이 무료로 쉽게 사용할 수 있는 MySQL DB를 이용하여 환경 구성을 해보려고 합니다. 물론 배포할때는Linux + PHP + MySQL + Apache + 기타 언어 or 패키지 등이 사용되겠지만오늘은 이 모든걸 한번에 설치가능한한방 패키지 설치해보려고 합니다  1. XAMPP 설치구글 형에게 간단하게 검색해서 진행하면 됩니다. 원하는 버전 선택 필요한 프로그램만 설치MySQL, Tomcat, p..
2024.10.16
no image
Hyper-v 무료 윈도우 가상머신 - 하나의 PC에 윈도우를 또 설치하자
안녕하세요. Johncom 입니다.이번에 새롭게 PC를 설치하고 결혼준비하면서 모바일 청첩장을 직접 만들어 보려고 하는데요. 클라우드 올리기 전 로컬 테스트 서버를 만들려고 #VmWare 를 설치하려는데가상머신으로 돌리는 방법이 있길래 직접 한번 해보면서 정리하려고 합니다. 1. Hyper-V 설정 활성화 Windows 기능 켜기/끄기로 접속합니다.Hyper-V 부분을 모두 체크 후 확인 눌러주세요. 컴퓨터가 재부팅 이후 다음과 같이 검색이 된다면 활성화가 된 것입니다.  2. Hyper-V 세팅새로 만들기 -> 가상 컴퓨터이름과 설치할 디렉토리 지정 필요 -> DISK 공간이 있어야함호환성 체크 /윈도우 11이상 사용하는 경우 메인보드에 따라서 2세대 UEFI 펌웨어 설치 필요할 때 2세대로 작업해야 ..
2024.10.13
no image
윈도우 10 무료 설치 방법 - 포맷 클린 설치
안녕하세요. Johncom입니다.이번에 가상머신에 윈도우를 설치하고 있는데제 글 중에 윈도우 설치 관련된 글이 없더라고요...그래서 이번에 가상머신에 설치하면서 한번 정리해보려고 합니다.  1. USB 포맷> USB는 이미지를 만들면서 알아서 설정해줄 것이기 때문에 우클릭 후 빠른 포맷을 합니다. FAT32로 진행하셔도 됩니다.    2. 윈도우 부팅 USB 만들기https://www.microsoft.com/ko-kr/software-download/windows10위 사이트에 먼저 접속하셔서 윈도우 10을 무료로 다운로드 받으면 된답니다.  > 사이트에 접속하셔서 "지금 다운로드" -> 다운로드 파일 실행 -> 다른 PC용 선택  > 권장 옵션의 경우 기존 PC를 포맷하고 사용하는 경우외에는 제외 시..
2024.10.13
no image
anaconda miniconda import cv2 에러 해결
안녕하세요. John Com 입니다.Python으로 영상 처리하는 프로그램을 만들다가자꾸 에러가 발생해서.. 아주 간단한 문제이지만어디에도 해결방법이 안적혀있어 저처럼 python 공부하는 사람들을 위해글을 적어봅니다. 이렇게 떠야 정상 화면인데....GPT 형한테 배운대로 했더니 import cv2 error가 발생하더라고요 import cv2ModuleNotFoundError : No module named 'cv2' .... conda install 말고pip install opencv-python 를 따로 진행해주셔야 합니다.  conda create -n py310 python=3.10conda activate py310# CPU 버전 PyTorch 설치conda install pytorch t..
2024.07.28
no image
AI 빅데이터 분석을 이용한 로또 번호 예측 만들기 (하) - GPT와 함께
(상)편에 이어서Python을 이용하여 실제 번호 예측을 진행해 보겠습니다.#로또번호예측기 코드는 블로그 최하단에 넣어 둘게요.csv파일은 https://johncom.tistory.com/71 AI 빅데이터 분석을 이용한 로또 번호 예측하기 (상) - GPT와 함께안녕하세요. JohnComputer 입니다.오늘은 한번 GPT를 이용해서 로또 번호 예측 시스템을 만들어 보려고 해요. 아래는 GPT와 빅데이터 분석에 대한 글들이 있어로또 예측기를 바로 만들고 싶은 분들 (johncom.tistory.compython 설치는 https://johncom.tistory.com/49 python3 설치 부터 경로 설정까지 (pip, python, 환경 변수, path)안녕하세요. JohnCom 입니다. 오늘은 ..
2024.07.27
반응형

안녕하세요. Johncomputer 입니다.

이번에는 아마 최근들어서 더 많은 분들이 이용하고 계신 Aurora MySQL에 대해서 같이 다뤄보려고 합니다.

운영을 하다보면 "자동화", "대규모" 작업을 하게 되는 경우가 있는데

이럴때는 항상 웹 화면에서 하나씩 다루기는 힘들거든요...

그렇다 보니 Lambda 라던가 EC2 아니면 개인 PC에서 CLI로 명령을 할 수 있는 방법이 있는데요

한번 같이 보겠습니다.

 

디테일한 옵션은 아래에 있고 전 주로 사용하는 스크립트 위주로 올려드릴게요

https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html

 

describe-db-clusters — AWS CLI 1.38.20 Command Reference

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. F

docs.aws.amazon.com

 

 

1. 기본 사용 명렁어

- 가장 중요한 내용 중 하나인데 DB 개념에서 Cluster, Instance 를 구별해서 볼 수 있어야 합니다.

버전은 Cluster 단위, Type 변경은 Instance 단위로 변경 가능합니다.

#!/bin/bash

# 1. Aurora 클러스터 목록 조회
# 현재 운영 중인 모든 Aurora 클러스터 정보를 확인
aws rds describe-db-clusters

# 2. 특정 클러스터의 상세 정보 조회
# 특정 Aurora 클러스터의 설정 및 상태를 확인
aws rds describe-db-clusters --db-cluster-identifier {my-cluster}

# 3. Aurora 인스턴스 목록 조회
# 현재 운영 중인 모든 데이터베이스 인스턴스를 확인
aws rds describe-db-instances

# 4. 특정 Aurora 인스턴스 상태 조회
# 특정 DB 인스턴스의 상세 정보를 가져옴
aws rds describe-db-instances --db-instance-identifier {my-instance}

# 5. Aurora 클러스터 백업 (스냅샷 생성)
# 클러스터의 백업을 생성하여 데이터 보호
aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier {my-cluster-snapshot} --db-cluster-identifier {my-cluster}

# 6. 스냅샷 목록 조회
# 생성된 모든 클러스터 스냅샷을 확인
aws rds describe-db-cluster-snapshots

# 7. Aurora 클러스터 복원 (스냅샷에서 복구)
# 기존 백업 스냅샷을 사용하여 새로운 Aurora 클러스터 생성
aws rds restore-db-cluster-from-snapshot --db-cluster-identifier {my-new-cluster} --snapshot-identifier {my-cluster-snapshot}

# 8. Aurora 클러스터 크기 조정 (자동 스케일링 설정 변경)
# Aurora Serverless의 최소 및 최대 용량을 조정
aws rds modify-db-cluster --db-cluster-identifier {my-cluster} --scaling-configuration MinCapacity={2},MaxCapacity={8}

# 9. Aurora 인스턴스 타입 변경 (업그레이드 또는 다운그레이드)
# Aurora 인스턴스의 스펙을 변경 (ex. db.r5.large → db.r6g.large)
aws rds modify-db-instance --db-instance-identifier {my-instance} --db-instance-class {db.r6g.large} --apply-immediately

# 10. Aurora 클러스터 삭제
# 최종 스냅샷 없이 Aurora 클러스터 삭제 (데이터 영구 삭제됨)
aws rds delete-db-cluster --db-cluster-identifier {my-cluster} --skip-final-snapshot

# 11. Aurora 인스턴스 재시작
# 특정 Aurora DB 인스턴스를 재부팅하여 문제 해결
aws rds reboot-db-instance --db-instance-identifier {my-instance}

# 12. Aurora 파라미터 변경
# 특정 파라미터 그룹의 값을 변경하고 적용
aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name {my-cluster-param-group} --parameters "ParameterName={max_connections},ParameterValue={500},ApplyMethod=immediate"

# 13. Aurora MySQL 버전 업그레이드
# 기존 Aurora 클러스터의 엔진 버전을 업그레이드 (사전 테스트 필수!)
aws rds modify-db-cluster --db-cluster-identifier {my-cluster} --engine-version {8.0.mysql_aurora.3.04.0} --apply-immediately

 

2. describe 심화 - 특정 인스턴스 목록 뽑기 jq json

- 아래처럼 쿼리를 이용해서 원하는 출력값만 얻을 수 있습니다.

- output style 은 text, json, table등 보기 편하게도 가능해요

aws rds describe-db-clusters --region ap-northeast-3 --query "DBClusters[?contains(DBClusterIdentifier, '필터값')]" --output json
aws rds describe-db-clusters --query "DBClusters[?contains(DBClusterIdentifier, '필터값')].{DBClusterIdentifier:DBClusterIdentifier, Endpoint:Endpoint, ReaderEndpoint:ReaderEndpoint}" --output text
aws rds describe-db-clusters --query "DBClusters[?contains(DBClusterIdentifier, '필터값')].{DBClusterIdentifier:DBClusterIdentifier, Endpoint:Endpoint, ReaderEndpoint:ReaderEndpoint}" --output table

 

3. 기타 사용 명령어 

--region	#실행할 AWS 리전을 지정	--region ap-northeast-2
--output	#출력 형식 지정 (json, table, text, yaml)	--output table
--query	#특정 데이터 필드만 출력	--query "DBClusters[*].DBClusterIdentifier"
--profile	#사용할 AWS 프로필 지정	--profile my-profile
--no-paginate	#페이지 나누기 없이 전체 데이터 출력	--no-paginate

- paginator의 경우 100개가 넘는 리스트를 다룰 때 사용됩니다.

 

반응형
반응형

안녕하세요. Johncom 입니다.

AI 분석 로또 번호 추첨기가 인기있는 글이 되어서 이번에 조금 더 간편한 버전으로 왔습니다.

업그레이드 버전에 앞서 내용들을 알고 싶으시다면 아래 링크 2개 참고하시면

더욱 이해가 빠릅니다.

(상, 하)

https://johncom.tistory.com/71

 

AI 빅데이터 분석을 이용한 로또 번호 예측하기 (상) - GPT와 함께

안녕하세요. JohnComputer 입니다.오늘은 한번 GPT를 이용해서 로또 번호 예측 시스템을 만들어 보려고 해요. 아래는 GPT와 빅데이터 분석에 대한 글들이 있어로또 예측기를 바로 만들고 싶은 분들 (

johncom.tistory.com

 

https://johncom.tistory.com/72

 

AI 빅데이터 분석을 이용한 로또 번호 예측 만들기 (하) - GPT와 함께

(상)편에 이어서Python을 이용하여 실제 번호 예측을 진행해 보겠습니다.#로또번호예측기 코드는 블로그 최하단에 넣어 둘게요.csv파일은 https://johncom.tistory.com/71 AI 빅데이터 분석을 이용한 로또

johncom.tistory.com

 

앞서 Python 설치는 블로그 내에서 확인이 가능합니다. (아래 URL)

https://johncom.tistory.com/49

 

python3 설치 부터 경로 설정까지 (pip, python, 환경 변수, path)

안녕하세요. JohnCom 입니다. 오늘은 제 로컬 PC에 Python3 를 설치를 진행하는데 설치하는 방법을 정리해두면 처음 시작하는 분들에게 도움이 될 것 같아서 이렇게 따로 정리해둘려고 글을 씁니다. "

johncom.tistory.com

 

본격적으로 로또 본허 생성기 (추첨기) 제작을 진행하겠습니다.

 

1. 패키지 설치

pip install numpy
pip install pandas
pip install scikit-learn
pip install tensorflow

- 패키지 설치가 되지 않을 경우 오류를 유발할 수 있습니다.

 

2. 역대 로또 번호 CSV 파일 준비

위 상단 URL 참고하여 Lotto csv 파일 준비

- `lotto.csv` 파일이 필요합니다 (과거 로또 당첨 번호 데이터)
- CSV 파일 형식: 각 행에 회차별 6개의 당첨번호가 포함되어야 합니다

 

3.코드 구성

## 3. 코드 구성 요소 설명

### 데이터 처리 부분
```python
# 데이터 로드 및 전처리
data = pd.read_csv('lotto.csv')
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(data)
```
- CSV 파일에서 데이터를 읽어옵니다
- MinMaxScaler를 사용하여 데이터를 0~1 사이의 값으로 정규화합니다

### 시계열 데이터 준비
```python
def create_dataset(data, time_steps=1):
    X, y = [], []
    for i in range(len(data) - time_steps):
        X.append(data[i:(i + time_steps)])
        y.append(data[i + time_steps])
    return np.array(X), np.array(y)
```
- 이전 35회차의 데이터를 사용하여 다음 회차를 예측하기 위한 데이터셋을 만듭니다

### LSTM 모델 구성
```python
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
model.add(LSTM(50, return_sequences=False))
model.add(Dense(6))
```
- LSTM 레이어 2개와 Dense 레이어 1개로 구성된 딥러닝 모델을 만듭니다
- 최종적으로 6개의 숫자를 출력합니다

### 예측 및 번호 생성
```python
def generate_multiple_predictions(predictions, num_sets=5):
    # 중복되지 않는 6개의 숫자를 5세트 생성
    # 예측값을 기반으로 확률을 계산하여 번호 선택
```
- 학습된 모델의 예측값을 기반으로 5세트의 로또 번호를 생성합니다
- 각 세트는 1~45 사이의 중복되지 않는 6개 숫자로 구성됩니다
- 생성된 번호는 오름차순으로 정렬됩니다

 

4. 번호 추첨 및 소스코드

import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

# CSV 파일 로드
data = pd.read_csv('lotto.csv')

# 데이터 스케일링
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(data)

# 시계열 데이터 준비
def create_dataset(data, time_steps=1):
    X, y = [], []
    for i in range(len(data) - time_steps):
        X.append(data[i:(i + time_steps)])
        y.append(data[i + time_steps])
    return np.array(X), np.array(y)

time_steps = 35
X, y = create_dataset(data_scaled, time_steps)
X = X.reshape(X.shape[0], X.shape[1], X.shape[2])

# LSTM 모델 구성
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
model.add(LSTM(50, return_sequences=False))
model.add(Dense(6))
model.compile(optimizer='adam', loss='mean_squared_error')

# 모델 학습
model.fit(X, y, epochs=100, batch_size=32, validation_split=0.2)

# 예측
predictions = model.predict(X)

# 원래 스케일로 역변환
predictions_scaled_back = scaler.inverse_transform(predictions)

def generate_multiple_predictions(predictions, num_sets=5):
    all_predictions = []
    
    # 수정된 부분: 확률 배열 생성
    numbers = np.arange(1, 46)  # 1부터 45까지의 숫자
    probabilities = np.ones(45) / 45  # 균등한 확률 분포 사용
    
    for _ in range(num_sets):
        # 중복되지 않는 6개의 숫자 선택
        selected_numbers = np.random.choice(
            numbers,
            size=6,
            replace=False,
            p=probabilities
        )
        # 오름차순 정렬
        sorted_numbers = np.sort(selected_numbers)
        all_predictions.append(sorted_numbers)
    
    return np.array(all_predictions)

# 5세트의 예측 번호 생성
predicted_sets = generate_multiple_predictions(predictions_scaled_back, num_sets=5)

# 결과 출력
print("\n=== 예측된 5세트의 로또 번호 (오름차순) ===")
for i, numbers in enumerate(predicted_sets, 1):
    formatted_numbers = ' '.join(f"{int(num):02d}" for num in numbers)
    print(f"세트 {i}: {formatted_numbers}")

 

- 위 소스코드를 실행하면 원하는 출력값을 얻을 수 있습니다.

 

 

반응형
반응형

안녕하세요. Johncom 입니다.

 

information Schema의 테이블에는 테이블 관련 정보들이 정의되어 기록되고 있습니다.

모든 값들은 byte 단위로 기록되고 있어 간단한 변환이 필요합니다.

아래 내용은 "MB" 기준으로 계산 되어 "GB" 계산을 진행하려면 /1024를 추가해야 합니다.

 

DESC information_schema.TABLES;

< information_shema.TABLES 구조 >

+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | NO   |     |         |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(2048)       | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+

 

TABLE 정보

TABLE_CATALOG 테이블이 속한 카탈로그 (대부분은 고정된 값일 수 있음)
TABLE_SCHEMA 테이블이 속한 스키마 (데이터베이스 이름)
TABLE_NAME 테이블 이름
TABLE_TYPE 테이블의 유형 (예
ENGINE 테이블이 사용하는 스토리지 엔진 (예
VERSION 테이블의 버전 (내부적인 관리 버전 정보)
ROW_FORMAT 테이블의 행 저장 형식 (예
TABLE_ROWS 테이블에 저장된 행의 개수
AVG_ROW_LENGTH 평균 행 길이 (바이트 단위)
DATA_LENGTH 테이블의 실제 데이터 크기 (바이트 단위)
MAX_DATA_LENGTH 테이블이 수용할 수 있는 최대 데이터 크기
INDEX_LENGTH 인덱스에 사용된 공간 크기
DATA_FREE 테이블에서 사용하지 않는 (비어 있는) 공간 크기
AUTO_INCREMENT 자동 증가(AUTO_INCREMENT) 값
CREATE_TIME 테이블이 생성된 시간
UPDATE_TIME 테이블이 마지막으로 업데이트된 시간
CHECK_TIME 테이블이 마지막으로 검사된 시간
TABLE_COLLATION 테이블에서 사용하는 정렬 규칙 (콜레이션)
CHECKSUM 테이블의 체크섬 값 (데이터의 무결성 검사용)
CREATE_OPTIONS 테이블 생성 시 사용된 추가 옵션
TABLE_COMMENT 테이블에 대한 설명 또는 주석
TABLE_SCHEMAL DB명
TABLE_NAME TABLE명

 

Query

1. 간단한 DB 사이즈 TOTAL SIZE 조회 ( 데이터 + 인덱스 )

SELECT table_schema "DATABASE",
ROUND(SUM(data_length+index_length)/1024/1024,1) "DATA(MB)"
FROM information_schema.TABLES
GROUP BY table_schema;

 

 

2. DB 사이즈 중 DATA와 INDEX 나눠서 보기

SELECT
table_schema "DATABASE",
ROUND(SUM(data_length)/(1024/1024),2) as 'DATA(MB)',
ROUND(SUM(index_length)/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
GROUP BY table_schema
ORDER BY 2 DESC;

 

3.특정 DB내 테이블 정보 가져오기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema = 'test'
ORDER BY 3 DESC;

 

4.DB-TABLE 별 COUNT와 DATABASE SIZE 확인하기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES;

 

자주 내가 날리는 쿼리

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema NOT IN ('sys','mysql','information_schema','performance_schema')
ORDER BY data_length DESC;
반응형
반응형

안녕하세요. JohnCom 입니다.

오랜만에 웹서버 구축할 일이 생겨서 하나하나 기록 겸

처음 시작하는 분들께 도움이 되고자 글을 작성합니다.

 

웹 개발을 시작하면

처음 배우게 되는 언어로 여러 시작을 할텐데

자바공화국인 한국에서는 조금 덜 쓰지만 전세계적으로 가장 많이 사용하고

배우기 빠른 언어인 PHP

그리고 사용자들이 무료로 쉽게 사용할 수 있는 MySQL DB를 이용하여 환경 구성을 해보려고 합니다.

 

물론 배포할때는

Linux + PHP + MySQL + Apache + 기타 언어 or 패키지 등이 사용되겠지만

오늘은 이 모든걸 한번에 설치가능한

한방 패키지 설치해보려고 합니다 

 

1. XAMPP 설치

구글 형에게 간단하게 검색해서 진행하면 됩니다.

 

원하는 버전 선택

 

필요한 프로그램만 설치

MySQL, Tomcat, phpMyAdmin 정도는 설치 진행합니다.

 

화면에서 아주 간단하게 볼 수 있습니다.

"Start" 서버 시작과 종료

"Config"기본 설정 파일

"Admin" 관리자 페이지

"Logs" 각종 로그 기록

 

Localhost:80으로 접속해서 정상 설치 되었는지 확인해보세요.

더 자세한 설치 풀영상은 유튜브에 올려두었습니다.

 

https://www.youtube.com/watch?v=O0RPgsu91kk

반응형
반응형

안녕하세요. Johncom 입니다.

이번에 새롭게 PC를 설치하고 결혼준비하면서 

모바일 청첩장을 직접 만들어 보려고 하는데요.

 

클라우드 올리기 전 로컬 테스트 서버를 만들려고 #VmWare 를 설치하려는데

가상머신으로 돌리는 방법이 있길래 직접 한번 해보면서 정리하려고 합니다.

 

1. Hyper-V 설정 활성화


 

Windows 기능 켜기/끄기로 접속합니다.

Hyper-V 부분을 모두 체크 후 확인 눌러주세요.

 

컴퓨터가 재부팅 이후 다음과 같이 검색이 된다면 활성화가 된 것입니다.

 

 

2. Hyper-V 세팅


새로 만들기 -> 가상 컴퓨터

이름과 설치할 디렉토리 지정 필요 -> DISK 공간이 있어야함

호환성 체크 /

윈도우 11이상 사용하는 경우 메인보드에 따라서 2세대 UEFI 펌웨어 설치 필요할 때 2세대로 작업해야 합니다.

우리는 1세대 클릭

램 설정 /

램 설정은 다들 원하는 저의 경우에는 4GB로 설정 실제 PC의 램을 초과하지 않고 넉넉하게 잡아 줍니다.

리눅스는 2GB로도 충분하지 않을까... 윈도우는 최소 4GB는 잡아줘야 버벅임을 느끼지 않습니다...

 

인터넷 사용하는 경우 Default Switch로 일단 설정

위에서 잡아 준 디렉토리의 크기를 고려하여 사용할 만큼 디스크 연결

VmWare를 생각하면 더 많이 잡아도 설치는 되지만... 남는 공간만큼 설정해야겠죠?

 

윈도우 이미지 가져오기

https://johncom.tistory.com/74

 

윈도우 10 무료 설치 방법 - 포맷 클린 설치

안녕하세요. Johncom입니다.이번에 가상머신에 윈도우를 설치하고 있는데제 글 중에 윈도우 설치 관련된 글이 없더라고요...그래서 이번에 가상머신에 설치하면서 한번 정리해보려고 합니다.  1.

johncom.tistory.com

윈도우 설치관련 내용은 따로 별도로 빼두었으니

Disk Clean작업만 빼고 똑같이 진행

 

> 연결 누르고 실행하면 완료입니다.

반응형
반응형

안녕하세요. Johncom입니다.

이번에 가상머신에 윈도우를 설치하고 있는데

제 글 중에 윈도우 설치 관련된 글이 없더라고요...

그래서 이번에 가상머신에 설치하면서 한번 정리해보려고 합니다.

 

 1. USB 포맷


> USB는 이미지를 만들면서 알아서 설정해줄 것이기 때문에 우클릭 후 빠른 포맷을 합니다. FAT32로 진행하셔도 됩니다.

 

 

 

 2. 윈도우 부팅 USB 만들기


https://www.microsoft.com/ko-kr/software-download/windows10

위 사이트에 먼저 접속하셔서 윈도우 10을 무료로 다운로드 받으면 된답니다.

 

 

> 사이트에 접속하셔서 "지금 다운로드" -> 다운로드 파일 실행 -> 다른 PC용 선택

 

 

> 권장 옵션의 경우 기존 PC를 포맷하고 사용하는 경우외에는 제외 시켜주시면 됩니다.

 

 

> 여기서 플래시 드라이브 " !!!! USB의 드라이브 번호와 동일한지  E 드라이브 확인 하세요 !!!! "

 

 

> 모든 완성이 되었다면 이렇게 USB안에 파일이 생성 됩니다.

> 추가로 PC를 바로 사용하려면 이렇게 3DP chip, NET도 같이 들고가면 좋아요

 

 

 

3. USB 부팅 시작하기 


-> 여기서 부터는 메인보드에 따라서 조금씩 설정이 달라서 검색이 필요합니다.

-> USB를 꼽고 화면 처음 시작할때 Del, F2를 누르면 진입이 가능합니다.

 

 

4. 클린 설치 시작


 

> Shift + F10 키를 누른 후 -> diskpart를 입력해줍니다.

다음과 같은 순서로

> diskpart -> list disk -> sel disk 0 (윈도우 설치하려는 disk)

> CLEAN  ->  CONVERT GPT  -> EXIT

순서로 disk를 포맷합니다.

 

> 제품키가 있다면 제품키 없으면 "제품 키가 없음"

 

> 구매하신 라이선스에 Home, PRO 확인 후 설치

> 방금전 CLEAN으로 포맷한 디스크

 

 

> 이렇게 설치를 진행하고 나면 재부팅이 된 후 완료됩니다.

 

!! 3DP Chip, Net을 가져가셨다면 NET으로 네트워크 드라이버 설치, Chip으로 알맞은 드라이버 모두 설치 진행하면 완료입니다.

반응형
반응형

안녕하세요. John Com 입니다.

Python으로 영상 처리하는 프로그램을 만들다가

자꾸 에러가 발생해서.. 아주 간단한 문제이지만

어디에도 해결방법이 안적혀있어 저처럼 python 공부하는 사람들을 위해

글을 적어봅니다.

 

이렇게 떠야 정상 화면인데....

GPT 형한테 배운대로 했더니

 

import cv2 error가 발생하더라고요

 

import cv2

ModuleNotFoundError : No module named 'cv2'

 

....

 

conda install 말고

pip install opencv-python 를 따로 진행해주셔야 합니다.

 

 

conda create -n py310 python=3.10
conda activate py310
# CPU 버전 PyTorch 설치
conda install pytorch torchvision torchaudio cpuonly -c pytorch

# OpenCV 설치
conda install opencv

### 이 부분이 중요!! 가상환경의 python에도 패키지 install 해주셔야 합니다
pip install opencv-python
pip install numpy
반응형
반응형

(상)편에 이어서

Python을 이용하여 실제 번호 예측을 진행해 보겠습니다.

#로또번호예측기

 

코드는 블로그 최하단에 넣어 둘게요.

csv파일은 https://johncom.tistory.com/71

 

AI 빅데이터 분석을 이용한 로또 번호 예측하기 (상) - GPT와 함께

안녕하세요. JohnComputer 입니다.오늘은 한번 GPT를 이용해서 로또 번호 예측 시스템을 만들어 보려고 해요. 아래는 GPT와 빅데이터 분석에 대한 글들이 있어로또 예측기를 바로 만들고 싶은 분들 (

johncom.tistory.com

python 설치는 https://johncom.tistory.com/49

 

python3 설치 부터 경로 설정까지 (pip, python, 환경 변수, path)

안녕하세요. JohnCom 입니다. 오늘은 제 로컬 PC에 Python3 를 설치를 진행하는데 설치하는 방법을 정리해두면 처음 시작하는 분들에게 도움이 될 것 같아서 이렇게 따로 정리해둘려고 글을 씁니다. "

johncom.tistory.com

간단한 로또 번호 추출기는 https://johncom.tistory.com/59

 

python(Random), chatgpt, Deepl 를 활용한 로또 생성기

안녕하세요. JohnComputer 입니다. 오랜만에 글을 적게 되는데요. 요즘 너무 바뻐서 블로그에 글을 쓰고 있지 못하네요 ㅠㅠ 그래도 요번에 간단하게 chatGPT 사용방법, Deepl 소개를 가지고 함께 로또

johncom.tistory.com

 

 

패키지 설치

바로 실행하게 되면 다음과 같은 오류가 발생할텐데

 

필요한 패키지 먼저 설치할게요.

 

pip install numpy
pip install pandas
pip install -U scikit-learn

## tenserflow 설치
pip install tensorflow

tenorflow의 경우 여러가지 설명하자면 너무 복잡하니 간단하게 사용방법만 보아요

 

저는 가상환경 만들어서 진행해서 파일이 있지만

lotto.csv

lotto.py

이렇게 두개 파일만 만들면 된답니다.

 

파이썬 파일을 실행하면

 

 

import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

# CSV 파일 로드
data = pd.read_csv('lotto_data.csv')  # 'lotto_data.csv' 파일을 읽어 데이터프레임으로 로드합니다.

# 데이터 스케일링
scaler = MinMaxScaler()  # MinMaxScaler 객체 생성
data_scaled = scaler.fit_transform(data)  # 데이터 스케일링 (0과 1 사이로 변환)

# 시계열 데이터 준비 함수
def create_dataset(data, time_steps=1):
    X, y = [], []
    for i in range(len(data) - time_steps):
        X.append(data[i:(i + time_steps)])  # time_steps 만큼의 데이터로 입력값 생성
        y.append(data[i + time_steps])      # time_steps 이후의 데이터로 출력값 생성
    return np.array(X), np.array(y)  # 입력값과 출력값 배열 반환

# 시계열 데이터 생성
time_steps = 10  # 이전 10회차 데이터를 사용하여 다음 회차를 예측합니다.
X, y = create_dataset(data_scaled, time_steps)
X = X.reshape(X.shape[0], X.shape[1], X.shape[2])  # LSTM 입력 형식에 맞게 데이터 재구성

# LSTM 모델 구성
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))  # 첫 번째 LSTM 레이어
model.add(LSTM(50, return_sequences=False))  # 두 번째 LSTM 레이어
model.add(Dense(6))  # Dense 레이어: 6개의 숫자를 예측
model.compile(optimizer='adam', loss='mean_squared_error')  # 모델 컴파일

# 모델 학습
model.fit(X, y, epochs=100, batch_size=32, validation_split=0.2)  # 모델 학습 (100 에포크, 배치 크기 32, 검증 데이터 20%)

# 예측
predictions = model.predict(X)  # 학습된 모델을 사용하여 예측

# 원래 스케일로 역변환
predictions_scaled_back = scaler.inverse_transform(predictions)  # 예측된 값을 원래 스케일로 변환

# 예측된 값에서 확률적으로 6개의 번호를 선택하는 함수
def pick_numbers(predictions):
    picked_numbers = []
    for i in range(len(predictions)):
        picked_numbers.append(np.random.choice(predictions[i].astype(int), 6, replace=False))  # 각 회차별로 6개의 번호를 무작위로 선택
    return np.array(picked_numbers)

# 가장 최근 예측된 회차의 숫자를 사용하여 번호 선택
picked_numbers = pick_numbers(predictions_scaled_back[-1:])  # 마지막 예측된 회차의 숫자를 사용
print("Predicted numbers:", picked_numbers)  # 예측된 번호 출력

 

저는 빅데이터나 AI 전문가는 아니지만

개발을 같이 하기 때문에 사용방법만 터득해서 한번 만들어 보았습니다.

사용중에 어려운 부분있으면 댓글 남겨주세요

반응형