전체 글 53

SQL 문자열 치환 REPLACE 함수

SQL REPLACE 함수를 사용하여 select 하는 열의 특정 문자열을 원하는 문자열로 replace 할 수 있다. REPLACE(column명, 치환 대상 문자, 치환 할 문자) >> id, host, port 를 select 한 결과 >> 위 결과에서 host열에서 '10.220.150.66' 이라는 문자열을 빈 문자열로 바꿔주었다. replace(host, '10.220.150.66', '') >> replace 후 열 이름을 적어주지 않으면 열 이름이 replace로 된다. 나는 "HOST"로 바꿔주었다. (as 는 써도 되고 안 써도 된다.)

DB 2022.05.07

sqlite 명령어 정리

django 기본 DBMS로 sqlite를 사용한다. 그동안 검증하는 프로그램들은 django와 postgreSQL 조합이었는데, 이번에 검증하는 프로그램에는 django와 sqlite 조합으로 개발되었다. sqlite는 file 기반 DBMS라 실제로 데이터가 쓰여지는 sqlite file이 있어야 그 안의 내용을 볼 수 있다. 서버기반 DBMS 접속은 DB Client 프로그램으로 쉽게 가능하지만, sqlite는 db file이 있어야 접속이 가능하고 host, port를 통한 접속은 불가능하다. 검증하는 리눅스 서버 내에서 sqlite 명령어로 DB를 확인해야 하기 때문에 이번 기회에 sqlite 명령어를 정리해 놓는다. 1. sqlite 접속 db 파일 있는 곳을 파악한 후 아래 명령어를 실행 s..

DB 2022.04.24

python api 서버에서 파일 다운로드 구현하기 (flask / fastapi)

1. flask로 구현한 api 서버에서 파일 다운로드 send_file 로 구현 from flask import Flask, send_file from waitress import serve app = Flask(__name__) IMAGE_ROOT_DIR = './' @app.route('/images/', methods=['GET']) def getImage(filename): targetFile = IMAGE_ROOT_DIR + filename print(f"File Download : {targetFile}") return send_file(targetFile) if __name__ == '__main__': serve(app, host='0.0.0.0', port=9911) 2. fastapi..

언어/python 2022.04.17

Filesystem File move, File Copy 시 inode 확인

File move(mv) 동일한 파일시스템 내라면 파일의 indoe와 컨텐츠 블록은 유지되며 directory entry만 변경된다. File Copy(cp) 현재 파일과 동일한 파일 내용을 복사한다. inode를 새로 만들고 컨텐츠 블록도 새로 생성된다. inode Unix 파일시스템에서 파일의 정보를 담는 객체. 각 파일들은 모두 inode를 가지고 있다. 파일 시스템 내 파일들은 고유한 아이노드 숫자를 통해 식별 가능하다. inode에는 소유자 그룹, 접근 모드, 파일 형태, 아이노트 숫자 등 파일에 관한 정보를 가지고 있다. inode는 파일의 컨텐츠를 가지고 있는 것이 아니라 파일의 컨텐츠를 찾을 수 있는 포인터 정보만 가지고 있다. 파일시스템이 가질 수 있는 inode는 한정되어 있기 때문에 ..

리눅스 2022.04.10

python json 실습 - json.load(), json.loads(), json.dump(), json.dumps() 차이

python json를 사용할 일이 많아서 정리하고 넘어간다! 1. json.load() json 파일을 읽어서 json object를 python dictionary로 가져옵니다. 2. json.dump() python dictionary 타입의 객체를 json 파일로 씁니다. 3. json.dumps() python dictionary 타입의 객체를 string 타입으로 가져옵니다. dictionary와 string을 출력했을 때 값이 다른 것을 확인할 수 있습니다. 4. json.loads() string 타입의 객체를 dictionary 타입으로 가져옵니다. 아래에서는 dictionary로 가져온 후 name과 age라는 key 에 해당하는 value를 수정하여 저장하였습니다. 전체 코드 impo..

