분류 전체보기 1188

[MySQL/MariaDB] 테이블 목록 확인

이 글에서는 데이터베이스의 테이블 목록 확인 방법을 정리해둔다. 방법 1. 현재 데이터베이스의 테이블 목록 확인 SHOW TABLES; 2. 테이블 이름으로 현재 데이터베이스의 테이블 목록 필터링 SHOW TABLES LIKE 'KEYWORD'; # 예시 SHOW TABLES LIKE 'P%'; SHOW TABLES LIKE 'p%'; 3. 다른 데이터베이스의 테이블 목록 확인 SHOW TABLES FROM ; # 예시 SHOW TABLES FROM information_schema; # 테이블명 필터링 예시 SHOW TABLES FROM information_schema LIKE 'TABLE%'; 4. 데이터베이스의 테이블 상태 정보 확인 SHOW TABLE STATUS; # 특정 데이터베이스의 테이블..

Database 2022.01.09

Cluster Role

Namespace Scope Resource Role과 RoleBinding 객체는 namespace 내에 생성되어 해당 namespace 내 자원에 대한 접근만을 제어한다. 생성 시 namespace를 지정하지 않으면 default namespace에 생성된다. namespace 내에 생성되는 자원은 Role, RoleBinding 외에도 Pod, ReplicaSet, Deployment, Job, Service, Secret 등이 존재하여, 그 외 해당되는 자원은 아래 명령어로 확인할 수 있다. Namespace Scope Resource 확인 kubectl api-resources --namespaced=true Cluster Scope Resource 특정 namespace에 한정되지 않는 clu..

[Python] find VS index

Python에서 문자열의 특정 문자나 문자열의 위치를 찾을 때 일반적으로 find, index 등의 함수를 사용한다. 이 글에서는 두 함수의 차이점을 정리한다. find 문자열에 매개변수로 받은 문자열의 위치(index)를 확인하여 반환한다. 매개변수로 받은 문자열이 중복하여 위치해도 처음 위치한 자리만을 반환한다. str.find(SEARCHING_STR, [start], [end]) # 예시 print('"ABCDEFGHIJA".find("A") : ', "ABCDEFGHIJA".find("A")) print('"ABCDEFGHIJA".find("A", 2) : ', "ABCDEFGHIJA".find("A", 2)) print('"ABCDEFGHIJA".find("Z") : ', "ABCDEFGHIJ..

Python 2022.01.07

RBAC

Role Based Access Control을 사용하기 위해서는 권한 집합을 정의한 role과 user의 role을 정의하는 roleBinding을 생성해야 한다. Role Role을 정의하는 yaml 형식의 파일은 아래와 같으며, create 명령으로 생성할 수 있다. 하나의 Role은 여러 규칙을 가질 수 있으며, 하나의 규칙은 접근을 허용할 apiGroup과 resources, 그리고 자원에 허용할 작업을 나타내는 verbs으로 이루어져 있다. apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: developer rules: - apiGroups: [""] resources: ["pods"] # 권한을 부여할 자원 verbs: ..

[Python] 대소문자 확인 및 변환

이 글에서는 문자가 대문자인지, 소문자인지 확인하는 함수와 문자열을 대문자 또는 소문자로 변경하는 함수를 정리한다. isupper 문자가 대문자인지 확인한다. str.isupper() # return : bool # 예시 print("A".isupper()) islower 문자가 대문자인지 확인한다. str.islower() # return : bool # 예시 print("A".islower()) upper 문자열을 대문자로 변환하여 반환한다. str.upper() # 예시 print('"AbCdEfGh".upper() :', "AbCdEfGh".upper()) lower 문자열을 소문자로 변환하여 반환한다. str.lower() # 예시 print('"AbCdEfGh".lower() :', "AbCd..

Python 2022.01.05

[BOJ] 1292 - 쉽게 푸는 문제

