반응형

프로그래밍 104

파이썬으로 엑셀파일 생성 및 불러오기

안녕하세요 Dibrary입니다. 이번엔 파이썬으로 엑셀파일을 다뤄보겠습니다. 엑셀도 여러 기능이 있고, 그걸 파이썬에서 다루려면 내용이 굉장히 광범위할텐데, 우선 파일을 만들고, 파일을 불러들여오는 것을 해보겠습니다. 먼저 엑셀파일을 다루려면 openpyxl 모듈을 사용해야 합니다. 따라서~ pip install openpyxl을 먼저 해 두셔야겠죠? 1. 엑셀파일 생성 엑셀 파일은 아주아주 쉽습니다. 모듈을 불러온 import를 제외하면 사실상 3줄입니다. 위 코드는 말 그대로, sample1_1.xlsx라는 엑셀파일을 생성'만' 하는 코드 입니다. 엄청 쉽죠? 2. 엑셀파일 불러오기 그냥 불러오면 좀 심심하니까, 값을 넣은 엑셀파일을 만들고 불러와보겠습니다. 엑셀 파일을 파이썬으로 만들고, A1에 1..

맨 땅에 헤딩하며 프로그램 개발하기 - 1 (계획)

안녕하세요, Dibrary입니다. 과거, 저는 개발업무를 할 때 맨땅에 헤딩을 하며 프로그램을 만들어 본 경험도 있고, 기본적인 코드가 완성된 회사에서 편의 혹은 유지보수코딩을 해본 경험도 있습니다. 그 중에! 맨 땅에 헤딩할 때가 가장 기억에 남고, 힘들었고, 가장 막막했었습니다. ㅠ.ㅜ 아마 원해서 자원하진 않겠지만, 내 생각과 다르게 이렇게 맨 땅에 헤딩하며 코딩을 해야 할 상황에 맞닥뜨릴 분들도 계시리라 봅니다. (아무렴 거지같은 중소기업이 없어지지 않는한 ... 이런 업무에 종사할 사람은 반드시 존재하기 마련이죠) 그런 분들을 위해 제가 경험했던 내용들을 정리해 올려보고자 합니다. 물론, 이 방법이 항상 100% 정답이다고는 할 수 없지만, 적어도 '멘토'없는 개발환경 상황에서 어느정도 갈피를 ..

데이터 플랫폼 설계와 구축 - 1장(소개) 정리

안녕하세요 Dibrary입니다. 앞으로 차츰 이 책의 내용에서 주관적으로 중요하다 생각되는 개념을 정리함과 동시에 '제 생각'도 같이 정리해 둘 예정입니다. 클라우드 데이터 플랫폼 = 모든 유형의 데이터를, 거의 무제한의 장소에서 비용효과적인 클라우드 네이티브 방식으로 수집, 통합, 변환, 분석, 관리되는 데이터 플랫폼 무슨말인가 하면, 데이터가 들어오는 것 부터 사용하는 단계까지 모두 클라우드에서 사용하는 것을 의미한다. 데이터 관련 기술을 처음 접하기 시작하면 대부분 로컬에 VM등을 사용해서 여러 PC환경을 갖춘 후에 실행해봐야 하는 경우가 대부분이다. 이런 거 말고 그 단계를 클라우드에 있는 걸 사용하거나 한다는 말. 단일 시스템 아키텍처는 유연성이 크게 떨어진다. ETL (혹은 ELT) 각 단계별..

Fast API 설치해서 간단히 hello world 보기

안녕하세요 Dibrary입니다. 이번에는 Fast API를 간단히 정리해보겠습니다. 먼저 아래 사이트를 방문하면 Fast API에 대해 더 자세히 알아보실 수 있습니다. FastAPI FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬 fastapi.tiangolo.com 간단히 설명드리면, 말 그대로 '빠른' 파이썬 프레임워크입니다. 빠른 이유는 아래 이미지를 보시면 어느정도 이해가 될 수 있습니다. Fast API는 크게 Starlette와 Pydantic으로 구성되어..

Ubuntu에 Docker를 설치해보자

안녕하세요. Dibrary입니다. 윈도우에서 Linux작업을 할 필요가 있을 때, 별도의 Linux환경 기기가 있으면 가장 좋지만... 그렇지 못할 경우 WSL2를 사용해서 Linux 작업을 할 수도 있습니다. WSL2에 저는 ubuntu를 설치해 놓았고, 버전은 22.04입니다. 근데 제가 사용해보고자 하는 도구가 docker를 사용해야 했기에, docker를 설치할겸 정리도 해보겠습니다. 먼저 도구를 최신버전으로 만들어줍니다. sudo apt-get update 그 다음에 docker 설치에 필요한 패키지들을 설치해 줍니다. sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release 그 다음에 도커의 공식 GPG Ke..

Airflow에서 보기 편하게 Task를 묶어주는 - TaskGroup

