기본적으로 SQLite는 embedded 데이터베이스이다. 즉, 앱 안에서 돌아간다. 반면 PostgreSQL은 클라이언트 서버를 바탕으로 작동한다. 따라서 세팅을 하고 실행하기 위해서 DB 서버가 필요하다. <SQLite> <PostgreSQL> SQLite는 다섯가지의 타입을 지원한다: BLOB, NULL, INTEGER, TEXT, REAL Postgresql은 거의 모든 타입을 지원한다. 라이브러리 측면에서는 PostgreSQL이 훨씬 크다. SQLite는 500kb정도로 작다. SQLite는 데이터베이스를 그냥 하나의 디스크 파일에 저장해서 복사 이동이 용이하다. PostgeSQL은 파일로 export하고 다른 서버에 업로드해야 이동이 가능하다. SQLite는 minimal design이기 때문에 속도가 빠르다. 하지만 복잡한 작업에서는 PostgreSQL이 효율적이다. PostgreSQL은 ACID를 따른다. ACID stands for Atomicity, Consistency, Isolation, Durability. SQLite는 기본 작업에 제한되는 반면 PostgreSQL은 확장이 용이하다. SQLite를 쓰는 것이 좋은 경우: 다른 앱과의 상호 작용이 없고 단독으로 동작하는 앱. 확장할 일이 없는 작은 앱. 디스크에서 바로 읽거나 써야되는 앱 IoT 장치. PostgreSQL를 쓰는 것이 좋은 경우: 데이터의 integrity와 reliability가 중요할 때. 복잡한 작업을 할 수 있어야 할 때. ------------------------------------------- Reference https://tableplus.com/blog/2018/08/sqlite-vs-postgresql-which-database-to-use-and-why.html
ssh(secure shell) 원격 제어 클라이언트와 서버가 있다. 클라이언트에는 ssh client가 있어야 하고 서버에는 ssh server가 있어야 한다. 클라이언트에서 rm과 같은 명령을 보내면 ssh server가 자기가 설치돼있는 컴퓨터에게 명령을 전달하고, 그 컴퓨터는 그 명령을 하고 결과를 ssh server에 보낸다. 그러면 다시 ssh client에게 결과를 전달해준다. Port 웹은 80, ssh는 22번 포트를 사용한다. 모든 컴퓨터에는 포트가 있다. 0부터 65000까지가 있다. 클라이언트 웹브라우저에서 웹서버에 접속할 때 기본적으로 80번 포트로 접속을 한다. naver.com이라고 치면 자연스럽게 naver.com:80으로 접속하는 것이다. 웹서버는 요청을 처리하고 마찬가지로 80번 포트로 전해준다. 1024까지의 포트는 well-known port이다. 고정된 포트 번호이다. 그 나머지의 포트는 사용자가 임의로 정해서 쓴다. 만약 웹서버의 포트번호를 80이 아니라 8888로 하면 naver.com:8888로 해줘야만 들어갈 수 있다. Port Forwarding ISP(Internet Service Provider)에서 인터넷을 받아서 라우터(공유기)를 통해 집 안 각각의 컴퓨터들이 연결된다. ISP에서 public IP가 들어온다. 그 IP는 라우터의 IP가 된다. 그 라우터에 연결된 각각의 컴퓨터들은 또 고유한 private IP address를 받게 된다. Public IP는 외부에서도 그 IP를 알고 있으면 접근이 가능하다. Private IP는 외부에 공개되지 않는 IP이기 때문에 그 아이피만 갖고는 접속이 안된다. 포트 포워딩: 사용자가 라우터에 9000번 포트로 접근을 하면 그 포트는 라우터에 연결된 컴퓨터 중 하나로 연결되도록 라우터를 설정할 수 있다. router IP는 환결설정 tcp/ip 칸이나 어딘가에 나와있다. 192.168.0.1 라우터 ip에 접속하면 공유기 ...
``` pip3 install kazoo ``` https://kazoo.readthedocs.io/en/latest/basic_usage.html https://kazoo.readthedocs.io/en/latest/api/client.html ### 접속 ``` from kazoo.client import KazooClient zk = KazooClient(hosts='127.0.0.1:2181') zk.start() ``` 호스트에 접속할 때 default port는 2181이다. ### 상태 Listener zookeeper의 상태가 변하는 것을 알 수 있다. ``` from kazoo.client import KazooState def my_listener(state): if state == KazooState.LOST: # Register somewhere that the session was lost elif state == KazooState.SUSPENDED: # Handle being disconnected from Zookeeper else: # Handle being connected/reconnected to Zookeeper zk.add_listener(my_listener) ``` LOST CONNECTED SUSPENDED 의 state를 가질 수 있다. 가능한 상태 변화 - LOST -> CONNECTED - CONNECTED -> SUSPENDED - CONNECTED -> LOST - SUSPENDED -> LOST - SUSPENDED -> CONNECTED ### CRUD - `zk.create("/my/favorite/node", b"a value")` `create(path...
댓글
댓글 쓰기