[N8N] streamlit을 연동하여 간단한 UI 구성해보기
·
카테고리 없음
인프런 강의를 들으면서 N8N과 Python의 streamlit을 활용해서 간단한 실습을 해보았다.Streamlit이란?streamlit은 파이썬의 데이터 시각화 웹 앱을 간단하게 만들 수 있는 프레임워크다. 내가 React나 HTML/CSS 이런걸 몰라도 파이썬 코드만 좀 안다면 바로 대시보드 화면을 만들 수 있게 해준다. 원래는 데이터 과학 쪽으로 특화 되었던거 같은데, 요새는 GPT나 클로드 같은 대화형 화면을 만들 때도 많이 쓰이더라.대충 아래와 같은 코드를 작성하면,import streamlit as stimport pandas as pd# 타이틀st.title("매출 대시보드")# 사이드바st.sidebar.header("필터")month = st.sidebar.selectbox("월 선택",..
[N8N] 카카오톡으로 RSS 요약해서 전송하기
·
카테고리 없음
요새 N8N에 대해서 관심이 많아서 유튜브를 많이 찾아보는데, 친절하신 유튜버께서 친절하게 떠먹여주셔서 감사하게 영상을 따라해본 후 나만의 방식으로 조금 바꿔보았다. 궁금하신 분은 해당 영상을 보거나 강사분이 제공해주는 Github 가이드를 보시고 직접 따라하는 것을 추천한다. 진짜 다 알려주심! bbbb영상의 내용은 RSS로 AI 최신 뉴스를 가져와서 요약 후 우리가 많이 사용하는 카카오톡 나에게 보내기로 요약본을 전송해주는 것이다. 나는 여기서 조금 변형 시켜서 언론사의 경제, 증권, 부동산 RSS를 하나씩 읽고 이를 요약하고 보내주는 식으로 바꿔보았다.그리고 OpenAI의 API 대신 구글에서 Gemimi를 사용했는데, 일정 수준까진 무료로 사용할 수 있어서 낼름 이거를 사용해보도록 하였다.제미니 ..
[RabbitMQ] 설치해보고 사용해보기
·
Infra
RabbitMQ란RabbitMQ는 시스템 간 메시지를 비동기로 주고받게 해주는 AMQP 프로토콜을 준수하는 메시지 브로커이다. 직접 통신 대신 큐를 두어 시스템을 느슨하게 연결하고, 한쪽에 장애가 나도 메시지는 안전하게 보관된다. 주요 활용 사례는 이메일/SMS 발송, 이미지 처리 같은 무거운 작업의 비동기 처리, 주문-결제-배송 같은 이벤트 전파가 있다. 여러 Worker로 작업을 분산시키거나 트래픽이 몰릴 때 요청을 큐에 쌓아두고 천천히 처리해서 시스템 안정성을 높일 수 있고, Spring Boot와 통합이 쉽고 관리 UI가 직관적이라 마이크로서비스 환경에서 많이 쓰인다.AMQP란AMQP는 Advanced Message Queuing Protocol의 약자로 메시지 지향 미들웨어를 위한 표준 프로토콜..
ArgoCD 설치 및 배포해보기
·
Infra
ArgoCD란?ArgoCD는 Kubernetes 환경에서 애플리케이션을 배포하고 관리하는 GitOps 도구이다. Git 저장소를 원천으로 삼아, 코드로 정의한 배포 상태와 실제 클러스터의 상태를 지속적으로 비교하고 자동으로 동기화해준다.동작 방식은 개발자가 Kubernetes 설정 파일(YAML)을 Git에 푸시하면, ArgoCD가 이를 감지하여 자동으로 클러스터에 배포한다. 별도로 복잡한 배포 스크립트를 작성하거나 kubectl 명령어를 실행할 필요가 없게된다.또한 직관적인 웹 UI를 제공하여 배포 상태를 실시간으로 확인할 수 있다. 배포에 문제가 생겼을 때는 Git 커밋 이력을 통해 손쉽게 이전 버전으로 롤백할 수 있으며, 하나의 ArgoCD로 여러 Kubernetes 클러스터를 동시에 관리할 수도 ..
[github] gemini-code-assist 봇의 도움을 받아보자
·
git
코드 리뷰의 갈증을 계속 느끼는 이유코드 리뷰가 필요한지는 항상 갑론을박이 많은 주제인 거 같다. "이 정도까지 내가 봐줘야 하나?", "내꺼 작업하기에도 바쁜데.." 등 다양한 이유도 있을테고 코드 리뷰 문화가 아직 도입되기 전인 조직이라면 코드리뷰를 해주기 어려운 환경에 처한 사람들이 많을 것이다. (필자 또한 비슷한 상황이고) 나 같은 경우에도 위의 이유처럼 때론 코드리뷰가 필요할까? 라는 의문이 들 때도 있지만, 개발이란 것은 나 혼자만 하는 것이 아니기에 서로의 코드도 봐주면서 서로 긍정적인 피드백을 주면 더 많은 성장을 할 수 있다 생각하기에 코드 리뷰는 할 수 있으면 해야 한다고 본다. 하지만 나 혼자 하는 사플의 경우에는 어떻게 해야할까? 옛날이었으면 답이 없었겠지만, 근래에는 많은 AI ..
K3S 대시보드 설치
·
Infra
공식 문서를 찾아보니 manifest 방식 지원은 중단했고, helm을 활용해서 설치를 해야한다해서 helm 부터 설치해주자curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4chmod 700 get_helm.sh./get_helm.sh# 또는curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 | bashhelm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/helm upgrade --install kubernetes-dashboard k..
K3S 설치해보기
·
Infra
curl -sfL https://get.k3s.io | sh -컴포넌트kubectl get pods -A 를 하면 설치된 컴포넌트들을 볼 수 있는데, 정리하면 다음과 같다.Core DNScoredns-64fd4b4794-pqbzb역할: 클러스터 내부 DNS 서버서비스 이름을 IP로 변환 (예: spring-app-service → 10.43.x.x)Pod 간 통신 시 도메인 네임으로 접근 가능하게 함예: curl http://spring-app-service:8080Traefik (Ingress Controller)helm-install-traefik-crd-csb2g # Traefik Custom Resource Definition 설치helm-install-traefik-64qp7 ..
SDKMAN 설치
·
Java
Java/Spring Boot 등 자바 환경을 사용하면 JDK를 많이 설치하게 될 것이다.이때 아직도 정말 많이 사용되는 자바8을 필요하거나 11, 17, 21 등의 다양한 LTS 버전들도 필요로 할 것이다.개발환경에서는 IntelliJ 같은 IDE를 사용하면 정말 편하게 버전 설정들을 할 수 있는데 운영 환경에서는 프로젝트에 맞는 자바 버전들을 설치해줘야 할 것이다.이럴때 쉽게 자바 버전을 관리해주는 SDKMAN을 사용해주면 좋다.https://sdkman.io/# SDKMAN 설치curl -s "https://get.sdkman.io" | bash# 셸 재시작 또는source "$HOME/.sdkman/bin/sdkman-init.sh"# 설치 확인sdk version우분투 환경에선 zip과 unzi..
미니PC 구입기 및 우분투 설치
·
ETC
드디어 왔다!이번 광군제를 존버하여서 미니 PC를 구입하였다.(바보같이 할인 쿠폰 적용 안해서 남들보다 비싸게 산 건 안 비밀...🥲)제품은 Firebat 사의 AM02 미니 PC이고, 대략적인 스펙은 이러하다CPU: AMD Ryzen 5 6600H RAM: DDR5 16GB RAMSSD: 512GB기본 윈도우11이 설치된 제품이지만 나는 바로 우분투 24 LTS 버전을 설치했다.Firebat 미니 PC를 구매한 이유는?처음엔 Beelink랑 GMKTec 사가 유명해서 해당 제품들을 알아보았다.보통 나는 제품을 살 때 좀 좋은걸 사서 오래 쓰자는 마인드라 처음부터 좀 좋은 스펙을 노려볼까 해서 Beelink꺼는 SER8(일명 서민8)과 SER9 라인, GMKTec는 K8P, K12 같은 제품들을 고민했..
[DB, MySQL] 트랜잭션 기초를 익혀보자
·
DB
https://www.yes24.com/Product/Goods/32613394 데이터베이스 첫걸음 - YES24 데이터베이스 입문서『데이터베이스 첫걸음』. 이 책은 데이터베이스를 처음 배우는 초보자부터, 기본을 다시 배우고 싶은 관련 업계 종사자들을 위한 내용으로 구성돼 있다. 데이터베이스를 www.yes24.com 위의 책을 내용을 실습하였다. 트랜잭션이란 트랜잭션... DB를 공부하게 되면 항상 나오는 단어이자, 면접이나 실무에서도 정말 중요하기에 알아야하는 개념이다. 근데 항상 볼때마다 헷갈리는 것이 문제다. 우리가 테이블을 갱신을 수행하기 위해 INSERT/DELETE/UPDATE를 사용하는데, 단일 쿼리만으로 구성하지 않고 보통 복수 쿼리를 연속적으로 수행하는 경우가 많다. 또한, 갱신 전의 ..
CORS 에러를 봐보자
·
카테고리 없음
간단한 조회 기능이 있는 노드 서버가 있다. 초간단하지만, 설명하자면 get으로 들어오면 json으로 뿌려주는 것이다. exports.getPosts = (req, res, next) => { res.status(200).json({ posts: [{ title: 'First Post', content: 'This is the first post!' }] }); }; exports.createPost = (req, res, next) => { const title = req.body.title; const content = req.body.content; // Create post in db res.status(201).json({ message: 'Post created successfully', po..
[Node, Udemy] 섹션5: Express.js 작업
·
Node
Express.js 설치 npm install --save express // app.js const http = require('http'); // 변수명은 자유롭게 지어도 됨, 경로가 없으면 글로벌 모듈 갖고옴 const express = require('express'); const app = express() const server = http.createServer(app); server.listen(3000); require를 통해 express를 갖고오고, http.createServer()에 넣어주면 된다. 미들웨어 추가 미들웨어를 활용하여 다양한 함수를 통해 요청, 응답을 넘길 수 있다. use()를 활용하면 미들웨어를 쓸 수 있게 되는데 인자로는 request, response, nex..