프로젝트 21

부하테스트 프로젝트 설계 1차

주제: 재난감지 및 알림 웹앱 서비스  APIhttps://parkgihyeon.github.io/project/cctv-api/https://s0ysauce.tistory.com/38https://www.safetydata.go.kr/disaster-data/view?dataSn=228역할BE : 소윤, 민희님 → Spring, Node.js만들어야하는 API : 실시간 스트리밍 지원 API, 재난 감지 알림 API ⇒ AI연동, 사용자 관리 API(시나리오 고려해서 구체적으로 수정)FE : 다연 → Next.js 이용해서 react (ts) AI : 재난감지 AI API → 허깅페이스, 캐글 참고Infra : 다같이기본 배포는 제가 맡고, 하고 싶은 부분 있다면 같이 나누기논의사항CI/CD → 할건지..

부하테스트 모니터링 툴 정리

모니터링이 필요한 이유사전 분석을 통해 장애를 방지다운 타임 최소화로 손실 방지생산성 및 성능의 향상모니터링을 통해 IT 비용 예산 수립 가능데이터 기반의 의사결정 가능 인프라 수준에서의 모니터링IaaS수준에서 제공되는 서비스에 대한 모니터링서버의 상태나 시스템에서 발생한 이벤트를 모니터링 할 수 있음데이터베이스 혹은 네트워크 흐름을 모니터링하여 병목 지점을 찾을 수 있음 애플리케이션 수준에서의 모니터링분산된 여러 클라우드 기반 앱을 한 시스템 혹은 대시보드에서 모니터링인프라 수준 지표 뿐 아니라 비즈니스 트랜잭션 및 코드레벨까지 모니터링각 서비스 구간 별로 성능을 기록해 병목을 파악하고 대응(Trace-span 구조) 로그 수준에서의 모니터링애플리케이션 혹은 액세스 로그 등의 요소를 수집하여 로그와 메..

부하테스트 개념, 툴

근데 부하테스트, 스트레스 테스트, 성능 테스트가 어떤 점이 다른지 정확히 모르고 있어서 짚고 넘어가보자개념 비교성능테스트정상적인 조건에서 시스템의 성능을 평가응답 시간, 처리량 등 전반적인 성능 지표를 측정부하테스트와 스트레스테스트를 포함하는 상위 개념부하테스트예상되는 실제 사용자 부하 하에서 시스템의 성능을 평가예상되는 최대 부하 조건에서 시스템의 성능을 평가시스템이 정상적으로 작동하는 최대 부하(최대 사용자 수나 트랜잭션 수)를 확인적절한 부하를 발생시켜서 통계적으로써 의미있는 수치를 측정한다.장시간의 서비스 진행여부를 확인하는 신뢰성(reliability)실체 처리능력을 가늠하는 성능테스트(Performance)"부하"라는 것은 매우 포괄적이므로, 부하테스트에 사용되어지는 부하의 모든 의미를 내포..

React/js - usenavigate 사용하기

