본문 바로가기

Dev Stories

Napkin AI - 아이디어를 즉시 시각화하는 도구 Napkin은 텍스트로 작성된 메모, 문서 등을 즉시 시각적 이미지로 변환하는 AI 도구이다. 아이디어 텍스트를 입력하고 블록을 지정한 후 실행하면 텍스트 내용에 맞게 도식화된 이미지가 수초만에 만들어진다.사용 순서아이디어 입력비쥬얼 만들기를 시작하기 위한 방법은 세가지이다. 빈 페이지로 시작, 생성형 AI 기능으로 짧은 문장을 입력하여 샘플 문서 만들기, 파일 업로드(DOCS, PDF, PPTX, MD, HTML)하여 시작하는 방법이다.자동 분류 및 연관성 분석입력된 텍스트 기반 아이디어에 의미 연결은 Napkin AI가 자동으로 분석하여 유사하거나 관련된 개념끼리 연결되어 시각화 된다.시각적 네트워크 맵 확인아이디어가 연결된 마인드맵 형태의 그래프가 만들어지고 관계 구조를 파악할 수 있다. 주요 개념.. 더보기
LLM Leaderboard Open LLM LeaderboardHugging Face에서 제공하는 LLM 리더보드로 모델에 대한 자세한 정보와 쿼리가 포함된 데이터셋을 제공하고 있다.주요 제공 콘텐츠로는 LLM 순위표-가장 좋은 평가를 받는 모델 목록(LLM Leaderboard best models), 모델 벤치마크 (The Big Benchmarks Collection), 유용한 리더보드 도구(Useful leaderboard tools) 및 데이터셋을 제공한다.https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard#/ Open LLM Leaderboard - a Hugging Face Space by open-llm-leaderboard huggingf.. 더보기
Vector Tile Server 벡터 타일 서버 Vector Tile Server(벡터 타일 서버)는 지도 데이터를 Vector Tile(벡터 타일) 형식으로 저장하고 클라이언트(웹 또는 모바일 앱 등) 요청에 따라 제공하는 서버이다. 일반적으로 웹 지도를 구성할 때 사용하는 벡터 기반 지도 데이터를 줌 레벨별로 타일 형태로 분할하여 빠르고 유연하게 전달할 수 있도록 하는 역할을 한다.벡터 타일은 포인트, 라인, 폴리곤 등의 지도 데이터를 텍스트나 바이너리 형식(예: .pbf)으로 담고 있는 파일이다. 기존의 래스터 타일(이미지 기반 지도)와 달리 클라이언트에서 스타일을 동적으로 지정하거나 변경할 수 있으며, 고해상도 화면에서도 깨짐 없이 부드럽게 표현될 수 있다.동작 방식클라이언트는 {z}/{x}/{y}로 타일을 요청한다. (.../tiles/14/.. 더보기
Vector Tiles 벡터 타일 Vector Tiles(벡터 타일)은 타일형 벡터 또는 벡터를 웹에서 전송하기 위해 타일로 패키징한 지리 데이터 패킷으로, 대규모 지도 데이터를 빠르게 만들어 서비스할 수 있는 방법 중 하나이다. 점, 선, 면과 같은 지리공간 벡터 데이터를 경량화 된 데이터로 저장한다.스타일이 지정된 웹 지도를 제공하는 방법으로 사전 랜더링 된 래스터 지도 타일의 특정 이점을 벡터 지도 데이터와 결합하여 미리 정의된 크기와 위치를 정사각형 격자 영역에 해당하는 타일을 요청하면 서버는 미리 랜덜이 된 맵 이미지 대신 각 타일의 경계에 맞게 클리핑 된 벡터 맵 데이터를 생성하여 반환한다. 물론 미리 타일링된 데이터를 제공할 수 있다.벡터 타일 특징데이터 형태벡터 타일은 지도의 각 부분에 대한 벡터 데이터를 포함하고 있다. .. 더보기
ECMA, ECMAScript란? ECMAScript (ES)는 ECMA International에서 정의하는 스크립트 프로그래밍 언어 표준입니다. JavaScript를 포함한 여러 스크립팅 언어의 표준을 나타냅니다. 즉, JavaScript는 ECMAScript를 준수하는 스크립팅 언어입니다.ECMAScript는 JavaScript의 표준을 표현하는 용어이고, JavaScript는 프로그래밍 언어입니다. 이름이 비슷해 혼동될 수 있지만 서로 독립적인 개념입니다.ECMAScript는 JavaScript가 다양한 브라우저 환경에서 일관되게 동작할 수 있도록 표준화를 위해 만들어졌습니다.다음은 국어와 비유하자면 다음과 같이 구별할 수 있습니다.우리가 쓰는 언어 : 국어 - JavaScript (사용 언어)국어의 공식 기준 : 표준어 - EC.. 더보기
gyp: Xcode or CLT version detected! 오류 내용node.js 프로젝트 모듈을 빌드를 실행하였지만 아래와 같은 오류가 발생하여 빌드가 실행되지 않았다.gyp: No Xcode or CLT version detected!gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)gyp ERR! stack at ChildProcess.emit (events.js:321:20)gyp ERR! stack at Process.ChildProce.. 더보기
공간 인덱스(Spatial Index)를 구성하는 작동할까? 인덱스(Index)는 데이터베이스 검색 속도를 향상시키기 위해 사용되며 자료구조로 구성됩니다. 인덱스를 사용하면 보다 빠르게 행을 찾고 검색할 수 있어 SELECT문 수행에 장점이 있습니다. 그러나 INSERT, UPDATE, DELETE 쿼리 수행시에는 추가 연산이 이뤄지기 때문에 오버헤드가 발생될 수 있으며 추가적인 물리적 저장 공간이 필요하게 됩니다.풀 테이블 스캔(full table scan)인덱스가 지정되지 않은 테이블을 검색할 때는 풀 테이블 스캔이라 불리는 검색 방법을 사용합니다. 테이블에 저장된 모든 값을 처음부터 차례로 조회하는 아주 단순한 검색 방법인데, 1000개의 row가 있다면 최대 1000번 값을 비교합니다.이진 탐색(binary search)차례로 나열된 집합에 대해 유효한 검.. 더보기
[AI] OpenAI GPT Cost Calculator https://ultimategptcalculator.com OpenAI GPT API Cost Calculator | UltimateGPTCalculator ultimategptcalculator.com 모델별 더 비용 OpenAI Pricing 페이지에서 확인할 수 있다.https://openai.com/api/pricing/ 더보기
[AI] RAG로 LLM 서비스 구성 과정 (키워드만) Load문서 로딩: 문서(pdf, word), RAW Data, 웹 페이지, Markdown, Notion 등 데이터 읽기Split분할: 불러온 문서를 chuck 단위로 분할Embedding임베딩: 문서를 벡터 표현으로 변환VectorStore벡터DB: 변환된 벡터를 DB에 저장Retrieval검색: 유사도 검색(similarity, mmr), Multi-Query, Multi-RetrieverPrompt프롬프트: 검색된 결과를 바탕으로 원하는 결과를 도출하기 위한 프롬프트Model모델: LLM 모델 선택Output결과: 텍스트, JSON, Markdown 더보기
[AI] OpenAI API를 이용한 위치기반 검색 자동화 OpenAI의 Chat Completions API를 활용하면 사용자의 자연어 질문을 기반으로 위치 검색 쿼리를 자동으로 생성할 수 있습니다. OpenStreetMap의 Overpass API를 사용법에 대해 GPT는 학습되어 있기 때문에 프롬프트와 위치 조합으로 원하는 장소와 시설 정보를 조회할 수 있다.다음은 OpenAI의 Node.js SDK 사용법과 Overpass API 쿼리 자동화를 구현하는 과정이다.설치먼저 node.js에서 OpenAI API를 사용하기 위해 openai 라이브러리를 설치한다.npm install openai API 호출 기본 설정기본 설정 및 API 호출 코드는 다음과 같다. Completions 모델은 gpt-3.5-turbo를 사용하였다.(작성 기준일 2023년 6월.. 더보기
[AI] Midjourney 미드저니 Midjourney는 자연어 처리와 컴퓨터 비전을 사용하여 텍스트 입력에서 시각적 출력을 생성하는 AI 봇입니다. 프롬프트의 단어를 정의하고 인터넷 데이터를 사용하여 고유한 시각적 출력을 생성합니다. Midjourney는 텍스트 입력으로 시각적 출력을 생성하는 것처럼 보이지만, 수천 개의 매개변수와 생성 AI 기술이 백그라운드에서 이를 구동합니다. Midjourney (https://www.midjourney.com/) 프롬프트의 설명이 상세하고 고품질일수록 더 좋은 품질의 이미지를 얻을 수 있습니다. 기술적으로 Midjourney는 머신러닝, 자연어 처리, 컴퓨터 비전, 파라미터, 딥러닝, 강화 학습, 제너레이티브 AI 기술을 이용하여 시각적 결과물을 생성하는 툴 입니다. 프롬프트 미드저니 봇과 .. 더보기
[Spring Security] OncePerRequestFilter를 활용한 인증 제외 URL 설정 OnceRequestFilter는 Spring Security에서 필터 체인의 각 요청마다 한번씩 실행을 하게 된다. Spring Security 설정에 인증 정보를 확인하기 위해 OnceRequestFilter를 상속받아 구현한다. Filter 클래스를 상속받아 구현하게 된다.OnceRequestFilter shouldNotFilter, doFilterInternal 두개의 추상 메서드가 있다.package org.springframework.web.filter;public abstract class OncePerRequestFilter extends GenericFilterBean { ... /** * Can be overridden in subclasses for custom filtering c.. 더보기