분류 전체보기 1194

[Vim] 변경 내역 확인

개요Vim 편집기에서 편집한 내용을 실행 취소(undo)할 때는 :u를 입력하면 된다.그리고 실행 취소한 내용을 다시 실행(redo)할 때는 CTRL + R을 입력하면 된다. 그렇다면 변경 내역 자체는 어떻게 확인할 수 있을까?   :changesVim은 변경 사항이 발생한 위치(열 번호, 줄 번호)를 변경 목록에 기록하고, 각 버퍼에는 실행 취소할 수 있는 최근 100개의 변경을 기억한다. 한 줄에 수정이 여러 번 이루어졌다면 나중에 변경된 위치만 기록된다. 변경 목록은 :changes를 입력하여 확인할 수 있다.  예시예로 들어 위의 내용을 가진 파일이 있다고 하자.# test fileimport osimport refrom flask import request@app.route('/method', ..

Linux 2022.10.02

[Python] 전역/지역 변수와 범위

전역 변수와 지역변수 전역 변수(global variable) 함수를 포함해 스크립트 전체에서 접근할 수 있는 변수. 전역 변수에 접근할 수 있는 범위를 전역 변수(global scope)라고 한다. x = 10 # 전역 변수 def foo(): print(x) # 전역 변수 출력 foo() print(x) # 전역 변수 출력 지역 변수(local variable) 변수를 선언한 블록 내에서만 접근할 수 있는 변수. 지역 변수를 접근할 수 있는 범위를 지역 범위(local scope)라고 한다. def foo(): x = 10 # 지역 변수 print(x) # 지역 변수 출력 foo() print(x) # 지역 변수 출력 foo() 밖에서 변수 x에 접근하려고 하면 오류가 발생한다. global 키워드 ..

Python 2022.10.01

[Linux] ~<username> - 사용자 홈 디렉터리

~ 쉘 스크립트를 보다 아래와 같은 구문을 보았다. BASE_DIR=~ # 예시 BASE_DIR=~ubuntu 특정 디렉터리 정보를 담은 변수를 선언한 것 같긴 한데, 정확히 어느 경로인지 확인해보려고 한다. 확인 쉘에서 변수를 직접 선언한 뒤, echo 명령으로 확인해봤다. BASE_DIR=~ubuntu echo $BASE_DIR ubuntu 계정의 홈 디렉터리였다. 사용자 이름 앞에 ~ 기호를 붙이면 해당 사용자의 홈 디렉터리를 의미한다. ~root인 경우 root 사용자의 홈 디렉터리를 의미한다.

Linux 2022.09.30

[aws cli] SQS 관련 정보 확인

개요 aws cli를 이용해 SQS의 목록을 확인하고 필요한 정보를 확인해보도록 한다. 당연하지만 SQS 정보에 접근할 권한이 있어야 한다. SQS 목록 확인 aws sqs list-queues \ --region # 예시 aws sqs list-queues \ --region ap-northeast-2 # 결과 { "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue", "https://queue.amazonaws.com/80398..

AWS 2022.09.29

[JMESPath] JSON 쿼리 기본 - 2

개요 2022.09.26 - [JMESPath] JSON 쿼리 기본 - 1 2022.09.27 - [JMESPath] Projections 에 이어서 남은 문법을 정리해둔다. Pipe Expressions Projections 결과인 JSON 배열이 아니라 그 배열의 특정 요소만을 원할 때 사용할 수 있다. # JSON { "people": [ {"first": "James", "last": "d"}, {"first": "Jacob", "last": "e"}, {"first": "Jayden", "last": "f"}, {"missing": "different"} ], "foo": {"bar": "baz"} } 위의 JSON 데이터에서 사람의 이름을 출력하는 표현식과 그 결과는 아래와 같다. # peop..

기타 2022.09.28

[JMESPath] Projections