우선 첨에 데이터 받아올 때 에러 usehistory를 사용했었는데 import React, { useState, useCallback } from 'react'; import { GradientBg1 } from "../icons/GradientBg1/GradientBg1.jsx"; import ResultSection from './ResultSection'; import { useHistory } from 'react-router-dom'; import '../css/section.css'; import '../css/index.css'; function InputSection() { const [curKeywords, setCurKeywords] = useState(""); const [searc..

[Figma - 노코드 툴 Anima plugin 연결] npm run dev 에러 해결

우선 연결 절차 1. figma에서 원하는 레이어 선택 후 anima plugin을 실행 2. Anima에 가입이 되어 있다는 전제 하 Run -> Get code -> 원하는 코드툴 선택 (html, vue, react, no care) -> anima로 연결 3. pro 를 사용한다면 export code를 하면 되지만 난 그냥 코드를 CnP 해주었다. 4. VSC에서 실행시 우선 node.js 설치해주기 그 다음에 README.md 대로 해주면 된다. npm install 다음에 npm run dev 에서 오류가 나는 경우가 있는데, package.json에서 scripts 부분에 뭔가 오류가 있다고 하는데 npm install -g parcel-bundler 나는 parcel관련 설치해주면 해결이..

Elasticsearch n-gram 최종 구현

dev tools로 잘 된다 문제가 뭐 였냐면 띄어쓰기 문제였음 저 "text"랑 "Title" 검색할 때 공백이 있어야... ngram 으로 나누어 지던디... PUT /book_ngram { "settings": { "analysis": { "tokenizer": { "my_tokenizer": { "type": "ngram", "min_gram": 3, "max_gram": 3 } }, "analyzer": { "combined_analyzer": { "type": "custom", "tokenizer": "nori_tokenizer" } } } }, "mappings": { "properties": { "Title": { "type": "text", "analyzer": "combined_anal..

Elasticsearch n-gram 적용 / Django 연결 - 1차 수정

2/3 # search/views.py from ast import Match from django.shortcuts import render from django.views import View from django.views.generic import TemplateView from rest_framework import generics from elasticsearch_dsl import Search, Q from .serializers import BookSerializer import sys from os.path import abspath, dirname # 현재 파일의 경로를 통해 프로젝트 루트 디렉토리를 찾음 PROJECT_ROOT = dirname(dirname(abspath(__file..

Elasticsearch, django - rest_framework로 검색엔진 만들기 - 3차 트러블슈팅(해결)

https://ksb-dev.tistory.com/309 엘라스틱서치 8.X 도커로 무작성 실행해보기 1. 개요 검색엔진으로 유명한 엘라스틱 서치(Elastic Search)를 도커로 실행해 볼 것입니다. 엘라스틱 서치 버전 8 부터 Security가 default로 설정되어 있기 때문에, 이전 버전과 달리 비밀번호를 설정해 ksb-dev.tistory.com https://simpleisbetterthancomplex.com/tutorial/2018/12/19/how-to-use-jwt-authentication-with-django-rest-framework.html How to Use JWT Authentication with Django REST Framework JWT stand for JSON..

Elasticsearch NLP에 ChatGPT & streamlit에 n-gram 추가하기(실패)

Elasticsearch NLP 검색을 접목한 ChatGPT 답변을 Python 코드로 구현 하는 원래 코드 ↓ # openai, streamlit, localtunnel 설치 !pip install openai==0.28 !pip install streamlit !npm install localtunnel !pip install -U typing_extensions !pip install elasticsearch !pip install googletrans==4.0.0-rc1 # ↓↓전체 코드 작성 완료 후 아래 주석 해제하고 실행↓↓ %%writefile elastic_gpt_app.py # ↑↑ 전체 코드 작성 완료 후 위 주석 해제하고 실행 ↑↑ import os import streamlit a..

Elasticsearch, django - rest_framework로 검색엔진 만들기 - 2차 트러블슈팅(미해결)

reference https://blog.nerdfactory.ai/2019/04/29/django-elasticsearch-restframework.html 너드팩토리 너드팩토리에서 운영하는 블로그 입니다. blog.nerdfactory.ai MacOS 기준으로 진행했다. 0. 기본장고 세팅하기 우선 가상환경 활성화하기 python3 -m venv myvenv #myvenv라는 가상환경 만들기 source myvenv/bin/activate 활성화하는 코드인데 저 디렉터리 순서는 잘 맞는지 어째서인지 저 코드로 한번에 안되길래 그냥 bin들어가서 source activate로 활성화 해줬다. 그리고 애당초 myvenv\Scripts\activate 이 명령어는 window용이라 안된다. django-a..

Elasticsearch, docker, django-elastic_dsl, rest_framework로 n-gram 검색엔진 만들기 - 1차 트러블슈팅

Django로 API 서버를 구축하고, Elasticsearch와 Docker를 사용하여 n-gram 검색과 `analysis-nori` 형태소 분석기를 도입 1. Django 프로젝트 및 앱 생성 django-admin startproject myproject cd myproject python3 manage.py startapp search 2. Django 앱 설정 - `settings.py` 파일에서 앱과 REST framework를 설정 # myproject/settings.py INSTALLED_APPS = [ # ... 'rest_framework', 'search', ] REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagi..

[AWS Cloud winter camp] 1/3 - 5일차

GCP 도메인 못 따는구나 스타트업... 예창패 초창패는 사더라도 서버는 못 삼 SAP는 단답 문제가 없구나~(SAP인데 이것도 몰라? 하는 공격 받을 수도~) 첫 기업은 나를 택한 기업 중에 내 도메인을 키워줄 수 있는~ 그래야 나중에 대기업 이직했을 때 돈 더 받고 간다~ 외국계는 내가 할 일을 찾아서 하고 보고하는 추가근무하는데 추가근무로 할당 안받는 실력 키워서 대기업 이직을 추천 3tier 4tier (n계층) SA/SRE https://blog.spaceone.megazone.io/tech-blog-devops-vs-sre SpaceONE Blog (스페이스원 공식 블로그) Multi-Cloud Management Platform (멀티클라우드 관리 플랫폼) blog.spaceone.megaz..

[AWS Cloud winter camp] 1/2 - 4일차

NLP Sneak peek NLP Task - 기계는 사람처럼 언어를 학습하지 않아서 단계를 나누어 줘야 함 - low-level parsing : 문장분리/어근추출 - word and phrase level : 고유명사인식/형태소 분석/명사구 단위 분리/의존 구조 분석/참조 관계 분석 - sentence level : 감정 분석/기계 번역 - multi-sentence and paragraph level : 모순 관계 예측/질의 응답/대화형 챗봇/전문 요약 AI 관련 아이디어는 너무 길면 그 아이디어 빨리 쇠퇴함... 1-2달만 잡고 빨리 빨리 ... 하는 게 좋다! word Embedding - BoW(bag of words) 벡터화 - 기계가 실제로 이해할 수 있도록 - one-hot vector ..

[AWS Cloud Winter Camp] 12/29 - 3일차

엘라스틱 = 서치 플랫폼 어떤 식으로 접근해야하는지 그 틀에 대한 설명 ES Cluster = 분산처리 아키텍처 하나의 서비스를 구성하기 위해 여러 개의 엔티티를 구성하는 게 분산처리 아키텍처 외부에서 보기에는 엘라스틱 클러스터를 쓴다 인데 그 안에는 노드가 여러 개 있는 어플리케이션이 디스크에서 구동되면 엄청 느림 크게 데이터가 퍼너넌트하게 저장되어있는 SSD... 그걸 CPU가 읽어서 메모리에 올리고 실제 구동을 하는 CPU ES 가 자바로 구현이 되어있음 그래서 JVM 위에 구동이 돼서 그 JVM 자체도 메모리 위에... 그래서 이 위에서 ES서치 놀아라 어디서 문제가 발생한건지 narrow down 해서 좁혀가면서 문제 찾아갈 수도 있음 ES > ES Cluster > ES node 과연 ES 서..

[AWS Cloud Winter Camp] 12/28 - 2일차

클러스터 - 엘라스틱에서 구성되는 큰 덩어리 노드 - 보통은 서버 한 대에 한 노드로 기동되는 단위로 쪼개짐(서버하나당 노드 두 개 올라갈 수 있으나 보통 내려가는 게 서버라서 하나씩을 권장) 노드에는 데이터들이 인덱스형태로 저장됨 인덱스는 샤드라는 기본 단위로 쪼개짐 샤드 안에는 데이터들이 도큐먼트 형식으로 쌓임 세 줄 넣으면 도큐먼트 세 개 생기는... 시스템 로그는 라인바이 라인으로 하나씩 들어갈 때마다 늘어남 그게 인덱스 하나에 쌓임? 노드- 클러스터 구성 단위 중 하나 같은 클러스터로 묶을 수 있음 ES는 반드시 클러스터로 묶어줘야 한 노드가 죽어도 다른 노드가 실행되어서 홀수개이자 세 개 이상만 되면 큰 문제 없음 http 밖에서 붙을 땐 9200, 노드끼리는 tcp 9300 (기본 포트들) ..

[AWS Cloud Winter Camp] 12/27 - 1일차 Elastic Cloud 실습

*참고 이론 logstash 생략가능이나 붙이는 게 좋음 input/filter/output 이거말고 없음 beats - logstash - elasticsearch - kibana cloud에서는 서치랑 키바나는 기본제공 beatraw 수집... 인데 beat도 생략 가능 1. elastic cloud / aws 로그인 2. ec2 생성 3. ec2 연결 누르기 4. java 11 ver download Java 11 설치 (EC2) sudo su yum install java-11-amazon-corretto.x86_64 y su ec2-user 5. logstash download -> linux 버전으로 다운로드 버튼 링크 복사 -> wget 링크주소 wget https://artifacts.el..

[AWS Cloud Winter Camp] 12/27 - 1일차 교육 이론

12/27 엘라스틱, 정제하고 적재하고 어떻게 시각화… 그게 엘라스틱. 적재가 모토인데 빠른서치가 가능 엘라스틱 내부 자체에 시각화 툴을 제공함. 그 툴을 사용해도 되지만 웹 앱 새로운… 그걸로 하는 것도 괜찮다~좋다~ Big data 정형/비정형 데이터 매일 생성됨. EB / PB단위로 실시간 대용량 데이터 분석할 때 엘라스틱 검색 고도화해서 성능 좋아짐 Elasticsearch 검색 엔진은 아니긴한데 검색 엔진이라고 소개 대외서비스 - 검색포탈/sns소셜서비스/뉴스백과사전 등등 대내서비스 - 사내포탈/개발소스 로그 통합검색/업무마케팅 자료분석 오늘날 데이터 시장 - 대다수의 서비스에서 기본제공/정형비정형데이터 관리/키워드 중심의 데이터검색/입력 키워드 중심의 연관관계 분석 통한 데이터 검색 초기 데이..

[웹 개발 환경 구축] VMware Fusion Intel칩 Mac에서 구축하기 (디스크 이미지 오류 / 공유 폴더 파일 오류 / 웹 접속 업데이트 오류)

이번에 웹 프로젝트를 시작하면서 개발 환경을 구축해보았다. 리눅스로 진행해서 VMware로 우분투를 다운받았는데, Intel Mac을 갖고 있어서 VirtualBox로 Desktop 우분투를 사용했다가 VMware로 서버우분투(라고 표현하는 게 맞나)를 새로 다운받기로 했다. ~ 구축하다 겪은 오류와 해결 모음 ~ 0. 우선 처음부터 막힐 경우에... 요 보안 및 개인 정보 보호에서 손쉬운 사용에서 VMware Fusion 을 허용 해주고 진행해야 한다. 1. 디스크 이미지 무한로딩 요 부분에서 저렇게 잘 들어가고 계속 버튼이 눌려야되는데 무한 로딩되고 계속 버튼 선택이 안됐다! 그래서 다른 디스크 이미지를 일단 넣어서 넘어간 다음에 여기서 저 스패너를 누르면 이렇게 나오는데 여기서 CD/DVD에서 디스..

프로젝트 2023.10.03

[GIT] 기본 실습(1)

1. git 기본 실습 [유저 정보 입력] git config --global user.name "이름" git config --global user.email "이메일" [Workin Directory 생성] mkdir 혹은 gui로 파일 생성 git init https://rhrhth23.tistory.com/12 https://www.daleseo.com/git-init/ 리눅스 mkdir 옵션 리눅스 디렉토리 만들기 리눅스 기본 명령어 중 mkdir 명령어는 리눅스 디렉토리(폴더) 만드는 명령어입니다. mkdir 명령어가 무엇인지 mkdir 옵션에 대한 설명과 mkdir 명령어 옵션에 대한 실제 예시와 mkdir 명령어를 잘못 실 rhrhth23.tistory.com [파일 생성] touch, e..

프로젝트 2023.09.04