Backend
11장. 트랜잭션
트랜잭션 데이터베이스의 하나의 논리적인 작업 단위 AICD A : 원자성 - 복구 I : 고립성(독립성) - 트랜잭션간의 간섭 배제(동시성제어) C : 일관성 - 나중 실행 후 내용이 일관성이 있어야함 D : 지속성 - 영구적으로 저장 Write의 우선 순위 1. 버퍼 //Main Memory I/O 속도 개선책 2. 로그 //일련의 Disk 블럭 복구를 위한 대비책 Seek Time(접근시간)을 줄임 Log에 기록되면 실제 DB에 기록됨이 보장됨 3. Real DB //산재된 Disk 블럭 정상 수행시 버퍼의 내용이 기록됨 완료(Commit) - 부분 완료 후 트랜잭션 결과의 영구보존이 보장 실패(Rollback) == 되돌리기 - 동작이나 부분완료 상태에서 더이상 진행 안 됨 - 부분완료전 장애 : ..
MariaDB 외부IP 접근 허용
grant all privileges on *.* to 'root'@'%' identified BY '111111';
(Python) MariaDB와 python 이미지 통신(pandas 이용)
import pandas as pd from sqlalchemy import create_engine from PIL import Image import base64 from io import BytesIO engine = create_engine('mysql+pymysql://root:111111@113.198.234.39/project', echo = False) ## 이미지 DB에 저장하는 code buffer = BytesIO() im = Image.open('test3.jpg') im.save(buffer, format = 'jpeg') img_str = base64.b64encode(buffer.getvalue()) img_df = pd.DataFrame({'carnumber': '999가12..
(Python) TCP socket 통신 채팅 구현
Client.py from socket import * import threading import time def send(sock): while True: sendData = input('>>>') sock.send(sendData.encode('utf-8')) def receive(sock): while True: recvData = sock.recv(1024) print('상대방 :', recvData.decode('utf-8')) port = 8081 clientSock = socket(AF_INET, SOCK_STREAM) clientSock.connect(('127.0.0.1', port)) print('접속 완료') sender = threading.Thread(target=send, arg..
(Python) 라즈베리파이4 webcam TCP socket 통신
server.py import socket import cv2 import numpy as np # socket에서 수신한 버퍼를 반환하는 함수 def recvall(sock, count): # 바이트 문자열 buf = b'' while count: newbuf = sock.recv(count) if not newbuf: return None buf += newbuf count -= len(newbuf) return buf HOST = '' PORT = 8485 # TCP 사용 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print('Socket created') # 서버의 아이피와 포트번호 지정 s.bind((HOST, PORT)) print('Soc..