본문 바로가기

내일 배움 캠프/그땐 (응답하라 추억시대)

(22)
망형 토폴로지에 대한 고찰 문제 내가 구축한 건 API와 API사이의 다리이다. 서비스와 서비스를 이어야 한다. 시도 1. distributor와 비슷한 users.topology.js 파일을 만든다. 2. Users 전체 정보 조회 url을 기준으로 정보 조회가 가능한 서버를 만든다. 3. 함수를 불러오면 실행이 된다. users.topology.js import TcpServer from '../classes/server'; import { makePacket } from '../utils/makePacket.js'; import dotenv from 'dotenv'; dotenv.config(); // 접속 노드 관리 오브젝트 // Server 클래스 상속 class usersTopology extends TcpServer ..
마이크로 서비스 아키텍처에서 서비스와 서비스 사이의 정보교환 문제 서비스와 서비스 사이에서 DB데이터를 서로 접근하고 싶다. 정확하게는 userId를 기반으로 하여 Users테이블에 있는 nickname을 Posts에서 가져오고 싶다. 시도 // Users 접속 함수 // 로그인을 목적으로 작성했던 것이라 변수명에 Login이 들어가는데 아직 수정을 하지 못하였다. connectToUsers(host, port, onNoti) { // Users 전달 패킷 const packet = makePacket('/users', 'GET', 0, this.context); let isConnectedLogin = false; this.clientLogin = new TcpClient( host, port, (options) => { // Users 접속 이벤트 isConn..
Node.js TCP서버에서 query와 params를 이용하여 CRUD 하기 방법 query 1. 파싱한 uri에서 uri.query를 변수에 담아 파라미터로 보내 진행한다. 2. TCP server에서 받은 패킷 안에서 정보를 빼내온다. params /users/1 로 접속을 허용하면서 값을 가져와야 한다고 가정하자. 1. localhost:8000으로 들어와서 Gateway를 지나기 전에 pathname을 split를 통해 가공한다. > /users 까지만 나오게 2. 뒤따라오는 params부분을 body의 JSON을 담은 객체 안에 넣어준다. 3. TCP server에서 받은 패킷 안에서 정보를 빼내온다. app.js import http from 'http'; import url from 'url'; import dotenv from 'dotenv'; import TcpC..
Node.js 서버 2개 연결하기 방법 1. 서버를 2개 준비해서 각각 다른 포트로 listen한다. 2. 서버에 연결되는 app.js도 다른 이름으로 2개 준비한다. 3. express.static으로 연결되는 public 폴더도 다른 이름으로 2개 준비한다. 4. 이때, 안에 들어가는 index.html에 구분할 수 있는 문자를 넣어 준다. ex) 1번 HTML, 2번 HTML 5. 1회의 npm run dev를 통하여 localhost:3000과 localhost:8080에 접속한다. 6. 출력 결과가 구분되는지 확인한다. 서버 코드 import Http from 'http'; import { ExpressApp } from './app.js'; import { ExpressApp2 } from './app2.js'; import ..
마이크로 서비스 아키텍처 마이크로 서비스 아키텍처 : 서비스 단위로 서버를 나누어 운영하는 설계 방법 service> distributor > gateway > client gateway : http 요청을 받는 또 다른 서버 DevOps의 에자일 방식 개발 : 어플리케이션 단위별로 테스트 및 배포 > 과정 순환 응답하라 추억시대 PLAN 마이크로 서비스 아키텍처 기술적 결정 사유 : 모놀리식 아키텍처와 다르게 서버가 여러 개여서 한 서비스에서 문제가 생겨도 다른 서비스를 정상적으로 이용할 수 있다. 채팅방 서버에 대한 우려가 잠깐 있었기 때문에 만장일치로 결정하였다. 인스턴스 1개, 포트 다르게 마이크로 서비스 4개 관리자 / 로그인 / 게시판 / 채팅 망형 토폴로지 사용 서비스가 각각 동작을 하는데 모든 다른 서비스와 연결이..
응답하라 추억시대 S.A. 작성 응답하라 추억시대 누군가의 기억을 가치있게 생각하는 공간, “ 응답하라 추억시대 “ 입니다. S.A. https://gleaming-harp-2af.notion.site/S-A-3929e5fabc12464eacb360854e7d4213 고민해 본 것들 1. 성능 향상 : 퍼포먼스를 높이기 위해 RDS의 테이블의 개수와 외래키를 줄이자. 1-1. 이미지 처음에는 파일 리스트와 파일이라는 테이블로 최대 5개까지 업로드가 가능했다. 이 테이블 2개를 포기하고 이미지 파일을 Posts안에 img 컬럼으로 한 개만 올리기로 하였다. 1-2. 신고 처음에는 commentsReports와 PostsReports로 나누어져 게시글 1개 댓글 1개를 각각 신고할 수 있었다. 신고는 애초에 운영진의 검수가 필요한 항목으로..