Projections JMESPath의 주요 기능 중 하나로, 요소의 집합에 식을 적용할 수 있게 한다. Projections 종류는 5가지로 나눌 수 있다. List Projections Slice Projections Object Projections Flatten Projections Filter Projections 2022.09.27 - [JMESPath] Projections에 이어서 살펴보도록 하자. List and Slice Projections List Projections은 와일드카드 표현식에 의해 만들어진 JSON 배열에 적용된다. # JSON { "people": [ {"first": "James", "last": "d"}, {"first": "Jacob", "last": "e"},..

기타 2022.09.27

[JMESPath] JSON 쿼리 기본 - 1

JMESPath JMESPath는 JSON 쿼리 언어로, JSON 데이터에서 요소를 추출하고 변환할 수 있다. Python, PHP, JavaScript, Ruby, Lua, Go 등을 지원한다. aws cli의 --query 옵션에서 사용하는데, 이 글에서는 간단히 문법을 정리해두려고 한다. 기본 표현식 JMESPath는 JSON의 키를 이용해 값을 식별한다. # JSON { "a": "foo", "b": "bar", "c": "baz" } # 표현식 b # 결과 bar 하위 표현식 하위 요소는 .을 이용해 접근한다. # JSON { "a": { "b": { "c": { "d": "value" } } } } # 표현식 a.b.c.d # 결과 value 존재하지 않는 키를 참조하면 null을 반환한다. ..

기타 2022.09.26

[Airflow] .airflowignore - DAG 정의 파일 무시

.airflowignore Airflow가 무시해야 하는 DAG_FOLDER 내 디렉터리, 파일을 지정하는 설정 파일 .airflowignore 파일의 각 행은 정규 표현식 패턴을 지정하며, DAG id가 아니라 디렉터리나 파일의 이름이 패턴과 일치하는 경우 무시된다. .gitignore와 비슷하게 생각하면 된다. 경로 .airflowignore는 DAG_FOLDER 또는 그 하위 폴더에 위치해야 한다. 이 글의 경우, dag_folder는 다음과 같다. ## airflow.cfg [core] # The folder where your airflow pipelines live, most likely a # subfolder in a code repository. This path must be absol..

Apache Airflow 2022.09.25

[Shell Script] #! - Shebang

#! shebang, sharpbang, shabang, hashbang 등으로 칭해지는 문자로, 스크립트 파일의 첫 줄에 사용하여 스크립트가 어떤 명령으로 실행될지를 지정한다. 명령어의 경로는 절대 경로 또는 현재 디렉터리로부터의 상대 경로로 지정할 수 있다. 변수는 사용할 수 없고, 사용할 수 있는 옵션은 하나로 제한된다. 예시 #! /bin/bash # bash 스크립트 실행을 위한 shebang line ... #! /bin/sed -f # sed 스크립트 실행을 위한 shebang line ... #! /usr/bin/awk -f # awk 스크립트 실행을 위한 shebang line ... #! /usr/bin/perl # perl 스크립트 실행을 위한 shebang line ... #! /u..

Linux/Shell Script 2022.09.24

[Flask] 요청(Request) 데이터 접근

Request Flask에서 요청 데이터에 접근할 때는 Request의 하위 클래스인 flask.request 모듈을 사용한다. 요청 데이터를 파싱 하여 전역 객체로 데이터를 접근하게 해 주며, 내부적으로 다중 스레드 환경에 있더라도 활성화된 요청 스레드에 대해 적절한 데이터를 얻는 것을 보장한다. 2022.09.17 - [Flask] REST API 만들기에서 요청 데이터에 접근하는 방법에 대해 별다른 설명이 없었는데, 아무래도 간단히 적어두는 것이 좋을 것 같아 정리한다. 요청 데이터에 접근하여 그 값을 텍스트 또는 JSON 형식으로 응답해보자. reqeust 모듈 import flask.request 모듈을 사용하기 위해서 먼저 모듈을 import 해야 한다. from flask import req..

Python 2022.09.23