🐛 Windows 환경에서 줄바꿈 문자 충돌 오류 Windows에서 프로젝트를 클론하면 Git이 자동으로 줄바꿈 문자를 LF → CRLF로 변환하여 Prettier/ESLint 오류가 발생했음 [plugin:vite-plugin-eslint] src/index.tsx1:64 error Delete `␍` prettier/prettier2:48 error Delete `␍` prettier/prettier // 이런식으로 몇백줄이뜸원인:Mac/Linux 팀원: LF (\n) 사용Windows Git 기본값: core.autocrlf=true로 설정되어 자동 변환줄바꿈 문자 불일치로 코드 스타일 오류 발생 해결 방법:1. Git 전역 설정 변경: 자동으로 CRLF 변환기능을끄고 LF로 설정해..
프로젝트 상세 소개 Notion: https://www.notion.so/Talkpick-2031f5b7c2a280388968e53286dc5740TalkPick 프로젝트는 뉴스 기반 서비스를 제공하는 플랫폼입니다. 이에 모든 서비스의 기반이 되는 양질의 뉴스 데이터를 안정적으로 확보하는 기능이 필요하게 되었고, 프로젝트의 요구사항에 따라 다수 언론사의 RSS 피드를 자동으로 수집하고 가공하여 저장하는 시스템이 필요해졌습니다.1. 기능 개요핵심기능RSS 메타 데이터 수집: 국민일보, 동아일보, 경향신문 등 주요 언론사의 RSS 피드에서 뉴스 메타데이터를 자동 수집합니다.시스템이 매 1분마다 자동으로 RSS 피드를 체크하여 최신 뉴스를 실시간으로 수집합니다.뉴스 본문 크롤링: RSS 메타데이터만으로 부족한..
Native QueryNativeQuery는 엘라스틱서치의 네이티브 쿼리 DSL (Domain Specific Language) 을 직접 사용할 수 있도록 설계됬다다양한 검색 옵션을 제공하며, 다음과 같은 강력한 기능들을 활용하여 정교한 검색 조건을 정의 가능하다다양한 쿼리 유형: match, term, range, bool, multi_match, wildcard, fuzzy, geo 쿼리 등 다양한 검색 목적에 맞는 쿼리들을 조합 가능복잡한 조건 조합: bool 쿼리를 사용하여 must (필수 조건), should (선택 조건), must_not (제외 조건), filter (스코어에 영향 없는 필터링) 등 복잡한 논리적 조건을 구성할 수 있다정렬(Sorting): 특정 필드 기준으로 오름차순 또는 ..
엘라스틱 서치를 쉽게이해하면RDBMS가 아닌NoSQL의 성격을지닌 하나의 데이터베이스 이면서동시에 강력한 검색엔진의 성격도 띄고있는 개념이라 생각하면된다. NoSQL로써 당연히 스키마는 없고 (Schemaless)Json의 형태를 띄는 데이터베이스이다. B-Tree 구조가 아닌 역색인(Inverted Index) 방식을 사용하여 단어나 문장을 매우 빠르게 찾음 자연어 처리(NLP) 기능이 내장 - 단어를 쪼개는 토큰화 / 불필요한 단어를 거르는 필터링 / 비슷한 형태로 바꿔주는 정규화가 자동 지원단순 텍스트뿐 아니라, 조건 검색(필터링) 과 정렬까지 가능 대량의 리뷰도 빠르게 검색 가능 검색의 특징 = 빠른 검색 속도 -> 반정형화, ETL 형태로 많이 쓰인다 ElasticSearch의 특..
📋 테스트 개요실험 대상: 인기뉴스 API (/public/news/top-viewed/politics)실험 기간: 2025년 5월 28일실험 횟수: 총 30회 (3개 시나리오 × 10회씩)측정 도구: @TimeTracker AOP 어노테이션1차 JVM 캐싱엔 caffeine을 사용함가장 빠름벤치마킹 비교:https://medium.com/naverfinancial/%EB%8B%88%EB%93%A4%EC%9D%B4-caffeine-%EB%A7%9B%EC%9D%84-%EC%95%8C%EC%95%84-f02f868a61921️⃣ 테스트 필요🚨 기존 시스템의 성능 문제점캐싱 시스템 부재로 인한 성능 저하매 요청마다 DB 직접 조회 발생실험 결과 캐시 없는 순수 DB 조회 시간: 평균 0.667초동일한 데이..
Spring Cache AOP 문제 트러블슈팅 노트🚨 문제 상황발생한 문제Spring Cache (@Cacheable)가 전혀 작동하지 않음해시값이 동일한데도 매번 getTopNewsByCategory() 메서드가 실행됨캐시 HIT이 한 번도 발생하지 않고 항상 MISS 상태문제 증상1차 API 호출: ✅ 해시 동일 → 📋 Spring 캐시 MISS (정상)2차 API 호출: ✅ 해시 동일 → 📋 Spring 캐시 MISS (비정상!) 3차 API 호출: ✅ 해시 동일 → 📋 Spring 캐시 MISS (비정상!)정상적이라면:1차 API 호출: ✅ 해시 동일 → 📋 Spring 캐시 MISS2차 API 호출: ✅ 해시 동일 → 🚀 Spring 캐시 HIT ← 이게 나와야 함!3차 API 호출..
최근 팀작업을 하면서 깃허브에 discussion이나 issue가 새로올라오거나 댓글이달리거나PR요청이오고 내 PR에 코멘트가달려도 깃허브알림을 볼때까지 모르고있거나 하는 일이 잦아서알림기능이 있는 디스코드에 웹훅으로 연결해서 알림을 받고자 시작하게되었다하지만 문제는 나는 내 팀 repo에서 admin이 아니라 contributor라는점github의 웹훅기능은 admin이여야 가능하다!물론 admin권한을달라해도 되지만 그러면 내가 올리는 PR들은 PR규칙에 걸리지않게되고컨벤션도 자동으로 관리가 안되게 되서 (어드민 권한일시에만)Github Action을 통해서 구현을 하기로 했다주기적으로 체킹하고~ 디스코드 웹훅에 알림을 주는식이다먼저 Github Action용 개인 repo를 하나 만들었다이름은 gi..