본문 바로가기

Developer

(50)
linux vi error vi를 여니까 아래처럼 떴다. vi에서 나가려고 :q!를 하면, 아래와같이 뜬다. 이거처럼 뜨면. /root/.viminfo에 가서 .vminfo를 제외하고 .vminfo.tmp 등의 파일을 모두 지우라고 하는데, 나는 그런 파일이 없었다. /.vminfo 파일 한개뿐이었다 그리고 가상환경에서 파이썬 파일을 실행하려고 하면, 이런 에러가 발생한다. 아직 해결책은 찾지못했다,,
[Python] 이벤트 루프 이벤트루프 (event loop, 메시지 디스패칭 message dispatching) 프로그램의 중앙에 위치한 제어 흐름이다. 어떤 메시지가 큐에 들어가면 이벤트 루프가 큐에서 메시지를 꺼내 적절한 함수로 전달. 가장 많이 사용되는 이벤트 소스는 I/O이다. 그러나, I/O는 본질적으로 블로킹 작업이기 때문에 프로그램 실행 속도가 느려진다. 이런 문제를 해결하기 위해 비동기 모드(asyncronous mode)소켓을 사용해서 문제를 해결해본다. 단순히 소켓을 비동기모드로 설정하여도, 서버는 여전히 5초 지연 후에 응답을 보낼 것이다. 따라서, socket의 recv를 호출했을 때, 소켓은 읽을 데이터가 없다. 따라서 BlockingIOError가 발생한다. 이 문제를 해결하기 위해서 select를 사용..
MySQL Query 추적 1. MySQL root 로그인 2. general_log(query log) 확인 show variables like 'general%'; general_log 의 value 가 OFF 상태면, 로그 기록이 꺼져 있는 상태인것이다. general log를 ON 상태로 활성화 시키면, MySQL이 쿼리 요청 받는 즉시 general log에 기록한다. 3. general log 상태를 ON으로 바꾼다. set global general_log=on; 2번에서 show variables like 'general%' 를 했을 때, general_log_file 의 value에 해당하는 경로에 로그가 작성된다. 재시작할 필요없이 바로 적용되니 확인 가능.
intelliJ - git 연동하기 intelliJ와 git을 연동해서 사용할 수 있다. 1. intelliJ를 먼저 실행한 후에, [File] - [Settings]에 들어간다. 2. [Version Control] - [Github] 메뉴에 들어간 후, Add Account 로 연동할 git 계정을 입력한다. Add Account를 하면, git 페이지가 열리면서 계정 입력하는 부분이 나오는데 git에서 시키는대로 하면 연동이 된다! 간단하게 연동 가능하다
[Python] Python에서 fpdf 사용하기 파이썬 코드로 pdf 파일을 만들어야하는 경우, fpdf 모듈을 사용할 수 있다. from fpdf import FPDF pdf = FPDF() pdf.add_page() pdf.set_font('Arial', 'B', size=15) pdf.cell(200,10, txt="hello world", ln=2, align='C') pdf.output("test.pdf", 'F')
[Python] 딕셔너리 키 값 존재여부 확인 Python2 를 사용하는 경우, fruit_dict = {"apple": 3, "grape":5, "orange": 1} # key value가 apple이 존재할 경우, True # else: False print(fruit_dict.has_key("apple")) Python3 를 사용하는 경우, fruit_dict = {"apple": 3, "grape":5, "orange": 1} # apple에 해당하는 value 출력 print(fruit_dict.get("apple")) fruit_dict = {"apple": 3, "grape":5, "orange": 1} if fruit_dict["apple"]: print("apple exists") fruit_dict = {"apple": 3, "g..
[MySQL] 백업 도구 - mysqldump mysqldump? 적은 양의 데이터를 백업할 때 가장 간편하게 사용 가능 필요 권한 SELECT : 백업 대상 테이블의 데이터 조회 SHOW VIEW : 뷰 객체 백업 시 뷰 조회 TRIGGER : 트리거 객체 백업 LOCK TABLES : --single-transaction 옵션 사용하지 않고, 백업할 때 데이트 변경을 박기위한 테이블 단위 잠금 FILE : mysqldump의 결과 백업 파일 생성 및 디스크 저장 CREATE : 백업 파일 복구 권한 ALTER DATABASE : 프로시저, 트리거 백업 시 해당 캐릭터 인코딩 보존에 사용 전체 데이터 베이스 백업 mysqldump --all-databases [기타 옵션] -u[USER_NAME] -p[PASSWORD] > /data/table_a..
[MySQL] Replication(복제) 레플리케이션 이란? Replication은 단어 그대로 복제를 의미 하나의 마스터 DB에서 하나 이상의 슬레이브 DB로 데이터를 비동기적으로 복제하는 기능. -> 읽기 부하 분산 또는 고가용성이 목적 레플리케이션의 목적 스케일-아웃(Scale-out)을 위한 솔루션 마스터 DB : DML(INSERT, UPDATE, DELETE ... ) 쿼리 전용으로 사용 슬레이브 DB : 읽기(SELECT) 쿼리 전용 데이터의 안정성 보장 마스터 DB에 영향을 주지않고, 슬레이브 DB로 레플리케이션 시킨다. 데이터 분석 슬레이브 DB에 레플리케이션된 실시간 데이터로 분석 작업 가능 레플리케이션 설정 - 마스터 DB 마스터 DB에서 my.cnf 파일을 확인한다. log-bin이 활성화 되어 있어야한다. mysql-bi..