배포환경이 구성되기 전에 개발환경 세팅부터 하기로 한다. 현재까지 express 와 Socket.IO 간 통신한 것을 Github 에 연동하기로 하고, 명세서 작성을 위한 Swagger 세팅을 작성한다. 1. Github 연동일단 먼저 Github 에 Repository 를 생성한다. 나는 채팅서비스를 담당하고 있기 때문에 chat 이라는 Repository 를 생성하였다. 1. 이미 만들어져 있는 디렉토리를 서로 연결해줘야 하기 때문에 다음 명령어를 통해 저장소를 연결한다.$ git remote [깃허브 레포지토리 주소] 2. gitignore 을 작성하여 git 에 올라가지 않을 파일들을 작성한다. 아래의 링크를 통해 gitignore 를 작성하였다. 자신이 사용하는 운영체제 및 툴 을 작성하면 ..
Project
이번 글은 프로젝트 진행 과정을 기록으로 남기는 글이 될 것 같다. RKE2 Rancher 를 설치하는 과정에서 해결하지 못했던 과정과 원인, 그리고 앞으로의 방향성에 관해서 작성하기로 한다. 1. RKE2 Rancher 설치 실패맥북 로컬 자원을 활용하여 RKE2 Rancher 를 직접 설치하는 과정을 진행하였다. 해당 과정에서는 오류 없이 Rancher 가 정상적으로 설치되어 작동 되는 것을 확인하였다. 하지만 네트워크 대역이 다른 두 VM 간에서의 설치는 실패하였다. 문제는 Rancher 의 Webhook 이 정상적으로 동작하지 않아 cert-manager 를 인증받는 과정에서부터 동작하지 않았다. 원인으로는 RKE2 는 기본적으로 모든 통신을 localhost 로 바라보고 있었고, 이를 해결하기..
지금까지 GCP에서 제공하는 콘솔창에서 SSH로 접근하는 방식을 사용하였다. 하지만 이제 RKE2 을 사용하기로 방향이 잡혀졌고, 서비스를 구축하는데 콘솔창에 접근해야 하는 경우가 많아지기 시작했다. 매번 콘솔창에 접근하여 접속하는 방법이 귀찮아지고, 추후 접근을 더 용이하게 하기 위해 SSH 키를 등록하여 외부터미널에서 접근하고자 한다. 1. 새로운 PEM 키 준비기존에 저는 라즈베리파이에 접근하기 위해 PEM 키를 다운받은 경험이 있습니다. 해당 키를 이용하여 접근해도 괜찮지만, GCP 용 PEM 키를 하나 더 생성하여 사용하기로 하였습니다. 클라이언트에서 새로운 PEM 키를 생성하기위해 다음 명령어를 실행한다.$ ssh-keygen -t rsa -b 2048 -f ~/.ssh/gcp -C "you..
Node.js 와 Socket.IO 를 활용하여 양방향 통신에 성공하였다. 하지만 해당 방식은 클라이언트가 접속하는 경우 바로 연결되는 방식이다. 그렇기 때문에 클라이언트가 해당 페이지를 벗어날 경우 대화 내용이 사라진다. 따라서 채팅방을 개설하고, 개설된 채팅방에 유저를 초대하고, 대화방을 벗어나도 대화의 기록이 저장되어 있게끔 구성하기 위하여 ScyllaDB 를 연결하기로 한다. 1. Kafka 를 사용하는 이유Socket.IO 만으로도 실시간 양방향 통신이 가능하다. 하지만 Kafka 를 추가로 사용하는 이유는 실시간 통신 외에 데이터의 안정적인 처리, 확장성, 그리고 데이터 보존이 필요하기 때문이다. 즉, 채팅방에서 상대방의 연결이 끊기더라도 채팅 메시지가 유실되지 않고 나중에 다시 접속했을 때 ..
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..
GCP 에 VM 인스턴스를 설정하고, 프로젝트에 필요한 리소스를 설치하는 과정을 기록한다. 1. VM 인스턴스GCP에 접속한 후, 결제관리에 카드를 등록하면 90일, $300 를 무료로 사용할 수 있다. 물론 GCP 에서 바로 DB를 설정할 수 있는 항목이 있긴 한데, 그렇게 되면 따로 관리하기 힘들것 같아서 VM을 올리고 VM에 Docker Compose 방식으로 리소스를 설치하여 사용하기로 하였다. 처음 계획은 한달에 $100 씩 사용하여 총 3개월을 사용하려고 하였으나, 이것저것 설정하다 보니 가격이 올라 아래의 사진과 같은 스펙으로 합의하기로 하였다. OS 의 경우 Ubuntu 22.04 LTS 로 생성하였다. 2. 리소스 설치하기리소스는 전부 Docker Compose 방식으로 설치하였다. K..
국비교육을 이수하며 아쉬웠던 점이 있었다. 그중 특히 채팅서비스에 대한 아쉬움이 가장 컸다. 급하게 만들어낸 서비스라 제대로 알지 못한 상태에서 구현에만 급급했던 나로썬 더 애증의 관계였던것 같다. 그래서 취업준비를 하며 사이드 프로젝트로 시작하기로 마음을 먹었고, 공부와 실력은 그렇듯 계속해야 익숙하고 성장하기 때문에 마음맞는 팀원들이 모여 중장기 프로젝트를 시작하기로 하였다. (취업을 하더라도 주말에 시간을 투자하기로)1. 주제 선정 및 계기카카오는 카카오톡으로 성장하게 된 회사이다. 카카오톡으로 시작하여 카카오스토리를 지나 현재는 대한민국에 없어서는 안될 서비스이다. 그래서 우리는 카카오톡과 같은 메신저에서 시작하여 점차적을 서비스를 늘려나가기로 하였다. 그렇게 해서 우리는 채팅서비스에 주식종목 확..