보람찬 코기의 개발자 블로그
article thumbnail
[CS] AMQP 와 RabbitMQ 분석하기
Computer Science (CS) 2025. 1. 4. 01:17

RabbitMQ란? RabbitMQ는 AMQP 스펙을 구현한 대표적인 오픈 소스 메시지 브로커이다. 수신 받은 메시지를 큐에 저장하고, 이를 처리하는 시스템 간에 비동기적으로 메시지를 전달하는 역할을 한다. 주요 기능으로는 메세지를 많은 사용자들에게 전달하거나, 요청에 대한 처리 시간이 길때, 해당 요청을 다른 API에게 위임하고 빠른 응답을 할 때 많이 사용한다. 예를 들어, 사용자가 파일 업로드를 요청했을 때, 그 작업을 RabbitMQ 큐에 넣어두고 빠르게 사용자에게 "작업이 접수됨" 이라는 응답을 보낼 수 있다. 실제 아키텍쳐에서 업로드 작업은 백그라운드에서 처리되며, 이를 통해 빠른 응답과 비동기 처리가 가능하다. 앞서 RabbitMQ는 AMQP 스펙을 구현한 대표적인 오픈 소스라고 말하였다. ..

article thumbnail
[CS] 메시지 큐에 대해 알아보기 (Message Queue)
Computer Science (CS) 2025. 1. 1. 22:54

메시지 큐(Message Queue)메시지 큐는 애플리케이션 간의 비동기 데이터 통신을 지원하는 시스템으로, 데이터를 큐에 저장하고 처리할 수 있도록 도와준다. 특히, 대규모 분산 시스템에서 안정적이고 유연한 통신을 구현할 때 유용하다. 즉, 메시지 큐는 분산된 환경에서 프로세스나 프로그램의 시스템 간 데이터를 교환하기 위해 사용되는 통신 기법이다.  📌 주요 특징 비동기적 통신: 발신자와 수신자가 독립적으로 작업을 수행할 수 있도록 지원한다.중간 저장소 역할: 데이터를 큐(queue)에 임시로 저장하고, 소비자가 이를 처리한다.분산 시스템 필수 구성 요소: 작업 부하 분산, 내결함성, 확장성 제공.   주요 구성 요소 🔧메시지(Message): 큐에 저장되는 데이터 단위. JSON, XML, 텍스트..

article thumbnail
[Bye 2024] 2024년을 돌아보며..
일상&인턴 2024. 12. 27. 12:54

어느덧 벌써 24년도 마무리 되어가고 있다.  작년 한 해도 마무리 하면서 첫 회고록을 작성하며 한 해를 정리해보고 되돌아보았던 좋은 기억이 있다.  그럼으로 올 해도 이어서 1년간 나의 여정들을 기록해보고자 한다. 1~2월 한국전자통신연구원 동계인턴 (인턴 2회차)  한국전자통신연구원의 좋은 부서에서 재미있는 과제로 2달을 정말 알차게 보냈었다. 연합학습 관련 프로젝트에 참여하며 학부생으로서 절대 경험할 수 없는 주제를 가지고 연구했었다. 때로는 코드 최적화도 도맡아서 PR하기도 하였고 코드리뷰도 진행해보고, 연구과제에 알맞는 실험도 직접 진행하고 분석하기도 하였다. 연구책임자 박사님과 예하 연구원님, 유능한 동기와 협업하면서 많은 것을 배울 수 있었다. 다시 이 자리를 빌어 감사드립니다. 또한 만나서..

article thumbnail
[Docker] 도커에서 Ollama를 통해 llama3.1 8B 구동하기
Docker_도커 2024. 11. 7. 01:17

OllamaOllama는 로컬에서 AI 모델을 실행하고 관리할 수 있는 솔루션으로, 다양한 언어 모델과 호환되며, 특히 개인 및 기업이 로컬 환경에서 AI를 실행할 수 있게 돕는 도구이다. Ollama는 명령줄 인터페이스를 통해 편리하게 언어 모델을 실행하고 관리할 수 있게 하며, 특히 Llama 3 시리즈와 같은 모델과 GPT 모델을 지원해 사용자가 직접 대화형 AI 모델을 로컬 환경에서 사용할 수 있게 한다. Ollama의 주요 기능:로컬 실행 지원: 로컬 환경에서 대형 언어 모델을 구동할 수 있어 데이터 프라이버시를 보호, 즉 외부 API 호출 X모델 관리 및 업데이트: Ollama는 다양한 언어 모델의 버전을 손쉽게 관리.커스텀 모델 배포: Ollama는 커스텀 모델 배포 및 관리 기능도 제공해,..

