분류 전체보기 1194

[MySQL] 테이블 컬럼 확인

개요 2022.01.09 - [MySQL/MariaDB] 테이블 목록 확인 2022.03.12 - [MySQL] 테이블 용량 확인 에서 테이블 정보를 확인하는 방법을 몇 가지 정리했는데, 이 글에서는 테이블의 컬럼 정보를 확인하는 방법을 정리해둔다. SHOW 명령어 SHOW COLUMNS를 사용하면 컬럼의 이름, 데이터형, 기본값, NULL 허용 여부 등을 확인할 수 있다. SHOW COLUMNS FROM ; -- 예시 SHOW COLUMNS FROM docs; 코멘트 등의 추가정보가 필요한 경우, FULL 키워드를 추가하면 된다. SHOW FULL COLUMNS FROM ; -- 예시 SHOW FULL COLUMNS FROM docs; Query SELECT 문을 이용해서 컬럼 정보를 확인할 수도 있다..

Database 2022.09.02

[k8s] Events

Events 쿠버네티스 리소스 타입 중 하나로 다른 리소스의 상태 변화, 에러 등 시스템에 특정 메시지를 전파해야 할 때 자동으로 만들어진다. 쿠버네티스 클러스터를 개발하고 운영하면서 디버깅할 때 유용하다. Events 조회 Events 리소스에 대해 알지 못해도 한 번쯤은 이미 봤을 텐데, describe 명령어로 확인할 수 있기 때문이다. Events 항목에 나열된 목록이 바로 Events 리소스에 해당한다. 다른 리소스와 마찬가지로 get 명령으로도 조회할 수 있다. kubectl get events --field-selector 옵션을 사용하면 원하는 정보만을 찾아볼 수 있다. # Warning 유형만 확인 kubectl get events --field-selector type=Warning #..

Kubernetes 2022.09.01

[정규 표현식] sub - 문자열 치환

sub(pattern, repl, string, count=0, flags=0) sub 함수를 사용하면 정규 표현식과 일치한 부분을 다른 문자로 치환할 수 있다. 이름, 전화번호 등 개인 정보를 마스킹하는 경우에 활용할 수 있다. 사용 방법 매개변수로 패턴과 치환 문자열(repl), 치환 대상 문자열(string)을 전달받는다. 패턴을 찾지 못하면 전달받은 string을 변경하지 않고 반환한다. 예로 들어, 아래와 같은 휴대전화 번호 목록이 있다고 하자. 010-1234-5678 010-0000-0000 010-9876-5432 휴대전화 번호는 개인을 식별할 수 있는 정보이기 때문에 가운데 4개 숫자만 ****로 마스킹하고자 한다. sub 함수에서도 그룹 재참조가 가능하다. 따라서 첫 번째 자리와 세 번..

Python 2022.08.31

[정규 표현식] 전방 탐색

전방 탐색 일치한 영역을 발견해도 그 값을 반환하지 않는 패턴을 의미한다. 하위 표현식으로, ?=라는 구문으로 시작해 등호 다음에 일치할 문자열이 온다. 💡 문자열 소비 정규 표헌식 관련 문서에서 일치하는 영역을 반환하는 동작을 '소비한다'라고 표현한다. 전방 탐색의 경우에는 문자열을 소비하지 않는다. 전방 탐색에는 긍정형과 부정형이 있다. 예시를 통해 알아보도록 하겠다. 긍정형 전방 탐색 (예시) 아래와 같은 웹 주소에서 http, https, ftp와 같은 값만 추출하려고 한다. http://www.forta.com https://mail.forta.com ftp://ftp.forta.com 추출하고자 하는 문자열이 ':' 이전이므로 기본적으로 아래와 같은 패턴으로 찾을 수 있다. .+:# 하나 이상..

기타 2022.08.30

[정규 표현식] Group

() : Group 특정 문자가 아니라, 특정 문자열이 반복되는지 확인할 때에는 () 메타 문자를 이용해 문자열을 그룹화하여 확인할 수 있다. import re g = re.search('(ABC)+', 'ABCABCABC OK?') print(g) re.groups() () 메타 문자로 확인한 문자열 목록을 튜플 형태로 반환한다. import re g = re.search(r'(\d{2})-(\d{3,4})-(\d{4})', '02-123-1234') print(g.groups()) re.group(int) () 메타문자로 확인한 문자열을 반환한다. 매개변수로 전달된 값이 없거나 0인 경우에는 일치한 모든 문자열을 반환한다. 매개변수로 전달된 값이 0이 아닌 숫자 n인 경우에는 n번째 그룹에 일치한 문..

