본문 바로가기

반응형

Minding's Programming/Knowledge

[Kafka/Python] Kafka 설치 방법(Conduktor) 실시간 데이터 처리 플랫폼의 대표라고 할 수 있는 Kafka에 대해 공부하기 위해서, Kafka를 어떻게 설치하는지 알아보려고 한다. 이 글에서는 Kafka를 Docker Container로 실행할 예정이기 때문에, 기본적으로 Docker가 설치되어 있어야 한다. Docker 설치는 아래 글을 참고하길 바란다. (Windows의 경우 WSL2 설치가 필요할 수 있다.) Docker의 개념 및 기본 실행 명령어 [Docker] Docker의 개념 및 기본 실행 명령어Docker Docker는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있게 해주는 Linux 컨테이너 기반 플랫폼이다. 애플리케이션과 관련된 라이브러리와 종속성을 하나의 패키지로 묶어 어디minding-deep-learning.tis.. 더보기
[Python/Unittest] Unittest Unittest?Python의 테스트 프레임워크인 unittest는 코드 상의 특정 기능을 테스트하기 위해 작성된다. 일반적으로 특정 입력을 주고 예상된 출력이 나오는지의 형태로 테스트한다. 최근 CI/CD의 자동화와 안정성이 중요해지면서 전체 코드의 테스트 커버리지의 중요성도 함께 높아졌는데, 이 때 Python코드에서는 unittest가 일반적으로 사용된다. unittest는 테스트 케이스를 class 단위로 작성하고, 그 안에 포함된 여러가지 메서드를 통해 기능을 테스트한다. 아래 코드는 unittest의 예시다.import unittestclass TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqu.. 더보기
[Docker] Docker Volume Docker Volume?Docker Container가 실행되었다가 중단된다면, 그 안에 있는 데이터들은 일반적으로 유실된다. 하지만 Container에서 DB같은 프로그램이 동작하는거라면, 그 데이터가 유실되면 안될 것이다. 그 데이터를 보장하는 기능이 Docker Volume이라고 할 수 있다. Docker Volume은 Docker Container의 가상 파일 시스템과 호스트 시스템(OS)의 파일 시스템을 맵핑해 기록을 남기는 방식으로 데이터를 저장한다. 위와 같은 방식으로 Container의 특정 폴더 경로를 OS 시스템의 포더 경로와 마운트해 해당 폴더를 공유하는 것이다. Docker Volume 타입Host Volumes: docker run -v를 실행할 때 페어로 지정docker run.. 더보기
[CI/CD] CI, CD 개념 및 Github Actions SW 빌드란? 개발한 소프트웨어를 최종적으로 출시하기 위한 형태로 만드는 것이다. 참여 개발자들이 많을수록 이 과정은 더더욱 중요해지며, 개발이 끝나기 전부터 빌드를 해서 테스트를 진행하면 SW의 안정성이 증대된다. CI (Continuous Integration)CI는 Software Engineering Practice의 하나로, 아래와 같은 기본 원칙을 가지고 있다.코드 Repo는 하나만 유지한다. (Master or Main)코드변경을 최대한 자주 반영테스트를 최대한 추가빌드를 계속적으로 수행 (자동화)성공한 빌드의 프로덕션을 릴리스 (자동화)CD (Continuous Delivery): 배포만약 빌드가 실패할 경우새 코드의 commit으로 테스트가 실패하는 경우, 많은 회사들이 다시 빌드가 성공.. 더보기
[BI/시각화] Superset SupersetLooker, Tableau 등 다양한 시각화 도구들이 있지만, 기능이 많은 만큼 배우기 다소 어렵거나 비용이 든다는 단점이 있다. Superset은 Airbnb에서 시작된 시각화 관련 오픈소스로, 다양한 형태의 시각화와 손쉬운 인터페이스를 지원한다. SQLAlchemy와 연동되어 다양한 DB를 지원하고, 실시간 데이터 시각화 및 API와 플러그인 아키텍처로 확장성도 좋다. Superset은 Flask와 React JS로 구성되어 있으며, sqlite를 메타데이터 DB로 사용한다. Redis를 캐싱 레이어로 사용하고, SqlAlchemy가 백엔드 DB 접근에 사용된다. Preset으로 Superset 사용해보기Superset은 크게 2가지 방법으로 사용해볼 수 있다. 첫 번째 방법은 pre.. 더보기
[Snowflake] Snowflake 알아보기 (설치 방법) Snowflake?Snowflake는 2014년에 출시한 데이터 저장부터 시각화, 머신러닝까지 가능한 클라우드 플랫폼이다. 글로벌 클라우드라고 불리는 AWS, GCP, Azure에서 모두 동작할 수 있어 많은 회사들이 Snowflake를 선택하고 있기도하다. 데이터 판매가 가능하기도 하며, ETL과 관련된 다양한 데이터 통합 기능을 제공한다. Snowflake의 특징가변 비용 모델: 스토리지와 컴퓨팅 인프라가 별도로 설정됨SQL 기반 데이터 처리 가능CSV, JSON, Parquet 등 다양한 데이터 포맷 지원배치 데이터 중심이지만 실시간 데이터 처리도 지원Time Travel 기능으로 과거 데이터까지 분석 가능웹 콘솔 및 Python API로 관리/제어 가능 (ODBC, JDBC 연결 지원)클라우드 스.. 더보기
[Docker] Docker의 개념 및 기본 실행 명령어 Docker Docker는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있게 해주는 Linux 컨테이너 기반 플랫폼이다. 애플리케이션과 관련된 라이브러리와 종속성을 하나의 패키지로 묶어 어디서든 일관된 환경에서 실행되도록 해준다. 이전에는 하나의 PC(또는 서버)에 가상화(Virtual Machine)를 통해 여러 개의 애플리케이션을 실행시키는 방법이 많이 사용됐다. 하지만 최근에는 Docker를 통해 각 컨테이너 별로 애플리케이션을 실행시키는 방식이 많이 도입되고 있다. 하나의 하드웨어에서 여러 개의 소프트웨어를 실행시킨다는 기본적인 개념은 같지만, Docker를 쓰기 시작한 데에는 많은 이유가 있다. 특징가상 머신(VM)Docker 컨테이너운영체제각 VM마다 별도의 게스트 OS 필요호스트 O.. 더보기
[POSTMAN] POSTMAN으로 API 호출해보기 포스트맨 설치https://www.postman.com/downloads/ Download Postman | Get Started for FreeTry Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.www.postman.com POSTMAN으로 API 호출해보기POSTMAN은 RESTful API 테스트를 위한 플랫폼으로, 다양한 HTTP 요청을 보내고 응답 결과를 쉽게 확인할 수 있도록 도와준다. 또한, API 요청과 응답 결과를 저장하고 공유할 수 있는 기능도 제공한다. 이 글에서는 이전에 Djang.. 더보기

728x90