데이터 엔지니어

개인 일정/공부

API란?

API란? API는 "Application Programming Interface"의 약자로, 프로그램 간에 상호작용하기 위한 규칙과 도구 모음을 의미합니다. 일반적으로 API는 소프트웨어 개발자가 다른 소프트웨어와 통신하고 상호작용하는 데 사용하는 인터페이스입니다. API는 다양한 형태로 존재할 수 있습니다. 가장 일반적인 형태는 웹 API이며, HTTP 프로토콜을 통해 웹 서버와 통신합니다. 웹 API는 웹 서비스의 기능을 외부 개발자에게 노출하고, 다른 애플리케이션에서 해당 기능을 사용할 수 있도록 합니다. 예를 들어, Twitter API는 개발자들이 트위터의 기능을 활용하여 애플리케이션을 개발할 수 있게 해줍니다. API는 일반적으로 요청과 응답의 형태로 작동합니다. 클라이언트(호출하는 애플리케..

Database/SQL

[Database] 데이터베이스란?

데이터베이스란? 데이터베이스(Database)는 체계적으로 구성된 데이터의 집합이며, 이 데이터들은 효율적이고 안정적으로 저장, 관리, 검색, 업데이트, 삭제 등의 작업을 수행하기 위해 구조화된 방식으로 구성됩니다. 데이터베이스는 정보를 기록하고 유지하는 데 사용되며, 다양한 종류의 응용 프로그램과 시스템에서 데이터를 관리하는 데 주로 사용됩니다. 데이터베이스는 일반적으로 테이블(table)로 구성된 관계형 데이터베이스(Relational Database) 형태로 사용됩니다. 테이블은 행(row)과 열(column)로 구성되어 있으며, 각 행은 데이터 레코드(record)를 나타내고, 각 열은 해당 레코드의 특정 속성(attribute)을 나타냅니다. 예를 들어, 고객 정보를 저장하는 테이블은 고객의 이..

Programming Language/Python

[Python] 클린코드란

클린코드란? 클린 코드(Clean Code)는 소프트웨어 개발에서 가독성, 유지 보수성, 재사용성 등을 높이고 결함을 최소화하기 위해 작성된 코드를 말합니다. 파이썬에서도 클린 코드 원칙을 따라 작성하면 코드의 품질을 향상시킬 수 있습니다. 아래는 파이썬에서 클린 코드를 작성하는 데 도움이 되는 몇 가지 원칙과 권장 사항입니다. 1. 가독성: 코드는 다른 사람이 읽기 쉽고 이해하기 쉬워야 합니다. 가독성을 높이기 위해 다음과 같은 사항을 고려할 수 있습니다. - 적절한 변수 및 함수 이름 사용: 변수 및 함수 이름은 명확하고 의미 있는 이름으로 작성해야 합니다. 의도를 명확히 표현할 수 있는 이름을 선택하세요. - 주석 활용: 코드에 필요한 주석을 추가하여 다른 개발자가 코드를 이해하기 쉽도록 도와주세요..

Programming Language/Python

[Python] for, while 반복문과 else를 같이 쓰는 방법

- for, while 반복문과 else를 같이 사용할 수 있다. 하지만 좋은 코딩은 아니다. - 반복문이 정상적으로 종료했을 때 else문이 실행된다. 하지만, 반복문 내에서 break를 만났을 때에는 실행하지 않는다. 일반적인 for 반복문 사용 방법 %reset -f temp_list = ["a", "b", "c", "d", "e"] for i in temp_list: print(i) 일반적인 while 반복문 사용 방법 %reset -f temp_list = ["a", "b", "c", "d", "e"] while temp_list: print(temp_list) temp_list.pop() for + else 사용 방법 %..

Programming Language/Python

[Python] range()를 사용해야하는 이유

range() - range()는 iterable(이터러블)을 생성한다. - 데이터를 메모리에 보관하지 않는다. - range()의 데이터 크기는 메모리와 관계 없다. - range()는 항상 메모리가 작다. - range()는 항상 동일한 크기의 메모리를 사용한다. - range()는 반복문에서 리스트보다 빠르다. 따라서, 숫자와 관련된 반복문을 사용시에는 리스트보다 range()를 쓰자. - (Good) for i in range(5): - (Bad) for j in [0, 1, 2, 3, 4]: range()의 데이터 크기가 달라도 변수가 차지하는 메모리가 같을까? - 같다. %reset -f import sys test_range_1 = range(0, 10) test_range_2 ..

Operating System/Docker

[Docker] 컨테이너가 실행중인지 확인하고 종료 및 삭제하는 쉘스크립트

.env IMAGE_NAME=docker-pgt/ubuntu_1804 IMAGE_TAG=0.01 CONTAINER_NAME=ubuntu_1804 test.sh if [[ "$(docker ps -a -q -f "name=${CONTAINER_NAME}" 2> /dev/null)" != "" ]]; then echo "There is a container." if [[ "$(docker container ls -q --filter "name=${CONTAINER_NAME}" 2> /dev/null)" != "" ]]; then echo "Container is running." echo "Shut down and remove the container." docker stop $(docker containe..

Database/Redis

[Redis] 레디스를 사용하는 이유

레디스를 사용하는 이유 레디스(Redis)는 오픈 소스인 인 메모리 데이터 구조 저장소로서, 다양한 용도로 사용되는 데이터베이스입니다. 레디스의 주요 목표는 높은 성능과 확장성을 제공하는 것입니다. 이를 위해 데이터를 주 메모리에 저장하여 빠른 응답 시간을 보장하며, 단일 서버뿐만 아니라 여러 서버 간 데이터 분산도 지원합니다. 레디스를 사용하는 이유는 다음과 같습니다: 1. 높은 성능: 레디스는 모든 데이터를 메모리에 저장하므로 디스크 I/O 오버헤드가 없습니다. 이로 인해 매우 빠른 읽기와 쓰기 작업을 수행할 수 있습니다. 또한 단일 쓰레드 모델을 사용하여 데이터베이스 작업을 순차적으로 처리하므로 복잡한 동시성 문제를 피할 수 있습니다. 2. 다양한 데이터 구조: 레디스는 단순한 키-값 구조 이상의 ..

Database/Redis

[Redis] 레디스의 장점

레디스의 장점 레디스(Redis)는 인메모리 데이터 스토어로서 많은 장점을 가지고 있습니다. 다음은 레디스의 주요 장점들입니다: 1. 뛰어난 성능: 레디스는 데이터를 주 메모리(RAM)에 저장하므로 매우 빠른 데이터 액세스 속도를 제공합니다. 따라서 레디스는 실시간 애플리케이션에서 매우 효율적이며 높은 처리량과 낮은 지연 시간을 요구하는 시나리오에 이상적입니다. 2. 간결한 인터페이스: 레디스는 간단하면서도 강력한 키-값 저장소 인터페이스를 제공합니다. 사용자는 데이터를 가져오기, 설정하기, 삭제하기 위해 간단한 명령어를 사용할 수 있습니다. 이러한 간결한 인터페이스는 개발자가 레디스를 사용하여 빠르고 쉽게 작업할 수 있도록 도와줍니다. 3. 다양한 데이터 구조 지원: 레디스는 단순한 키-값 저장소 이상..

Database/Prometheus

[Prometheus] 프로메테우스의 장점

프로메테우스 장점 프로메테우스는 오픈소스 모니터링 시스템으로, 대규모 분산 시스템에서 발생하는 메트릭 데이터를 수집, 저장, 분석하고 시각화할 수 있습니다. 이를 통해 시스템의 성능과 안정성을 쉽게 파악하고, 문제를 신속하게 해결할 수 있습니다. 프로메테우스의 장점은 다음과 같습니다. 1. 쉬운 설치와 설정 프로메테우스는 쉽게 설치하고 설정할 수 있습니다. 또한, 대부분의 메트릭 데이터 소스와 호환성이 뛰어나기 때문에 다양한 시스템에서 쉽게 사용할 수 있습니다. 2. 데이터 수집 및 저장 프로메테우스는 분산 시스템에서 발생하는 메트릭 데이터를 수집하고 저장할 수 있습니다. 이를 통해 시스템의 상태와 성능을 실시간으로 모니터링할 수 있습니다. 또한, 메트릭 데이터의 저장 방식이 효율적이기 때문에 대규모 시..

Data Engineering/Kafka

[Kafka] 아파치 카프카란?

아파치 카프카란? 아파치 카프카는 분산 데이터 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 처리하는 데 사용됩니다. 카프카는 대규모 데이터 센터에서 생성되는 대규모 데이터 스트림을 안정적으로 처리할 수 있습니다. 카프카의 구조는 브로커(broker)와 토픽(topic), 파티션(partition)으로 구성됩니다. 브로커는 카프카 클러스터 내에서 데이터를 저장하고 처리하는 역할을 합니다. 토픽은 데이터가 저장되는 논리적인 단위이며, 파티션은 토픽 내에서 데이터를 저장하는 물리적인 단위입니다. 각 파티션은 여러 대의 브로커에 걸쳐 분산되어 데이터 손실을 방지하고 성능을 향상시킵니다. 카프카의 주요 특징은 다음과 같습니다. - 스케일 아웃: 클러스터를 추가하여 선형적으로 확장이 가능합니다. - 고성능..

박경태
'분류 전체보기' 카테고리의 글 목록 (28 Page)