오늘은 Docker compose를 활용하여 카프카 기본 환경을 구축해보려고 합니다! 해당 환경은 dokcer compose 를 활용하여 3대의 브로커 서버와 1대의 kafka web ui 로 구성된 환경입니다. 시작에 앞서 카프카 설명을 간단하게 해보도록 하겠습니다! 1. Kafka란? 카프카란? Apache Kafka는 실시간 스트리밍 데이터 처리를 위해 Linkedin에서 개발하였으며 현재는 Apache 소프트웨어 재단에서 관리하고 있는 오픈 소스 분산 데이터 스트리밍 플랫폼 입니다. 여러 데이터 스트림을 처리하고 여러 사용자에게 전달하도록 설계 되었습니다. - 카프카는 Pub/Sub 모델(구조)를 따릅니다. pub/sub 모델(구조, 패턴)이란 발행 - 구독 모델로 발행자(Publisher)가 ..
ECR이란? Amazon Elastic Container Registry(ECR)은 AWS 클라우드에서 제공하는 Docker 컨테이너 이미지를 쉽게 저장, 관리 배포할 수 있는 완전 관리형 서비스 입니다. ECR은 Docker 컨테이너 이미지의 보안, 확장성 및 관리를 간소화하며 개발자가 서버를 관리하지 않고도 애플리케이션을 컨테이너화 하고 배포할 수 있게 지원합니다. ECR은 고가용성을 제공하며 이미지를 자동으로 복제하여 여러 AWS 리전에 저장할 수 있고 이를 활용하여 글로벌 확장의 이점을 얻을 수 있습니다. 또한 ECR은 이미지 보안을 위해 암호화된 저장소를 제공, IAM 정책을 통하여 엑세스를 제어할 수 있어 민감한 어플리케이션을 안전하게 관리할 수 있는 장점을 가지고 있습니다! 오늘은 이러한 E..
AWS CLI란? aws cli 란 Amazon Web Services Command Line Interface의 약자로 AWS 서비스를 관리하기 위해 커맨드 라인에서 직접 명령어를 실행할 수 있게 하는 도구입니다! 오늘은 저도 유용하게 사용하고 있는 AWS CLI를 설치와 기본적인 사용법을 정리해보겠습니다! AWS CLI 설치 Homebrew 를 사용한 AWS CLI 설치 (OS: macOS) homebrew는 macOS에서 소프트웨어 패키지를 설치하고 관리하는 패키지 관리자입니다! 요 내용은 나중에 따로? 정리해보도록 하겠습니다! 설치 명령어 brew install awscli 설치 확인 aws --version 설치가 되었다면 사용하기 전에 사용자의 AWS 계정과 awscli를 연결하는 과정이 필요..
오늘은 Python Linter에 대하여 알아보도록 하겠습니다! 1. Linter란? 린터(Linter)란 소스 코드를 분석하여 프로그래밍 오류, 버그, 스타일 오류, 의심스러운 구문등과 같이 잠재적인 문제점을 찾아내는 도구입니다. * 유래 : 1970년대에 C 언어 코드를 검사하는데 사용된 'Lint' 에서 유래! Linter를 사용하는 이유는 뭘까요? - 코드 품질 향상 - 코딩 표준 준수 - 버그 예방 - 개발 효율성 향상 Linter 는 프로그래밍 언어에 맞게 다양한 종류가 존재합니다. 오늘 저는 python 에서 사용되는 Linter 중 Pylint, Flake8, isort , black, Ruff 에 대하여 간단히 알아볼까 합니다! 2. Pylint Pylint는 Python 코드의 오류, ..
1. 파이썬의 객체 파이썬은 다양한 종류의 객체를 지원합니다. 파이썬의 객체는 수정 가능한 타입과 수정 불가능한 두 가지 타입으로 분류 할 수 있습니다. 오늘은 수정 불가능한 객체인 immutable 과 수정 가능한 객체인 mutable에 대하여 알아보도록 하겠습니다. 2. Mutable 객체란? Mutable 객체는 생성된 후에도 상태나 값이 변경될 수 있는 객체 입니다. 이 객체는 메모리에 할당된 후에도 내용을 변경하거나 업데이트 할 수 있습니다. 가변 객체 (Mutable Objects) - 가변 객체는 생성된 후에도 그 상태를 변경할 수 있습니다. - 가변 객체에는 list, dict, set 와 같은 타입의 객체가 있습니다. - 가변 객체를 수정하면, 메모리의 동일한 주소에 있는 객체가 변경됩니..
파이썬의 "collections" 모듈은 다양하고 강력한 컨테이너 데이터형을 제공합니다. 오늘은 "collections" 모듈의 주요 컴포넌트들을 알아보고 어떻게 사용될 수 있는지 알아보겠습니다! 1. namedtuple 'namedtuple' 는 튜플을 생성하는 방법 중 하나로 간단한 데이터 구조를 표현하는데 사용됩니다. 'namedtuple'는 각 요소에 이름을 지정할 수 있는데 이는 코드의 가독성을 향상 시키고 데이터를 더 쉽게 다룰 수 있게 해줍니다. from collections import namedtuple Person = namedtuple('Person', ['name', 'age', 'gender']) person1 = Person(name='Alice', age=30, gender='..
오늘은 DDD, 도메인 주도 설계 방법론에서 사용되는 용어에 대한 정리를 해볼까 합니다.제가 요즘 DDD 공부를 하고 있는데 책에 듣지 못했던 용어들이 사용되어 계속 찾아보는 불편함을 느끼고 있습니다. 읽어도 그 순간에는 ㅎ 이해하는데 시간이 지나고 다시보면 좀 했갈리고 실제 코드의 구현과 매핑이 잘 안되기도 해서스스로 공부를 위해 정리해봅니다! 자 그럼 일단 간략히 DDD란 무엇인지 부터 정리해보겠습니다!1. DDD란? 도메인 주도 설계란?도메인 주도 설계(DDD, Domain-Driven Design)는 소프트웨어 시스템의 복잡성을 다루기 위한 개발 방법론 중 하나입니다. DDD는 도메인, 즉 비즈니스 영역에 중점을 두고 시스템을 설계하고 개발하는 방법론으로, 도메인 모델링, 팀 간 소통, 유비쿼터..
https://vipdeveloper.tistory.com/132 poetry 1편 : poetry란? 의존성 관리하는 방법, 기본 사용법 및 설정 방법 안녕하세요, 오늘은 poetry 를 사용해서 파이썬 프로젝트를 관리하는 방법에 관하여 글을 작성해볼까 합니다! 저도 사실 poetry 라는 것을 이번에 처음 써보게 되어 공부할 겸! 글을 작성하는 것이 vipdeveloper.tistory.com 안녕하세요. 오늘은 지난 번 글에이어 poetry로 가상환경을 관리하는 방법을 알아보도록 하겠습니다. 의존성을 관리하다보니 파이썬의 버전과 가상환경까지 관리하면 더 좋을 것 같은데 여윽시 기능으로써 존재합니다! Pyenv가 이번 글의 메인은 아니지만 간략히 알아보고 진행하도록 하겠습니다. 1. Pyenv란? P..