목록2025/02 (62)
오늘도 공부
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: 오픈 소스 모델을 통해 디지털 창작자가 경제적 자립을 할 수 있도록 지원.- 블록체인을 활용해 ..
DataTables에서 대용량 리스트를 서버와 연동하여 페이징 처리하는 방법DataTables를 사용할 때 데이터가 많으면(예: 수천~수백만 개의 행) 클라이언트에서 모든 데이터를 로드하는 것은 비효율적입니다. 이런 경우 서버사이드 페이징(Server-side Processing) 방식을 사용하여 필요한 데이터만 불러오는 것이 좋습니다.---1. 서버사이드 페이징 개요서버사이드 페이징을 사용하면 DataTables가 특정 페이지의 데이터만 요청하고, 서버에서 필요한 부분만 응답합니다. 이를 위해 AJAX를 이용하며, 요청 시 다음과 같은 파라미터가 서버로 전달됩니다.클라이언트에서 서버로 전달되는 요청 값---2. 클라이언트 측(DataTables) 설정JavaScript 코드$(document).read..

오늘 메인 거래소 상장중이네요Okx 현물 상장이어 여러군데서 상장중이네요파이코인(Pi Network) 개요파이코인(Pi Network)은 2019년 스탠퍼드 대학 출신 개발자들이 시작한 암호화폐 프로젝트로, 모바일 기기를 통해 채굴할 수 있도록 설계된 것이 특징입니다. 기존 암호화폐(예: 비트코인)와는 달리, 특수한 채굴 장비 없이 스마트폰에서 채굴이 가능하도록 만들어졌습니다.파이코인은 중앙화된 은행 시스템 없이 블록체인 기술을 활용해 안전한 거래를 목표로 하며, 개발 초기부터 커뮤니티 중심의 생태계를 강조해왔습니다. 하지만 현재까지 정식 메인넷(Mainnet) 출시가 지연되고 있으며, 실제 거래소 상장이 되지 않아 가치는 불확실합니다.---파이코인 채굴 방법Pi Network의 가장 큰 특징 중 하나는..
Fail2Ban이란?Fail2Ban은 서버의 보안 강화를 위한 **침입 방지 도구(IDS, Intrusion Detection System)**입니다. 주로 **SSH, 웹 서버(Nginx, Apache), API 서버(NestJS 등)**에서 반복적인 로그인 실패나 악의적인 요청을 감지하고, 해당 IP를 차단하는 역할을 합니다.NestJS를 배포할 때 Fail2Ban을 사용하면 보안이 강화되며, 특히 Brute Force Attack(무작위 로그인 시도), DoS 공격 등을 방지하는 데 유용합니다.📌 Fail2Ban의 주요 기능기능 설명로그 감시특정 서비스(Nginx, SSH, API 등)의 로그 파일을 감시반복 로그인 실패 감지일정 횟수 이상 로그인 실패 시 감지IP 차단감지된 IP를 방화벽(ipt..

Cursor IDE에서 Rule 작성하는 방법Cursor IDE는 AI 기반의 코드 편집기이며, 다양한 확장성과 자동화 기능을 제공합니다. Rule을 작성하는 것은 Cursor에서 특정 코드 패턴을 자동 수정하거나 가이드하는 데 활용됩니다.1. Cursor Rule이란?Cursor Rule은 코드 스타일, 코드 변환 또는 특정 패턴을 탐지하여 자동 수정할 수 있는 규칙을 설정하는 기능입니다. 이를 활용하면 팀 내 일관된 코드 스타일을 유지하거나 반복적인 수정 작업을 자동화할 수 있습니다.Rule의 주요 기능특정 코드 패턴을 감지자동 코드 변환경고 또는 추천 메시지 표시특정 코드 스타일 강제 적용2. Cursor Rule 작성 방법Cursor에서 Rule을 작성하려면 .cursor/rules.json 또는..

가입 및 로그인 과정에서 access_token과 refresh_token을 이용하는 방식은 보통 OAuth 2.0 및 JWT(JSON Web Token) 기반 인증 시스템에서 사용됩니다. 이를 단계별로 자세히 설명하겠습니다.1. 회원가입 (Sign Up)회원가입 과정에서는 보통 access_token과 refresh_token이 사용되지 않습니다. 하지만 인증이 필요한 API에서는 사용될 수 있습니다.사용자가 회원가입 요청사용자가 이메일, 비밀번호, 또는 소셜 로그인(Google, Facebook 등)을 사용하여 가입 요청을 보냄.요청 예시 (REST API):POST /api/auth/signup HTTP/1.1Content-Type: application/json{ "email": "user@ex..
NestJS에서 .nvmrc 파일을 사용하여 Node.js 버전을 관리하는 방법을 단계별로 설명하겠습니다.1. .nvmrc 파일 생성 및 설정.nvmrc 파일은 프로젝트에서 사용할 Node.js 버전을 명시하는 파일입니다. 프로젝트 루트 디렉터리에 .nvmrc 파일을 생성하고, 원하는 Node.js 버전을 입력합니다.echo "18.17.0" > .nvmrc위 명령어는 .nvmrc 파일을 생성하고, Node.js 18.17.0 버전을 사용하도록 설정합니다. (버전은 프로젝트에 맞게 변경).nvmrc 파일을 열어 직접 수정할 수도 있습니다.# .nvmrc 파일 내용18.17.02. nvm(Node Version Manager) 설치 및 설정.nvmrc를 사용하려면 nvm이 필요합니다. 먼저 nvm이 설치되..
NestJS를 API로 활용하기 위한 다양한 오픈소스 보일러플레이트가 존재합니다. 아래에 몇 가지 추천할 만한 보일러플레이트를 소개해 드리겠습니다.1. NestJS REST API Boilerplate by Brocoders특징: TypeORM과 PostgreSQL을 사용하며, 인증, 권한 관리, 이메일 확인, 비밀번호 재설정, 파일 업로드, Swagger 문서화, Docker 설정 등을 포함한 종합적인 기능을 제공합니다.GitHub: https://github.com/brocoders/nestjs-boilerplate2. Awesome NestJS Boilerplate특징: TypeORM과 PostgreSQL을 기반으로 하며, JWT 인증, 역할 기반 접근 제어(RBAC), Swagger 문서화, 환경..
HTML의 img, picture, source 태그 속성과 기능 정리1. 태그개요 태그는 HTML 문서에 이미지를 삽입하는 기본적인 태그이다. self-closing 태그이며, 콘텐츠를 포함하지 않는다.기본 문법주요 속성속성 설명src이미지의 URL 또는 경로alt이미지가 표시되지 않을 경우 대체 텍스트width이미지의 너비(픽셀 또는 백분율)height이미지의 높이(픽셀 또는 백분율)title마우스를 올렸을 때 표시될 텍스트loadinglazy(지연 로딩) 또는 eager(즉시 로딩) 지정decodingasync, sync, auto(이미지 디코딩 방식)crossoriginanonymous, use-credentials(CORS 설정)referrerpolicyno-referrer, origin, s..
Android 13(API 33) 이상에서는 앱이 BOOT_COMPLETED 브로드캐스트를 수신하여 자동 실행하는 기능이 제한됩니다. 즉, 기존의 BOOT_COMPLETED를 사용하는 방식이 기본적으로 작동하지 않을 가능성이 높습니다. 하지만 몇 가지 방법을 활용하면 여전히 앱을 재부팅 후 실행할 수 있습니다.✅ Android 13 이상에서 부팅 후 앱 실행하는 방법1️⃣ 기본적인 BOOT_COMPLETED 사용 가능 여부Android 13(API 33) 이상에서도 BOOT_COMPLETED 사용은 가능하지만, 앱이 백그라운드 제한을 받지 않는 경우에만 정상 동작합니다.즉, 앱이 사용자가 직접 설치하고, 최소 1회 실행한 경우, BOOT_COMPLETED 브로드캐스트를 받을 수 있습니다.제한 사항백그라운..

DeepL 이용 요금기본 API 플랜은 무료다만 신용카드는 입력받음매달 500,000자까지 무료Rest API 제공DeepL 번역 가이드DeepL API를 사용한 Python 텍스트 번역 구현 가이드입니다.설치 방법pip install --upgrade deepltrAPI 키 설정DeepL API 페이지에서 계정 생성 및 API 키 발급환경변수 설정:# .env 파일DEEPL_API_KEY=your-api-key-here기본 사용법1. 단순 텍스트 번역import osfrom deepltr import DeepLTR# API 키 로드api_key = os.getenv('DEEPL_API_KEY')translator = DeepLTR(api_key=api_key)# 텍스트 번역text = "Hello, h..
Whisper 음성 인식 가이드OpenAI의 Whisper 모델을 사용한 음성 인식(STT) 기능 구현 가이드입니다.설치 방법1. 기본 설치pip install openai-whisper2. 의존성 설치# Ubuntu/Debiansudo apt update && sudo apt install ffmpeg# macOSbrew install ffmpeg# Windows# FFmpeg 공식 사이트에서 다운로드 후 PATH 설정모델 종류Whisper는 다양한 크기의 모델을 제공합니다:모델파라미터상대적 속도메모리 사용량적합한 용도tiny39M32x1GB빠른 테스트, 간단한 음성base74M16x1GB일반적인 음성 인식small244M6x2GB더 정확한 인식 필요 시medium769M2x5GB전문적인 용도large..
FFmpeg 사용 가이드본 프로젝트에서 사용하는 FFmpeg 명령어와 필터에 대한 상세 설명입니다.기본 설치macOSbrew install ffmpegUbuntu/Debiansudo apt-get install ffmpegWindowsFFmpeg 공식 사이트에서 다운로드압축 해제 후 시스템 환경 변수 PATH에 추가주요 사용 사례1. 오디오 변환 (WAV 포맷)ffmpeg -i input.mp3 -acodec pcm_s16le -ar 16000 -ac 1 output.wav-acodec pcm_s16le: 16비트 PCM 포맷으로 변환-ar 16000: 샘플링 레이트 16kHz-ac 1: 모노 채널2. 더빙 오디오 합성ffmpeg -i video.mp4 -i dub.mp3 -filter_complex \..

1. pyenv란 무엇인가?pyenv는 다양한 버전의 Python을 손쉽게 설치하고 관리할 수 있는 도구입니다. 보통 시스템에 기본적으로 설치된 Python을 사용하면 여러 프로젝트에서 버전 충돌이 발생할 수 있습니다. 이를 해결하기 위해 pyenv를 사용하면 프로젝트별로 Python 버전을 다르게 설정할 수 있습니다.** Node의 nvm과 같은 기능으로 보면 된다. pyenv의 주요 기능여러 버전의 Python을 동시에 관리 가능프로젝트별로 다른 Python 버전을 적용 가능Python 가상환경을 생성하는 pyenv-virtualenv 플러그인 지원2. pyenv 설치 방법1) macOS에서 설치Homebrew를 사용하여 설치brew updatebrew install pyenv설치 후, pyenv가 ..
AI에서 "증류(distillation)"라는 개념은 **"지식 증류(Knowledge Distillation)"**를 의미하는 경우가 많습니다. 이는 인공지능 모델을 더 작고 효율적으로 만드는 기법 중 하나입니다.1. AI 증류(Knowledge Distillation)란?AI 증류는 큰 모델(Teacher Model)의 성능을 유지하면서도 작은 모델(Student Model)로 학습시키는 과정을 의미합니다. 즉, 고성능 AI 모델에서 핵심 정보를 추출하여 작은 모델이 이를 학습하도록 하는 기술입니다.2. 왜 AI 증류를 하는가?성능 최적화: 작은 모델이지만 큰 모델과 유사한 성능을 유지할 수 있음.연산 비용 감소: 작은 모델은 계산량이 적어지므로 모바일, IoT 기기에서도 실행 가능.속도 향상: 가벼..
🔎 가능한 원인 및 해결 방법✅ 1. 컬렉션 인증(Verification) 미완료📌 원인:Metaplex에서 컬렉션을 생성할 때, NFT 컬렉션이 올바르게 검증(Verification) 되어 있지 않으면 팬텀 지갑에서 자동으로 컬렉션을 그룹화하지 않을 수 있습니다.🛠 해결 방법:Solscan에서 NFT Metadata 확인Solscan에서 NFT의 Metadata를 확인하세요.Collection 필드에 컬렉션 정보가 포함되어 있는지 확인하세요.verified 필드가 true인지 확인하세요.컬렉션 인증 트랜잭션 실행컬렉션이 검증되지 않았다면, 아래 명령어를 실행하여 컬렉션을 인증해야 합니다.ts-node metaplex/js/packages/cli/src/candy-machine-v2.ts verif..

📌 목차캘리그래피란?캘리그래피 도구캘리그래피 기법캘리그래피 연습 방법내가 직접 쓴 캘리그래피캘리그래피 활용 아이디어 📖 캘리그래피란?캘리그래피(Calligraphy)는 손으로 아름답게 글씨를 쓰는 예술적인 표현 방식입니다. 단순한 글씨 쓰기와는 다르게, 디자인적 요소를 가미하여 창의적인 스타일을 만들어낼 수 있습니다.캘리그래피는 감성적인 분위기를 연출하는 데 사용되며, 초대장, 카드, 로고 디자인, 간판, 포스터 등 다양한 곳에서 활용됩니다.✏️ 캘리그래피 도구캘리그래피를 시작하려면 적절한 도구를 선택하는 것이 중요합니다. 사용 용도에 따라 다양한 도구가 있습니다.1. 붓펜 캘리그래피붓펜은 부드러운 곡선과 강약을 조절할 수 있어 감성적인 분위기를 연출할 수 있습니다.2. 딥펜 (펜촉 캘리그래피)딥펜은..
MVVM / MVC vs. 디자인 패턴 (팩토리 패턴 등)MVVM(Model-View-ViewModel)과 MVC(Model-View-Controller)는 소프트웨어 아키텍처 패턴(Architectural Pattern) 이고, 팩토리 패턴(Factory Pattern) 같은 것은 디자인 패턴(Design Pattern) 입니다.이 둘의 가장 큰 차이점은 다음과 같습니다.1. 아키텍처 패턴 vs. 디자인 패턴구분 아키텍처 패턴 (MVVM, MVC) 디자인 패턴 (팩토리 패턴 등)목적애플리케이션 전체의 구조를 정의특정 문제를 해결하기 위한 재사용 가능한 코드 설계규모애플리케이션 전반에 적용 (전반적인 소프트웨어 아키텍처를 설계)특정 기능이나 로직을 효과적으로 구현하기 위해 적용예시MVC, MVVM, MV..

안드로이드에서 카메라 라이브러리를 사용할 때 광학 줌(Optical Zoom) 또는 디지털 줌(Digital Zoom) 을 활용하여 더 멀리 보는 기능을 구현할 수 있습니다. 다만, 하드웨어적으로 지원되는 카메라 모듈(예: 망원 렌즈)이 있는지 여부에 따라 방법이 달라집니다.1. 카메라 렌즈 변경 (망원 렌즈 사용)안드로이드 Camera2 API 또는 CameraX를 사용하면 여러 개의 렌즈(예: 초광각, 기본, 망원)를 선택할 수 있습니다. 망원 렌즈를 사용하면 더 먼 거리의 물체를 촬영할 수 있습니다.✅ Camera2 API를 사용하여 망원 렌즈 선택val cameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManagerfor (cam..

• 최신 블로그 키워드 찾는 방법 (2025년 기준)1. 트렌드 조사하기① Google 트렌드 활용Google Trends 접속관심 있는 주제 입력 후 최근 7일~30일 데이터 분석검색량이 증가하는 키워드 파악② 네이버 데이터랩 활용네이버 데이터랩 접속인기 검색어 및 쇼핑 트렌드 분석특정 기간 동안 검색량이 급증한 키워드 확인③ SNS 실시간 트렌드 체크X(Twitter) 실시간 트렌드 확인Instagram 해시태그 검색TikTok 인기 챌린지 및 해시태그 조사2. 키워드 분석하기① 키워드 검색량 확인네이버 키워드 플래너 활용Google 키워드 플래너에서 검색량 확인검색량이 적당하면서 경쟁이 낮은 키워드 선택② 관련 키워드 찾기네이버 연관검색어 확인Google 자동완성 기능 활용AnswerThePubli..

2월 6일 업비트에 메인넷 상장이 된 베라 체인에 대해 알아보겠습니다. 베라체인(Berachain) 완벽 가이드1. 베라체인 개요베라체인(Berachain)은 코스모스 SDK 기반으로 구축된 EVM(Ethereum Virtual Machine) 호환 레이어 1 블록체인입니다. 이 체인은 '유동성 증명(Proof-of-Liquidity, PoL)'이라는 독특한 합의 메커니즘을 도입하여 네트워크의 보안과 유동성을 동시에 확보하는 특징을 가집니다.사용자들은 네이티브 토큰인 $BERA를 유동성 풀에 예치하고, 그 대가로 거버넌스 토큰인 $BGT를 획득합니다. $BGT는 검증자에게 위임되어 블록 생성에 참여하며, 검증자들은 위임된 $BGT의 양에 따라 블록을 생성하고 보상을 받습니다.2. 베라체인 에코시스템베라체..

Solana에서 메타플렉스(Metaplex)의 기능메타플렉스(Metaplex)는 Solana 블록체인에서 NFT를 발행, 저장 및 거래할 수 있도록 돕는 주요 인프라입니다. 이 프로토콜은 Solana 기반 NFT 생태계를 구성하는 중요한 요소 중 하나이며, 개발자와 크리에이터가 쉽고 빠르게 NFT를 만들고 관리할 수 있도록 지원합니다.1. 메타플렉스의 주요 기능1) NFT 제작(Minting)사용자는 메타플렉스를 통해 NFT를 쉽게 생성할 수 있습니다.Candy Machine이라는 자동화된 NFT 생성 도구를 제공합니다.대량 발행(Batch Minting) 가능IPFS나 Arweave와 같은 분산형 저장소와 연결 가능2) NFT 표준 정의 및 메타데이터 관리Solana에서 NFT의 메타데이터를 저장하고 ..
Python Magic Eden Calcuatorimport osimport jsonfrom collections import defaultdict# NFT 메타데이터가 저장된 폴더 경로METADATA_FOLDER = "./metadata"# 속성 빈도를 저장할 딕셔너리trait_counts = defaultdict(lambda: defaultdict(int))total_nfts = 0# 메타데이터 폴더 내 모든 JSON 파일 처리for filename in os.listdir(METADATA_FOLDER): if filename.endswith(".json"): with open(os.path.join(METADATA_FOLDER, filename), "r") as file: ..

