분류 전체보기 90

[AI] Elasticsearch 형태소 기반 검색 서비스 구축

Python의 FastAPI, PostgreSQL, 그리고 Elasticsearch를 사용해 형태소 기반 검색 서비스를 구현한다.Kiwi 형태소 분석기로 텍스트 데이터를 분석하고, 이를 PostgreSQL과 Elasticsearch에 저장한다.검색 요청 시 가중치를 적용한 점수 기반으로 정렬된 결과를 반환한다. 엘라스틱 서치(Elasticsearch)는 검색 및 분석 엔진 이다. 대량의 데이터를 빠르게 검색하고 분석하는 데 사용JSON 기반의 RESTful API를 통해 데이터를 저장, 검색, 관리하며, 주로 실시간 검색, 로그 분석, 데이터 시각화에 활용 1. 데이터베이스 설정PostgreSQL 데이터베이스에 연결한다. 테이블이 없으면 자동 생성한다.if not inspector.has_table("i..

딥러닝 2025.01.05

[Git] Git Flow 전략 Master, Develop, Feature 중심으로 이해하기

Git Flow의 작업 흐름은 Feature 브랜치를 생성하고 작업한 후 Develop에 병합하는 과정을 기본으로 한다.아래는 단계별로 작업 흐름을 설명한다.1. 브랜치 종류Master 브랜치배포 가능한 최종 안정 코드가 저장된다.Develop 브랜치기능 개발과 수정 작업이 끝난 코드가 모인다.모든 작업의 기준이 된다.Feature 브랜치새로운 기능을 개발하기 위해 만든다.작업 완료 후 Develop 브랜치에 병합한다.2. 전체 작업 흐름Feature 브랜치 생성 : 작업 시작 전 Develop 브랜치 최신 상태로 업데이트한다.git checkout dev # Develop 브랜치로 이동git pull origin dev # 원격 저장소에서 최신 상태로 업데이트git che..

etc 2024.12.15

[Vue]Radix Vue 팝업 적용하기

Radix Vue는 UI 컴포넌트를 쉽게 사용할 수 있게 도와주는 라이브러리다.그 중 팝업(Dialog) 컴포넌트를 적용하는 방법을 알아보겠다. 1. 프로젝트에 Radix Vue 설치하기yarn add radix-vue 2. 팝업 컴포넌트 만들기Dialog 컴포넌트를 사용해서 팝업을 만들 수 있다.기본적인 구성은 DialogRoot, DialogOverlay, DialogContent로 이루어진다.// Popup.vue 문의하기 닫기  3. 팝업 열기와 닫기팝업을 여는 버튼과 닫는 버튼을 설정해야 한다. 팝업을 열 때는 DialogTrigger를 사용한다.// Ap..

[Vue] TypeScript 부모-자식 간 데이터 넘기기 Props와 Emits

Vue에서 부모와 자식 간 데이터 흐름을 관리하는 방법으로 Props와 Emits를 사용한다.여기에 TypeScript를 적용하면 데이터의 타입을 명확히 정의할 수 있어 코드의 안정성과 가독성이 높아진다. 1. 부모-자식 간 데이터 흐름Props는 부모가 자식에게 데이터를 전달할 때 사용한다.Emits는 자식이 부모에게 데이터를 보낼 때 사용한다. 2. 데이터 흐름 단계1) 부모 → 자식: Props부모 컴포넌트에서 :message로 데이터를 전달하고자식 컴포넌트에서 defineProps로 받는다.부모에서 데이터 전달 :부모에서 parentMessage라는 데이터를 자식 컴포넌트로 :message를 통해 전달한다. // 자식 컴포넌트// props 정의const props = defineProps();자..

Frontend/Vue 2024.12.01

[Vue] 기본 컴포넌트 구조와 Vue 3.x에서 ref 사용법

Vue 기본 컴포넌트 구조Vue 컴포넌트는 크게 3가지로 나뉜다.: 화면에 보여질 HTML 구조를 작성한다.: 데이터, 메서드, 로직 등을 정의한다.: 컴포넌트의 스타일을 지정한다.Vue 3.x에서 ref 사용하는 법Vue 3.x에서는 Composition API를 통해 ref를 사용한다.ref는 반응형 데이터를 선언하거나 DOM 요소에 접근할 때 사용한다.ref(0)으로 반응형 변수 선언..value를 통해 데이터에 접근하고 수정한다.Vue 3.x는 코드 구조가 간결하고, 반응형 데이터와 DOM 제어를 통합적으로 관리할 수 있다.

[VUE]랜더링 문법 v-if, v-show

Vue.js v-if와 v-show의 차이: 무엇이 다를까?Vue.js에서는 화면에 요소를 보여주거나 숨기는 조건부 렌더링 기능으로 v-if와 v-show를 제공한다.이 둘은 결과는 비슷하지만, 내부 동작 방식이 다르기 때문에 상황에 맞게 선택하는 것이 중요하다. 1. v-if: 필요할 때만 DOM 생성v-if는 조건이 true일 때만 DOM 요소를 생성한다.조건이 false일 경우 해당 요소는 완전히 DOM에서 제거된다. //v-if 사용 예시 환영합니다! 로그인 상태입니다. 사용자가 로그인을 하면 한 번만 화면에 "환영합니다!"를 보여줘요.로그인 상태는 자주 바뀌지 않기 때문에, v-if로 요소를 생성/삭제해도 성능에 문제가 없어요.//v-if 적합하지 않은 경우 메뉴가 열렸습니다. 만약 메뉴를 ..

[AI]TF-IDF와 Kiwi를 활용한 한국어 키워드 추출

이번 글에서는 한국어 텍스트에서 의미 있는 키워드를 추출하기 위해 여러 NLP 라이브러리를 시도하고, 최종적으로 TF-IDF와 Kiwi를 결합한 방법을 선택한 과정을 소개한다.초기에는 KeyBERT와 KoNLPy, SoyNLP 등의 라이브러리를 사용해보았으나,각각의 한계로 인해 최종적으로 TF-IDF와 Kiwi의 조합을 채택하게 되었다. 1. 첫 번째 시도: KeyBERT와의 문제점처음에는 KeyBERT를 사용하여 키워드를 추출해보았다. KeyBERT는 문서의 주요 키워드를 문맥에 맞게 추출할 수 있어 유용하며, BERT 기반의 임베딩을 활용해 텍스트의 의미를 이해하고 키워드를 선정하는 장점이 있다. 하지만 다음과 같은 문제점이 발생했다.조사와 불필요한 어미 포함: KeyBERT는 단일 문서에서 조사나 ..

딥러닝 2024.11.09