article thumbnail
[OpenCV] Ubuntu 22.04 버전에서 OpenCV 4.10.0 GPU 적용하기
Language/Python 2024. 10. 20. 23:35

1. 작성 동기캡스톤 디자인 프로젝트를 진행하며 Python 기반 OpenCV 라이브러리를 사용했으나, CPU로만 작동하다 보니 실행 속도가 너무 느려 GPU를 적용하기로 결정했다. Windows에서 포팅을 시도했으나 실패하여, 우선 Ubuntu에서 먼저 GPU 포팅을 시도한 후, 추후에 Windows에도 적용할 예정이다. 필자가 설치한 로컬 환경은 다음과 같다RTX 4060 8GBPython 3.9 CUDA 12.2CUDA_ARCH_PTX=8.9cudnn 8.9.72. OpenCV 설치 과정1. 기존의 설치된 패키지 업그레이드$ sudo apt-get update$ sudo apt-get upgrade 2. 설치에 필요한 패키지$ sudo apt-get install -y build-essential ..

article thumbnail
2024년도 대한전자공학회 하계종합학술대회 참석 및 1박 2일 여행기
일상&인턴 2024. 7. 11. 16:47

서론이번 포스팅은 프로젝트 완료 후 진행된 학회 발표에 대한 내용이다. 6월 28일, 제주도에서 열린 대한전자공학회 하계학술대회에서 발표를 진행했다. 이번 학회는 이전에 두 번 참석했던 정보처리학회와는 다른 학회라 더욱 흥미로웠다. 특히, 이 학회는 한국에서 가장 큰 규모의 학회 중 하나라고 들었기 때문에 더욱 기대되었다. 발표 중에 받은 질문들과 느낀 점들을 공유하고자 합다.질문설명을 진행하면서 받은 질문들 중 몇 가지를 추려보았다. Question 1: 이 프로젝트의 목적은 무엇인가요? My Answer:상대적으로 저렴한 베어 메탈인 라즈베리 파이에서 클러스터를 구축하여 개발자들에게 저렴한 가격으로 보급하는 것이 주 목적입니다.  또한, 해당 클러스터에서 배포 환경을 구축하고 (DB, 웹프레임워크 등..

article thumbnail
[Project] K3s 기반 라즈베리 클러스터 구축 및 엣지 디바이스 모니터링 구현
Kubernetes_쿠버네티스 2024. 7. 9. 17:23

과목 프로젝트 설계 중, 감사하게도 나의 지도교수님께서 연구실 소속 학부생 산학연구 참여제도(UROP)를 제안해주셨다.좋은 기회를 얻어 지난 한 학기동안 'UROP'에 선정 되어 프로젝트를 진행하였다. 이번 블로그는 결과보고서 기반하여 포스팅을 진행하고, 문제 해결하기 위해 노력했던 과정들을 기록 하려고 한다.기간 별 수행 절차구 분기 간내 용학습1 주차Raspberry Pi 4 기능 학습 및 운영체제(OS) 포팅(Porting)학습 및 구현2~3 주차구동을 위한 Kubernetes 학습 및3대의 Raspberry Pi 4를 통한 Cluster 구축 학습3~4 주차Messeage Queue, RTSP 프로토콜 학습구현5~6 주차 Telegraf , InfluxDB 학습구현7~8 주차엣지 디바이스의 실시간..

article thumbnail
[K3s] Raspberry PI 4 에 K3s 설치하여 클러스터 구축하기
Kubernetes_쿠버네티스 2024. 4. 11. 22:31

이번에 RaspberryPI를 통한 클라우드 환경 구축 및 이 가이드에서는 Raspberry Pi 4 클러스터에 K3를 원활하게 설치하는 데 도움이 되는 커맨드 라인과 유용한 팁을 공유합니다. 본격적으로 설치 과정을 시작하겠습니다. RaspBerry PI OS 설치 https://www.raspberrypi.com/software/operating-systems/ 운영체제 설치를 하고 부팅을 해줍니다. Linux Container 기능 활성화 위 설정은 리눅스 시스템에서 cgroup(Control Group)을 사용하여 메모리 및 CPU 자원을 제어하기 위한 것입니다. 이 설정을 추가하는 이유 자원 제어: cgroup 설정을 사용하면 시스템 관리자가 각 프로세스 그룹에 대해 메모리 및 CPU 자원 할당을..

article thumbnail
[DB] Database Project - 5 / PHP 연동 및 플랫폼 구현
DataBase(DB) 2024. 3. 6. 13:29

2023 2학기 홍익대학교 데이터베이스 및 실습 과목 팀프로젝트 게시글입니다. 농수산물 거래 플랫폼 기능 구현 "repo" Log in & create account 기능 작동 파일 db-login.php logout.php auth-login-basic.php db-register.php auth-register-basic.php update_user.php encrypted_password.php 작동 흐름 index.php 접속 / 세션 유효 확인 auth-login-basic.php 실행 회원가입 버튼을 통한 db-register-basic.php 접속 회원 가입 정보 입력 후, update_user.php를 통한 database 회원 등록 encrypted_password.php를 통한 비밀번호..

article thumbnail
[인턴] 2024 ETRI (한국전자통신연구원) 동계연구연수생(인턴) 마무리
일상&인턴 2024. 3. 5. 21:33

지난 포스팅에 이어 2024 동계 인턴을 마무리하는 포스팅이다. 참여한 과제에 대해 깊은 설명을 못드리는 것에 대해 양해를 부탁드립니다. 지난 두 달동안 무엇을 했는가? 나는 지난 두 달동안 우리 부서의 연합학습 시뮬레이터에 대해 개발 및 통합과정을 맡아서 진행하였다. 기존 시뮬레이터에서 여러 기능을 구현하거나, 기존 함수호출을 다른 액터가 분담하게 하는 등 여러 코드 작업이 있었고 또한 과제에서 연구 용역을 맡기고 나온 결과물인 두 대학의 코드를 통합하는 것이였다. 시뮬레이터는 파이썬으로 작동되어 있었고, 기능 구현이 있을 때마다 박사님과 연수생들이 함께모여 코드리뷰하는 귀중한 기회를 얻을 수 있었다. 또한 모든 개발은 git을 통해 협업을 진행하였고 또한 브랜치 관리도 할 수 있었다. 인상 깊었던 것..

article thumbnail
JWT(JSON Web Token) 이란?

JWT란? JSON Web Token 의 줄임말이다. JSON 객체에 인증에 필요한 정보들을 담은 후 비밀키로 서명한 (암호화 시킨) 토큰이다. 웹 토큰 기술의 한 종류로, 웹 애플리케이션 및 API에서 사용자 인증과 권한 부여를 관리하기 위한 도구이다. 간략한 작동 방식은 JWT(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별한다 그림으로 설명하자면, 유저가 로그인하면 서버에서는 해당 유저의 정보를 기반으로한 토큰을 생성하고, 이 토큰을 유저에게 전달한다. 유저는 이 토큰을 가지고 HTTP 헤더를 통해 서버에 요청을 할 때마다 토큰을 함께 전달함으로써 자신의 인증을 증명한다. 이를 통해, 서버는 각 요청에서 토큰을 확인하여 유저의 신원을 검증하며, 세션 관리의 번거로움 없이 간..

article thumbnail
2024 Winter - Spurt Project - 2 (프리즈마 작성 및 MVC 리팩토링)
Develop & Review 2024. 1. 23. 17:26

지난 한 주간 2024 Winter - Spurt Project 를 진행하면서 작성한 게시글입니다. 프로젝트의 개요는 이전 게시글을 참고 부탁드립니다. 프리즈마 작성 위의 E-R-D 토대로 prisma schema를 작성하였다. // This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") } model Student{ student_id Int @id @default(autoincre..