반응형

전체 글 140

python-mysql-replication 과 transaction, GTID

1. replication Database 관점에서 replication이란 데이터베이스의 복제를 의미한다. 단순 그 시각에서의 복제 뿐만 아니라, 복제 서버로써 기존 서버와의 동기화도 되어있는 서버를 만드는 것이다. 이러한 replication 기술은 기존 서버를 master, 복제 서버를 slave 라고 부르기도 하는데, 이를 사용하는 이유는 다음과 같다. reference 1.high availability, data security 만약 데이터베이스에 화재가 나서 복구가 당장 시급할 때, 복제 서버 한대를 백업용으로 사용 중이었다면 손쉽게 복구 한 후 서비스를 지속가능하게 유지할 수 있다. 또한 data corruption이 일어나지 않게도 할 수 있다. 2. scale-out 기존 서버 한대에는..

카테고리 없음 2023.07.16

python-mysql-replication NameError: name 'byte2int' is not defined 오류 및 해결

설명 환경 : python3, pymysql 1.1.0 오류 byte2int 라는 함수가 없다는 오류 이유 byte2int 함수는 pymysql.util 이라는 package 안에 있습니다. 근데 pymyql.util 이 없어서 byte2int 를 가져오지 못하는 이슈들이 많이 있었습니다. (참고링크) 찾아본 결과, pymysql > 0.1 버전에서는 존재하지 않게 되는 문제가 있었습니다. (pymysql > 0.1 버전에서는 pymysql.util 이 import 가 되지 않는 이슈) 왜냐면 이 라이브러리를 import 하는 과정에는 aiomysql 가 import 되어야 하는데, requirements patch 가 제대로 안된 이유로 0.10 보다 큰 버전을 allow 하지 않기 때문입니다. 해결책..

git 에 실수로 올렸던 .env 파일 내리기

