분류 전체보기

·JAVA/중급1
java.lang 패키지 소개자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 바로 java.lang 패키지이다.(패키지라는 게 여러 클래스들을 모아둔 곳이다) 여기서 lang은 Language(언어)의 줄임말이다.쉽게 이야기해서 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다.java.lang 패키지의 대표적인 클래스들Object: 모든 자바 객체의 부모 클래스String: 문자열Integer, Long, Double: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class: 클래스 메타 정보(클래스가 어떤 이름을 가지는지 어떤 메소드를 가지는지 이러한 정보들)System: 시스템과 관련된 기본 기능들을 제공여기 나열한 클래스들은 자바 언어의 기..
서론이번 글에서는 유저의 실시간 온/오프 상태 처리 기능(https://an-jjin.tistory.com/44)을 구현하면서 겪었던 이슈 중 세 번째 이슈에 대해 다루겠습니다. 개발을 진행하면서 처음 구현한 로직에서 최종 로직까지의 개선 과정을 설명해 보려고 합니다.문제 상황채팅 서비스에서 유저의 웹소켓 연결 상태를 파악하여 해당 유저가 온라인인지 오프라인인지 지정하는 기능을 구현했습니다.해당 유저를 A라고 지칭하겠습니다. 유저 A의 온라인/오프라인 이벤트 데이터를 카프카의 특정 토픽으로 전송하고, 다른 채팅 서비스들이 이를 받아와 유저 A가 속한 서버(단체 채팅방)와 DM방에 있는 유저들에게 브로드캐스팅합니다.카프카에 보내는 이유는 이유는 채팅 서비스의 스케일 아웃을 고려했기 때문입니다.(관련 포스팅..
서론유저의 편의성을 위해 유저의 온라인, 온프라인 상태의 실시간 변경에 대해 처리를 하는 기능을 구현했습니다.전체적인 로직은 아래와 같습니다.로직 설계사용자의 온라인 상태와 오프라인 상태에 대한 기준은 웹소켓 연결로 결정했습니다.예를 들어 웹소켓으로 사용자가 채팅 서비스에 연결이 되어 있는 경우 온라인 상태로 웹소켓 연결이 끊기면 오프라인 상태라고 지정했습니다.서비스 간 비동기 처리가 가능한 부분은 카프카를 사용하여 데이터를 전송했습니다.서비스 간 동기 처리가 필요한 부분은 openfeign을 사용하여 처리했습니다.온라인 상태 처리 로직1. 사용자와 채팅 서비스가 웹소켓으로 연결되면 채팅 서비스에서는 해당 유저의 id값과 웹소켓 세션 id값을 가져옵니다.2. 채팅 서비스는 카프카를 통해 상태관리 서비스로..
서론유저의 편의성을 위해 입장한 서버에서의 마지막 채널 위치를 기억하여 다시 해당 서버로 입장 시 마지막 채널 위치를 기반으로 페이지를 보여주기 위한 기능을 구현했습니다. 전체적인 로직은 아래와 같습니다.로직 설계1. 채널 조회 시 각 서비스는 채널을 조회한 유저의 id값과 조회한 채널 id값을 카프카를 통해 상태관리로 전송텍스트 채널 조회는 채팅 서비스로 포럼 채널 조회는 커뮤니티 서비스로 음성 채널 조회는 시그널링 서비스로 요청이 갑니다.요청을 받은 각 서비스들은 채널을 조회한 해당 유저의 id값과 조회한 채널 id값을 카프카를 통해 상태관리로 전송합니다.상태관리 서비스는 유저가 입장한 서버에서의 마지막 채널 위치를 관리합니다.서버 생성 또는 서버로 유저가 처음 입장 시 커뮤니티가 상태관리로 유저 i..
an_jjin
'분류 전체보기' 카테고리의 글 목록 (31 Page)