분류 전체보기
-
[psycopg2] postgresql oid 에 대한 텍스트 가져오는 쿼리Programming Language/Python 2021. 11. 15. 18:05
postgresql 에는 oid (object identifier) 가 있는데 테이블의 타입도 oid 로 관리하고 있다. 만약 python 에서 psycopg2 라이브러리를 사용한다면, 아래처럼 타입을 oid 로 받게 된다. import psycopg2 conn = psycopg2.connect() cur = conn.cursor() cur.execute("select A, B from TEST") cur.description # (Column(name='A', type_code=20), Column(name='B', type_code=25)) 이때, 해당 oid 에 대한 타입명을 알고 싶으면 아래 쿼리를 사용하면 알 수 있다. # psql select 20::regtype::text; text ----..
-
RPC / gRPC 와 예제 코드 with Go, PythonOpen Source 2021. 11. 8. 11:44
What is gRPC? 1. RPC (Remote Procedure Call) 1-1. RPC 는 무엇인가? software communication protocol network 의 상세 정보를 몰라도, 한 프로그램이 다른 컴퓨터에 있는 프로그램의 서비스에 request 를 할 수 있다. 외부 process 가 다른 process 를 호출하기 위해서 사용된다. Procedure call: function call or subroutine call 함수 호출과 같은 순차적인 호출 client - server 모델을 사용한다. request 를 하는 프로그램이 client service 를 제공하는 프로그램이 server RPC 는 일반적인 함수 호출과 동작이 비슷하다. server 에서 결과를 리턴 할..
-
[Jenkins] Multibranch Pipeline 이용하기Open Source/Jenkins 2021. 10. 26. 15:07
Jenkins Multibranch Pipeline 이용하기 1. Multibranch Pipeline Plugin 설치하기 Manage Jenkins > Manage Plugins 선택 Pipeline: Multibranch 설치 2. Multibranch Item 생성하기 Dashboard > New Item 선택 이름 설정 후 Mulibranch Pipeline 형태로 생성 Branch Sources > GitHub App 선택 Credentials 선택 Repository HTTPS URL 입력 Behaviors 상황에 맞게 선택 Build Configuration 에 Jenkinsfile 의 경로 입력 Save 3. Jenkinsfile 작성하기 Jenkinsfile 사용하기 문서 를 참고하여 ..
-
[Jenkins] Github 과 Jenkins 연결하기Open Source/Jenkins 2021. 10. 26. 14:58
Github 과 Jenkins 연결 github 과 jenkins 를 연결하는 방법은 여러가지가 있지만, 여기서는 github 의 App 을 사용하여 연결을 한다. 젠킨스 설치는 젠킨스 설치 1. GitHub App 생성하기 profile > Settings 에 들어가서, Developer settings 선택 GitHub Apps 창에서 New GitHub App 선택 필요한 정보 입력 GitHub App name 에 App 의 이름 입력 Homepage URL 에 github repository url 입력 Webhook URL 에 외부에서 연결이 가능한 jenkins 의 url 을 입력하고, 뒤에 /github-webhook/ 을 입력 (마지막 / 는 항상 입력 해야함) Repository perm..
-
[Jenkins] Jenkins 설치 하기Open Source/Jenkins 2021. 10. 26. 14:46
젠킨스 설치 가이드 링크 : https://www.jenkins.io/doc/book/installing/docker/ 젠킨스 설치 (Docker) 도커에서 브릿지 네트워크를 사용하기 위해서 네트워크 생성 docker network create jenkins jenkins docker 안에서 docker 명령어를 사용하기 위해서 docker:dind 이미지를 실행시킨다. docker run \ --name jenkins-docker \ --rm \ --detach \ --privileged \ --network jenkins \ --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/cl..
-
Spark Cluster 구축 (Standalone Mode)Open Source/Spark 2021. 9. 14. 22:54
spark 을 사용하다가 클러스터를 구축 할 때 반복작업들이 존재하기 때문에 해당 내용을 기록합니다. 아래 설치 명령어는 centos7 서버 기준(root 계정 사용)이기 때문에, ubuntu, macOS, windows 에서는 다를 수 있습니다. 1. 모든 노드 공통 먼저 OS 에 디펜던시를 설치한다. python3 java 각 버전은 사용자 환경에 맞게 설치한다. 여기에서는 python 3.6, java 1.8, spark 2.4.4 를 설치한다. 1.1. hostname 설정 echo "x.x.x.1 spark-master" >> /etc/hosts echo "x.x.x.2 spark-slave01" >> /etc/hosts echo "x.x.x.3 spark-slave02" >> /etc/host..
-
Scala 문법Programming Language/Scala 2021. 6. 24. 18:06
원시 타입 Scala 는 1(Int 리터럴) 과 같은 원시 타입(Primitive Type) 은 Object 로 취급한다. java 원시 타입은 정수, 실수, 문자, Bool 과 같은 literal 의 실제 데이터 값을 저장하는 타입이고, java 참조 타입은 Object 의 메모리 주소를 참조하는 타입이다. scala 에서는 정수를 Object 로 참조하여 참조 타입 으로 취급하지만, 컴파일 이후에는 성능을 위해서 java 의 원시 타입을 사용한다. 1 + 2 와 같은 식에서 + 는 (1) 이라는 원시 타입 Object 의 method 다. 즉, 1 + 2 의 표현은 (1).+(2) 표현과 같다. Scala 는 +-*/ 같은 연산자 method 의 우선순위를 정하고 있다. object Practice ..
-
[python] CLOSE_WAIT 해결 방법 with TimeoutIteratorProgramming Language/Python 2021. 5. 7. 11:20
tcp 연결된 소켓의 상태가 CLOSE_WAIT 상태에서 처리되지 못하고 계속 소켓을 잡고 있는 상황이 발생하여 해당 내용을 정리한다 0. 용어 end, end-point : aplication, user 등 연결에서 한 쪽 끝 프로세스 tcp 상태 1. 개념 정리 CLOSED : 연결이 없음 LISTEN : Passive open, SYN을 기다리는 상태 SYN-SENT : SYN을 보내고 ACK를 기다리는 상태 SYN-RECEIVED(SYN-RCVD) : SYN+ACK을 보내고 ACK를 기다리는 상태 ESTABLISHED : 커넥션이 생성된 상태, 데이터를 전송할 수 있다. FIN-WAIT-1 : 첫 FIN이 보내진 상태, ACK를 기다리고 있다. CLOSE-WAIT : 첫 FIN을 받고 ACK를 보..