전체 글
-
-
Python: Popen 백그라운드 실행 및 로그 읽기 (linux)컴퓨터/파이썬 2020. 12. 22. 09:22
subprocess subprocess — Subprocess management — Python 3.9.1 문서 subprocess — Subprocess management Source code: Lib/subprocess.py The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and docs.python.org 1. 할 것 popen으로 서버 프로그램을 실행해서 터미널을 닫아도 종료가 안되게 만들고 (이 글에선, Apache..
-
Apache Kafka: local을 위한 명령어 인터페이스 (CLI)컴퓨터/Kafka 2020. 12. 18. 22:26
Kafka 심심해서 만들어본 툴 Apache Kafka A Distributed Streaming Platform. kafka.apache.org 참고: Hyper-V 가상환경에서 Kafka 서버 만들기 1. 소개 아직, 실행 파일로 만들거나 소스를 최적화하진 않았지만 실행 가능 상태이다. Confluent로 local 개발을 해보려고 했으나 confluent local은 매번 실행할 때마다 Kafka 데이터가 날아간다. 터미널에서 명령어로 카프카를 주로 돌리는데, 서버가 잘 실행이 된건지, 출력이 애매하고, 명령어가 길어 힘들어서 하나 만들었다. TO-DO: 최적화 기능 주키퍼 서버, 카프카 서버 실행 주키퍼 서버, 카프카 서버 종료 주키퍼 서버, 카프카 서버 로그 보기 카프카 토픽 생성/제거/목록/설..
-
Hyper-V 가상 linux/ubuntu, Kafka 서버 외부에서 접속하기컴퓨터/Kafka 2020. 12. 17. 11:54
Ubuntu 기준 자꾸 프로세스 사용 중 오류가 뜨고, confluent를 이용하기 위해 ubuntu로 서버를 만들었다. 1. Hyper-V 가상 환경 랜 설정 외부용과 내부용을 따로 만들어서 설정했다. Hyper-V 관리자 - 가상 스위치 관리자에서 새로 만들기로 외부/내부용을 만들어준다. (IP 알아서 잡아줌) 가상 스위치 만들기 Hyper-V 가상 환경 네트워크 변경 Hyper-V로 가상 환경 만드는 법은 관리자에서 새로 만들기 하고 절차만 따라 하면 금방 만들어진다. 가상 환경의 설정으로 들어가서 네트워크 어댑터를 바꿔준다. (ubuntu iso를 다운로드하여서 설치) 네트워크 공유 외부 네트워크 - 우클릭 - 공유에서 내부로 설정한 NAT으로 공유해준다. 2. 가상 환경에서 Apache Kafk..
-
Github Desktop: verified commit 만들기컴퓨터/소프트웨어 2020. 12. 16. 08:52
Windows 10 기준 1. Git bash를 열어서 gpg 키가 있는지 확인한다. gpg --list-secret-keys --keyid-format LONG 위와 같이 목록이 안 나오면, 아래 명령어로 gpg 값을 생성한다. gpg --full-generate-key Github 이름, 메일을 적고 대충 넘긴다. 2. export 맨 위 명령어 실행 후, 이메일 뒤에 나와있는 부분을 복사한다. 이 글에선, sec rsa2048/복사할 부분, 2020-12-09 gpg --armor --export 418CD... ----BEGIN ~~~ END ---, BEGIN 문자를 포함하며 전부다 복사한다. Ubuntu keyserver에 업로드 하기 gpg --keyserver keyserver.ubuntu..
-
Windows Kafka: 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다.컴퓨터/Kafka 2020. 12. 15. 16:45
가끔가다가 kafka 서버 콘솔에서 000~0000.timeindex ~: 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다. (the process cannot access the file because it is being used by another process) 라고 오류가 뜨면서, 서버가 죽어버린다. 무슨 오류인지 정확히 설명은 없고, kafka-server-stop을 해보아도 사용 중인 프로세스도 없고... 카프카 공식 오류 목록에 올라가 있긴하다. (그냥 리눅스 버전으로 쓰는 걸 추천하는 것 같다) 해결 방법 1 로그 폴더를 지워버린다. 프로덕션에선 권장하진 않지만, server.properties에 log.dirs로 설정돼있는 폴더 안 데이터를 전부 지우고, 다..
-
Python: Kafka + 대학교 공지 Parser + Slack API + MySQL컴퓨터/파이썬 2020. 12. 15. 15:00
결과물 1. 만들 것 사실, 하나의 파일로, parsing 하고, slack api에 전달하고, mySQL이나 json으로 저장해도 되지만 (Kafka Connect Sink로 해도 되고 방법은 많다.) 공부해본 것을 사용하기 위해, 짬뽕 Apache Kafka Producer에서 대학교 공지 데이터 불러오기 MySQL로 공지 저장과 동시에 Consumer로 데이터 전달하기 Apache Kafka Consumer에서 Slack API를 이용하여 댓글 남기기 (카카오톡 챗봇이 수락이 되면 카카오톡 챗봇으로 업데이트 예정) (서버 부담을 덜기 위해, 1시간 간격으로 공지 파싱) 2. 준비물 Apache Kafka Apache Kafka Apache Kafka: A Distributed Streaming Pl..
-
Python MySQL: with OPEN_DB 만들기컴퓨터/MySQL 2020. 12. 15. 10:35
commit은 항상 하고, cursor를 주로 사용하기 때문에 알아서 close 시키는 with문을 만들고 싶었다. custom with문 만들기 import os from contextlib import contextmanager @contextmanager def OPEN_DB(): # connect to my local MySQL instance using connection string db = mysql.connector.connect( host="localhost", user=os.environ["MYSQL_USER"], password=os.environ["MYSQL_PASSWORD"], database="mydb", charset="utf8", ) cursor = db.cursor(buff..