it(89)
-
OPC UA에서 데이터 읽어 오기 ( feat. Python )
Python은 다양한 라이브러리와 간결한 문법으로 인해 산업 자동화 시스템에서 OPC UA 클라이언트 개발에 널리 사용된다. opcua 라이브러리는 Python에서 OPC UA 서버와의 통신을 쉽게 구현할 수 있도록 해준다. 오늘은 관련 예제를 정리할 예정이다. 0. 설치 먼저, 필요한 라이브러리를 설치해야 한다.. opcua 라이브러리가 설치되어 있지 않다면, 다음 명령어를 사용하여 설치하면 된다. pip install opcua 1. 기본 데이터 읽기 opc 서버에서 하나의 값은 한번 가지고 오는 방법이다. from opcua import Client server_url = "opc.tcp://localhost:4840" client = Client(server_url) try: client.conn..
2024.03.22 -
RAG를 활용한 개인 맞춤형 ChatGPT ( RAG 장단점 )
1. RAG의 정의 RAG는 검색-증강 생성 모델로, 대규모 데이터베이스에서 특정 질문에 가장 관련이 높은 문서를 검색(retrieval)한 후, 이를 바탕으로 자세한 답변을 생성(generation)하는 방식을 말합니다. 이 모델은 복잡한 질문에 대한 정확하고 심층적인 답변을 생성하는 데 특히 유용합니다. 2. RAG 방법 2-1. 검색 알고리즘 * 벡터 유사성 검색(Vector Similarity Search): 질문과 문서 간의 유사성을 계산하기 위해 사용됩니다. 질문과 문서 모두를 벡터로 변환한 후, 코사인 유사성(cosine similarity)이나 유클리드 거리(Euclidean distance) 같은 메트릭을 사용하여 가장 유사한 문서를 찾습니다. * 인버티드 인덱스(Inverted Inde..
2024.03.21 -
GPT 프롬프트 작성 가이드: 초보자를 위한 팁과 전략
GPT(Generative Pre-trained Transformer)는 자연어 처리 분야에서 혁신을 일으킨 인공지능 기술 중 하나입니다. 사용자는 자연스러운 언어로 질문이나 명령을 입력하고, 인공지능이 이에 대해 인간처럼 응답합니다. 그러나 많은 초보 사용자들이 어떻게 하면 GPT에게 정확한 답변을 얻을 수 있는지에 대해 고민하곤 합니다. 이 가이드에서는 GPT 프롬프트를 효과적으로 작성하는 방법에 대해 알아보고, 구체적인 예시를 통해 몇 가지 유용한 팁을 공유하려 합니다. 1. GPT 프롬프트의 이해 GPT 프롬프트는 사용자가 모델에 제공하는 입력 텍스트입니다. 이 입력에 기반하여 GPT는 응답을 생성합니다. 프롬프트의 구성 방식이 결과의 정확성과 유용성에 큰 영향을 미칩니다. 따라서, 몇 가지 기본..
2024.03.11 -
GitHub을 활용한 협업과 코드 관리 ( 초보자를 위한 가이드 )
0. GitHub 소개 GitHub는 분산 버전 관리 시스템인 Git을 기반으로 한 코드 호스팅 플랫폼으로, 개발자들이 소스 코드를 효과적으로 관리하고 협업하는 데 사용됩니다. 이것은 개발 프로젝트의 생명 주기를 관리하고, 다수의 개발자가 함께 작업하고, 개발 과정을 추적하고 문서화하는 데에 필수적인 도구입니다. 1. 기본 개념 1-1. Repository(저장소) GitHub에서 프로젝트는 저장소라는 곳에 저장됩니다. 이 저장소에는 프로젝트의 모든 파일과 폴더, 그리고 해당 프로젝트의 버전 기록이 포함됩니다. 개발자들은 이 저장소를 통해 프로젝트를 공유하고 관리합니다. 1-2. Branch(브랜치) 각 저장소는 하나 이상의 브랜치를 가질 수 있습니다. 브랜치는 독립적으로 개발을 진행할 수 있는 코드의 ..
2024.03.06 -
Streamlit을 활용한 아이리스 데이터 시각화와 머신러닝 분석 ( 상관관계 분석 포함 )
Streamlit은 파이썬으로 데이터 과학 및 머신러닝 모델을 웹 애플리케이션으로 변환하기 위한 간단하고 빠른 방법을 제공합니다. 이 블로그 글에서는 Streamlit의 기능과 장점에 대해 알아보고, 관련 샘플 코드를 제공하겠습니다. 1. Streamlit 소개 Streamlit은 파이썬으로 작성된 간단한 코드로 데이터 시각화 및 웹 애플리케이션을 빠르게 만들 수 있는 오픈 소스 라이브러리입니다. 주요 특징은 다음과 같습니다. 간단한 문법: Streamlit은 사용자 친화적인 문법을 제공하여 개발자가 빠르게 웹 애플리케이션을 구축할 수 있습니다. 자동 재로딩: 코드를 수정할 때마다 자동으로 애플리케이션이 다시로드되어 빠른 개발을 돕습니다. 다양한 컴포넌트: 텍스트, 그래프, 위젯 등 다양한 컴포넌트를 제..
2024.03.04 -
데이터 샘플링 VS GROUP BY 조회 성능 비교
우리 회사의 경우, 데이터를 보여주는 방식은 크게 아래 2가지 방식이다. 모든 데이터를 그냥 화면에 보여준다. 모든 데이터를 특정기준으로 GROUP BY 해서 평균을 보여준다. 모든 데이터를 뿌리는 경우 데이터의 양이 적으면 성능에 큰 문제가 발생하지 않지만, 데이터의 양이 늘어나게 되면 화면이 무거워져 사용자의 편의성이 떨어진다. 모든 데이터를 특정기준으로 GROUP BY 해서 평균 [1. 모든 데이터를 뿌리는 경우]의 성능에 문제가 발생하면, 거의 모든 튜닝이 “GROUP BY 해서 뿌려주는 데이터를 줄이자” 방식으로 진입한다. 하지만, 이 경우, 바람직한 방식이 아니다. 이유는 데이터를 스캔하는 범위는 여전히 똑같고, 거기에 연산 작업이 추가되기 때문에 데이터를 조회하는 성능이 저하된다. “GROU..
2024.02.15