발단은 이렇다. docker compose file 을 작성하던 도중 .env 파일을 .gitignore 에 포함시키지 않고 업로드 하는 실수를 했다. 바로 github 페이지에서 삭제하고, master branch 로 commit 했다. 그 후에 .gitignore 파일에 .env, */*.env를 작성해서 push를 했음에도 불구하고 자꾸만 .env 파일이 github에 노출되는 것이었다! 그래서 이유를 찾아보았는데, 그 이유는 이미 파일이 git history에 저장되어있기 때문이었다. 그래서 해결방법은 다음과 같다. git rm .env --cached cached에서 파일을 삭제하는 것이다. 참고한 stackoverflow 사이트는 다음과 같다. https://stackoverflow.com/q..

개발/.git 2023.07.06

openSSL로 self-signed key 만들기, 명령어 의미

openssl로 self-signed key 와 certificate pair 만들기. openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem 🍎 req: x.509 CSR (certificate signing request) management 를 사용하겠다는 뜻. x.509는 ssl, tls 가 사용하는 public key infrastructrue standard. 🍎 -x509 : certificate signing request 대신에 self-signed certificate 를 사용하겠다고 명령. 🍎 -nodes : passphrase를 이용해 우리의 certificate 를 보안하는 과정..

nginx 공식문서 번역 (feat. cnf 파일 변경하는 법 for docker)

참고한 Nginx 공식 문서 : http://nginx.org/en/docs/beginners_guide.html Beginner’s Guide Beginner’s Guide This guide gives a basic introduction to nginx and describes some simple tasks that can be done with it. It is supposed that nginx is already installed on the reader’s machine. If it is not, see the Installing nginx page. This guide de nginx.org 🌕 nginx란 nginx는 하나의 master process와 여러 worker process로..

카테고리 없음 2023.07.04

linux [Dockerfile shell script]( nginx cofiguring for docker using sed command in shell in Dockerfile) sed 명령어로 특정 문자열 뒤의 모든 문자열 치환하기, 주석처리하기, 문자열 추가하기.

sed 명령어로 특정 문자열 뒤의 모든 문자열 치환하기, 주석처리하기, 문자열 추가하기. (feat. nginx config file 수정하기) 이 명령어를 찾게 된 맥락은 다음과 같다. docker compose 를 이용해서 nginx, wordpress, mariadb 를 연동하려고 하는데 conf 파일의 수정이 불가피했다. dockerfile 명령어 COPY를 이용해서 host의 미리 수정해둔 파일을 가져올 수 있기는 하다. 이미 있는 default 파일을 원하는 대로 수정하는 것이다. 그러나 default conf 파일이 update 된 경우 작동이 잘 안될 수도 있다. 또한 이 파일을 어쩔 수 없이 git 에 올려야 하는 경우, WORDPRESS_AUTH_KEY 같은 값들이 노출 되기 떄문에 보..

merge-insertion sort, 혹은 Ford–Johnson algorithm 찬찬히 뜯어보기(2)

이전 글 보러가기 : https://ebang.tistory.com/103 3. merge insert sort 그래서 결국 merge insert 는 뭔가하면, 배열을 쪼개고 다시 합병하는 과정이라는 점에서 merge sort, 원소가 들어가는 부분을 탐색하는 점에서 Insertion sort 의 포인트를 갖고 있는 알고리즘이라고 할 수 있다. 단 이전의 insertion sort 에서 설명된 것과는 다르게 삽입될 부분이 이진탐색으로 탐색된다. 이진 탐색은 이미 배열이 정렬되어있을 때, 특정 값이 들어갈 위치를 범위를 절반으로 줄여가면서 탐색하는 기법이다. (중간값보다 크면 그 이후 범위에서 다시 찾고, 중간값보다 작으면 그 이전 범위에서 다시 찾는 방식) 그리고 이게 핵심이다. binary searc..

merge-insertion sort, 혹은 Ford–Johnson algorithm 찬찬히 뜯어보기(1)

개요 1. 소개 2. merge sort 3. insertion sort 4. binary search (이진 탐색) 4. Tim sort 1. 소개 꽤나 느린 알고리즘이고 특정 자료구조가 필요하다. (쌍으로 묶는... ) 하지만 컴퓨터 과학적인 관점에서 꽤나 흥미롭다 : 숫자 비교를 아주 최적화해서 하지는 못하지만, 비교의 횟수를 최소로 만드는 면에서는 가장 널리 알려진 알고리즘이다. The Art of Computer Programming, Volume 3 by Donald Knuth 에서 소개 되어있는 알고리즘이다. 이해하는데 이틀 ~ 삼일 정도 걸렸고 여태 알고 있던 알고리즘으로만 사고방향이 흘러서 그 틀을 깨는데 가장 시간이 오래걸렸다... 그래도 찬찬히 뜯어본만큼 기록으로 남겨두고 싶어서 글을..

[C++] iterator에 대하여 (반복자)

🟡 반복자의 정의 반복자 : 컨테이너의 한 지점을 가리키는 객체. 컨테이너의 종류와 내부 구조에 상관없이 한 요소를 가리키는 목적으로 반복자라는 동일한 장치를 일관된 방법으로 사용할 수 있다. 컨테이너에 대해 알고리즘을 적용하는 등 저장된 요소에 접근해야할 때는 반복자가 필요하다. 즉 반복자가 알고리즘과 컨테이너의 연결 매개체로 존재한다. 그리고 반복자를 통해서 여러 종류의 컨테이너를 동일한 알고리즘을 적용해서 사용할 수 있다. 그에 대한 예시로 STL 알고리즘에서는 container 정보가 아니라 iterator 정보만을 전달해서 사용하도록 하고 있다. 🟡 STL 알고리즘과 컨테이너를 잇는 '반복자' stl 알고리즘이 받는 반복자는 단일 요소보다는, 반복자 구간을 받아들여서 구간 내의 모든 요소에 대해..

개발/C,C++ 2023.06.12
728x90
728x90