본문 바로가기

분류 전체보기

[python] gradio -> UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 2072: illegal multibyte sequence 에러 해결 방법 gradio를 사용하려니깐 시작부터 발목을 잡았다. https://github.com/gradio-app/gradio/issues/6364 Encoding issues in newer Gradio versions · Issue #6364 · gradio-app/gradio Describe the bug In 3.33.1, my gradio app could be launched perfectly fine on both Windows and Linux. However, when I upgraded to the most recent version, I was getting encoding issues left and rig... github.com -> 구글링을 해보니 라이브러리 소스에 들어가서 직접 rea.. 더보기
Webhook이란? 클라이언트에서 서버로 요청을 보내고 서버에서 알림 서버에 받은 요청을 전달하는데 알림 서버는 해당 요청에 대한 응답을 클라이언트로 바로 보내는 것을 의미 서버 자원 측면에서 효율적일 수 있지만 timeout, limit 관리를 해줄 필요가 있다. Queue 또는 Proxy를 통해서 관리해줄 수 있다. 더보기
redis-cli info 명령어로 redis 서버 정보 확인하기 PS C:\Users\djdj0> redis-cli 127.0.0.1:6379> info # Server redis_version:3.0.504 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:a4f7a6e86f2d60b3 redis_mode:standalone os:Windows arch_bits:64 multiplexing_api:WinSock_IOCP process_id:12876 run_id:356ae6667c031e1875136da12028c8ba8279ed0e tcp_port:6379 uptime_in_seconds:32577 uptime_in_days:0 hz:10 lru_clock:16592402 config_file:C:\Program.. 더보기
mysql > 별 다른 짓을 안해도 자동으로 last_modified 처리하는 방법 * 테이블을 생성할 때 칼럼 뒤에 다음 명령어를 추가해주면 된다. CREATE TABLE exchange_rates_now ( cur_unit VARCHAR(20) PRIMARY KEY, ttb DECIMAL(10, 2), tts DECIMAL(10, 2), deal_bas_r DECIMAL(10, 2), cur_nm VARCHAR(50), last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); * 기존 테이블에 칼럼을 추가하는 방법 ALTER TABLE exchange_rates_now ADD COLUMN last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CUR.. 더보기
MySQL 테이블 DCL 관련 기능 describe 테이블명; - 칼럼, 데이터타입, NULL 여부, PK 여부, 기본값, 제약조건, 기타정보를 확인할 수 있음 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = '데이터베이스명' AND TABLE_NAME = '테이블명'; - 조회할 테이블의 제약조건을 확인할 수 있음 (작은 따옴표 필수) ALTER TABLE 테이블명 DROP FOREIGN KEY 제약명; - 제약조건을 제거하는 방법 ALTER TABLE 테이블명 ADD FOREIGN KEY (테이블명.FK명) REFERENCES 참조테이블(참조테이블.PK명); - 제약조건을 추가하는 방법 ALTER TA.. 더보기
ORM - Autocommit에 대해 python - sqlalchemy autocommit을 true로 하는 경우, 개별 트랜잭션에 대해 프레임워크에서 자동으로 명시적으로 commit()을 하지 않아도 자동으로 begin() ~ commit()/rollback()을 감싸준다. 하지만 명시적으로 commit()을 하는 경우, 그 전에 begin() 메소드를 호출해줘야 한다. 트랜잭션을 원자적으로 관리하고 싶은 경우 autocommit을 false로 둔다. 더보기
Isolation level이란? 트랜잭션이 시작하고 끝나는 시점 / Commit 여부 / 두 개의 변수인 경우 이 세 가지를 염두해놓고 생각해봐야 한다. 먼저 데이터 일관성이 깨지는 과정을 단계별로 알아보면 다음과 같다. 1) read uncommit - commit 되지 않은 데이터를 읽기 때문에 동시에 두 개 이상의 트랜잭션에서 쓰기 연산 수행시 데이터 일관성이 깨질 수 있음 2) read commit - commit 데이터를 읽고 쓰기 연산을 수행하기 때문에 데이터 일관성이 '어느 정도' 보장 - A 트랜잭션이 종료되기 전에 B 트랜잭션이 쓰기 연산을 하고 commit 까지 해버리면 A 트랜잭션이 종료될 때 시작시 조회했던 값이랑 불일치하는 경우가 발생하고 이를 non-repeatable read 라고 함. 반복 조회한 값이 서로.. 더보기
Cannot add or update a child row: a foreign key constraint fails 외래키 관련 문제임 외래키는 다른 테이블의 기본키를 참조하는 키를 의미 UPDATE/INSERT 할 테이블에서 외래키를 참조하고 있을 때 발생 에러가 발생하는 이유는 참조할 외래키가 다른 테이블에 존재하지 않기 때문임 todos 테이블과 user 테이블이 서로 참조 관계를 맺고 있을 때 # 1. user 테이블의 기본키는 id 칼럼임 # 2. todos 테이블의 user_id는 user 테이블의 PK인 id를 외래키로 참조하고 있음 # 3. user 테이블에는 id가 1인 row 만 존재함 # 4. 만약 여기서 외래키인 user_id 에 2를 update/ insert 하면 어떻게 될까? > 에러 발생 더보기