2024/01 23

[Alogrithm] 동적 계획법 (Dynamic Programming) 이란

동적 계획법 동적 계획법 (Dynamic Programming)이란 복잡한 문제를 간단한 여러 문제로 나누어 푸는 방법을 말한다. 부분 문제가 반복(Overlapping Subproblem)되거나 최적 부분 구조 (Optimal Substructure)를 가진 알고리즘을 효율적으로 해결할 때 사용한다. 최적 부분 구조 (Optimal Substructure) 답을 구하기 위해 수행한 계산을 반복해야 하는 문제의 구조 동적 계획법은 알고리즘이라기보다는 어떤 문제를 풀 때 그 문제를 더 작은 문제의 연장선으로 생각하고 기존에 구한 해를 활용하는 방법을 총칭한다고 이해하는 편이 좋다. 접근 방식 1. 큰 문제를 작은 문제로 표현할 수 있다. 예로 들어 피보나치는 아래와 같이 표현할 수 있다. $$ \begin..

Algorithm 2024.01.31

[GitLab] git cli로 Merge Request 생성

개요 로컬 GitLab 레포지터리에서 발생한 수정 사항을 원격지에 Push 하고 싶다. Branch 전략에 의해 master/main 브랜치에 직접 push하는 게 아니라 Merge Request를 통해 수정 사항을 반영하려고 하는데, 이 과정을 자동화할 수 있었으면 한다. 혹시 Git CLI 등으로 MR을 생성할 수 있는지, 어떻게 하는지 정리한다. git push -o 구글링과 공식 문서에 의하면 Git 2.10 이상 GitLab 11.10부터 push 명령에 옵션을 추가하여 MR을 생성할 수 있다고 한다. git push --push-option= # 또는 git push -o 사용할 수 있는 옵션은 여러가지인데 MR 생성과 설정에 대한 기본적인 옵션 정도만 살펴봤다. git push \ -o me..

Git | GitLab 2024.01.30

[AWS] cli - AWS 제공 EC2 인스턴스 타입 목록 조회 - 2

개요 2024.01.26 - [AWS] cli - AWS 제공 EC2 인스턴스 타입 목록 조회 - 1에 이어 AWS cli로 AWS가 제공하는 EC2 인스턴스 타입 목록을 조회하는 방법을 정리한다. ec2 describe-instance-type ec2 describe-instance-type 명령어는 제공되는 인스턴스 타입의 세부 정보를 반환한다. aws ec2 describe-instance-types 옵션 없이 사용하면 현재 리전에서 제공되는 모든 인스턴스 타입에 대한 세부 정보가 나열된다. 따라서 인스턴스 타입만 나열할 때는 --query 옵션을 이용한 출력 필터링이 필요하다. aws ec2 describe-instance-types \ --query InstanceTypes[].InstanceT..

AWS 2024.01.29

[AWS] cli - AWS 제공 EC2 인스턴스 타입 목록 조회 - 1

개요 AWS에서 제공하고 있는 EC2 인스턴스 타입의 목록이 필요하다. AWS cli나 Linux 명령어 등을 통해 목록을 얻는 방법에 대해 정리해 둔다. 이 글에서는 여러 방법 중 ec2 describe-instance-type-offerings 명령어 대해 정리한다. ec2 describe-instance-type-offerings ec2 describe-instance-type-offerings 명령어는 제공되는 모든 인스턴스 타입의 목록을 반환한다. region 또는 az를 지정하여 특정 위치에서 제공되는 인스턴트 타입의 목록을 확인할 수 있는데, 만약 목록을 확인할 위치 정보를 지정하지 않으면 현재 region을 목록을 확인할 위치로 취급한다. 현재 리전에서 제공하는 인스턴스 유형 목록 확인 옵..

AWS 2024.01.26

[Python] 콜백 함수 (Callback)

개요 프로그래밍 업무를 하다 보면 콜백함수란 단어를 간혹 듣게 되는데, 개인적으로 개념을 잘 이해하고 있는 것 같진 않아 이번 기회에 정리해보려고 한다. Callback 프로그래밍에서 콜백 또는 콜백함수란 다른 코드의 인수로 넘겨주는 실행 가능한 코드를 말한다. 일반적으로 함수는 사용자 정의 코드에서 호출하는데, Callback은 이와 반대로 함수 내에서 사용자 정의 코드를 호출하게 된다. 호출 방향이 일반적인 경우와 반대이기 때문에 Call + Back이라고 일컬어진다. 콜백함수를 다른 코드로 전달할 때는 콜백 함수의 포인터, 람다 함수의 형태로 전달하며 필요에 따라 즉시 실행하거나 나중에 실행할 수 있다. 예시 간단한 예시로 콜백함수의 구현을 알아본다. 아래와 같이 입력 받은 숫자가 양수인지, 음수인..

