목록분류 전체보기 (128)
tioon's Devlog
프로젝트 소개 👐🏻 플리빗은 세상과 SNS로 대화하는 현세대의 소통 방법을 개선하고자 하는 Q&A 플랫폼입니다.궁금증을 질문하고 답변을 통해 자신을 표현하여, 소통 과정에서 느끼는 니즈를 충족시키고 어려움을 해결합니다. 저희 프로젝트의 서비스 소개글은 아니니 이 부분은 빠르게 스킵하도록 하겠습니다!!더 자세한 내용을 보시고 싶으시면 아래 링크에 들어와주세요!https://github.com/Team-baebae/29th_Semi_README/tree/main/TeamC_Flipit 프로젝트 설계 이번 프로젝트를 설계하면서 정말 많은 고민을 했습니다. 어떻게 하면 좀 더 안정적이고 확장성 있는 설계를 할 수 있는지 정말 많은 자료를 찾아보고 네이버 클라우드 공식문서도 많이 봤던거 같아요. 기본적..
이번에 미니 사이드 프로젝트로, 실시간 채팅기능을 구현하게 되었는데 이 과정을 한번 정리를 해보려합니다. 우선 저희의 요구사항은 다음과 같았습니다. 사용자간의 실시간 채팅이 구현되어야함. 방이름을 기반으로 채팅방이 구분되어야함. 전에 했던 채팅 기능이 저장이 되어야함. scale-out시에 채팅기능에 문제가 생기지 않아야함. 크게 이렇게 4가지가 있었는데요. 이 요구사항을 지키기위해서 갖은 삽질과 버그가 있었습니다. 이 미니 사이드 프로젝트는 Spring, 타임리프, Redis, mongoDB로 구현되어있으며, 중간에 발생한 문제점으로 인해 Kafka로 마이그레이션을 시도했습니다만.... 시간이 부족해 실패했습니다 이과정에 대해선 아래에서 자세히 설명드리겠습니다. 일단 먼저 스프링 WebSokcet과 M..
아파치 카프카에서 Producer와 Consumer의 내부 동작원리 및 특징에 대해서 알아보도록 하겠습니다. 아파치 카프카의 전체구조 우선 카프카의 전체 구조를 다시한번 보고 가겠습니다. 카프카의 전체 구조는 다음과 같습니다. Producer에서 Key-Value 형태로 메세지를 send하면, 브로커의 한 토픽을 기준으로 key로 파티션을 나누어 브로커에 저장이 됩니다. (여기서 메세지 send를 할때, key값은 partition을 나누는 것이지, topic을 나누는것이 아닙니다!!) (key가 아니라 partition으로도 나눌 수 있습니다. 다만, Key를 활용하는 방식이 유연성이 높습니다.) 해당 브로커에선 Queue 형태로 데이터들을 저장하며, 이를 기반으로 카프카가 동작을 하게 됩니다. 이제 ..
이번장에서는 아파치 카프카 CLI 명령어를 알아보도록 하겠습니다. 직접 아파치 카프카를 도커 컨테이너로 실행하여 CLI 명령어를 실행해볼 것이며, 아파치 카프카를 실행시키기 위해 도커와 아파치 카프카 오픈소스 깃 clone 과정이 필요합니다. 도커 설치 로컬 컴퓨터에 도커를 설치해 주시면됩니다..! 이 과정은 인터넷에 너무 많으니 패스하도록 하겠습니다. 저는 윈도우용의 도커를 설치했습니다. 아파치 카프카 오픈소스 설치 이제 도커를 설치했다면, 도커 컨테이너에 올릴 아파치 카프카 오픈소스가 필요합니다. 저는 conductor라는 오픈소스를 깃으로 clone을 해와서 가져올 것이며, 링크는 아래에 있습니다. conduktor/kafka-stack-docker-compose: docker compose fil..
이번 학기에 아파치 카프카에 대해서 스터디를 하게 되었는데 공부하면서 한번 정리를 해보려합니다! 혹시나 틀린 정보가 있다면 말씀해주세요! 현재 백엔드에서 빅데이터 처리시에 가장 많이 쓰이고 있는 플랫폼은 카프카인데요. 시작하기에 앞서, 우선 먼저 카프카를 한마디로 소개를 먼저 하자면 다음과 같습니다. 실시간 스트리밍 대용량, 대규모 데이터 처리에 특화된 프레임워크 이를 먼저 기억해주시고, 아래 글을 읽어주세요! 아파치 카프카(Kafka)의 시작 과거, 기존의 백엔드 서버에서 데이터를 수집하기위해 직접 데이터를 카테고리화 해서 저장을 하였습니다. 즉, 직접 1대1 매핑을 통해 데이터와 앱을 연결하여 카테고리처럼 저장하는 방식이였습니다. 초기에는 이러한 방식이 운영이 어렵지 않았고, 아키텍처도 복잡하지 않아..
이번 블로그에서는 터미널에서 SSH와 SCP를 직접 어떻게 사용하는지, 또한, 깃허브 액션에선 SSH와 SCP를 어떻게 사용하는지에 대해서 알아 보겠습니다. 사실 저희가 서버를 배포를 한다고 하면, SSH와 SCP 둘 다 사용할 일이 많잖아요?? 하지만 그럴때마다 까먹어서 구글링 하느라 시간 다쓴 적 있지않나요? 저도 서버 배포를 하면서 매번 SSH, SCP를 사용하는데 그때마다 까먹어서 자료 찾는게 귀찮아서 이번에 한번 제대로 공부하고, 까먹을 때마다 보려고 합니다 ㅎㅎ 우선 터미널 상에서 SSH와 SCP를 어떻게 사용하고, 옵션은 어떻게 활용하는지에 대해서 정리를 한 후, 추가적으로, 깃허브 액션에서는 어떻게 SSH와 SCP를 활용할 수 있는지에 대해서 정리를 해보도록 하겠습니다. SSH SSH 기본..
이번엔 제가 스프링으로 웹소켓을 구현하면서 겪었던 문제들을 해결하면서 고민했던것과 해결한 결과를 말씀 드리려 합니다. 예전에 웹소켓을 STOMP로 구현하면서 블로그 글을 올린 적이 있었는데, 그때엔 제대로 작동이 되었습니다. 하지만, 최근에 STOMP 테스트 하는 것이 어떤 이유에서인지 모르겠지만, 막혔더라구요...ㅜ 그래서 다양한 방법으로 해결을 하려 했지만, STOMP를 결국 활용을 못하고, 스프링 WebSocket으로 리팩토링하여 해결으 하였습니다. 우선 다음과 같은 단계로 설명을 드리려합니다. 현재 STOMP의 문제. STOMP 테스트 시스템 부재 STOMP 대체제인 스프링 WebSocket 직접 구현 스프링 WebSocket 테스트 현재 STOMP의 문제. 과거에 제가 STOMP를 이용해 웹소켓..