wo_dbs
close
프로필 배경
프로필 로고

wo_dbs

  • 분류 전체보기 (273)
    • 프로젝트 (35)
      • Where42 (14)
      • kkrap (21)
    • 개발 지식 (86)
      • 인프라 (3)
      • GIt (1)
      • CS (5)
      • OS (5)
      • KSUG (40)
      • C++ (21)
      • Spring boot (5)
      • java (0)
      • Database && SQL (2)
      • Algorithm (4)
    • 객체지향 (24)
      • C++ 객체지향 (24)
    • 외부 활동 및 교육 (117)
      • 42Seoul (114)
      • 인턴 (3)
    • 나의 일기 및 회고록 (5)
      • 회고 (2)
      • 자격증 (3)
    • 기타 (3)
  • 홈
  • Github
커서 기반 페이지네이션이란?

커서 기반 페이지네이션이란?

우리가 알고 있는 페이지네이션 자체는 리스트 데이터를 잘라서 몇 개씩 보여주는 것이 목적페이지네이션에는 방식 2가지가 있다.offset 기반 페이지네이션 (LIMIT / OFFSET)커서 기반 페이지네이션 (cursor-based)offset 방식 문제점10개씩 자를 때 → 21~30번째데이터SELECT * FROM folders ORDER BY created_at DESC LIMIT 10 OFFSET 20; 문제는데이터가 많아질 수록 offset 건너 뛰는 비용 증가실시간으로 데이터 추가/삭제 되면 페이지 결과가 깨짐 == 데이터 중복/누락 예를 들어사용자가 페이지 2까지 봤는데 그 사이 새로운 폴더가 추가되거나 삭제되면 사용자한테 같은 데이터가 중복 보이거나 빠짐 → 데이터가 변경되는 환경에서 페이지..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 30.
  • textsms

폴더 검색 기능 설계 문서(ElasticSearch)

kkrap 프로젝트에서 일주일 내 좋아요, 스크랩순 집계 기능과 특정 폴더를 검색해야하는 기능에 있어서 일반적인 SQL문 보다 좀 더 검색이 빠른 무언가를 해결하기 위한 과정이 필요했다 그 과정에 대해 기술한다.기능 개요우리 서비스에서 다음과 같은 기능을 만들게 되었는데 조회의 속도가 빠른 무언가 도구가 필요했다.폴더명, 설명, 작성자 → 검색어 입력시 검색최신순, 좋아요 순, 스크랩순 → 정렬된 결과 반환한달 내 좋아요 Top 10 → 집계팔로우한 사람들의 폴더만 보여주기 → 조건 검색그래서 이걸 구현하기 위해 검색 엔진이라는 걸 발견하게 되어 도입해보려고 하였다. 기능 목적 및 배경왜 이 기능이 필요해졌는가?기존 RDB 기반 LIKE 검색은 다음과 같은 문제점이 있었습니다:대량 데이터에서 다음과 같은..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 29.
  • textsms

ElasticSearch란?

폴더명, 폴더 설명, 폴더 작성자 → 검색최근 일주일, 한달 홈 페이지에서좋아요순, 스크랩순빅데이터, 검색, 정렬, 필터링, 집계를 빠르게 해주는 검색 엔진 → 검색 기능에 특화된 데이터베이스일반적인 관계형 DB는 검색 속도가 느림 예를 들어제목 + 내용+ 태그 포함된 키워드 검색 → 이런 복잡한 쿼리를 RDB로 하면 느림그래서 빠른 검색/필터/정렬/랭킹이 필요할 땐 elasticsearch 어떤 역할?데이터 검색(Full-Text Search)필터링(조건 검색)정렬(최신순 좋아요순 등)집계(기간별 카운트, TOP10, 평균값 계산) → 검색 엔진 + 데이터 분석 엔진 역할을 동시에 함 elastic search 데이터 구조index → 테이블 느낌docuemnt → 레코드/행 느낌field → 컬럼 느..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 29.
  • textsms

검색 엔진이란?