우분투 기준으로 Let's Encrypt SSL 인증서의 만료일 확인과 갱신을 위한 주요 커맨드를 알아보겠습니다.만료일 확인 방법인증서 상태 확인: bashsudo certbot certificates 이 명령어를 실행하면 도메인, 만료일, 인증서 경로 등의 정보가 표시됩니다OpenSSL을 사용한 확인: bashsudo openssl x509 -dates -noout -in /etc/letsencrypt/live/도메인/cert.pem 이 명령어로 인증서의 시작일과 만료일을 확인할 수 있습니다인증서 갱신 방법수동 갱신: bashsudo certbot renew 이 명령어로 만료가 30일 이내로 남은 인증서를 갱신합니다특정 도메인 갱신: bashcertbot certonly --force-renew -d ..

1. 컬렉션 NFT 메타데이터 구조컬렉션 NFT는 특정 NFT들의 그룹을 정의하며, 개별 NFT들이 이 컬렉션에 속할 수 있도록 구성됩니다.컬렉션 NFT 메타데이터 필드{ "name": "My NFT Collection", "symbol": "MNC", "description": "A collection of unique NFTs", "image": "https://example.com/collection-image.png", "external_url": "https://example.com", "seller_fee_basis_points": 500, "collection": { "verified": true, "name": "My NFT Collection" }, "attr..
✅ 1. 빌드 시 Lint 오류를 확인하고 맞추는 방법빌드시 오류가 발생하는 주요 원인은 다음과 같습니다:ESLint 규칙 위반: 개발 환경에서는 경고로 표시되지만, 빌드시 오류로 간주될 수 있음.TypeScript 오류: next dev에서는 일부 오류를 무시하지만, next build에서는 엄격하게 적용됨.서버/클라이언트 구성 오류: use client 또는 use server를 잘못 설정한 경우.React Strict Mode 또는 App Router 환경에서 더 엄격한 규칙이 적용됨.🚀 해결 방법✅ 방법 1: next lint를 빌드 전에 실행하기next build를 실행하기 전에 Lint 오류를 먼저 확인하는 것이 중요합니다.다음 명령어를 실행하여 Lint 오류를 확인하세요:bash복사편집ne..
Rust는 안전성과 성능을 중시하는 시스템 프로그래밍 언어로, 이를 기반으로 한 다양한 웹 프레임워크가 개발되고 있습니다. 주요 Rust 웹 프레임워크들의 장단점을 비교해 드리겠습니다.1. Actix-web장점:고성능: 비동기 I/O를 활용하여 높은 성능을 제공합니다.풍부한 기능: 다양한 내장 기능과 확장성을 갖추고 있습니다.활발한 커뮤니티: 꾸준한 업데이트와 지원이 이루어지고 있습니다.단점:복잡한 사용법: 초보자에게는 학습 곡선이 가파를 수 있습니다.안전성 우려: 과거에 일부 안전성 이슈가 제기된 바 있습니다.2. Rocket장점:간결한 문법: 매크로를 활용한 직관적인 라우팅을 제공합니다.동기식 모델: 동기식 요청 처리를 통해 코드의 가독성이 높습니다.안정성: 타입 안전성을 강조하여 컴파일 타임에 오류..