전체 글
-
시스템 디자인: 소셜 네트워킹 서비스(SNS) - 요구 사항 명확화(1)Computer Science 2024. 11. 12. 21:35
(1) 요구 사항 명확화 (Requirement Clarification)시스템 디자인의 첫 단계는 요구 사항을 명확히 정의하는 것입니다. 이는 시스템이 어떤 기능을 제공해야 하는지, 그리고 어떤 품질 기준을 만족해야 하는지를 명확히 함으로써 이후의 설계 및 개발 과정을 효과적으로 이끌 수 있게 합니다. 특히 소셜 네트워킹 서비스(SNS)와 같이 복잡한 시스템에서는 요구 사항을 세밀하게 분석하는 것이 중요합니다.이번 섹션에서는 SNS 시스템의 기능적 요구 사항과 비기능적 요구 사항을 상세히 살펴보겠습니다.기능적 요구 사항 (Functional Requirements)기능적 요구 사항은 시스템이 제공해야 하는 구체적인 기능과 서비스를 의미합니다. 아래는 SNS에서 제공해야 할 주요 기능들을 상세하게 분류한..
-
시스템 디자인: 소셜 네트워킹 서비스(SNS) - 전체 요약Computer Science 2024. 11. 11. 18:00
소셜 네트워킹 서비스(SNS)는 사용자 간의 연결과 콘텐츠 공유를 중심으로 하는 복잡한 시스템입니다. 이 글에서는 먼저 SNS를 예로 들어 시스템 디자인의 각 단계를 간단히 살펴보고, 그 이후 하나씩 자세히 들여다 보는 시간을 가져볼 계획입니다.1. 요구 사항 명확화기능적 요구 사항사용자 프로필 관리: 사용자 등록, 로그인, 프로필 수정.친구 또는 팔로우 기능: 다른 사용자와 연결하거나 팔로우할 수 있음.게시물 생성 및 조회: 텍스트, 이미지, 동영상 등의 콘텐츠 업로드 및 타임라인 조회.댓글 및 좋아요: 게시물에 대한 상호 작용.알림 기능: 새로운 팔로워, 댓글, 좋아요 등에 대한 실시간 알림.검색 기능: 사용자나 게시물을 검색할 수 있음.비기능적 요구 사항높은 가용성: 24/7 서비스 운영.확장성: ..
-
golang: 제네릭(Generic) 심화과정Back-End/Golang 2024. 11. 10. 13:04
Go 언어의 제네릭(Generic) 심화 이해 및 활용Go 언어는 간결함과 효율성으로 널리 사랑받는 언어입니다. 그러나 제네릭(generic)이 없다는 점은 복잡한 코드를 작성할 때 걸림돌이 되었습니다. 이러한 필요성에 따라 Go 1.18 버전부터 제네릭이 도입되었고, 이는 코드 재사용성과 타입 안전성을 크게 향상시켰습니다. 이번 글에서는 제네릭이 무엇인지부터 시작하여, 왜 필요한지, 그리고 현업에서 어떻게 활용되는지 다양한 예시와 함께 깊이 있게 알아보겠습니다.1. 제네릭이란 무엇인가?1.1 제네릭의 개념제네릭은 함수나 타입을 정의할 때 타입을 매개변수처럼 사용할 수 있게 하는 기능입니다. 즉, 코드 작성 시 구체적인 타입을 명시하지 않고도 다양한 타입에 대해 동작하는 코드를 작성할 수 있습니다.1.2..
-
동적 색인(Dynamic Indexing)이란?Search & AI/Search 2024. 11. 9. 11:06
대규모 정보 검색 시스템에서의 동적 색인에 대한 심층 탐구 이 글은 정보 검색 시스템에서 동적 색인(Dynamic Indexing)의 역할과 중요성에 대해 깊이 있게 탐구합니다. 특히 FAANG(페이스북, 애플, 아마존, 넷플릭스, 구글) 기업에서의 사용 사례와 예시를 통해 동적 색인이 왜 필요한지, 정적 색인과의 관계는 무엇인지에 대해 자세히 다룹니다. 동적 색인을 뒷받침하는 방법론, 데이터 구조, 알고리즘을 상세히 설명하고, 대규모 환경에서의 구현과 최적화 전략에 대해 논의합니다.1. 소개1.1. 변화하는 데이터 환경과 검색의 도전현대의 디지털 환경은 실시간으로 변화하는 데이터로 가득 차 있습니다. 소셜 미디어 게시물, 뉴스 기사, 전자 상거래 제품 정보 등은 매 순간 업데이트됩니다. 이러한 실시간 ..
-
정적 색인(Static Indexing)이란?Search & AI/Search 2024. 11. 8. 14:11
대규모 정보 검색 시스템에서의 정적 색인에 대한 심층 탐구 이 글은 주요 기술 기업, 특히 FAANG(페이스북, 애플, 아마존, 넷플릭스, 구글)에서 사용되는 정보 검색 시스템의 핵심 구성 요소인 정적 색인의 복잡성에 대해 깊이 있게 탐구합니다. 정적 색인을 뒷받침하는 방법론, 데이터 구조, 알고리즘을 자세히 살펴보고, 대규모 환경에서의 구현과 성능을 향상시키는 최적화 전략에 대해 논의합니다. 또한 실제 사례와 예시를 통해 이해를 돕고자 합니다.1. 소개1.1. 정보 과잉 시대의 검색 문제현대 사회는 방대한 양의 디지털 정보로 가득 차 있습니다. 인터넷의 발달로 인해 매일 수십억 개의 문서, 웹 페이지, 멀티미디어 콘텐츠가 생성되고 있습니다. 이러한 방대한 데이터에서 필요한 정보를 빠르고 정확하게 찾는 ..
-
검색 랭킹 알고리즘 비교: PageRank, TF-IDF, 사용자 행동 기반 랭킹 및 최신 기술 동향Search & AI/Search 2024. 11. 7. 21:35
검색 엔진은 사용자에게 가장 관련성 높은 정보를 제공하기 위해 다양한 랭킹 알고리즘을 활용합니다. 이 글에서는 대표적인 랭킹 알고리즘인 PageRank, TF-IDF, 사용자 행동 기반 랭킹을 비교하고, 현대 검색 엔진이 채택하고 있는 최신 랭킹 기술에 대해 알아보겠습니다.1. PageRank: 링크 구조 기반의 중요도 평가PageRank는 구글이 초기 검색 엔진에 도입한 알고리즘으로, 웹페이지 간의 하이퍼링크 구조를 활용하여 페이지의 중요도를 산정합니다. 기본 아이디어는 중요한 페이지는 많은 다른 중요한 페이지로부터 링크를 받는다는 것입니다.주요 개념링크 투표 모델: 한 페이지가 다른 페이지에 링크를 걸면, 그 페이지에 투표하는 것으로 간주합니다.감쇠 계수 (Damping Factor): 사용자가 무작..
-
사용자 기반을 이해하는 핵심 지표: 사용자 활동 관련 용어 정리Back-End/Performance & Optimization 2024. 11. 3. 18:30
서비스나 앱의 성공 여부를 평가하는 데 있어 사용자 수는 단연 중요한 기준입니다. 하지만 단순한 사용자 수보다는 이들이 얼마나 자주, 활발하게 사용하고 있는지를 나타내는 지표가 더욱 유용할 수 있습니다. 여기서 등장하는 것이 MAU (Monthly Active Users)와 관련된 지표들입니다. MAU는 한 달 동안 서비스를 얼마나 많은 사용자가 이용했는지 보여주며, 이 외에도 DAU, 유지율 등 다양한 사용자 활동 지표가 함께 활용됩니다. 이번 글에서는 MAU와 관련된 주요 용어들을 하나씩 정리해보겠습니다.1. MAU (Monthly Active Users): 한 달간의 활성 사용자 수MAU는 월간 활성 사용자 수를 나타내며, 서비스의 인기도와 사용자 기반을 평가하는 데 필수적인 지표입니다. 한 달 동..
-
웹 서비스 성능을 이해하는 필수 지표: 트래픽 관련 용어 정리Back-End/Performance & Optimization 2024. 11. 3. 18:28
웹 서비스의 성공은 단순히 기능의 제공에 그치지 않고, 많은 사용자에게 안정적이고 빠른 서비스를 제공하는 능력에 달려 있습니다. 이 과정에서 '트래픽 지표'는 중요한 역할을 합니다. 웹 성능 지표로 자주 언급되는 TPS (Transactions Per Second) 외에도 QPS, RPS, Latency 등 다양한 트래픽 용어들이 있는데요, 각각이 어떤 의미를 가지며 어떻게 활용되는지 하나씩 살펴보겠습니다.1. TPS (Transactions Per Second): 트랜잭션 처리 능력TPS는 서비스가 초당 몇 개의 트랜잭션을 처리할 수 있는지를 나타내는 지표로, 시스템 성능을 평가하는 중요한 기준입니다. 예를 들어, 결제 시스템이나 금융 서비스는 실시간 트랜잭션을 안정적으로 처리해야 하므로 TPS가 매우..