IT/Programming 3

jq 명령어 설치 및 사용방법 (feat. select, filter, json 필드 추가/삭제)

jq 란? 위 사진은 jq 홈페이지에서 캡처한 화면인데, 간단히 말해서 json 을 다루는 Tool 이다. Linux shell 에서 텍스트나 csv 파일을 다룰때, sed, awk 등을 사용하는데, 이처럼 json 포맷의 데이터를 다루기 편한 기능들을 모아놓은 utility 라고 생각하면 된다. Kubernetes나 AWS 등은 resource의 상태조회시 json 포맷으로 결과가 return 된다. 이러한 결과값 중에서 원하는 attrbute만 추출하거나, 필터링하거나, csv 포맷으로 변경하는 등의 작업을 jq 로 할 수 있다. jq 설치 (install) download 페이지를 참고한다. 기본 명령어 (apt-get install, brew install 등) 을 사용해서 설치한다. Window..

IT/Programming 2022.11.10

Tail Recursion(꼬리 재귀)란?

재귀함수 사용시 주의점재귀함수를 공부할때 항상 나오는 단점이 "stack memory" 가 많이 필요하다는 말이다.재귀함수란 A함수 안에서 A함수를 다시 부르는건데,A함수가 종료되지 않은 상태에서 A함수를 한번더 부르기 때문에, 종료되지 않은 함수들이 계속해서 stack에 쌓여간다.따라서 재귀호출이 너무 많이되면 stack memory가 overflow 될 수 있다.이렇게 stack memory를 과다사용하는 재귀호출의 문제점을 피하기 위한 방법이 바로 Tail Recursion(꼬리재귀)이다. Tail Recursion(꼬리 재귀)란?아래 예를 보자 (1~n 까지의 합을 구하는 일반적인 재귀함수다)r_sum 이라는 함수 내부에서 자기자신(r_sum)을 호출한다."r + r_sum()" 으로 되어 있기 ..

IT/Programming 2021.01.11

파이썬 REPL 이란?

REPL 이란?Read(입력), Eval(평가), Print(출력), Loop(반복)코드를 입력하면 결과가 바로 출력(확인)되는 과정을 반복하는 것cmd, powershell, terminal 등과 같은 인터프리터 환경에서 가능함장점컴파일 과정이 없기 때문에 개발이 편리함소스 디버깅 및 수정이 간편함단점컴파일 과정이 없기때문에 느림 예를 들어 아래같은 C++ 코드가 있다면,실행이나 debuging을 하기 위해서는 전체 코드를 컴파일 해야한다.debugging 중간에 a 변수값을 2로 바꾸고 싶다면 코드 전체를 다시 컴파일해서 재실행 해야 한다.코드가 길고 로직이 복잡할때는 꽤 불편한 점이다.#include int main() { int a = 1; printf("%d\n", &a); } 하지만 파이썬같이..

IT/Programming 2021.01.11
반응형