true-false

true-false

  • 분류 전체보기 (101)
    • Algorithm (30)
      • BOJ (19)
      • 그래프 (6)
      • 세그먼트 트리 (1)
      • 문제풀이 회고 (1)
    • DataStructures (1)
    • Back-End (32)
      • Spring-Boot (6)
      • Nginx (0)
      • Netty (1)
      • JAVA (8)
      • DB (6)
      • 대규모 시스템 설계 (5)
      • RabbitMQ (2)
    • Front-End (4)
      • Vue.js (16)
      • React (1)
    • 5 sens (10)
      • Drinks (7)
      • 제품 리뷰 (2)
    • Design Patterns (2)
    • Book Again (1)
    • 생각 (0)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

true-false

컨텐츠 검색

태그

발베니클래식 삼성 더 프리스타일 후기 vue template rabbitmq Final 다익스트라 씽크웨이 딥씨프로 simplemessagelistenercontainer 웹소켓 플로이드워셜 알고리즘 @RequiredArgsConstructor 삼성 더 프리스타일 자바 final 헤드퍼스트디자인패턴 싱글톤패턴 독거미 저소음바다축 vue 2667자바 유니온파인드 dnsnameresolver

최근글

댓글

공지사항

아카이브

Back-End/대규모 시스템 설계(5)

  • 성능과 안정성을 높이는 비동기 처리: 메시지 큐(Message Queue)의 이해와 활용

    도서 리뷰 서비스가 잘 운영되면서, 이제 사용자가 리뷰를 작성할 때마다 여러 가지 추가 작업이 필요해졌다. 예를 들어:리뷰가 등록될 때마다 리뷰 수를 집계해서 통계를 갱신리뷰에 욕설이나 금지어가 없는지 자동 검사리뷰 등록 시 관리자에게 실시간 알림 발송만약 리뷰 작성 요청이 올 때마다 위 작업을 즉시 처리하면 어떻게 될까?당연히 서비스 응답 속도가 느려지고, 심지어 요청이 많을 때는 시스템 전체 성능에 큰 영향을 줄 수도 있다.이런 문제를 해결하기 위해 사용하는 것이 비동기 처리이며,그 중심에 있는 기술이 바로 메시지 큐(Message Queue) 이다.비동기 처리란?비동기 처리는 요청을 받은 뒤 바로 처리하지 않고,나중에 별도의 작업으로 처리하는 방식이다.쉽게 말해, 사용자의 리뷰 등록 요청은 빠르게 ..

    2025.04.22
  • 데이터베이스를 빠르게 만드는 마법, 캐싱(Caching)의 기본 개념과 전략

    도서 리뷰 시스템이 성공적으로 운영되면서 데이터가 급속히 늘어났다.매일 수천 명의 사용자가 리뷰를 읽고 작성하는 서비스에서, 성능은 가장 중요한 요소 중 하나다.이때 성능 최적화를 위한 핵심 전략으로 등장하는 것이 바로 캐싱(Caching) 이다.캐싱(Caching)이란?캐싱은 자주 사용하는 데이터를 빠르게 접근할 수 있는 별도의 저장소(Cache)에 저장해두고 사용하는 기술이다.쉽게 말해, 매번 먼 창고(DB)에서 데이터를 가져오는 대신 가까운 서랍(Cache)에 자주 쓰는 데이터를 넣어 두는 것이다.캐싱을 쓰면 무엇이 좋아질까?데이터베이스(DB)는 디스크 기반이라 속도가 비교적 느리다. 반면 캐시는 메모리 기반으로 매우 빠르게 접근할 수 있다.따라서 자주 조회되는 데이터를 캐시에 저장하면 성능이 극적..

    2025.04.21
  • DB가 커졌을 때 꼭 알아야 할 '샤딩(Sharding)'의 개념과 방법들

    운영 중인 서비스가 성공적으로 자리를 잡으면서 데이터가 빠르게 쌓이고 있다고 생각해보자.예를 들어, 우리가 만든 도서 리뷰 시스템의 데이터가 1천만 건을 넘어가고 있다고 가정해보자. 처음엔 하나의 데이터베이스(MySQL)에 모든 리뷰와 도서 정보를 담고 있었는데, 이제는 단일 서버로는 더 이상 처리하기 어렵다. 이럴 때 우리가 사용할 수 있는 대표적인 방법이 바로 샤딩(Sharding)이다.샤딩이 무엇인지, 어떤 방식으로 하는지, 어떤 장단점이 있는지 지금부터 하나씩 정리해보자.샤딩(Sharding)이란?샤딩이란 데이터베이스를 하나의 서버가 아니라 여러 개의 서버에 나눠서 저장하는 방법을 말한다. 데이터를 분산시켜서 처리 속도를 높이고, 데이터가 늘어나도 쉽게 확장할 수 있게 만드는 방법이다.쉽게 말해 ..

    2025.04.21
  • Monolithic과 Microservice 구조의 차이: 언제, 왜 나눠야 할까?

    서비스를 만들다 보면 어느 순간 고민하게 되는 질문이 있다.“이제 시스템이 좀 커지는데, 계속 이대로 괜찮은 걸까?”오늘은 그런 질문에 대한 힌트를 줄 수 있는 두 가지 설계 방식, Monolithic Architecture와 Microservice Architecture를 살펴본다. 각각의 특징과 실무에서 마주칠 수 있는 문제를 함께 고민해본다.단일 구조: Monolithic ArchitectureMonolithic은 "덩어리진"이라는 뜻을 가진다. 이름 그대로, 하나의 애플리케이션 안에 모든 기능이 다 들어 있는 구조다.예를 들어, 도서 리뷰 시스템이 다음 기능을 가진다고 해보자.도서 등록사용자 리뷰 작성평점 등록인기 도서 선정리뷰 통계 조회Monolithic 구조에서는 위 기능들이 모두 하나의 애플..

    2025.04.21
  • 대규모 시스템이란? 그리고 우리가 왜 고민해야 하는가

    대규모 시스템이란?"대규모 시스템"이라는 말을 들으면 많은 데이터를 다루는 시스템이라고만 생각하기 쉽다. 하지만 실제로는 단순히 데이터 양이 많은 것만이 아니다. 다음과 같은 고민이 함께 들어가야 한다:수많은 요청을 동시에 처리할 수 있는 병렬 처리특정 부분에서 시스템 전체의 성능을 떨어뜨리는 병목 지점 최소화사용자가 많아져도 쉽게 대응 가능한 확장성 있는 구조기능이 많아지고 복잡해질수록 유지보수가 가능한 설계그럼 이런 시스템은 언제부터 "대규모"일까?정확한 기준은 없다. 단일 서버로 운영하다가 더는 감당이 되지 않아 서버를 수평으로 확장(Scale-Out)하기 시작했다면, 그때부터 대규모 시스템을 고려해야 할 때다.예시: 게시판 시스템의 진화초기 구조사용자가 많지 않아 서버 한 대에 DB도 같이 있음트..

    2025.04.21
이전
1
다음
© 2018 TISTORY. All rights reserved.

티스토리툴바