Python 2024.01.25

[프로그래머스] 롤케이크 자르기

문제 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/132265 철수는 여러 토핑이 일렬로 올려진 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 한다. 두 사람은 조각의 크기보다 토핑의 종류를 더 중요하게 생각해, 각 조각에 올라간 토핑의 가짓수가 동일하면 공평하게 나눈 거라 생각한다. 예로 들어, 롤케이크에 4가지 종류의 토핑이 올라가 있고 그 토핑을 1, 2, 3, 4와 같은 번호로 표시했을 때 롤케이크의 토핑은 [1, 2, 1, 3, 1, 4, 1, 2]라고 표현할 수 있다. 이 롤케이크를 공평하게 나눈 경우는 [1, 2, 1, 3], [1, 4, 1, 2] 또는 [1, 2, 1, 3, 1], [4, 1, 2]가 될 ..

Algorithm 2024.01.24

[Helm] Release 정보 확인

개요 Kubernetes 환경에서 Helm Release로 애플리케이션을 배포했는데, Release가 어떤 value로 배포되었는지 등의 정보를 확인하고 싶다. 방법을 적어둔다. helm get Helm Release의 정보를 확인하고 싶을 떄는helm get 명령어를 사용할 수 있다. get 명령어에 정보를 확인할 release를 지정하여 사용한다. helm get values 확인 Helm release를 배포할 때 사용한 value 값을 확인한다. helm get values 배포 리소스 확인 Helm Release로 인해 생성된 쿠버네티스 객체 정의를 확인한다. helm get manifest Helm Chart templete과 values.yaml이 결합된 yaml 정의 문서를 확인할 수 있다..

Kubernetes 2024.01.23

[Trino/Hive] 파티션 저장된 S3 데이터 쿼리

개요 2023.03.30 - [Trino/Hive] AWS S3 쿼리하기에서 Hive-connector를 이용해 S3 데이터를 Trino로 쿼리 하는 방법을 정리했다. 이번 글에서는 아래와 같은 구조로 저장된 S3 데이터를 Trino로 쿼리 하되, 데이터 조회 속도 개선을 위해 테이블 파티션을 사용하고자 한다. s3://text_bucket/data/page_views/year=2023/month=12/day=10/1.parquet s3://text_bucket/data/page_views/year=2023/month=12/day=11/1.parquet s3://text_bucket/data/page_views/year=2023/month=12/day=12/1.parquet s3://text_bucket..

Trino 2024.01.22

[Hive] 테이블 - 파티션

개요 2024.01.17 - [Hive] 데이터베이스, 2024.01.18 - [Hive] 테이블 - 개념 및 유형에 이어서 이번 글에서는 Hive 테이블의 파티션 개념에 대해 정리한다. 파티션 Hive는 디렉터리 단위로 데이터를 읽기 때문에 데이터가 많아질수록 속도가 느려진다. 이를 방지하기 위해 데이터를 하위 폴더로 분리해서 저장하는 파티션 개념을 사용한다. 테이블 생성 시 PARTITIOND BY절로 기준 컬럼 정보를 제공하면 디렉터리 단위로 데이터가 생성되며, 데이터 조회 시 WHERE 조건절에서 사용할 수 있다. 즉, SELECT 시 읽는 데이터의 양을 줄여서 처리 속도를 개선할 수 있다. 사용 예시) -- 날짜 기준 파티션 생성 CREATE TABLE tbl( col1 STRING ) PART..

Hadoop EcoSystem 2024.01.19

[Hive] 테이블 - 개념 및 유형

개요 2024.01.17 - [Hive] 데이터베이스에 이어 이번 글에서는 Hive 테이블 개념에 대해 정리한다. 테이블 Hive에서 테이블은 HDFS에 저장된 파일과 디렉터리 구조에 대한 메타 정보라고 할 수 있다. 실제 파일의 구조에 대한 정보와 저장 위치, 입력 형식, 출력 형식, 파티션 정보 등 여러 정보를 포함한다. 테이블은 CREATE 문으로 생성할 수 있다. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [column_constraint_specification] [COMM..

Hadoop EcoSystem 2024.01.18
1 2 3