전체 글

·Project/ST00CK
Node.js 와 Socket.IO 를 활용하여 양방향 통신에 성공하였다. 하지만 해당 방식은 클라이언트가 접속하는 경우 바로 연결되는 방식이다. 그렇기 때문에 클라이언트가 해당 페이지를 벗어날 경우 대화 내용이 사라진다. 따라서 채팅방을 개설하고, 개설된 채팅방에 유저를 초대하고, 대화방을 벗어나도 대화의 기록이 저장되어 있게끔 구성하기 위하여 ScyllaDB 를 연결하기로 한다. 1. Kafka 를 사용하는 이유Socket.IO 만으로도 실시간 양방향 통신이 가능하다. 하지만 Kafka 를 추가로 사용하는 이유는 실시간 통신 외에 데이터의 안정적인 처리, 확장성, 그리고 데이터 보존이 필요하기 때문이다. 즉, 채팅방에서 상대방의 연결이 끊기더라도 채팅 메시지가 유실되지 않고 나중에 다시 접속했을 때 ..
·Project/ST00CK
Socket.IO 와 친해지기 위해 일단 먼저 코드부터 작성해보기로 했다.1. 통신 흐름[클라이언트]사용자가 메시지 입력    ↓socket.emit('chatMessage', message)    ↓[서버]socket.on('chatMessage', callback)io.emit('chatMessage', { id, message })    ↓[다른 클라이언트]socket.on('chatMessage', callback) → UI 업데이트2. 파일 구성 및 역할client.js :클라이언트 측 코드로, 브라우저에서 실행된다.사용자 입력 처리, 서버와의 통신, UI 업데이트를 담당한다.server.js :Node.js 기반 서버 코드로, 클라이언트와의 연결 관리 및 이벤트 처리를 담당한다.Socket.I..
·개인공부
1. Socket.IOSocket.IO 는 클라이언트와 서버 간의 low-latency, bidirectional, and event-based 통신을 가능하게 하는 JavaScript 라이브러리이다. WebSocket 을 기반으로 동작하며 WebSocket의 한계를 보완하고, 더 안정적인 실시간 통신 기능을 제공한다.2. 기본 개념Socket : 소켓은 클라이언트와 서버간의 연결을 나타낸다. 소켓을 사용하여 실시간으로 데이터를 주고 받는다.Server : 서버는 클라이언트와의 소켓 연결을 설정하고 관리한다. 클라이언트로 이벤트를 송신하거나 클라이언트로부터 이벤트를 수신할 수 있다.Client : 클라이언트는 서버와의 소켓 연결을 설정하고 관리한다. 클라이언트는 서버와 양방향으로 이벤트를 송신하거나 수신..
·Project/ST00CK
GCP 에 VM 인스턴스를 설정하고, 프로젝트에 필요한 리소스를 설치하는 과정을 기록한다. 1. VM 인스턴스GCP에 접속한 후, 결제관리에 카드를 등록하면 90일, $300 를 무료로 사용할 수 있다. 물론 GCP 에서 바로 DB를 설정할 수 있는 항목이 있긴 한데, 그렇게 되면 따로 관리하기 힘들것 같아서 VM을 올리고 VM에 Docker Compose 방식으로 리소스를 설치하여 사용하기로 하였다. 처음 계획은 한달에 $100 씩 사용하여 총 3개월을 사용하려고 하였으나, 이것저것 설정하다 보니 가격이 올라 아래의 사진과 같은 스펙으로 합의하기로 하였다. OS 의 경우 Ubuntu 22.04 LTS 로 생성하였다.  2. 리소스 설치하기리소스는 전부 Docker Compose 방식으로 설치하였다. K..
·Project/ST00CK
국비교육을 이수하며 아쉬웠던 점이 있었다. 그중 특히 채팅서비스에 대한 아쉬움이 가장 컸다. 급하게 만들어낸 서비스라 제대로 알지 못한 상태에서 구현에만 급급했던 나로썬 더 애증의 관계였던것 같다. 그래서 취업준비를 하며 사이드 프로젝트로 시작하기로 마음을 먹었고, 공부와 실력은 그렇듯 계속해야 익숙하고 성장하기 때문에 마음맞는 팀원들이 모여 중장기 프로젝트를 시작하기로 하였다. (취업을 하더라도 주말에 시간을 투자하기로)1. 주제 선정 및 계기카카오는 카카오톡으로 성장하게 된 회사이다. 카카오톡으로 시작하여 카카오스토리를 지나 현재는 대한민국에 없어서는 안될 서비스이다. 그래서 우리는 카카오톡과 같은 메신저에서 시작하여 점차적을 서비스를 늘려나가기로 하였다. 그렇게 해서 우리는 채팅서비스에 주식종목 확..
포트폴리오를 배포하고 각 프로젝트를 설명하는 과정에서 옛날에 작성했던 논문을 업로드하여 URL 형식으로 접근할 수 있는 Object Storage 를 따로 구축하기로 하였습니다. Object Storage 에서 Minio 서비스는 프로젝트 진행시 사용했던 것으로 간편하고 익숙한 녀석이라 채택하게 되었습니다. 1. Minio 구축언제나 늘 그랬듯 Minio 도 Docker Compose 방식을 활용하였습니다. Minio 를 올리기 위한 Docker Compose 는 다음 블로그와 Docker Hub 를 참고하여 작성하였습니다. https://medium.com/@randy.hamzah.h/running-minio-server-with-docker-compose-54bab3afbe31 Running Min..
WireGuard VPN 을 활용하여 필자만 접속이 가능했다면 이제는 외부에서 접속이 가능하도록 배포하려고 합니다.1. 도메인 구매도메인을 판매하는 대표적인 사이트를 검색하면 가비아, CLOUDFLARE, AWS CloudFront 등 검색이 됩니다. 저는 가비아 아니면 CLOUDFLARE 에서 구매하고싶은 도메인을 검색한 뒤 가비아가 조금 더 비싸서 CLOUDFLARE 에서 구매하게 되었습니다.도메인을 구매한 뒤에 해당 도메인을 서버에 연결해 외부에서 접근하기 위해선 DNS 설정을 해야 합니다. CLOUDFLARE 에서의 도메인설정은 다음과 같습니다.1.1 DNS 설정홈에서 등록한 도메인을 클릭합니다.좌측 사이드바에서 DNS 를 클릭합니다. 그러면 아래와 같은 설정 창이 나타나게 될 것입니다.구매한 도..
보호되어 있는 글입니다.
코린이 공대생
While True: Learn()