언어/python 2022.04.05

CentOS host에서는 docker container 내 netstat ESTABLISHED 정보를 출력하지 않음

참고 링크 : https://jinane.tistory.com/35 ( linux + docker 환경에서 netstat 로 ESTABLISHED socket 조회하기 ) linux + docker 환경에서 netstat 로 ESTABLISHED socket 조회하기 금일 팀 멤버분이 docker image를 통해 검증 환경을 구성하고, Application -> RabbitMQ로 socket connection 핸들링하는 기능을 확인해보려고 하였다. 기존에 이런 network socket 확인을 하기 위해서 netstat -a.. jinane.tistory.com 이번주에는 방화벽 제한을 통한 테스트를 많이 했다. 내가 단위테스트에 사용하는 리눅스 환경은 CentOS. CentOS에서는 host에서 d..

리눅스 2022.03.27

Unix Socket과 TCP Socket의 차이

Unix Socket 단일 시스템 내에서 프로세스 간 데이터 교환을 허용하는 통신 메커니즘. 동일 시스템 내 실행 중인 프로세스 간 통신이므로 TCP/IP Socket 보다 빠르고 가볍다. 파일 시스템 권한으로 소켓 권한 제어 가능. TCP Socket (TCP/IP Socket) 다른 시스템의 프로세스와 네트워크를 통해 통신하기 위해 사용하는 통신 메커니즘. TCP 소켓은 로컬 IP, 로컬 Port, 원격 IP, 원격 Port 로 식별. Unix 소켓 확인하기 netstat -anp --unix TCP 소켓 확인하기 netstat -anp --tcp 참고 https://serverfault.com/questions/124517/what-is-the-difference-between-unix-socket..

리눅스 2022.03.20

Docker Remote API를 사용하여 원격 Docker 정보 얻어오기

'docker ps' 라는 Docker 명령은 Local에 존재하는 Docker System에서만 유효한 명령어이다. 오늘의 도전 과제 원격지의 'docker ps' 결과 얻어오기 우선 docker service 를 설치하면 기본적으로 unix socket 을 통해 명령을 전달 받는 것만 허용되어 있다. docker ps 라는 명령을 치면 로컬의 unix socket 을 통해 docker daemon이 명령어를 실행하는 것이다. 우리는 다른 서버, 원격의 docker 정보를 가져와야 하므로 원격의 docker에 tcp socket 열어줘야 한다. 내가 접근하고 싶은 docker가 설치된 서버로 접속하여 아래와 같이 작업하자. 1. docker.service 파일에 Docker daemon의 host ip..

Docker 2022.03.12

[postgresql client] dbeaver 설치 / postgres db 연동 / 압축 데이터 다운로드

1. 사이트에서 OS에 맞게 설치파일 다운로드 나는 Window 64bit installer를 다운받았다. https://dbeaver.io/download/ Download | DBeaver Community Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package dbeaver.io 2. 아래 Step 대로 쭉쭉..

DB 2022.03.07

Postgresql Table Lock 테스트 방법

PostgreSQL은 sql을 모두 transaction 내에서 실행시킨다. transaction block : BEGIN 명령으로 시작하여 COMMIT 명령(또는 ROLLBACK)으로 끝나는 그룹 LOCK 명령은 Transaction block 안에서만 사용할 수 있다. 아래와 같이 BEGIN 명령 없이 LOCK을 사용하면 error가 발생한다. 테이블 LOCK 걸기 (ACCESS EXCLUSIVE) 테이블 LOCK 걸기 (ACCESS EXCLUSIVE) insight_gateway=# BEGIN WORK; BEGIN insight_gateway=# LOCK TABLE public.tasks IN ACCESS EXCLUSIVE MODE; LOCK TABLE -- LOCK 적용 중. table lock ..

카테고리 없음 2022.02.23
반응형