원하는 정보를 빠르게 찾기 위해 미리 색인(Index)를 만들어 놓고 거기서 생각하는 시스템그냥 데이터를 다 읽으면서 찾는 게 아니라미리 목차, 색인표 만들어두고 색인표에서 빠르게 위치 찾아서 검색하는 원리예를 들어 네이버, 구글, 유튜브, 쇼핑몰, 쿠팡, 인스타그램→ 검색창에 키워드 입력 → 바로 검색 결과 뜸 이게 검색 엔진 덕분임수박맨 ~ 수십억 건의 데이터를 1초안에 검색 결과 반환 이게 왜 필요하냐면일반 DB로 검색하면 느림 데이터가 많아지면 모든 데이터를 다 읽어야해서 시간 오래 걸림미리 색인을 만들어서 검색 검색 엔진의 핵심 색인(Index)책 → 페이지별 목차사전 → 단어별 색인 검색 엔진이 하는 일크롤링 (데이터 수집) → DB에서 데이터 가져오기색인(indexing) → 단어/문서/필드..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 29.
  • textsms
URL 메타데이터 추출 기능 개선 문서 -  (EC2 대응)

URL 메타데이터 추출 기능 개선 문서 - (EC2 대응)

https://wo-dbs.tistory.com/238 URL 메타데이터 추출 기능 문서kkrap 프로젝트에서 url을 저장하는 기능이 필요했다. url을 저장 후 사용자를 위해 제목, 파비콘, 썸네일을 추출하는 기능이 추가적으로 필요하였는데 이 부분의 개발 과정에 대해서 기술한다. 기wo-dbs.tistory.com 위 블로그에서 보듯이 kkrap 프로젝트에서 url을 저장하는 기능을 Jsoup으로 구현하였다. 하지만 EC2 서버에서는 제대로 작동이 되지 않아서 어떻게 문제를 찾았고 어떤 원인이었는지 과정을 기술하였다. 개요링크 저장 시 Jsoup을 통해 메타데이터(title, thumbnail, favicon)를 추출하는 기능이 구현되어 있으나, EC2 서버 환경에서는 일부 썸네일 및 파비콘이 정상적..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 28.
  • textsms

URL 메타데이터 추출 기능 문서

kkrap 프로젝트에서 url을 저장하는 기능이 필요했다. url을 저장 후 사용자를 위해 제목, 파비콘, 썸네일을 추출하는 기능이 추가적으로 필요하였는데 이 부분의 개발 과정에 대해서 기술한다. 기능 개요해당 기능은 사용자가 링크를 저장할 때, 해당 URL의 제목, 썸네일 이미지, 파비콘 정보를 자동으로 추출하여 저장하는 기능이다. 서비스에서 링크들을 수집하는 기능이 필요하고 거기에 대한 정보를 보여줄 기능이 필요하여 이 메타데이터를 추출하게 되었다. 기능 목적 및 배경사용자가 링크를 저장할 때 단순한 URL 텍스트만 보여줄 경우, 시각적 정보 부족으로 인해 UX가 떨어짐메타데이터를 자동 추출하면 링크의 내용을 직관적으로 파악할 수 있음특히 SNS, 뉴스, 유튜브 등에서 제목과 썸네일, 파비콘의 정보가..

  • format_list_bulleted 프로젝트/kkrap
  • · 2025. 7. 28.
  • textsms
  • navigate_before
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • ···
  • 46
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (273)
    • 프로젝트 (35)
      • Where42 (14)
      • kkrap (21)
    • 개발 지식 (86)
      • 인프라 (3)
      • GIt (1)
      • CS (5)
      • OS (5)
      • KSUG (40)
      • C++ (21)
      • Spring boot (5)
      • java (0)
      • Database && SQL (2)
      • Algorithm (4)
    • 객체지향 (24)
      • C++ 객체지향 (24)
    • 외부 활동 및 교육 (117)
      • 42Seoul (114)
      • 인턴 (3)
    • 나의 일기 및 회고록 (5)
      • 회고 (2)
      • 자격증 (3)
    • 기타 (3)
전체 방문자
오늘
어제
전체
인기 글
최근 글
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바