전체 글230 채팅방 애플리케이션 소캣 설계 [ 목적 ] 채팅방 소캣을 효율적으로 구성하여 최적화된 애플리케이션을 개발할 수 있다. [ 채팅방 별 소캣 사용 vs 하나의 소캣으로 공유 ] 채팅방 별 소캣 사용 1. 장점 - 트래픽이 많을 경우 채팅방마다 최적화된 환경을 제공할 수 있다. - 2. 단점 - 소캣은 열 수 있는 최대 파일 개수와 똑같으므로 한정적인 자원을 소모한다. 애플리케이션이 잘 되서 사용자가 많아질 경우 소캣 관리가 어려워진다. - 구현 난이도가 어렵다. 예상되는 메시지 구조 1. 메시지 타입 ( 문자열, 이미지 등 ) 2. 메시지 데이터 하나의 소캣으로 공유. 1. 장점 - 소캣의 개수가 적어지므로 클라이언트가 늘어나도 부하를 견딜 수 있고, 소캣 관리에 용이하다. - 개발 스피드가 빠르다. 2. 단점 - 메시지에 채팅방 타입과.. 2023. 8. 7. nginx, blue-green 배포 [ 목적 ] 토이 프로젝트에서 nginx를 사용할 일이 있어서 좀 더 딥하게 이해하기 위해 이 글을 작성한다. [ nginx란? ] nginx는 웹 서버이다. 위 사진 처럼 여러 서버로 로드밸런싱을 할 수 있는 리버스 프록시 서버 역할을 수행한다. 우리 역시 위 사진 처럼 nginx를 사용하고 있고, 지금은 단일 서버로 구성해놓았지만, 여러 서버로 컨테이너를 늘리면 nginx가 컨테이너별로 로드밸런싱을 해 줄 수 있다. [ nginx의 동작 방식 ] nginx는 비동기 이벤트 기반( event driven )아키텍처로 요청을 처리한다. nginx는 하나의 고정된 마스터 프로세스와 워커 프로세스를 만들어서 사용하기 때문에 요청이 들어오더라도 새로운 프로세스, 쓰레드를 만들지 않는다. 또한 비동기 방식을 c.. 2023. 7. 27. 리액트의 리덕스 [ 목적 ] 회사에서 사용하는 리액트 프레임워크에서 리덕스를 사용한다. - 프론트를 많이 안다뤄봐서 프론트에 대한 지식이 하나도 없었는데 좀 키워보자 [ 리덕스란? ] 리덕스는 자바스크립트 애플리케이션(리액트 등)에서 전역적인 상태 관리를 위한 예측 가능한 상태 컨테이너 라이브러리이다. 리덕스의 구성 요소는 위 사진과 같다. 1: 액션 : 상태 변경을 위한 디스패치 되는 객체이다. - type이라는 필수 속성을 가지고 있으며 추가적인 데이터를 포함할 수 있다. getIsVariableBtnActivate: (isVariableBtnActivate)=> ({ type:types.GET_IS_VARIABLE_BTN_ACTIVATE, isVariableBtnActivate }), setIsVariableBtn.. 2023. 7. 16. nestjs와 socket 라이브러리 맛보기 [ 목적 ] 자바스크립트를 공부해보고 싶다. 업무 중 사용하는 자바스크립트 언어와 자바스크립트로 구축하는 nestjs가 궁금해서 작성한다. [ nestjs ] 처음 사용하고 스프링과 매우 유사하다고 느꼈다. 스프링과 같이 DI를 이용하여 클래스( 함수형 컴포넌트 )를 사용할 수 있다. 스프링과 대체적으로 비슷한 것을 볼 수 있다. 스프링과 대체적으로 비슷한 구조를 가지고 있어 이해하기 너무 쉬웠다. 개발하는 방식 역시 dto, entity를 만들고 db와 연동하여 service단에 로직을 구성하고 respository에 db쿼리를 만드는 것도 똑같았다. 언어 역시 typescript를 사용하여 명확한 자료형덕분에 더 이해하는게 쉬웠다. 자바스크립트가 워낙 근본없는 언어라 생각했는데, 역시 근본없는 언어인.. 2023. 7. 10. 이전 1 ··· 4 5 6 7 8 9 10 ··· 58 다음