Skip to main content Link Menu Expand (external link) Document Search Copy Copied
  • 2023-01-01 Elastic Search 심화(1) Shard란? Node란? 주의사항 1. Shard란? 이전 포스팅에서 ES는 Index단위로 데이터를 저장한다고 하였다. 이 Index는 Shard 단위로 분산저장된다. 위의 그림은 하나의 Index를 총 5개의 샤드로 분산저장한 그림이다.
  • 2022-12-31 Elastic Search의 개념 및 RDB와의 차이점 개념 RDB와의 차이점 Type을 독립적으로 가지지 않은 이유 부모자식관계를 설정하는 두 가지 방법 RDB와의 차이점(추가) 문법(Appendix) 개념 ES(ElasticSearch)는 Java 오픈소스 분산 검색 엔진이다.
  • 2022-12-30 7. 수정된 아키텍처 진행상황 Architecture 현재 구현된 서비스를 docker compose를 통해 실행시키면 다음과 같이 컨테이너들이 생긴다. Kafka와 Chat Server, Auth Server, DB들 모두 외부접속 가능하도록 노출 port를 도커 내부 포트랑 같게 설정했다.
  • 2022-12-24 6. 전체 아키텍처 수정 전체 스키마 수정 앞서 본 프로젝트에서 backend와 front가 kafka Request/Response 아키텍쳐로 통신하도록 설정하였다. 이 때, 발생하는 귀찮은 부분이 상당히 많았다.
  • 2022-12-21 5. Kafka 연동완료 진행상황 Backend Server 완료 아래는 Kafka Backend Server 세팅 클래스 및 기능들이다.
  • 2022-12-19 4. 프로젝트 수행시 고려점2 추가내용 문제점2. 메모리상에서 유저데이터의 복제 해결 방법 이전 포스팅[[실시간 채팅방 구현(2)]](https://ghkdqhrbals.github.io/posts/chatting(2)/)에서 문제점2인 메모리상 유저데이터 복제가 일어난다고 기술했다.
  • 2022-12-19 Kafka에 대한 고찰 Request-response (HTTP) vs. event streaming (Kafka) 정리 글 event streaming 2 페이스북같은 경우, 유저 프로파일을 변경했을 때 여러 다른서버들과 연동이 일어난다.
  • 2022-12-18 3. JPA save 잘못된 이해로 비롯된 에러 1. spring-data-jpa save(S entity) 본 프로젝트에서는 Service Layer에서 트랜젝션처리를 수행한다. 또한 Repository는 data-jpa를 사용했다. 필자는 서비스 내 예외 발생 시, 원하는 값을 반환하고싶었다.
  • 2022-12-17 2. 프로젝트 수행시 고려점1 프로젝트 수행 시 고려할 문제점 문제점1. 메모리 누수 front-back으로 기존 모노서버를 분산하던 중, JPA로 Chatting 을 저장할 때 메모리 누수가 관찰되었다. 먼저 Kafka를 통해 전달받는 메세지 구조는 다음과 같다.
  • 2022-12-11 1. 현재 프로젝트의 문제점과 해결방법 1. 현재의 단계 현재까지 version1 실시간 채팅방 구현을 위한 STOMP/Spring 연동이 완료되었다. 상세한 내용과 코드는 다음의 github 링크에서 확인할 수 있다. GITHUB : v1 동작 : 2.
  • 2022-12-02 KafkaMQ 의 아키텍처와 메세지를 처리하는 방식 Kafka 아키텍처 용어 설명 Producer : 이벤트를 보내는 주체 Consumer: 토픽의 파티션에 저장되어 있는 메시지를 소비(consume)하는 역할. Consumer Group : 하나의 Topic의 모든 파티션들을 구독하는 consumer 그룹.
  • 2022-12-01 메세지 큐의 개념 및 장점 메세지 큐(MQ) MQ 란? 클라이언트의 요청을 큐에 저장하고 Consumer이 필요할 때 꺼내쓰는 아키텍처. 장점 비동기(Asynchronous) 메시지 큐는 생산된 메시지의 저장, 전송에 대해 동기화 처리를 진행하지 않고, 큐에 넣어 두기 때문에 나중에 처리할 수 있다.
  • 2022-11-20 RDB 트랜젝션 Isolation 모든 데이터베이스는 아래의 트랜젝션 격리 수준을 가진다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 이해를 돕기 위해 A,B 트랜젝션이 동시에 특정 데이터에 진입할 때를 가정한다. 1.
  • 2022-11-20 CAP와 ACID, BASE 이론 이 포스팅은 ACID, CAP, BASE 이론들을 설명하는 글입니다. 대부분의 어플리케이션은 데이터의 정합성을 보장하기 위해서 데이터 베이스를 이론(ACID, CAP, BASE 이론)에 따라 관리합니다.
  • 2022-10-14 Algorithm(1)
    트리
    Tree (level1) 이진트리 모든 노드가 두개 이하의 자식노드를 가질 때, Binary Tree라고 부른다. (level2) 이진탐색트리 이진트리인데, 자료의 검색, 삭제, 삽입, 정렬 등에 효율적인 트리 자료구조임. 부모노드의 키값의 대소에 따라 자식노드를 삽입함.
  • 2022-10-06 (English) RDB Normalization What is schema? DB schema : a metadata that how data is organized within a relational database this is inclusive of logical constraints such as, table...
  • 2022-09-18 (EN) What is Goroutine and its behavior Golang use goroutine which is similar with thread, but little bit different. Goroutine can make you easy to use thread with concurrency.
  • 2022-09-05 (EN) What is MSA? What is MSA? Monolithic's Disadvantage Changes in some modules affect the entire application Lack of scalability Micro Service Architecture's Advantage...
  • 2022-09-04 (KR) Saga 의 두 가지 패턴 설명 SAGA SAGA 패턴은 MSA에서 트랜젝션의 ACID를 보장하기위해 만든 패턴입니다. SAGA는 여러 서비스들이 연결된 방식에 따라, 관리를 어떤 방식으로 진행하는지에 따라 Orchestration/Choreography 이 두 가지의 형태를 가집니다.
  • 2022-08-30 (EN) Golang vs Spring Native As I'm a golang developer, there is a article that compare between golang and spring. The article said "Golang is 133% faster than Spring".