파이썬에서 트리(Tree) 자료구조를 직접 구성하고, 요소를 삽입하고, 삭제하며, 트리의 모든 노드를 표시해야 하는 경우가 있습니다. 이럴 때는 필요한 기능을 메서드로 가진 클래스를 정의하고, 해당 클래스의 인스턴스를 생성하여 트리의 요소에 접근하고 각종 연산을 수행하면 됩니다.아래에서 실제 동작 과정을 살펴보겠습니다.예제 코드class Tree_struct: def __init__(self, data=None, parent=None): self.key = data &nb
파이썬에서 한 배열(리스트)의 모든 요소를 다른 배열로 복사해야 하는 경우가 자주 있습니다. 가장 기본적인 방법은 원본 리스트와 같은 길이의 None 요소로 채워진 새로운 리스트를 먼저 생성한 뒤, for 반복문으로 각 요소를 순회하면서 = 연산자를 사용해 값을 하나씩 할당하는 것입니다. 아래는 실제 구현 예시입니다. 예제 코드 my_list_1 = [34, 56, 78, 90, 11, 23] my_list_2 = [None] * len(my_list_1) for i in range(0, len(my_list_1)): m
문제 상황: Python의 boto3 라이브러리를 사용하여 계정에 생성된 AWS Glue Data Catalog의 S3 버킷에 있는 모든 객체를 페이지네이션(pagination) 방식으로 조회하는 방법을 알아봅니다.문제 해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: max_items, page_size, starting_token은 선택적(optional) 파라미터이며, bucket_name만 필수(required) 파라미터입니다.max_items: 반환할 총
문제 개요이 글에서는 Python의 boto3 라이브러리를 사용하여, 본인 계정에서 생성된 AWS Glue Data Catalog의 S3 버킷에 존재하는 멀티파트 업로드(multi-part upload) 객체를 페이지네이션(페이지 매김)하는 방법을 단계별로 살펴봅니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 모듈을 임포트합니다.2단계: 함수의 매개변수를 정의합니다. bucket_name은 필수 매개변수이며, prefix_name, max_items, page_size, starting
애플리케이션 개발 시 데이터베이스 자격 증명이나 API 키 같은 민감한 정보를 코드에 직접 하드코딩하는 것은 보안상 매우 위험합니다. AWS에서는 이런 비밀 정보를 안전하게 보관하고 조회할 수 있는 AWS Secrets Manager 서비스를 제공하며, Python에서는 boto3 라이브러리를 통해 손쉽게 연동할 수 있습니다. 이 글에서는 boto3를 사용하여 AWS Secrets Manager에 저장된 비밀 값을 일반 텍스트(plain text) 형태로 가져오는 방법을 단계별로 살펴보겠습니다. 문제 상황 Python의 boto3
문제 상황Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 바이너리/암호화된 형태로 저장된 시크릿 키를 일반 텍스트(평문)로 가져오는 방법을 알아보겠습니다.문제 해결 접근 방식1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: secret_stored_location(시크릿이 저장된 위치)은 필수 파라미터입니다.3단계: boto3를 사용해 AWS 세션을 생성합니다. 기본 프로파일에 region_name이 설정되어 있지 않다면, 세션 생성 시 리전 이름을 명시
문제 상황: Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 일반 텍스트(Plain Text) 형식의 시크릿을 생성하는 방법을 알아봅니다.문제 해결 접근 방식1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 필수 파라미터는 secret_stored_location(시크릿이 저장될 위치·이름)과 secret_key_pair(키-값 쌍)입니다. 특히 secret_key_pair는 딕셔너리(dict)가 아닌 반드시 문자열(string) 형태로 작성해야 합니다.
문제 정의: Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager의 특정 위치에 저장된 시크릿(보안 키)을 삭제합니다.문제 해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: secret_stored_location(삭제할 시크릿이 저장된 위치)은 필수 매개변수입니다.3단계: boto3 라이브러리를 사용해 AWS 세션을 생성합니다. 기본 프로필에 region_name이 설정되어 있지 않다면, 세션 생성 시 리전 이름을 명시적으로 전달해야
AWS Secrets Manager에서 시크릿을 삭제하면 즉시 사라지지 않고 일정 기간 동안 삭제 대기 상태로 유지됩니다. 이 기간 내에는 boto3의 restore_secret API를 사용하여 삭제 예정된 시크릿을 손쉽게 복원할 수 있습니다. 이 글에서는 Python으로 특정 위치에 저장된 시크릿을 복원하는 방법을 단계별로 살펴보겠습니다. 문제 해결 접근 방식 1단계: 예외 처리를 위해 boto3와 botocore.exceptions를 임포트합니다. 2단계: 복원하려는 시크릿의 경로인 secret_stored_location은
문제 상황Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 저장된 특정 위치의 보안 키(시크릿)를 업데이트하는 방법을 알아보겠습니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 필수 파라미터는 secret_stored_location(시크릿이 저장된 위치)과 secret_key_pair(업데이트할 키-값 쌍)입니다. 이때 secret_key_pair는 반드시 딕셔너리(dict)가 아닌 문자열(string) 형태로 전달해야 합
문제 정의 Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 저장된 특정 위치의 시크릿(비밀 값) 세부 정보를 조회하는 방법을 알아보겠습니다. 해결 접근 방식 및 알고리즘 1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다. 2단계: secret_stored_location(시크릿이 저장된 경로 또는 이름)은 필수 파라미터입니다. 3단계: boto3 라이브러리를 사용해 AWS 세션을 생성합니다. 기본 프로필에 region_name이 설정되어 있는지 확인하고, 설정
문제 상황Python의 boto3 라이브러리를 사용해 AWS Secrets Manager에서 랜덤 비밀번호를 생성하는 방법을 알아보겠습니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 이 작업에는 필수 파라미터가 없습니다.3단계: boto3 라이브러리로 AWS 세션을 생성합니다. 기본 프로파일에 region_name이 설정되어 있지 않다면, 세션 생성 시 region_name을 명시적으로 전달해야 합니다.4단계: secretmanager 서비스를 위한 AWS
문제 정의Python에서 boto3 라이브러리를 사용하여 AWS Secrets Manager에 저장된 모든 시크릿(secret)의 목록을 조회하는 방법을 알아보겠습니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 이 작업에는 별도의 매개변수가 필요하지 않습니다.3단계: boto3 라이브러리를 사용하여 AWS 세션을 생성합니다. 기본 프로필(default profile)에 region_name이 설정되어 있는지 확인하세요. 만약 설정되어 있지 않다면, 세션을
문제 상황Python에서 boto3 라이브러리를 사용하여 AWS Secrets Manager의 특정 위치에 새로운 시크릿(secret)을 저장하는 방법을 알아봅니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 필수 파라미터는 secret_stored_location(시크릿이 저장될 위치)과 secret_key_pair(시크릿 값)입니다. 이때 secret_key_pair는 딕셔너리(dict)가 아닌 반드시 문자열(string) 형태로 작성해야 합니다.3단계:
문제 개요이 글에서는 Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 등록된 특정 암호(Secret)에 태그(Tag)를 추가하는 방법을 알아봅니다.해결 접근 방식 및 알고리즘1단계: boto3를 임포트하고, 예외 처리를 위해 botocore.exceptions의 ClientError도 함께 임포트합니다.2단계: 함수에 필요한 파라미터는 secret_location(암호 위치)과 tags_dict(태그 딕셔너리)입니다. tags_dict는 {Key: Value, ...} 형태로 작성해야 합니다.3단
문제 개요 문제 상황: Python의 boto3 라이브러리를 사용하여 AWS Secrets Manager에 저장된 특정 시크릿(Secret)에서 태그를 제거합니다. AWS Secrets Manager는 데이터베이스 자격 증명, API 키 등 민감한 정보를 안전하게 보관하는 서비스입니다. 각 시크릿에는 키-값 형태의 태그를 붙여 리소스를 분류·관리할 수 있으며, 더 이상 필요하지 않은 태그는 untag_resource API를 통해 손쉽게 삭제할 수 있습니다. 사전 준비 사항 Python 환경에 boto3가 설치되어 있어야 합니다
문제 상황: Python에서 boto3 라이브러리를 사용하여 AWS Secrets Manager의 특정 함수가 페이지네이션(pagination)을 지원하는지 확인하고 싶습니다.해결 접근 방식 및 알고리즘1단계: 예외 처리를 위해 boto3와 botocore의 예외 클래스를 임포트합니다.2단계: 이 함수에서 secret_function은 필수 파라미터입니다.3단계: boto3를 사용하여 AWS 세션을 생성합니다. 기본 프로필에 region_name이 설정되어 있지 않다면, 세션 생성 시 명시적으로 리전 이름을 전달해야 합니다.4단계:
배열(리스트)의 요소를 왼쪽으로 회전시켜야 하는 경우가 종종 있습니다. 이를 구현하려면 배열을 반복 순회하면서, 지정된 회전 횟수만큼 각 요소의 인덱스를 한 칸씩 앞으로 이동시키면 됩니다.왼쪽 회전이란 리스트의 첫 번째 요소가 마지막 위치로 이동하고, 나머지 요소들이 한 칸씩 앞당겨지는 연산입니다. 예를 들어 [11, 12, 23]을 1회 왼쪽 회전하면 [12, 23, 11]이 됩니다.예제 코드my_list = [11, 12, 23, 34, 65] n = 3 print(원본 리스트 : ) for i in range(0, len(m
파이썬에서 배열(리스트)의 중복 요소를 출력해야 할 때는 리스트의 요소들을 하나씩 순회하면서 중첩 반복문(nested loop)을 활용할 수 있습니다. 이 방법은 각 요소를 나머지 모든 요소와 비교하여 동일한 값이 발견되면 화면에 출력하는 원리로 동작합니다. 아래 예제를 통해 자세히 살펴보겠습니다. 예제 코드 my_list = [1, 2, 5, 6, 8, 9, 3, 4, 8, 9, 1, 8] print(리스트는 다음과 같습니다 :) print(my_list) print(리스트의 중복 요소는 다음과 같습니다 : ) for i in
개요배열(리스트)의 요소를 역순으로 출력해야 하는 경우가 종종 있습니다. 이때 가장 기본적인 방법은 리스트를 마지막 인덱스부터 처음 인덱스까지 순회하는 것입니다. 파이썬의 range() 함수를 활용하면 간단하게 구현할 수 있습니다.아래 예제를 통해 자세히 살펴보겠습니다.예제 코드my_list = [21, 32, 43, 54, 75] print(The list is : ) for i in range(0, len(my_list)): print(my_list[i]) print(The list after reversal is : )