[MySQL] NULL 처리 DB데이터를 조회할 때, Null 값을 처리해야 할 경우가 있다. MySQL에서 컬럼의 값이 Null 인 경우를 처리해주는 함수에 대해서 알아보자 IFNULL 해당 컬럼의 값이 Null을 반환할 때, 다른 값으로 출력할 수 있다. SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명; CASE 조건식을 통해 True, False를 판단하여 조건에 맞게 변환할 수 있다. CASE WHEN 조건식1 THEN 식1 WHEN 조건식2 THEN 식2 ... ELSE 조건에 맞는경우가 없는 경우 실행할 식 END SELECT CASE WHEN NAME IS NULL THEN "No name" ELSE NAME END as NAME FROM ANIMAL..
[Python] 클래스(class) 클래스의 개념 파이썬의 클래스는 객체를 표현하기 위한 문법이다. 간단하게 생각해서 설계도라고 생각하면 된다. 클래스를 사용하면 객체의 구조와 행동을 정의하여 복잡한 문제를 다루기 쉽도록 만든다. ✔ 파이썬은 모든 것이 객체이기 때문에, 클래스도 객체다. 즉 클래스(class)란, 똑같은 무언가를 계속 만들어 낼 수 있는 설계 도면이고, 객체(object)란 클래스로 만든 피조물을 뜻한다. class Cookie: pass a = Cookie() b = Cookie() Cookie()의 결과값을 리턴받은 a와 b가 객체가 된다. 클래스로 만든 객체를 인스턴스라고도 하는데, a = cookie()로 만든 a는 객체다. 그리고 a 객체는 Cookie의 인스턴스다. 즉, 인스..
[Linux] 숨김 파일 용량 확인 디스크에 용량이 대부분 찼을 때, 어떤 파일이 용량을 차지하고 있는지 확인하고 싶었는데 du -sh * 명령어를 사용하면 숨겨진 파일의 용량이 나오지않아 확인이 어려웠다. 숨겨진 파일의 용량을 포함하여 확인을 하려면 --max-depth=1 옵션을 사용하면 된다 du -h --max-depth=1 이때, sort -hr 명령어를 같이 사용하면 크기가 큰 순서대로 정렬이 가능하다. du -h --max-depth=1 | sort -hr
[AWS] DOP 공부 중 모르는 서비스 정리 AWS Certufued DevOps Engineer - Professional (DOP-CO2) 공부 중 모르는 서비스를 간단하게 정리 Amazon Inspector 자동화된 소프트웨어 취약성 관리 소프트웨어 취약성 및 의도하지 않은 네트워크 노출에 대해 AWS 워크로드를 지속적으로 스캔하는 자동화된 취약성 관리 서비스 Amazon GuardDuty 지능형 위협 탐지 AWS 계정 및 워크로드에서 악의적 활동을 모니터링하고, 상세한 보안 조사 결과를 제공하여 가시성 및 해결을 촉진하는 위협 탐지 서비스 AWS 계정, 인스턴스, 서버리스 및 컨테이너 워크로드, 사용자, DB 및 스토리지에서 잠재적 위협 요소를 지속적으로 모니터링 할 수 있음 AWS Config..
[Shell Script] 배열 (array) 사용하기 쉘 스크립트에서 배열을 정의하고 배열의 길이를 알 수 있는 방법이 없을까하여 찾아보니 쉘에서도 array를 사용할 수가 있었다. 배열 정의 괄호 안의 값들을 배열의 요소로 설정하여 변수를 배열로 사용할 수 있다. 변수=(값1 값2 값3) 인덱스를 지정하는 것도 가능하다, arr만 출력하면 첫번째 값이 출력되고 [@]를 사용하면 전체 값이 출력된다. [] 내부에 인덱스 값을 지정해주면 특정 인덱스의 값을 출력할 수 있다. arr=('a' 'b' 'c') echo $arr a echo ${arr[@]} a b c echo ${arr[1]} b 배열에 요소를 추가하는 법은 다음과 같다. 배열+=(값) arr+='d' echo ${arr[3]} d 여러 요..
[Shell Script] 함수 만들기 아래 포스팅으로 AWS Cli에서 ELB를 Detach, Attach 하는 경우를 알아봤었는데, ELB의 타겟에 여러개의 인스턴스가 있는 경우에 함수를 사용하는 것이 효율적이라고 생각했다. [AWS Cli] ELB Detach, Attach 하기 [AWS Cli] ELB Detach, Attach 하기 AWS CLI로 ELB의 대상 인스턴스를 확인하고,Detach와 Attach하는 방법을 알아보자 aws cli 명령어를 사용하기 위해선 credential이 필요하다. 스크립트로 작성했기 때문에, Shell Sc heywantodo.tistory.com Shell Script에서 함수 생성하기 함수를 생성하는 방식은 두가지가 있다. 1. 코드 블록에 함수 이름을 지정..
[Jenkins] Execute Shell 사용하기 젠킨스에서 스크립트로 실행할 수 있는 간단한 작업이라면, Execute Shell로 쉘 스크립트를 실행 할 수 있다. 새로운 프로젝트 생성 새로운 item을 클릭한 후 Freestyle project로 생성한다. 환경 구성 여러가지 환경 설정을 할 수가있는데 빌드 로그가 쌓이지 않도록 오래된 빌드 삭제를 해준다 (선택사항) 빌드 환경에서 Use secret text(s) or file(s) 를 선택하면 jenkins Credential에 등록된 시크릿 텍스트/파일을 환경 변수로 불러와서 사용이 가능하다. Inject environment variables to the build process에서 환경 변수를 설정하면, 스크립트에 작성하지 않고도 환경 변..
[API][Apps Script] 공공 데이터 포탈에서 공휴일 API 가져오기 구글 apps script를 이용하여 특정 사용자에게 특정 시간에 메일을 전송하는 스크립트를 생성하여 사용하고 있다. 공휴일엔 메일을 보내지 않는 기능을 구현하고 싶은데, 구글 캘린더에서 제공하는 휴일 캘린더는 식목일 같은 공휴일이 아닌 날에도 공휴일로 제공을 하여 방법을 찾아보니 공공데이터 포탈에서 제공하는 공휴일 정보 API를 불러와서 사용하는 방법이 있었다. 공공 데이터 포탈 API 키 신청 공공 데이터 포탈 공공데이터포털 통합 로그인 공공데이터포털 로그인 국민과 함께 하는 공공데이터포털에 오신 것을 환영합니다 auth.data.go.kr 데이터 찾기에 공휴일을 검색 한 후 오픈 API 탭으로 가면 제일 위에 한국 천문 ..
[Linux] Curl 명령어 사용 시 진행 내용 가져오지 않기 스크립트를 실행 할 때, Curl 명령어를 반복적으로 실행해야 하는 경우가 있었는데. Curl 명령을 실행할 때마다 아래와 같은 진행 내용이 출력되어 로그를 확인하기 힘들었다. 진행 내용이나 메시지들을 출력하지 않게하려면 -s (--silent) 옵션을 사용하면 된다. curl -s -XGET ${TARGET_URL} >> ${ERROR_OUTPUT_FILE_PATH} 2>&1 참고 https://acet.pe.kr/836
[Linux] 에러 : Pseudo-terminal will not be allocated because stdin is not a terminal SSH 원격 접속 후 스크립트를 실행할 때, 명령어 실행 자체는 문제가 없었지만 아래와 같은 에러 메시지가 계속 발생했다. 위와 같은 에러 메시지가 발생하는 이유는, 터미널 처럼 상호작용을 하지 않아 SSH에 대해 지정된 명령어가 없기 때문이라고 한다. 해결 방법은 단일 명령어를 사용하거나, -T(혹은 -t -t) 옵션을 사용하면 된다고한다. ssh -i [user]@[ip주소] -T sh < ./script.sh 참고 https://blog.1day1.org/474
[AWS Cli] 가장 최근에 수정된 S3 객체 가져오기 S3에서 객체를 가져와야 할때, 가장 최근 파일을 가져와야하는 경우가 있었다. 콘솔에서는 마지막 수정에서 정렬을 하면 다음과 같이 가장 최근 파일을 확인할 수 있다. CLI를 사용해 S3 버킷에서 가장 최근에 수정된 파일을 가져오는 방법에 대해 알아보자 s3 cli 아래 명령어를 사용해 버킷의 모든 객체를 나열할 수 있다. aws s3 ls bucket_name --recursive 날짜순으로 다시 정렬한 후 (sort) , 마지막 행만 보게 한 다음 (tail -n 1) 네번째 열, 즉 객체 경로를 추출한다. (awk '{print $4}') aws s3 ls bucket_name --recursive | sort | tail -n 1 | awk..
[Linux] HTTP Status Code 확인 리눅스에서 HTTP 상태코드 확인 -v 옵션을 사용하면, 헤더 통신 옵션을 출력한다. curl -v localhost:80 HTTP 상태코드만 확인하는 방법이 있나 찾아보니, curl로 호출한 뒤 status code를 확인 할 수 있는 방법이 있었다. curl의 stdout 출력 후 -w (또는 --write-out) 옵션으로 확인이 가능하다고 한다. curl -w " - status code: %{http_code}" "localhost:80" stdout 없이 상태코드만 출력을 하려면 -o 옵션을 사용하면 된다. 그밖에 -w 옵션과 함께 시간, 응답 사이즈 등을 확인할 수 있는 많은 변수들이 있다. 아래 문서에서 다양한 옵션을 확인 할 수 있다. h..