[Spring 입문] 1. 프로젝트 환경 설정
·
🐥 Web/⛅ Back-end | Spring
1. 프로젝트 생성 project - Gradle spring boot version - 2.7.12 spring boot 3.x.x로 선택하는 경우 java version이 17 이상이어야함 java version 12(11) artifact - output name package name = name.artifact 형태로 패키징됨 Thymeleaf - template engine, 뒤에서 설명 spring web - web builder 프로젝트 구성 src/main src/test ⇒ test 코드를 따로 작성하는 것에 대한 중요성이 대두되는 중. build.gradle ⇒ 버전 설정, 라이브러리 로드 등 python virtual environment에서 requirement.txt처럼 depe..
[Elasticsearch] Logstash를 통해 PostgreSQL과 Elastic Stack 연동하기
·
🐥 Web/❔ Back-end | etc.
* 2023.12.21 업데이트 - Docker ELK로 PostgreSQL과 Elastic Stack 연동 포스팅 [Docker + ELK] Docker ELK를 사용해서 PostgreSQL DB 모니터링 하기 이번 포스팅에서는 이전에 elasticsearch, kibana, logstash를 별도로 실행하여 PostgreSQL DB를 모니터링했던 것을 Docker을 통해서 구현해본다. 로컬 환경에서 elk를 구성했던 포스트는 아래 링크에서 확인할 dnai-deny.tistory.com 이전 포스팅에 먼저 언급했다싶이 RDBMS에 Elasticsearch를 적용하기 위한 방법을 검색했을 때 가장 많이 추천하는 방법이 Logstash를 이용한 모니터링이었다. [Elasticsearch] Logstash ..
[Elasticsearch] Logstash 사용해보기
·
🐥 Web/❔ Back-end | etc.
제목만 썼는데 어제의 삽질이 올라오는 기분.... 곧장 시작해보겠다. elasticsearch 설치에 관련된 내용은 이전 포스팅 참고. [Elasticsearch] Elasticsearch 기본 개념 및 설치, kibana 연동하기 최신 한국어 자료가 없어서 설치만 하다가도 쓰러질 뻔했다. 세상에 이렇게 기빨리는 설치작업은 처음이다... Elasticsearch 설치 방법이 어렵다기보다는 백엔드 바보(...)인 내가 걷기에는 제법 어 dnai-deny.tistory.com 1. Logstash를 사용하려는 이유? logstash를 사용해서 elastic search와 rdbms 사이에 pipline을 생성할 수 있다. 입력 → 필터(가공) → 출력 검색해보니 elasticsearch와 rdbms를 연결할..
[Elasticsearch] Elasticsearch 기본 개념 및 설치, kibana 연동하기
·
🐥 Web/❔ Back-end | etc.
최신 한국어 자료가 없어서 설치만 하다가도 쓰러질 뻔했다. 세상에 이렇게 기빨리는 설치작업은 처음이다... Elasticsearch 설치 방법이 어렵다기보다는 백엔드 바보(...)인 내가 걷기에는 제법 어려운 일이었다고 할 수 있겠다. 이미 유사한 경험이 있다면 쉽게 하실 것 같다. 어쨌든 성공했으니 가볍게 정리해보도록 하겠다. 1. Elasticsearch 란? 명확하게 답을 내기에는 아직 부족한 점이 많지만, 검색엔진이다. NoSQL 기반으로 데이터 구조를 가져가고, 각각은 RDBMS와 매핑되는 용어를 가지고 있다. NoSQL에 익숙하다면 더 쉬울 것 같다. Firebase 등등. A. RDBMS와 검색엔진의 차이 RDBMS는 테이블로 딱딱 쪼개서 자를 수 있는 체계적인 구조 단어 검색, 쿼리문을 활..
[Monitoring System] 5. Fast API 로 이틀만에 백엔드 구축하기(feat. SQLAlchemy, PostgreSQL) (1)
·
🎼 Project/🧊 Monitoring System
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, TIMESTAMP, Float from .base import Base 제목은 거창하게 써놨지만 아주 간단한 백엔드를 구축해서 그리 오래걸리지 않았을 뿐이다^^. 우선 백엔드를 해보는 것 자체가 이번이 처음이고, 필요에 의해서 필요한 부분만 공부해서 후닥닥 만들어서 다소 조잡할 수 있으나 어쨌든 모니터링 시스템 자체는 잘 동작하고 있으니 호스팅만 따로 해주면 당장 쓸 수 있다. Python으로 작성되어 있어서 Python의 노예인 나에게는 아주 편한 프로그래밍이었던 것도 한 몫했다. 0. Fast API 자습서 Fast API 공식문서로 공부하는 시간을 하루 가지고 이틀동안 개발을 ..
[Model Review] TadGAN(Time series Anomaly Detection GAN)
·
🐬 ML & Data/📘 논문 & 모델 리뷰
이번에 고장진단에 관한 과제를 하게 되면서 LSTM AE나 CNN 보다 최근 모델을 적용해보고 싶어서 TadGAN을 골랐다. 아직 완전히 이해했는지는 모르겠으나 알게된대로 조금 적어보려고 한다. TadGAN(Time series Anomaly Detection GAN) TadGAN은 2020년 발표된 모델로, 이름 그대로 시계열 데이터의 이상 탐지용 GAN 모델이다. GAN 모델은 복원, 이미지 생성 등에 특화되어 있는데, 이 성질을 이용하여 LSTM Auto Encoder처럼 패턴을 복원하며 학습하고, 이후에 들어오는 새로운 데이터를 기반으로 예측했을 때 에러가 큰 부분을 이상치로 탐지하는 것이다. TadGAN의 구조 TadGAN은 2개의 Generator와 2개의 Critic 으로 구성된다. Gene..
[Docker] Docker 입문 - Docker Image, Container, 버전 관리와 moniwiki 배포 예제까지
·
🐳 Docker & Kubernetes
※ 44bits 블로그에서 작성한 글을 보고 나름의 정리를 더해봤습니다. 좋은 글 감사드립니다! 원문은 링크. 도커(Docker) 입문편: 컨테이너 기초부터 서버 배포까지 도커(Docker)는 2013년 등장한 컨테이너 기반 가상화 도구입니다. 도커를 사용하면 컨테이너를 쉽게 관리할 수 있으며, 이미지를 만들어 외부 서버에 배포하는 것도 가능합니다. 이 글은 도커를 시 www.44bits.io 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 라고 한 줄 설명을 들어도 나는 잘 이해가 안됐다. 지금까지 내가 이해하기로는, 일종의 가상환경이라고 생각했다. 직접 가상환경을 깔고, 필요한 프로그램을 설치하고, 종속성 문제를 해결하는 모든 일련의 과정을 한 큐에 끝내버리는 아주 깔끔한 가상화 플랫폼인 것이다...
[Monitoring System] 4.1 세상에 더 빠른 방법이 - pyqtgraph
·
🎼 Project/🧊 Monitoring System
[Monitoring System] 3. UDP 통신으로 실시간 진동 데이터 Plotting(feat. matplotlib) 이번 포스팅에서는 이전 mqtt에서 사용한 예제 데이터보다 2만 배 정도 많은 데이터를 DAQ에서 받아오는 UDP 예제를 만들 것이다. 구현하려는 웹 서비스에 온도 데이터 말고 진동 데이터도 넣어보 dnai-deny.tistory.com [Monitoring System] 4. UDP 통신으로 실시간 진동 데이터 FFT / STFT시각화(numpy, tensorflow, pytorch) 결론부터 말하면 stft는 부하가 너무 심해서 실시간으로 시각화하는 것은 무리무리무리이다. 일단 matplotlib 자체에서 단순 시각화를 하기에도 데이터 양이 너무 많기 때문에 일종의 녹화기능을 ..
[Monitoring System] 4. UDP 통신으로 실시간 진동 데이터 FFT / STFT시각화(numpy, tensorflow, pytorch)
·
🎼 Project/🧊 Monitoring System
결론부터 말하면 stft는 부하가 너무 심해서 실시간으로 시각화하는 것은 무리무리무리이다. 일단 matplotlib 자체에서 단순 시각화를 하기에도 데이터 양이 너무 많기 때문에 일종의 녹화기능을 넣어서 원하는 만큼의 데이터를 fft / stft 처리해서 따로 시각화하기로 결정하였다. 그래도 FFT 정도는 실시간으로 가능할 것 같아서 gpu accelerator를 사용해서 구현하였다. 그러나 CUDA 환경이 아닌 곳에서도 쓸 수 있도록 numpy로도 코드를 추가했다. 이전까지 코드는 요기에 있다. https://dnai-deny.tistory.com/65 [Monitoring System] 3. UDP 통신으로 실시간 진동 데이터 Plotting(feat. matplotlib) 이번 포스팅에서는 이전 m..
[Monitoring System] 3. UDP 통신으로 실시간 진동 데이터 Plotting(feat. matplotlib)
·
🎼 Project/🧊 Monitoring System
이번 포스팅에서는 이전 mqtt에서 사용한 예제 데이터보다 2만 배 정도 많은 데이터를 DAQ에서 받아오는 UDP 예제를 만들 것이다. 구현하려는 웹 서비스에 온도 데이터 말고 진동 데이터도 넣어보고 싶은데, 그것을 위해서 우선 대용량 데이터이기 때문에 복잡해지는 데이터베이스나 서버를 제외하고 소켓 통신한 결과를 matplotlib로 로컬에 간단하게 띄워보도록 하겠다. 1. UDP 통신 UDP는 소켓 통신의 일종으로, 다른 소켓 통신방법인 TCP와는 다르게 연결을 보장해주지 않는다. 나쁘게 들릴 수도 있겠으나 client와 server의 연결을 요청하고, 승인하고 연결한 후 통신을 시작하는 TCP와 달리 데이터를 매번 보낼 때마다 데이터의 목적지(ip, port번호)를 함께 실어서 일단 냅다 보내는 방식..
[NVIDIA] 윈도우에서 가상머신(WSL)으로 Jetson AGX Xavier 부팅하기
·
🌠 etc.
이 글은... Jetson AGX Xavier를 부팅하기 위해 온갖 시행착오를 거친 후 성공한 과정을 정리한 것이다. 따라서 설치하다가 다른 오류가 나거나 한다면 댓글로 알려주시면 힘 닿는대로 도와드릴 수 있다. 1. Ubuntu 18.04 or Ubuntu 16.04 환경의 host 디바이스 준비 없다면 Window는 WSL로 하자…… Virtual box로 하면 곧죽어도 안된다. 맥유저라면 아래 첨부한 링크에서 잘 설명해주고 있으므로 따라가면 된다. NVIDIA JETSON AGX XAVIER 소개 및 설정 방법 NVIDIA JETSON AGX XAVIER 소개 및 설정 방법 오늘은 강력한 추론 엔진인 NVIDIA® Jetson AGX Xavier™의 설정 방법을 소개드리려고 합니다. 먼저 자비에가 ..
[Monitoring System] 2. MQTT 통신
·
🎼 Project/🧊 Monitoring System
: Message Queuing Telemetry Transport 가장 먼저 데이터 수집을 위해 MQTT 통신이 무엇인지부터 알아보도록 하겠다. 원리 Publish - Subscribe 모델 메세지 발신자와 수신자를 구분함 브로커 라는 제 3의 구성요소가 둘 사이의 통신 처리 브로커의 publisher - subcriber 분리 공간 분리 발신자 / 수신자가 서로의 IP / 포트번호 / 네트워크 위치 모름 시간 분리 동시에 일생되거나 네트워크 통해 연결되지 않음 동기화 분리 서로를 중단시키지 않고 메세지 송수신 가능. 구독자가 데이터 올 때까지 기다릴 필요 없다. 요약하면, 메세지 발신자가 주제 + 데이터를 브로커에게 보내면, 브로커는 그 주제를 구독하고 있는 수신자를 찾아서 받은 데이터를 전송해준다...
[Monitoring System] 1. 시스템 구성 및 목표
·
🎼 Project/🧊 Monitoring System
앞으로 딥러닝을 활용한 과제를 수행할 때, 직접 데이터를 센서나 카메라 등을 활용해서 수집하고 모니터링하는 기능까지 구현할 일이 꽤 있으리라는 이야기와 함께 간단한 모니터링 시스템을 로컬에서 구축해보는 숙제(?)를 받았다. 이전에 한 번도 백엔드를 해본 적이 없어서 조금 막막했지만, 역시 파이썬... FastAPI를 활용해서 5일 정도만에 아주 기본적인 틀을 짜는데 성공했다. 이 챕터에서 지속적인 시스템 업데이트와 개발 과정을 기록해보려고 한다. 공개할 수 있는 코드는 아래 깃헙 repository에 올려두었다. https://github.com/melli0505/monitoring_system [GitHub - melli0505/monitoring_system: FastAPI/PostgreSQL/MQT..
[FastAPI] Tutorial(2)
·
🐥 Web/⚡ Back-end | FastAPI
※ FastAPI Tutorial을 공부하며 이해한대로 작성한 내용으로, 실제 내용과 다르거나 틀린 부분이 있을 수 있습니다. 댓글로 알려주시면 즉시 반영하겠습니다. 감사합니다. https://fastapi.tiangolo.com/ko/tutorial/ [자습서 - 사용자 안내서 - 도입부 - FastAPI 자습서 - 사용자 안내서 - 도입부 이 자습서는 FastAPI의 대부분의 기능을 단계별로 사용하는 방법을 보여줍니다. 각 섹션은 이전 섹션을 기반해서 점진적으로 만들어 졌지만, 주제에 따라 다르게 fastapi.tiangolo.com](https://fastapi.tiangolo.com/ko/tutorial/) 1. Body - 여러 개의 매개변수 class Item(BaseModel): name: ..
[FastAPI] Tutorial(1)
·
🐥 Web/⚡ Back-end | FastAPI
※ FastAPI Tutorial을 공부하며 이해한대로 작성한 내용으로, 실제 내용과 다르거나 틀린 부분이 있을 수 있습니다. 댓글로 알려주시면 즉시 반영하겠습니다. 감사합니다. ※ 중간에 이해하지 못해 영어로 옮겨둔 부분이 있습니다. 추후 수정하겠습니다. https://fastapi.tiangolo.com/ko/tutorial/ 자습서 - 사용자 안내서 - 도입부 - FastAPI 자습서 - 사용자 안내서 - 도입부 이 자습서는 FastAPI의 대부분의 기능을 단계별로 사용하는 방법을 보여줍니다. 각 섹션은 이전 섹션을 기반해서 점진적으로 만들어 졌지만, 주제에 따라 다르게 fastapi.tiangolo.com 1. 첫걸음 1. FastAPI import from fastapi import FastAP..