이 글에서는 boto3 라이브러리를 사용하여 AWS Glue Data Catalog에 등록된 크롤러(Crawler)가 실행 중일 때 이를 중지하는 방법을 단계별로 살펴봅니다.문제 정의Python에서 boto3 라이브러리를 활용하여 실행 중인 크롤러를 중지하는 것이 목표입니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore.exceptions 모듈을 임포트합니다.2단계: 함수의 매개변수로 crawler_name(크롤러 이름)을 전달받습니다.3단계: boto3 라이브러리를 사용해 AWS 세션을 생성합니
재귀(Recursion) 방식으로 피보나치 수열을 출력해야 하는 경우, 기저 조건(base case)에 도달할 때까지 자기 자신을 반복해서 호출하는 메서드를 선언하면 됩니다. 재귀는 하나의 큰 문제를 동일한 구조를 가진 더 작은 하위 문제로 나누어 해결하는 프로그래밍 기법으로, 각 항이 이전 두 항의 합으로 정의되는 피보나치 수열을 구현하기에 특히 적합합니다. 아래에서 실제 구현 예제를 확인해 보겠습니다. 예제 코드 def fibonacci_recursion(my_val): if my_val <= 1:
별표(*) 기호를 사용해 알파벳 G 모양의 패턴을 화면에 출력해야 하는 경우가 있습니다. 이럴 때는 패턴을 그려주는 함수를 하나 정의한 뒤, 중첩 반복문(nested loop)으로 행과 열을 순회하면서 조건에 맞는 좌표에만 * 문자를 찍으면 G 형태를 완성할 수 있습니다. 아래에서 실제 동작 예시를 확인해 보겠습니다. 예제 코드 def display_pattern(my_line): my_pattern = mid = (my_line - 1) // 2 for i in range(my_line): f
Python에서는 현재 날짜를 기준으로 어제, 오늘, 내일 날짜를 아주 간단하게 구할 수 있습니다. 핵심은 datetime 모듈과 timedelta 클래스입니다. datetime.now()로 현재 시각을 가져온 뒤, timedelta에 원하는 일수를 더하거나 빼면 이전 날짜와 다음 날짜를 손쉽게 계산할 수 있습니다.예제 코드from datetime import datetime, timedelta present = datetime.now() yesterday = present - timedelta(1) tomorrow = prese
프로그래밍을 하다 보면 현재 시간과 특정 시간 사이의 차이를 계산해야 하는 경우가 자주 발생합니다. 이럴 때 시(hour)와 분(minute)을 매개변수로 받아 두 시간의 차이를 구하는 함수를 직접 정의하면 간단하게 해결할 수 있습니다.두 시간을 분 단위로 변환한 뒤 서로 빼고, 그 결과를 다시 시와 분으로 환산하여 출력하는 방식입니다. 아래 예제를 통해 자세히 살펴보겠습니다.예제 코드def difference_time(h_1, m_1, h_2, m_2): t_1 = h_1 * 60 + m_1
파이썬으로 랩 타이머 만드는 방법파이썬에서 랩 타이머(lap timer)를 구현해야 할 때는 time 모듈이 사용됩니다. 총 랩 수는 미리 정의되어 있으며, try~except 블록을 통해 랩 타이머를 시작하고 종료합니다.아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.예제 코드import time start_time=time.time() end_time=start_time lap_num=1 print(Click on ENTER to count laps.\nPress CTRL+C to stop) try: while T
개요AWS에서 태그(tag)는 리소스를 체계적으로 분류·관리하고, 비용 배분 추적이나 세부적인 액세스 제어에 활용할 수 있는 핵심 기능입니다. 이 글에서는 Python의 boto3 라이브러리를 사용해 AWS Glue 리소스에 태그를 추가하는 방법을 단계별로 살펴봅니다.예제 시나리오AWS Glue 데이터베이스에 glue-db: test라는 태그를 추가해 보겠습니다.문제 정의: Python의 boto3 라이브러리를 활용하여 AWS Glue 리소스에 태그를 추가합니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 bo
이 글에서는 Python의 boto3 라이브러리를 사용하여 AWS Glue 리소스에 연결된 태그(Tag)를 조회하는 방법을 알아봅니다. 예제 시나리오 AWS Glue 데이터베이스에서 glue-db: test와 같은 태그 정보를 가져오는 것이 목표입니다. 문제 정의: Python에서 boto3 라이브러리를 활용해 AWS Glue 리소스에 설정된 태그를 조회합니다. 문제 해결 접근 방식 및 알고리즘 1단계: 예외 처리를 위해 boto3와 botocore.exceptions(ClientError)를 임포트합니다. 2단계: resourc
이 글에서는 Python의 boto3 라이브러리를 사용하여 AWS Glue 리소스에서 태그를 제거하는 방법을 단계별로 알아봅니다.예제 시나리오AWS Glue 데이터베이스에 설정된 태그 glue-db: tests를 제거하는 작업을 진행해 보겠습니다.문제 정의: Python에서 boto3 라이브러리를 활용하여 AWS Glue 리소스의 태그를 제거합니다.문제 해결 접근 방식1단계: 예외 처리를 위해 boto3와 botocore의 예외 모듈을 임포트합니다.2단계: 이 함수에는 resource_arn(리소스 ARN)과 tags_list(태그
이 글에서는 AWS 계정에 존재하는 AWS Glue 크롤러(Crawler)의 스케줄러를 업데이트하는 방법을 살펴보겠습니다. Python의 boto3 라이브러리를 활용하면 별도의 콘솔 작업 없이 코드만으로 크롤러의 실행 일정을 손쉽게 변경할 수 있습니다.문제 정의Python에서 boto3 라이브러리를 사용하여 특정 크롤러의 스케줄러(실행 일정)를 업데이트하는 것이 목표입니다.문제 해결 접근 방식1단계: 예외 처리를 위해 boto3와 botocore.exceptions 모듈을 임포트합니다.2단계: 함수에는 crawler_name(크롤러
이 글에서는 Python의 boto3 라이브러리를 사용하여 AWS Glue 카탈로그에 생성된 워크플로(Workflow)의 세부 정보를 업데이트하는 방법을 알아봅니다.문제 정의계정에 이미 생성되어 있는 워크플로의 설명(Description)과 기본 실행 속성(Default Run Properties)을 boto3를 활용해 수정하는 것이 목표입니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore.exceptions 모듈을 임포트합니다.2단계: 이 함수에서 workflow_name은 필수 파라미터이며,
파이썬에서 날짜 형식의 문자열을 타임스탬프로 변환해야 하는 경우가 종종 있습니다. 이럴 때는 time 패키지에서 제공하는 mktime 메서드를 활용하면 간단하게 처리할 수 있습니다.mktime은 구조화된 시간 정보(struct time)를 받아 유닉스 타임스탬프(1970년 1월 1일부터 경과한 초 단위 시간)로 변환해 주는 함수입니다. 아래 예제를 통해 실제 사용 방법을 살펴보겠습니다.예제 코드import time import datetime my_string = 24/03/2021 print(날짜 문자열 :) print(my_s
특정 기간(한 달 또는 한 해) 동안 각 요일이 몇 번씩 등장하는지 확인해야 하는 경우가 있습니다. 파이썬(Python)에서는 요일 목록을 정의하고, 시작 요일을 기준으로 남은 일수만큼 카운트를 증가시키는 방식으로 이를 간단히 계산할 수 있습니다. 핵심 원리는 다음과 같습니다. 어떤 달이든 처음 28일 동안에는 모든 요일이 정확히 4번씩 나타납니다. 따라서 모든 카운트를 4로 초기화한 뒤, 28일을 초과하는 일수만큼 시작 요일부터 순서대로 카운트를 하나씩 늘려주면 됩니다. 예제 코드 def num_of_occurrence(n, fi
Tkinter의 버튼(Button) 위젯은 애플리케이션에서 발생하는 이벤트를 처리하고 특정 작업을 수행하는 데 핵심적인 역할을 합니다. 일반적으로는 이러한 이벤트를 처리하기 위해 특정 작업을 담고 있는 메서드(함수)를 정의한 뒤, 버튼의 command 옵션에 연결해서 사용합니다.그렇다면 버튼을 생성한 이후에 실행될 이벤트 메서드를 바꾸고 싶을 때는 어떻게 해야 할까요? 이럴 때는 configure(options) 메서드를 활용하면 됩니다. 새로운 메서드를 정의하고 버튼에 다시 설정만 해주면, 동일한 버튼으로 완전히 새로운 이벤트를
튜플로 이루어진 리스트가 있을 때, 각 튜플의 마지막 요소를 기준으로 오름차순(증가 순서)으로 정렬해야 하는 경우가 자주 있습니다. 이럴 때는 두 가지 함수를 활용하면 깔끔하게 해결할 수 있습니다.첫 번째 함수는 튜플의 마지막 요소를 반환하는 역할을 하고, 두 번째 함수는 이를 sorted() 함수의 key 매개변수에 전달하여 실제 정렬을 수행합니다.예제 코드def sort_last_elem(num): return num[-1] def sort_structure(my_tuple): return sorted(my_tu
이 글에서는 Boto3 라이브러리를 사용하여 AWS Glue Data Catalog에 등록된 모든 크롤러(Crawler)를 페이지네이션 방식으로 조회하는 방법을 알아봅니다.개요AWS 계정에서 생성한 AWS Glue Data Catalog의 모든 크롤러 목록을 한 번에 가져오지 않고, 지정된 크기만큼 나누어 순차적으로 조회하는 것이 이 튜토리얼의 목표입니다.문제 정의: Python의 boto3 라이브러리를 사용하여 본인 계정의 AWS Glue Data Catalog에 생성된 모든 크롤러를 페이지네이션 방식으로 조회합니다.문제 해결 접
튜플로 이루어진 리스트에서 특정 위치의 요소를 잘라내야 할 때, Python의 del 연산자를 활용하면 간단하게 처리할 수 있습니다.아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.예제 코드my_list = [(1,2, 11), (99, 76, 34, 89), (3.08, 11.56), ("Hi", "Will"), ("Rob", Ron)] n = 2 print("The list is :") print(my_list) print("The value
이 글에서는 boto3 라이브러리를 사용하여 AWS Glue Data Catalog에 존재하는 모든 데이터베이스를 페이지네이션(페이지 매김) 방식으로 조회하는 방법을 알아봅니다.문제 상황문제 정의: Python의 boto3 라이브러리를 사용하여 본인 계정에 생성된 AWS Glue Data Catalog의 모든 데이터베이스를 페이지네이션으로 조회해야 합니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore 예외 모듈을 임포트합니다.2단계: 이 함수에는 max_items, page_size, starti
리스트에 저장된 여러 튜플 중에서 모든 요소가 None으로만 이루어진 튜플을 제거해야 하는 경우가 있습니다. 이럴 때는 파이썬의 리스트 컴프리헨션(list comprehension)과 내장 함수 all()을 조합하면 아주 간단하게 처리할 수 있습니다. 아래 예제를 통해 자세히 살펴보겠습니다. 예제 코드 my_list = [(2, None, 12), (None, None, None), (23, 64), (121, 13), (None, ), (None, 45, 6)] print(The list is : ) print(my_list)
이 글에서는 Python의 boto3 라이브러리를 사용하여 AWS Glue에 등록된 특정 작업(Job)의 모든 작업 실행(Job Run) 기록을 페이지 단위로 조회하는 방법을 알아봅니다.문제 정의과제: Python의 boto3 라이브러리를 사용해, 본인 계정의 AWS Glue Data Catalog에 생성된 작업의 실행 이력을 페이지네이션 방식으로 조회합니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore.exceptions를 임포트합니다.2단계: 함수의 선택적 파라미터는 max_items, pag