Python 2022.08.29

[ELB] 로드밸런서 IP 확인

개요 AWS ELB의 IP 정보가 필요하다. 하지만 AWS 콘솔에서 LB 정보를 확인해도 서브넷 정보까지만 확인되지, IP 주소 정보는 보이지 않았다. 이 글에서는 ELB의 IP 정보를 확인하는 방법을 정리해둔다. 💡 ALB, CLB의 경우 서브넷 내에서 IP 정보가 유동적으로 변경된다. AWS Console에서 확인 1. AWS EC2 > 로드밸런싱 > 로드밸런서 목록에서 IP 주소를 확인할 LB의 이름을 복사한다. 2. AWS EC2 > 네트워크 및 보안 > 네트워크 인터페이스 목록에서 복사한 LB 이름으로 검색한다. 검색 결과에서 퍼블릭 IPv4 또는 기본 프라이빗 IPv4 주소 정보가 LB의 IP 주소 정보에 해당한다. 검색한 LB는 2개의 AZ에 걸쳐 이중화되어 있어 2개의 IP 주소를 사용하고..

AWS 2022.08.28

[정규 표현식] 메타 문자

메타 문자 2022.08.25 - 정규 표현식 (Regular Expressions)에서 다루지 않은 메타 문자를 정리하고자 한다. | OR과 동일하다. A|B라는 정규식은 A 또는 B라는 의미다. import re print(re.search('Crow|Servo', 'CrowHello')) ^ 문자열의 맨 처음과 일치함을 의미한다. import re print(re.search('^Life', 'Life is too short')) print(re.search('^Life', 'My Life')) My Life는 Life가 맨 처음에 위치하고 있지 않아 None을 반환한다. $ 문자열의 끝과 일치함을 의미한다. import re print(re.search('short$', 'Life is too s..

기타 2022.08.27

[Python] re - 정규 표현식을 이용한 문자열 검색

re 파이썬의 기본 라이브러리 중 하나로 정규 표현식을 지원하기 위한 모듈이다. re는 regualr expression의 약자다. 사용법 기본 라이브러리이므로 별도 설치 없이 import하여 사용할 수 있다. import re p = re.compile('ab*') re 모듈은 4개의 문자열 검색 모듈을 제공한다. match 문자열의 처음부터 시작해서 정규식이 일치하는지 확인한다. match 객체 또는 None을 반환한다. import re print(re.match('[a-z]+', 'python')) print(re.match('[a-z]+', '3 python')) 문자열 "3 python"의 경우, 처음에 위치한 3이 [a-z]+을 만족하지 않아 None을 반환한다. search 문자열 전체를 ..

Python 2022.08.26

정규 표현식 (Regular Expressions)

정규 표현식 Regular Expressions. 정규식이라고도 말한다. 복잡한 문자열을 처리할 때 사용하는 기법으로 문자열을 처리하는 모든 곳에서 사용한다. 정규 표현식을 사용하면 주민등록번호, 전화번호, 이메일 등 일정한 패턴을 가진 문자열을 보다 쉽게 다룰 수 있다. 정규 표현식에서는 아래의 메타 문자를 사용하는데, . ^ $ * + ? { } [ ] \ | ( ) 이 글에서는 각 메타 문자의 의미를 정리할 것이다. [ ] 문자 클래스 [ ] 사이의 문자들 중 하나를 찾는다. 예로 들어 [abc]의 경우 a, b, c 중 한 개의 문자를 찾겠다는 의미다. [ ] 내에 -를 사용하면 두 문자 사이의 범위를 의미한다. [a-c] : [abc]와 같다. [0-5] : [012345]와 같다. [a-zA-..

기타 2022.08.25

[Apache Tomcat] WAR 배포

개요 2022.08.23 - [Ubuntu] Apache Tomcat 설치에서 설치한 Tomcat에 WAR로 패키징된 애플리케이션을 배포하려고 한다. 배포할 애플리케이션은 이미 maven 등으로 빌드해두었다고 가정한다. 이 글에서는 https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/에서 제공하는 예제 애플리케이션을 사용할 것이다. 배포 방법 1. 기본 이름(ROOT.war) 사용 Tomcat은 기본적으로 설치 경로(CATALINA_HOME)의 webapps 아래에 war 파일이 존재하면 자동으로 압축을 풀고 애플리케이션을 실행한다. 이 때 war 파일의 이름을 ROOT로 지정하면 별다른 설정 없이 애플리케이션을 실행할 수 있다. # webapps 디렉터리로..

Linux 2022.08.24