문제 https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 1이 한 번, 2이 두 번, 3이 세 번… 그리고 n이 n번 등장하는 수열(1 2 2 3 3 3 4 4 4 4 5…)을 만들고, 특정 구간의 합을 구하는 계산한다. 구간의 시작과 끝을 나타내는 정수 A, B (1 ≤ A ≤ B ≤ 1,000)를 입력으로 받는다. 풀이 수열의 최대 길이가 1000이므로 수열을 직접 구현한 뒤 합을 구한다. 코드 import sys # 수열 구현 ss = [] i = 1 while l..

Algorithm/백준 2022.01.04

Authorization

Authorization 사용자가 클러스터에 접근하여 할 수 있는 것을 정의한다. 예시 ) 관리자 : Pod, Node, Deployment와 같은 객체 확인/생성/삭제 개발자 : 클러스터 구성 수정 제한, 애플리케이션 Deployment 접근 허용 Service Account : 외부 애플리케이션 접근 허용 여러 조직 또는 팀과 클러스터 공유 시, 클러스터를 네임스페이스로 분리하여 접근 통제 권한 부여 메커니즘 Node authorization kubelet은 apiserver에 접근하여 service, endpoint, node, pod의 정보를 읽거나 node 상태와 같은 정보를 apiserver에 전달한다. 이러한 요청은 node authorizer에 의해 처리되며, 사용자 이름이 system:n..

[Disk] /(루트 디렉터리) 용량 부족 시 확인할 만한 부분

/는 리눅스 시스템의 최상위 디렉터리로, 디렉터리 구조의 시작이 된다. 디렉터리 내에는 /bin, /etc, /boot, /mnt, /lib, /home, /dev, /proc, /var, /sbin, /tmp, /root, /lost+found 등의 디렉터리가 존재하며, 시스템과 관련된 파일들이 모여있다. 그렇지 않은 경우도 있겠지만, 보통 시스템 파일의 변경 최소화, 권한 문제 등의 시스템 관리 목적으로 별도의 디스크를 마운트 하여 데이터를 저장하거나 애플리케이션을 설치하게 될 것이다. 그러면 주로 / 영역 외의 디스크를 주로 사용하게 될 텐데, / 영역에서 딱히 뭔가를 하지 않아도 어느새 용량을 차지하고 있는 모습을 발견할 수 있을 것이다. 이 글에서는 / 영역의 디스크 용량이 가득 찬 경우 정리할..

Linux 2022.01.02

API Groups

사용자는 kubectl을 이용하거나 kube-apiserver와 직접 상호작용하여 Kubernetes API를 사용할 수 있다. 예시 - kubenetes 클러스터 버전 확인 curl /version # 예시 curl https://kube-master:6443/version - 포드 목록 확인 curl /version # 예시 curl https://kube-master:6443/version API Group api resource를 묶어놓은 그룹으로. yaml 파일 작성 시 apiVersion에 명시된다. Kubernetes API는 상태 모니터링, 메트릭 수집, 로그 등의 목적에 따라 그룹화된다. 목적 api 경로 Group 비고 클러스터 상태 모니터링 /metrics /healthz 클러스터의 ..

[scp] 원격지 업로드 시 No such file or directory

로컬 서버에서 다른 원격 서버로 파일을 복사하려고 했더니, 아래와 같이 No such file or directory 에러가 발생했다. No such file or directory 메시지가 발생하는 원인은 여러 가지가 있지만 여기에서는 원격지에 /home/test_user/python_mail이라는 디렉터리가 없어서 발생했다. 즉, 원격지에 /home/test_user/scp_test/python_mail이라는 경로의 디렉터리를 생성해주면 해결된다. 다만 이 글에서는 자동화 등의 이유로 다른 세션으로 원격지에 직접 접속하지 않고 sshpass를 이용해서 이 문제를 해결하고자 한다. sshpass를 이용하므로 원격지에서 사용할 계정 정보를 가지고 있어야 하며, ssh 접속을 허용하고 있어야 한다. 해결 ..

Linux 2021.12.31