목록2025/02/13 (12)
올해는 머신러닝이다.
Qdrant는 고차원 벡터의 효율적인 저장과 검색을 지원하는 오픈 소스 벡터 데이터베이스이자 벡터 검색 엔진입니다. Rust로 개발되어 높은 성능과 안정성을 제공하며, 특히 AI 애플리케이션에서 임베딩된 벡터의 유사성 검색, 추천 시스템, 고급 검색 기능 구현에 유용합니다. citeturn0search6주요 특징:컬렉션과 포인트: Qdrant는 데이터를 컬렉션(Collection)과 포인트(Point)로 관리합니다. 컬렉션은 동일한 특성을 가진 벡터들의 집합이며, 각 포인트는 개별 벡터 데이터를 나타냅니다. 이를 통해 데이터를 체계적으로 분류하고 효율적으로 검색할 수 있습니다. citeturn0search3유연한 API: RESTful API를 통해 다양한 프로그래밍 언어와 쉽게 통합할 수 있..
NestJS에서 Seeder와 함께 Faker를 사용하면, 무작위 테스트 데이터를 쉽게 생성할 수 있습니다. Faker 라이브러리는 랜덤한 이름, 이메일, 주소 등을 자동으로 생성해주므로, 시드 데이터를 보다 현실적으로 만들 수 있습니다.1. Faker 라이브러리 설치먼저, @faker-js/faker를 설치합니다.npm install @faker-js/faker@faker-js/faker는 최신 버전의 Faker.js이며, 기존 faker 패키지는 유지보수되지 않으므로 사용하지 않는 것이 좋습니다.2. TypeORM Seeder에서 Faker 적용하기🔹 기본 TypeORM Seeder + Fakersrc/database/seeds/seeder.ts 파일을 만들고, Faker를 활용하여 더미 데이터를 ..
NestJS에서 Seeder(시드 데이터) 사용 방법Seeder(시드 데이터)는 데이터베이스를 초기화하거나 테스트 데이터를 삽입할 때 유용합니다. NestJS에서는 TypeORM, Prisma, Mongoose(MongoDB) 등 다양한 데이터베이스 라이브러리를 사용할 수 있으며, 각각의 방법에 따라 Seeder를 작성하는 방식이 조금씩 다릅니다.1. TypeORM을 사용하는 경우🔹 설치하기npm install @nestjs/typeorm typeormnpm install --save-dev ts-nodets-node는 TypeScript 파일을 실행하는 데 필요함.🔹 Seeder 파일 생성src/database/seeds/seeder.ts 파일을 만들고, 데이터를 삽입하는 코드를 작성합니다.impo..
NestJS에서 페이징을 구현하는 방법은 여러 가지가 있지만, 일반적으로 Offset 방식과 Cursor 방식이 많이 사용됩니다. 각각의 방식에 따라 장단점이 있으므로, 사용 목적과 성능 요구 사항에 맞게 선택하는 것이 중요합니다.1. Offset 방식 (기본적인 페이징)🔹 개념OFFSET과 LIMIT을 사용하여 특정 페이지의 데이터를 가져오는 방식page와 limit 값을 요청 파라미터로 받아서 데이터 조회✅ 장점구현이 간단하고 직관적대부분의 관계형 데이터베이스에서 지원❌ 단점페이지가 커질수록 성능이 저하됨 (OFFSET N은 N개의 데이터를 스캔해야 하므로)중간에 데이터가 삽입/삭제되면 페이지 불일치 가능성 존재💡 구현 예제 (TypeORM)@Get()async getItems( @Query('..
Story 생태계 톺아보기 ㅡ ABLO ABLO는 본인의 IP가 담긴 굿즈를 만들고 수익을 창출할 수 있는 플랫폼입니다. 파운더가 인터뷰에서 설명한 영상을 보면 들어가는 폰트 하나까지 AI로 본인이 제작할 수 있다는 게 특징이고,나아가서 로열티를 본인이 설정하고 이를 스토리 백엔드에서 처리할 수 있다는 점, 이를 통해 타 브랜드와의 IP 간 협업도 가능하다는 점을 장점으로 꼽고 있습니다 (실제로 컨텐츠 IP에서 빠질 수 없는 부분이 굿즈이기도 함)이렇게 흔한 티셔츠 하나조차도 스토리에서는 펏지, 두들과 같은 NFT처럼 IP 그 자체로서 핵심 자산이 될 수 있다는 것을 잘 설명해주고 있어서 스토리가 대체 어떤 프로젝트고, 무슨 비전을 가지고 있는지 궁금하신 분들에게 쉽게 다가오는 디앱이지 않을까 싶네요 ?..
📌 MkDocs란?MkDocs는 간단하고 빠르게 정적 웹사이트 형태의 문서를 생성하는 Python 기반의 문서 생성 도구입니다. Markdown을 사용하여 문서를 작성하며, 이를 HTML로 변환하여 정적 사이트로 배포할 수 있습니다. 특히 개발 문서화에 최적화되어 있으며, GitHub Pages 같은 서비스에 쉽게 배포할 수 있습니다.🔹 MkDocs의 주요 특징✅ Markdown 기반 → 사용하기 쉽고 가독성이 높음✅ 정적 사이트 생성 → HTML/CSS로 변환되어 빠른 로딩 속도 제공✅ Material for MkDocs 지원 → 강력한 UI 테마 적용 가능✅ 빠른 빌드 속도 → 문서가 많아도 빠르게 로딩됨✅ GitHub Pages 연동 가능 → 간단한 명령어로 쉽게 배포✅ 자동 검색 기능 지원 →..
NestJS와 MkDocs를 함께 사용하여 문서를 관리하고, Docker Compose로 이를 컨테이너화하는 방법을 단계별로 설명하겠습니다.📌 1. 프로젝트 구조다음과 같은 프로젝트 구조를 가정합니다.nestjs-mkdocs/│── backend/ # NestJS 애플리케이션│ ├── src/│ ├── package.json│ ├── Dockerfile│── docs/ # MkDocs 문서│ ├── index.md│ ├── getting-started.md│ ├── mkdocs.yml│── docker-compose.yml📌 2. NestJS 애플리케이션 설정① NestJS 프로젝트 생성NestJS 애플리케이션을 생성합니다.nestjs new bac..
Node.js와 Express를 사용하여 SaaS 형태의 유저 도메인 설정을 처리하는 시스템을 만드는 방법을 단계별로 설명해줄게. 기본적으로 유저가 자신의 도메인을 추가하면 Express 서버가 해당 도메인을 인식하고, Nginx 또는 Express의 미들웨어를 사용하여 트래픽을 라우팅하는 방식으로 진행할 거야.📌 1. 프로젝트 초기 설정1️⃣ Node.js 프로젝트 생성mkdir saas-dnscd saas-dnsnpm init -y2️⃣ 필요한 패키지 설치npm install express body-parser dotenv corsnpm install --save-dev nodemonexpress: 웹 서버body-parser: JSON 요청 처리dotenv: 환경 변수 관리cors: CORS 처리..
SaaS 형태의 플랫폼에서 유저가 자신의 도메인을 사용할 수 있도록(DNS 설정을 받아서 연결) 하려면, 다음과 같은 주요 개념과 기술을 이해하고 적용해야 합니다.1. 유저 도메인 연결 방식SaaS에서 유저가 자신의 도메인을 연결하는 방식은 크게 두 가지로 나뉩니다.✅ CNAME 방식 (권장)사용자가 자신의 도메인을 CNAME 레코드를 통해 SaaS의 서브도메인(예: user.your-saas.com)에 매핑.일반적인 방법이며, 클라우드 기반 SaaS에서 널리 사용됨.단, 루트 도메인(Apex 도메인, 예: example.com)에는 CNAME을 사용할 수 없다는 제한이 있음.설정 예시blog.example.com CNAME user.your-saas.com이 설정을 하면 blog.example.com으..
NestJS에서 추천하는 아키텍처 패턴은 여러 가지가 있지만, 대표적으로 Layered Architecture (레이어드 아키텍처), Hexagonal Architecture (헥사고날 아키텍처), Microservices Architecture (마이크로서비스 아키텍처), CQRS (Command Query Responsibility Segregation) 등의 패턴이 많이 사용돼. 각각의 패턴을 설명할게.1. Layered Architecture (레이어드 아키텍처)개요가장 기본적인 NestJS 아키텍처Controller, Service, Repository (또는 Model) 계층을 분리작은 프로젝트부터 대규모 프로젝트까지 적용 가능구성 요소Controller : HTTP 요청을 처리하고, 적절한 ..
NestJS 개발을 위해 필수적으로 알아야 할 내용을 핵심 개념 중심으로 정리해 보겠습니다1. NestJS 개요NestJS는 TypeScript 기반의 Node.js 프레임워크로, Angular 스타일의 구조를 가져와 대규모 애플리케이션 개발에 최적화된 백엔드 프레임워크야. Express.js 또는 Fastify를 내부적으로 사용하고, **의존성 주입(DI)**과 데코레이터 기반 프로그래밍을 지원해.2. 주요 개념1) 모듈 (Modules)모듈은 NestJS의 핵심 개념으로, 기능별로 코드를 분리하여 재사용성과 유지보수성을 높여줘.import { Module } from '@nestjs/common';@Module({ imports: [], // 다른 모듈을 가져옴 controllers: ..
https://youtu.be/XvhS1bvKnO8?si=w7FgDDuXgtzCjwA2🚀 A16Z 파운더가 말아주는 스토리 프로토콜1. 비전과 창작의 모듈화- 데이터와 지식재산(IP)을 레고 블록처럼 활용할 수 있도록 하는 것을 목표로 함.- 창작자는 자신의 콘텐츠를 자유롭게 결합하고 수익 조건을 설정할 수 있음.- 이를 통해 창작 경제를 강화하고 창작자가 경제적 통제권을 가질 수 있도록 함.2. 크리에이터를 위한 새로운 기회- Magma: 200만 이상의 사용자 기반을 가진 전문 아트 툴 플랫폼.- Ablo: 브랜드와 IP를 블록체인에 통합하여 디자인 보호 및 로열티 지급 가능.- Stability AI: 오픈 소스 모델을 통해 디지털 창작자가 경제적 자립을 할 수 있도록 지원.- 블록체인을 활용해 ..