안녕하세요 Dibrary입니다. Airflow 책을 보면서 Task를 구성하고 연결하는 것 까지는 해보았는데, 갯수가 많은 경우는 보기가 복잡할 수 있겠다~ 싶은 점이 있었습니다. 아니나 다를까, 최근 Airflow는 TaskGroup이라는 기능이 있어서 graph에서 보기 편하게 해 주는 기능이 있었습니다. graph를 사용하지 않은 기본 코드를 먼저 작성 해 보겠습니다. 위 코드의 graph를 보면 아래와 같이 나옵니다. 말 그대로 task_0에서 2가지 task로 분기가 되고, task_1_2에서 3가지로 분기가 되었다가 task_1_3_4에서 다시 모입니다. Task의 흐름을 보여드리고자 DummyOperator만 사용했습니다. BashOperator 및 PythonOperator를 사용하셔도 볼..

[파이썬 클린코드] 4장 (SOLID 원칙) 정리

안녕하세요 Dibrary입니다. 이번에는 파이썬 클린코드의 4장 내용을 정리해보겠습니다. 4장은 객체지향적으로 코딩을 작성할 때 생각해 봐야 하는 원칙인 SOLID원칙을 설명하고 있습니다. 1. S (Single Responsibility Principle) 단일 책임 원칙 소프트웨어 컴포넌트(클래스)는 단 하나의 책임을 져야 한다는 것. 아래 코드 처럼 독립적인 동작을 하는 메서드를 하나의 클래스에 정의해버리면 안 된다. 이렇게 하나에 많은 기능을 집약해넣게 될 경우, 외부 요소에 의한 영향 최소화가 안 된다. 보다 응집력있고 작은 추상화가 가능해야 한다. 물론, '단일 책임 원칙'이라고 해서 클래스가 딱 하나의 메서드만을 가져야 한다는 것이 아니다. 2. O (Open/Close Principle) ..

[파이썬 클린코드] 3장 (좋은 코드의 일반적 특징) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 3장 중 핵심 내용만을 정리한 것입니다. 1. 계약에 의한 디자인 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 고객에게는 애플리케이션 프로그래밍 인터페이스(API)를 노출해야 한다. 코드가 정상적으로 동작하기 위해 기대하는 것과, 호출자가 반환 받기를 기대하는 것은 디자인의 하나가 되어야 한다. 사전조건 = 코드가 실행되기 전에 체크해야 하는 것들 사후조건 = 함수 반환값의 유효성 검사가 수행 불변식 = 함수가 실행되는 동안 일정하게 유지되는 것 사전조건 검증에 실패하면 클라이언트의 결함으로인한 것이다 사후조건 검증에 실패하면 특정 모듈이나 제공 클래스 자체의 문제로 인한 것이다 중복제거원칙 = 사전조건 검증을 양쪽(클라이언트, 서버)에..

Hadoop 기본 구조 및 원리

안녕하세요 Dibrary입니다. 하둡은 조금 검색만 해도 수두룩히 많은 내용이 나오는 클러스터로 분산 저장, 처리를 할 수 있게 해 주는 프레임워크죠. 제 나름대로 이해하고 찾은 내용을 여기에 정리해보겠습니다. 처음 접하는 분들에게 도움이 되었으면 좋겠네요. 하둡의 특징 1. 데이터를 Block 단위로 나눠서 저장한다. (분산 저장 가능) 2. Scalability하다. 즉, 클러스터에 Node가 더 필요하면 추가하거나 줄일 수 있다. 3. 처리하던 Node가 실패하면, 다른 Node로 작업을 할 수 있다. 간단하게 보면 위와 같은기능을 가지고 있습니다. 그럼 이 기능들이 어떻게 동작할 수 있는지 보죠. 하둡은 크게 Version1과 Version2로 나눌 수 있습니다. (Version3이 최근거지만, ..

Kafka 기본 개념 및 아키텍처

안녕하세요 Dibrary입니다. 이번에는 Data처리에 핵심 기술인 Apache Kafka에 대해 정리해보겠습니다. 분산 스트리밍 플랫폼. 데이터를 유실없이 안전하게 전달하는 것이 주 목적인 ‘메시지 시스템’에서 데이터를 처리할 수 있습니다. 분산 스트리밍 플랫폼. 데이터를 유실없이 안전하게 전달하는 것이 주 목적인 ‘메시지 시스템’에서 데이터를 처리할 수 있습니다. 기본 아이디어는 Pub / Sub 모델 입니다. 메시지를 관리하는 Queue가 중앙에 있고, 독립적으로 발행, 소비가 이뤄집니다. 카프카의 특징 1. Pub / Sub 모델 2. 확장성 3. 메시지 순차처리 4. 분산처리 Producer는 데이터를 push , Consumer는 데이터를 pull 합니다. Foo와 Bar는 각각 3개의 Par..

반응형