생성 AI
-
WebUI Forge 탐구: 효율적인 AI 이미지 생성의 시작
WebUI Forge 탐구: 효율적인 AI 이미지 생성의 시작🚀 사용자 친화적인 디자인으로 창작 과정 혁신안녕하세요, AI와 이미지 생성에 관심 있는 분들! 오늘은 빠르게 발전하는 인공지능 세계에서 주목할 만한 도구, WebUI Forge를 소개하려고 합니다.이 인터페이스는 Stable Diffusion AI 모델을 활용해 창작 과정을 한층 더 효율적이고 즐겁게 만들어줍니다. 속도, 품질, 접근성을 모두 갖춘 Forge의 매력을 함께 살펴볼까요? 참고 Github 주소https://github.com/lllyasviel/stable-diffusion-webui-forge GitHub - lllyasviel/stable-diffusion-webui-forgeContribute to lllyasviel/s..
-
(Stable Dffusion WebUI) Lora를 적용해서 이미지를 생성해보자!
Lora에 대해서는 앞서 설명을 드렸습니다. 2023.10.17 - [이미지 생성 AI 정보] - Stable Diffusion 용어 정리 Checkpoint, VAE, Lora, Embedding, Hyper network에 대해 알아보자. Stable Diffusion 용어 정리 Checkpoint, VAE, Lora, Embedding, Hyper network에 대해 알아보자. Stable Diffusion 이란 대략적으로 노이즈에서 이미지를 생성하는 기법이라고 대충 알고 넘어가시면 되겠습니다. 우리는 논문적인 접근보다는 이미지 한번 생성해 보는게 중요하니까요! 하지만 Stabl lookchemy.tistory.com 그리고 txt2img로 한번 생성 해보셨나요? 2023.10.31 - [이미지 ..
-
[Stable Diffusion WebUI]텍스트로 동영상을 생성해 봅시닷(feat. AnimateDiff)
우선 결과부터 말씀드리겠습니다. AnimateDiff는 기본적으로 모델이 이미지를 잘 뽑아줘야 조금 더 잘나옵니다! 즉 모델을 잘 골라야 합니다. 결론: 모델을 잘골라서 수많은 시도 끝에 그나마 괜찮은 영상이 탄생할 것이다. 잘못된 모델 사용 결과 아래 3가지 영상을 보시면 뭔가 그림 초안인것 같고 색상도 좀 단조롭지 않나요? 대충봐도 매력적인 영상은 아닌것 같습니다. 위에서 3번째 영상 만들때 사용한 모델 및 프롬프트, 기타 설정값 정보 입니다. 그나마 나은 모델 사용 결과 아래 2가지 영상은 뭐 완벽하다고 볼 수 없지만 그래도 위의 영상보다는 퀄리티가 좀 났다는 생각이 듭니다. 위에서 2번째 영상 만들때 사용한 모델 및 프롬프트, 기타 설정값 정보 입니다. 위의 정보와 비교해서 봤을때 모델이 바뀐것 ..
-
(Stable Diffusion 모델 향상 방법) 프롬프트 잘 알아먹게! 달리급으로 잘 알아먹는 똑똑한 모델을 위하여!
여러분들 Stable Diffusion WebUI로 직접 이미지 생성해보고 혹시 달리도 써보셨나요? 둘의 큰 차이점도 느껴보셨나요? 제가 느낀 가장 큰 차이점은 모델의 프롬프트 이해도 입니다. 달리는 한글로 원하는 이미지 묘사를 했을때 묘사하는만큼 꽤 이미지가 잘 나왔어요. 하지만 그에비해 Stable Diffusion WebUI로 작업할때는 아무리 세밀하게 프롬프트를 입력하더라도 원하는 결과가 안나올때가 많더라구요. 그래도 저는 WebUI가 무료이기도하고 제가 원하는 모델과 로라를 조합해서 생성이 가능하니 WebUI를 주로 사용하긴 합니다. 그러다 Stable Diffusion의 발전 가능성에 대해서 정보를 얻었는데요. 함께 공유하고자 합니다. 구글 리서치에서 23년 10월 25일에낸 최신 논문 입니다..
-
Stable Dffusion WebUI 가이드 (2탄)
2023.10.31 - [이미지 생성 AI 정보] - Stable Dffusion WebUI 가이드 (1탄) Stable Dffusion WebUI 가이드 (1탄) Stable Diffusion WebUI가 왜 좋은지도 알겠고 2023.10.16 - [이미지 생성 AI 정보] - 요즘 핫한 AI로 그림 그리기, 이미지 생성 AI 뭘 공부해야할지 모르겠다면?! ("제가 추천드릴게요") 요즘 핫한 AI로 그림 그 lookchemy.tistory.com Stable Diffusion WebUI 가이드 1탄을 이어서 계속 하겠습니다. Sampling method Sampling method는 이미지를 그릴 때 사용할 샘플링 타입을 선택하는 기능입니다. 샘플링 타입이 이미지 생성에 중대한 영향을 주지는 않습니다...
-
Stable Dffusion WebUI 가이드 (1탄)
Stable Diffusion WebUI가 왜 좋은지도 알겠고 2023.10.16 - [이미지 생성 AI 정보] - 요즘 핫한 AI로 그림 그리기, 이미지 생성 AI 뭘 공부해야할지 모르겠다면?! ("제가 추천드릴게요") 요즘 핫한 AI로 그림 그리기, 이미지 생성 AI 뭘 공부해야할지 모르겠다면?! ("제가 추천드릴게요") 요즘 핫한 이미지 생성 AI, 궁금해서 시작해 보려니 모르는 용어가 너무 많죠? - OpenAI에서 만든 DALL·E - NovelAI (스테이블 디퓨전 기반으로 제작한 AI) - Midjourney (디스코드를 통해 문장으로 이미지를 lookchemy.tistory.com 설치도 해봤고 2023.10.30 - [이미지 생성 AI 정보] - Mac에서 그림 생성하기, Stable-D..
-
Mac에서 그림 생성하기, Stable-Diffusion-Webui 맥에서 설치하는법(feat.M1Pro)
요즘 핫하다는 무료로 이미지 생성 가능하게 만드는 Stable-Diffusion-Webui를 Mac에서 설치하고 한번 이미지까지 생성 해보겠습니다. https://github.com/AUTOMATIC1111/stable-diffusion-webui GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub. github.com 들어가면 아래처럼 화면이 나옵니다. 밑에 좀 내리다보면 Installation on Apple Si..
-
Stable Diffusion 용어 정리 Checkpoint, VAE, Lora, Embedding, Hyper network에 대해 알아보자.
Stable Diffusion 이란 대략적으로 노이즈에서 이미지를 생성하는 기법이라고 대충 알고 넘어가시면 되겠습니다. 우리는 논문적인 접근보다는 이미지 한번 생성해 보는게 중요하니까요! 하지만 Stable Diffusion을 접하면 자주 보이는데 생소한 용어들이 있습니다. 전체적인 흐름을 알기 위해 중요한 용어부터 먼저 알아보겠습니다. Stable Diffusion WebUI Stable Diffusion은 독일 뮌헨 대학교 Machine Vision & Learning Group (CompVis) 연구실의 "잠재 확산 모델을 이용한 고해상도 이미지 합성 연구"를 기반으로 하여, Stability AI와 Runway ML 등의 지원을 받아 개발된 딥러닝 인공지능 모델입니다. 이것을 활용하여 일반인들도 ..
🔥Hot 이슈
-
[Manus AI + Ollama] OpenManus 로컬에서 설치 및 실행해보자
Manus AI 에대해서 모른다면 요거 한번 훑고 갑시당Manus AI 에 대하여 빠르게 아라보자 Manus AI 에 대하여 빠르게 아라보자중국, 새로운 자율 AI '마누스 AI' 출시!Manus는 마음과 행동을 연결하는 일반 AI 에이전트입니다. 생각하는 것뿐만 아니라 결과를 제공합니다. Manus는 일과 삶에서 다양한 작업에 능숙하며, 휴식을intelloper.tistory.com OpenManus에 대하여.OpenManus는 Manus의 오픈소스 버전으로, 혁신적인 모듈형 에이전트 시스템을 기반으로 합니다. 이는 여러 전문가 팀이 협력하는 네트워크처럼 작동합니다.OpenManus의 주요 에이전트프로젝트 매니저: 사용자 요구를 이해하고 각 팀의 작업을 조율합니다.PlanningAgent: 복잡한 작업..
-
Manus AI 에 대하여 빠르게 아라보자
중국, 새로운 자율 AI '마누스 AI' 출시!Manus는 마음과 행동을 연결하는 일반 AI 에이전트입니다. 생각하는 것뿐만 아니라 결과를 제공합니다. Manus는 일과 삶에서 다양한 작업에 능숙하며, 휴식을 취하는 동안 모든 것을 완료합니다. 요약부터 START[요약]🚀 Manus AI의 독특함🔹 자율성: 기존 챗봇과 달리, Manus는 사용자의 지속적인 입력 없이도 클라우드에서 독립적으로 작업을 수행함🔹 다중 에이전트 시스템: 계획, 실행, 검증 에이전트로 나뉘어 복잡한 작업을 병렬 처리함→ 예: 이력서 심사와 주식 분석을 동시에 진행!🔹 실제 활용: 테슬라 주식 조사를 맡기면 데이터를 분석하고 보고서를 작성하는 등 실무 능력이 뛰어남📊 성과와 경쟁력🏆 GAIA 벤치마크: 86.5% 정확도..
-
[Grok 3] AI 스케일링의 새로운 기준 🌟
Grok 3가 뭔지 모른다면 이 글 참고 go [AI/AI 정보] - Grok3에 대해서 빠르게 아라보자 (요약본) Grok3에 대해서 빠르게 아라보자 (요약본)🔍 Grok 3란 무엇인가?Grok 3는 xAI가 개발한 최신 대형 언어 모델(LLM)로, 이전 버전인 Grok 2에 비해 비약적인 성능 향상을 이루었습니다 🚀. Elon Musk는 이를 "지구에서 가장 똑똑한 AI"라고 표현했으intelloper.tistory.com⚡ Grok 3: 또 한 번 입증된 '쓴 교훈' ⚡📌 TL;DR (요약)Grok 3의 성공은 **'더 나은 알고리즘'**보다 **'더 큰 스케일'**이 AI 발전을 이끄는 핵심 요소임을 입증합니다 🌐. DeepSeek 같은 최적화 중심의 접근도 강력했지만, 결국 대규모 컴퓨팅..
-
Grok3에 대해서 빠르게 아라보자 (요약본)
🔍 Grok 3란 무엇인가?Grok 3는 xAI가 개발한 최신 대형 언어 모델(LLM)로, 이전 버전인 Grok 2에 비해 비약적인 성능 향상을 이루었습니다 🚀. Elon Musk는 이를 "지구에서 가장 똑똑한 AI"라고 표현했으며, Grok 3는 OpenAI, Google DeepMind, Anthropic 등 주요 경쟁사 모델과 동등하거나 우위를 점하는 성과를 보여주었습니다 👑. Grok 3는 단순한 데이터 처리가 아닌, 인간처럼 데이터를 이해하고, 추론하고, 감정적으로 반응할 수 있는 AI 시스템을 만들기 위해 설계되었습니다. 특히 수학, 코딩, 과학 분야에서 강력한 성능을 발휘하며, LMSys Arena에서도 최상위권을 차지했습니다 🏆. Grok 3의 가장 큰 특징은 거대한 연산 자원을 활..
-
DeepSeek R-1 우분투에서 써보기 feat.Ollama
DeepSeek에 대해서 모른다면 밑에 글 빠르게 훑어보자딥시크(DeepSeek)에 대해서 빠르게 아라보자 (요약본) 딥시크(DeepSeek)에 대해서 빠르게 아라보자 (요약본)우선 긴글을 싫어하는 당신을 위한 요약 부터 고고📌 DeepSeek R1 요약🚀 DeepSeek R1이란?중국의 AI 기업 DeepSeek에서 개발한 최신 AI 모델.OpenAI의 o1 모델과 동급 성능을 보이면서도 98% 저렴함.오픈소intelloper.tistory.com 로컬에서 실행하기DeepSeek R-1을 로컬에서 실행하기 위해서는 Ollama라는 도구를 사용할 것입니다. Ollama는 대형 언어 모델(LLM)을 로컬 컴퓨터에서 실행할 수 있게 해주는 무료 오픈소스 도구로, macOS, Linux, Windows..
-
딥시크(DeepSeek)에 대해서 빠르게 아라보자 (요약본)
우선 긴글을 싫어하는 당신을 위한 요약 부터 고고📌 DeepSeek R1 요약🚀 DeepSeek R1이란?중국의 AI 기업 DeepSeek에서 개발한 최신 AI 모델.OpenAI의 o1 모델과 동급 성능을 보이면서도 98% 저렴함.오픈소스로 공개되어 누구나 로컬에서 실행 및 커스텀 가능.연산 효율 최적화 → 고성능 GPU가 없어도 잘 작동.🔥 DeepSeek R1이 강력한 이유강화학습 최적화 → 복잡한 논리적 문제 해결 능력 향상.고정밀·저비용 → OpenAI의 o1 모델 수준의 성능을 훨씬 낮은 비용으로 제공.오픈소스 → 누구나 자유롭게 활용 및 개선 가능.GPU 효율 최적화 → 성능이 낮은 장비에서도 원활하게 작동.❌ DeepSeek가 받는 비판 & 반론중국 정부의 검열 우려민감한 질문(예: 톈..
🆕최신
-
✨ PyTorch와 CUDA를 이용한 GPU 메모리 관리 마스터하기: CUDA 캐싱 할당자 완벽 활용 가이드 ✨
PyTorch로 대규모 딥러닝 모델을 훈련하거나 대용량 데이터셋을 다루어 본 경험이 있다면, 아래와 같은 메시지가 매우 익숙할 것입니다.torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 512.00 MiB. GPU 0 has a total capacity of 79.32 GiB of which 401.56 MiB is free.바로 그 악명 높은 CUDA out of memory (OOM) 오류입니다! 😱 이 오류는 GPU가 텐서를 위한 공간을 할당하려 할 때 메모리가 부족하면 발생하며, 특히 모델을 세심하게 튜닝하고 코드를 최적화하는 데 많은 시간을 투자했을 때 마주하면 매우 답답할 수 있습니다. PyTorch가 GPU 메모리 사용..
-
시니어 파이썬 개발자가 되기위한 7가지 개념! 🐍
파이썬 스크립트 작성, 프로젝트 빌드, 애플리케이션 배포 경험이 있으신가요? 좋습니다! 하지만 파이썬을 *정말로* 깊이 이해한다는 것은 언어의 핵심 메커니즘과 고급 기능을 파악하는 데 있습니다. 여기, 평범한 파이썬 코더와 숙련된 파이썬 전문가를 구분 짓는 7가지 중요한 개념을 소개합니다. 만약 이 개념들이 익숙하고 직관적으로 느껴진다면, 축하드립니다! 당신은 이미 파이썬을 "꽤 잘 다루는" 수준을 넘어섰을 가능성이 높습니다. 🎉1. 메타클래스 (Metaclasses): 클래스를 동적으로 만들기 ✨메타클래스는 파이썬의 숨겨진 마법 중 하나로, 클래스를 생성하는 규칙 자체를 프로그래밍 방식으로 정의할 수 있게 해줍니다. `type`의 서브클래스를 만들어 클래스 생성 과정을 커스터마이징하는 강력한 도구죠...
-
[Backend 면접 대비 시리즈] 2025년 백엔드 / 서버 엔지니어 면접 대비 가이드
1. 서론백엔드 개발 및 서버 엔지니어링 분야는 기술이 끊임없이 발전하며, 전문가에게 요구되는 역량도 지속적으로 변화하고 있습니다. 2025년 면접을 준비하는 것은 이러한 기술 변화와 채용 시장의 요구 사항을 정확히 파악하는 데서 시작됩니다. 숙련된 전문가 수요 증가에 따라, 채용 과정은 기술력뿐 아니라 문제 해결 능력, 시스템 설계 능력, 협업 능력 등 다양한 측면을 종합적으로 평가하는 방향으로 심화되고 있습니다.본 가이드는 2025년 백엔드 개발자 및 서버 엔지니어 면접 성공을 위해 필요한 핵심 기술 지식과 효과적인 준비 전략을 포괄적으로 제시합니다.2. 백엔드 개발의 기초 💻2.1. 백엔드 프로그래밍 언어백엔드 개발의 핵심은 프로그래밍 언어의 능숙한 활용입니다. 2025년에도 널리 사용될 주요 언..
-
[Frontend 면접 대비 시리즈] 2025 최신 Frontend 개발자 면접 완벽 대비 가이드
서론: 변화하는 Frontend 개발 면접 환경 🚀 Frontend 개발 분야는 끊임없이 진화하고 있으며, 면접에서 요구하는 역량도 빠르게 변화하고 있습니다. 새로운 프레임워크, 라이브러리, 도구가 지속적으로 등장하며¹, 이제 면접은 단순한 코딩 능력을 넘어 아키텍처 설계, 성능 최적화, **사용자 경험(UX)**에 대한 깊이 있는 이해를 평가하는 추세입니다.따라서, 최신 기술 동향을 꾸준히 학습하고 면접에 철저히 대비하는 것이 중요합니다. 이 가이드는 Frontend 개발자 면접 준비를 위한 종합적인 로드맵을 제공하여, 여러분이 자신감을 가지고 면접에 임할 수 있도록 돕는 것을 목표로 합니다.🛠️ 핵심 Frontend 기술 마스터하기HTML, CSS, JavaScript는 Frontend 개발의 근..
-
[Frontend 면접 대비 시리즈] 익숙함에 속지말자 try...catch 함정!
문제 상황: 단순해 보이는 질문에 함정이 숨어있다자바스크립트의 try...catch는 일반적으로 코드 블록 내의 오류를 안전하게 잡아내는 구조로 많이 사용됩니다.저 역시 동기적인(synchronous) 코드에서는 자신 있게 사용해왔습니다. 그런데 아래 두 가지 코드가 제시되었을 때, 예상치 못한 문제가 발생했습니다.코드 1: setTimeout과 try...catchtry { setTimeout(() => { throw new Error('err'); }, 200);} catch (err) { console.log(err);}코드 2: Promise와 try...catchtry { Promise.resolve().then(() => { throw new Error('err'); });..
-
[Frontend 면접 대비 시리즈] 자바스크립트 마스터 종합 가이드
javascript 코딩 경험이 많다면 다 겪어봤을 개념들 입니다. 정확한 명칭은 생각이 안나도 개념과 흐름은 어느정도 파악하고 있는분들께는 한번더 전체적인 개념 정립에 도움이 될것입니다. 면접에서 자주 등장하는 자바스크립트 개념을 정리하고, 실전에서 활용할 수 있도록 예제 코드와 설명을 제공합니다.1. 메모리 관리자바스크립트가 메모리를 어떻게 처리하는지 이해하면 최적화된 코드를 작성할 수 있습니다.🔹 Hoisting (호이스팅)변수와 함수 선언이 실행 컨텍스트 생성 단계에서 어떻게 끌어올려지는지 살펴봅니다.console.log(x); // undefinedvar x = 10;sayHello(); // "Hello"function sayHello() { console.log("Hello");}co..
-
RESTful API 설계 주의점! API 경로 충돌 분석 및 해결 방안
API 경로 충돌 분석 및 해결 방안이 보고서는 API 엔드포인트 경로 간 충돌 가능성을 분석하고, 발생 원인과 해결 방안을 제시합니다. 특히 두 그룹의 경로를 비교하여 충돌이 발생할 수 있는 경우와 그에 따른 개선 방법을 상세하게 설명합니다.주요 포인트충돌 발생 가능성:두 번째 경로 그룹(예: /{variable1}/{variable2}와 /download/{fileName})은 특정 요청(예: /download/file.txt)에서 양쪽 모두 일치할 수 있으므로 충돌 가능성이 높습니다.충돌 미발생 사례:첫 번째 경로 그룹(예: /get-author-collections/{userID}/{start}/{limit}와 /get-collection-posts/{collectionID}/{start}/{li..
-
2025년에 꼭 알아야 할 5가지 마이크로서비스 디자인 패턴 (Python FastAPI 예시 포함)
마이크로서비스의 복잡성을 해결하는 필수 디자인 패턴마이크로서비스는 현대 소프트웨어 개발의 핵심으로 자리 잡았습니다. 하나의 거대한 애플리케이션 대신 작고 독립적인 서비스들로 시스템을 구성하면 유연성과 확장성을 극대화할 수 있죠. 하지만 이런 장점에는 대가가 따릅니다. 서비스 간 통신, 데이터 관리, 장애 처리 등 복잡성이 증가하기 때문입니다. 이때 디자인 패턴이 구세주처럼 나타납니다. 자주 발생하는 문제를 해결하는 검증된 설계 패턴으로, 개발자들이 시간과 고민을 덜 수 있도록 도와줍니다. 이 글에서는 2025년에 주목해야 할 5가지 마이크로서비스 디자인 패턴을 소개합니다. 단순한 개념 설명에 그치지 않고, Python FastAPI를 활용한 실제 예제와 모범 사례까지 함께 제공하니 실무에서도 바로 적용할..
-
[Window git 설치 에러] git : 'git' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인 식되지 않습니다.
(base) PS C:\Users\Administrator> choco install git -yChocolatey v2.4.3Installing the following packages:gitBy installing, you accept licenses for the packages.Downloading package from source 'https://community.chocolatey.org/api/v2/'Progress: Downloading chocolatey-compatibility.extension 1.0.0... 100%chocolatey-compatibility.extension v1.0.0 [Approved]...Enjoy using Chocolatey? Explore more am..
-
[Code Smell] 흠흠 코드에서 냄새나는데? 개발자라면 반드시 알아야 할 코드 스멜
소프트웨어 개발에서 깨끗하고 유지보수하기 쉬운 코드를 작성하는 것은 견고하고 확장 가능한 애플리케이션을 만드는 데 필수적입니다. 하지만 경험이 많은 개발자조차도 무심코 "코드 스멜(Code Smells)"을 만들어낼 수 있습니다. 코드 스멜은 코드베이스에서 더 깊은 문제를 암시하는 신호이며, 이를 방치하면 기술 부채, 성능 저하, 유지보수 비용 증가로 이어질 수 있습니다.이 글에서는 흔히 나타나는 10가지 코드 스멜을 소개하고, 각각의 문제점과 해결 방법을 알아보겠습니다.1. 중복 코드 (Duplicate Code)💡 문제점동일하거나 유사한 코드가 여러 곳에 존재하면, 유지보수가 어려워지고 불일치가 발생할 가능성이 높아집니다.수정이 필요할 때 여러 곳을 변경해야 하므로 오류 가능성이 증가합니다.✅ 해결..
⚡️성능
-
FastAPI 성능 최적화하기
FastAPI 애플리케이션의 성능을 개선하기 위해 많은 자료를 찾아보고 정리해봅니다.예제 소개다음은 FastAPI의 기본적인 엔드포인트 예제입니다. Product라는 Pydantic 모델을 정의하고, products 리스트를 반환하는 엔드포인트를 구현했습니다. 각 섹션에서 이 코드를 조금씩 최적화하며 개선해 보겠습니다.from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class Product(BaseModel): product_id: str price: float@app.get("/products/", response_model=list[Product])def read_products(): products =..
-
MongoDB 성능 개선! 빠른 속도 튜닝!을 위한 DB 인덱싱 적용 db.collection.createIndex
인덱싱은 데이터베이스 성능 최적화의 핵심이며, 제대로 사용하면 쿼리 속도를 크게 향상시킬 수 있습니다. MongoDB 인덱싱이란?인덱싱은 데이터베이스 테이블의 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. MongoDB에서 인덱스는 컬렉션 내 문서들의 특정 필드 값을 정렬하여 저장합니다. 이를 통해 MongoDB는 전체 컬렉션을 스캔하지 않고도 빠르게 원하는 데이터를 찾을 수 있습니다.인덱싱의 장점쿼리 성능 향상: 인덱스를 사용하면 쿼리 실행 시간이 크게 단축됩니다.정렬 작업 최적화: 인덱스된 필드로 정렬할 때 성능이 향상됩니다.고유성 보장: 유니크 인덱스를 사용하여 필드 값의 중복을 방지할 수 있습니다.집계 연산 개선: 특정 집계 작업의 성능을 향상시킵니다.자주 쿼리되는 데이터에 대해서는 컬..
-
MongoDB 성능 개선을 위한 점검 (DB 프로파일링 / db.setProfilingLevel)
⚠️ 성능에 영향을 주는 쿼리를 확인하기 위한 용도일뿐, 이 자체로 성능을 개선하는 것과는 무관합니다.(오히려 프로파일링 활성화 모드일때 성능을 더 잡아먹음. 프로파일링 완료 후 반드시 프로파일링 비활성화를 해야 함)프로파일링 활성화mongo db 접속 및 해당 database 접근 후 사용.2개 중에 편한 방법을 이용하여 활성화할 수 있다. 1. mongosh(mongoshell) 을 통한 사용 시# mongosh 접속mongosh# admin db 접근use admin# db 권한 접속db.auth('사용자명','비밀번호')# 프로파일링할 db 사용: platform db 예시use platform# 프로파일링 활성화: 예시: 레벨 1, slowms 느린쿼리 임계치를 의미. 즉 100ms 를 초과하는..
-
(Python 성능 향상) concurrent.futures 동시 프로그래밍 모듈로 속도 개선해보자!
성능에 대해서는 프로그램을 만들고 나서나 기능 개발이 완료되고 나서나 작동이 잘되는것을 확인했는데 속도가 아쉽다면 항상 고민을 하게 됩니다.우리는 더 나은 품질에 빠릿빠릿한 프로그램을 원하니까요!프로그램이 원할하게 돌아가게 하기 위해선 Frontend에서의 부드러움도 중요하지만 그만큼 Backend 및 자동화를 위한 스크립트에서도 빠른 속도가 바쳐줘야 합니다. 이글은 제가 많은 시도 끝에 성능을 올려본 방법론중에 하나이며 스스로도 추후에 참고하고 싶어 기록을 남겨봅니다.속도가 문제가 되는곳에는 그만큼 거대한 연산작업이 있다는것입니다. 그 거대한 연산작업을 기다리지 않고 병렬로 처리한다면 사용자는 우선적으로 결과값을 바로 받을 수 있어 사용성에 부드러움을 느낄 수 있습니다. 그 병렬처리를 위해 동시프로그래..
-
JSON 대체재(성능 향상을 위한 대체재)
JSON은 다목적 데이터 교환 형식이지만 특정 시나리오에서는 성능 제한으로 인해 더 빠른 대안을 모색하게 되었습니다. 이러한 대안 중 일부를 자세히 살펴보고 이를 선택할 수 있는 시기와 이유를 이해해 보겠습니다. 1. Protocol Buffer(protobuf) https://protobuf.dev/ protobuf 라고도 하는 프로토콜 버퍼는 Google 에서 개발한 바이너리 직렬화 형식입니다 . 효율성, 소형화 및 속도를 위해 설계되었습니다. Protobuf의 바이너리 특성으로 인해 직렬화 및 역직렬화 작업이 JSON보다 훨씬 빠릅니다. 채택 시기 : 특히 마이크로서비스 아키텍처, IoT 애플리케이션 또는 네트워크 대역폭이 제한된 시나리오에서 고성능 데이터 교환이 필요한 경우 protobuf를 고려..
-
JSON 성능 최적화
JSON은 웹 개발에 널리 채택되고 있지만 속도 문제가 없는 것은 아닙니다. 이 형식은 사람이 읽을 수 있는 특성으로 인해 데이터 페이로드(전송되는 '순수한 데이터')가 커지고 처리 시간이 느려질 수 있습니다. 그럼 JSON을 더 빠르고 효율적으로 만들기 위해 어떻게 최적화할 수 있을까요? 이제 JSON이 애플리케이션의 속도와 효율성을 유지할 수 있도록 JSON의 성능 향상 방법을 알아봅시다. 1. 데이터 크기 최소화: 짧고 설명적인 키 사용: 간결하지만 의미 있는 키 이름을 선택하여 JSON 개체의 크기를 줄입니다. // 비효율적 { "customer_name_with_spaces" : "John Doe" } // 효율적 { "customerName" : "John Doe" } 가능한 경우 약어 사용:..
-
[Python 성능] 🏎️ TTLCache vs DiskCache: 이미지 캐싱 속도 비교와 최적화 방법
이미지 또는 대용량 데이터를 빠르게 로드하려면 캐싱(Cache) 을 활용해야 합니다. 그런데 FastAPI에서 이미지를 캐싱할 때, TTLCache(메모리 캐시)와 DiskCache(디스크 캐시) 중 어떤 것이 더 나을까요?✔ TTLCache: RAM을 사용하여 가장 빠르지만, 메모리 제한이 있음.✔ DiskCache: 디스크를 활용하여 더 많은 데이터를 저장할 수 있지만, 속도가 조금 느림.📌 이번 포스트에서는 두 방식의 성능을 비교하고, 언제 어떤 캐싱 방법을 써야 하는지 정리해보겠습니다.🔥 캐싱 비교: TTLCache vs DiskCache✅ 1. TTLCache (메모리 기반 캐시)from cachetools import TTLCachecache = TTLCache(maxsize=300, tt..
Javascript
-
JavaScript 객체를 배열로 변환하는 3가지 방법
JavaScript 객체를 배열로 변환하는 3가지 방법 안녕하세요! JavaScript를 사용하면서 객체를 배열로 변환해야 할 경우가 종종 있습니다.이 글에서는 JavaScript 객체를 배열로 변환하는 3가지 방법을 소개합니다. Object.keys() Object.keys() 함수는 객체의 키들을 배열로 반환합니다.const obj = { name: "Alice", age: 25, job: "developer" };const keys = Object.keys(obj);console.log(keys); // ["name", "age", "job"] Object.values() Object.values() 함수는 객체의 값들을 배열로 반환합니다.const obj = { name: "Alice", age..
-
자바스크립트 오브젝트 안에 특정 키가 있는지 확인
자바스크립트에서 객체(Object) 안에 특정 키(key)가 있는지 확인하는 방법은 다양합니다. hasOwnProperty 메서드 사용하기:const myObject = { key1: 'value1', key2: 'value2'};if (myObject.hasOwnProperty('key1')) { console.log('key1 exists in the object.');} else { console.log('key1 does not exist in the object.');}in 연산자 사용하기:const myObject = { key1: 'value1', key2: 'value2'};if ('key1' in myObject) { console.log('key1 exists in the ..
-
자바스크립트 문자열 대문자화
자바스크립트에서 문자열을 대문자로 바꾸기 위해서는 toUpperCase() 메소드를 사용할 수 있습니다. 이 메소드는 문자열을 모두 대문자로 변환한 새로운 문자열을 반환합니다. 예를 들어, 다음과 같이 사용할 수 있습니다:let str = "hello world";let upperStr = str.toUpperCase();console.log(upperStr); // 출력 결과: "HELLO WORLD"위 코드에서 toUpperCase() 메소드를 사용하여 str 문자열을 모두 대문자로 바꾸고, upperStr 변수에 저장하였습니다. 그리고 console.log() 함수를 사용하여 upperStr 문자열을 출력하였습니다. 또한, ES6부터는 String.prototype.toUpperCase() 대신 ..
-
(ES2021) 자바스크립트 문법
Optional Chaining (선택적 체이닝)Optional Chaining은 객체의 속성을 안전하게 접근하는 방법입니다. 만약 객체 내부의 속성 중 하나가 null 또는 undefined라면, 코드가 실행되는 도중 에러가 발생하는 것을 방지할 수 있습니다. 다음과 같이 사용할 수 있습니다. 참고 urlhttps://intelloper.tistory.com/22const name = person?.name;const age = person?.age?.years; Nullish Coalescing (널 병합 연산자)Nullish Coalescing은 변수가 null 또는 undefined일 때, 대체 값을 지정할 수 있는 방법입니다. 이전에는 || 연산자를 사용하여 처리했지만, 이는 falsy한 값 ..
-
Javascript 자료구조 시리즈(4) Linked List
Linked List는 배열과 유사한 선형 데이터 구조입니다. 그러나 배열과 달리 요소는 특정 메모리 위치나 인덱스에 저장되지 않습니다. 오히려 각 요소는 해당 목록의 다음 개체에 대한 포인터 또는 링크를 포함하는 별도의 개체입니다. 노드 그룹으로 구성되며 각 노드에는 다음 노드에 대한 고유한 데이터와 주소가 있습니다. 배열에서 요소는 인덱싱되며 즉시 요소에 도달할 수 있지만 Linked List에서는 머리부터 시작하여 원하는 요소에 도달할 때까지 계속 작업해야 합니다. Linked List의 장점은 Linked List에서 삽입 및 삭제가 배열보다 쉽다는 것입니다. 배열은 단 한개의 원소 추가할 때도 뒷쪽에 있는 원소들이 모두 변경되어야 되며 10만개 이상의 배열이면 시간이 많이 소모됩니다. 왜나하면 ..
-
Javascript 자료구조 시리즈(3) Queue 대기열
Queue 큐는 FIFO(선입 선출) 원칙을 따르는 선형 데이터 구조입니다. 여기에는 1) 전면 포인터, 2) 후면 포인터, 두 개의 포인터가 포함됩니다. 앞쪽 포인터는 시작 요소의 주소를 포함하고 뒤쪽 포인터는 큐의 마지막 요소 주소를 포함합니다. 큐 구현에 사용되는 두 가지 주요 방법은 enqueue 및 dequeue 방법입니다. Enqueuing은 큐에서 요소를 추가하는 프로세스이고 Dequeuing은 큐에서 요소를 제거하는 프로세스입니다. 전형적인 실생활의 Queue로 은행을 예를들 수 있습니다. 은행 업무를 보기위해 맨 처음 온 사람이 먼저 업무를 보고 그뒤에 순차적으로 업무를 보기 위해서 창구를 기다립니다. 또한 새로운 고객이 들어오면 가장 맨뒤에 서게 됩니다. 그리고 가장 맨 마지막에 업무를..
-
Javascript 자료구조 시리즈(2) Stack 스택
Stack 스택은 LIFO(Last In First Out) 또는 FILO(First In Last Out) 원칙을 따르는 데이터 구조입니다. 👉🏻 스택에 요소를 추가할 때마다 스택 맨 위에 추가됩니다. 👉🏻 스택에 마지막으로 삽입된 항목이 가장 먼저 삭제됩니다. 👉🏻 스택은 ToS(Top of Stack)라고 하는 목록의 한쪽 끝에서만 액세스할 수 있는 요소 목록입니다. 쉽게 말해 멘토스 구조라고 생각하시면 됩니다. 멘토스를 깠을때 가장 처음 먹는부분이 마지막으로 쌓인 멘토스라고 생각하시면 됩니다. 기존에 9~11번 멘토스를 먹었고 11번 pop(), 10번 pop(), 9번 pop() 짝지랑 멘토스 맛을 교환하기로 하였습니다. 그리하여 8번 pop(), 7번 pop(), 6번 pop() 다른 멘토스맛..
-
Javascript 자료구조 시리즈(1) Array 배열
Javascript 자료구조 - Array 배열 자료 구조는 많은 회사에서 가장 자주 테스트하는 주제 중 하나입니다. 서비스를 운영 하다보면 데이터를 어떻게하면 더 효율적으로 저장하고 사용할 수 있는지에 대해 고민을 할 수 밖에 없습니다.어떻게 코드를 짜느냐에 따라 사용자가 원하는 정보를 빠르게 보여줄 수 있는지 서비스의 품질 문제가 달려있기 때문입니다.그러므로 이번 포스트에서는 자바스크립트 데이터 구조를 다뤄보겠습니다.총 아래 7가지 구조를 다뤄볼 예정입니다.- Arrays- Stack- Queues- Linked List- Trees- Graphs- Hashtable자료구조란?자료구조는 데이터를 효율적으로 사용할 수 있도록 저장하고 구성하는 방법입니다. 보다 정확하게는 자료구조는 데이터 값의 그룹, ..
-
(JS)Clean Code Series4 - Enums vs Dictionaries #열거형과 사전
Enums vs Dictionaries#열거형과 사전 enum은 상수 값으로 이루어져 있는 집합이라고 볼 수 있습니다. Typescript에서는 enum을 지원하지만 javascript에서는지원하지 않습니다. enum MagicianSkills { fireball = '불로 이뤄진 구체를 날림', iceball = '얼음으로 이뤄진 구체를 날림', thunderball = '번개로 이뤄진 구체를 날림', } const useSkill: MagicianSkills = MagicianSkills.fireball console.log('useSkill : ', useSkill); // 결과 useSkill : 불로 이뤄진 구체를 날림 위의 코드를 자바스..
-
(JS)클린 코드 시리즈3 - Named Callback Function #명명된 콜백 함수
Named Callback Function #명명된 콜백 함수 보통 콜백 함수로 익명함수를 자주 많이 씁니다. .reduce(), .map(), .foreach()... 등 안에 () => {} 익명의 함수를콜백 함수로 넣습니다.편하고 필요할때 적시 적소에 쓰이기 때문에 매우 유용합니다. 예를들어 객체 배열 안에 든 값을 map으로아래처럼 가공하여 보여줄 수 있습니다. interface IGoblin { name: string hp: number attack: number } const goblins: Array = [ { name: 'goblin warrior', hp: 200, attack: 30 }, { name: 'gob..
-
(JS)클린 코드 시리즈2 - Nullish coalescing operator #?? #널 병합 연산자
Nullish coalescing operator #?? #널 병합 연산자 실제로 코딩하다보면 null 혹은 undefind를 참조하여 에러가 뜨는 경우가 많습니다.초보인 분들은 에러 메세지를 검색해서 해결할 수도 있고 어느정도 경험이 있으신분들은 아 null 방지를 안해줬구나하고바로 AND(&&)문 아니면 옵셔널 체이닝으로 해결할 수도 있습니다.하지만 &&(AND)문이나 ?.(Optional Chaining)은 참조할 값이 null이면 그냥 아무것도 안들어오게 됩니다.만약 참조할 값이 null인지 체크하고 참조할값이 있다면 참조값을 쓰고 아니라면 다른 default값을 넣어주고 싶을때보통 삼항 연산자를 많이 쓰지요. potion ? 'drink' : 'do nothing' 하지만 널 병합 연산자로 더 ..
-
(JS)클린 코드 시리즈1 - Optional Chaining #?. #옵셔널 체이닝
Optional Chaining #?. #옵셔널 체이닝 개발할때 보통 api에서 데이터를 가져온 후 Object 형식의 useState에서 setState로 데이터를 넣어준 후 보통 아래처럼 데이터를 사용합니다. let fireball = user.skill.fireball; or ({user.skill.fireball})근데 만약 여기서 user.skill이 null이라면 "Uncaught TypeError: Cannot read property 'fireball' of null"이런 문구의 에러가 발생합니다. 여기서 만약 optional chaining을 모른다면let fireball = user.skill && user.skill.fireball;or({user.skill && ..
Python
-
(파이썬 웹크롤링) 구글 이미지 크롤링
우선 전체 코드 바로 공개 하겠습니다. 아래의 코드 실행시 파일과 같은 위치에서 imgs 폴더를 꼭 생성해주세요!! import ssl ssl._create_default_https_context = ssl._create_unverified_context from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By import time import urllib.request searchKey = input('검색 키워드 입력:') driver = webdriver.Chrome() driver.get("https://www.google.co.kr/i..
-
파이썬 현재 설치된 패키지 리스트 확인하는법
Python에서 현재 설치된 패키지 리스트를 확인하는 방법에는 여러 가지가 있습니다. pip list 명령어 사용하기 가장 쉬운 방법은 터미널에서 pip list 명령어를 실행하는 것입니다. 이 명령어는 현재 설치된 모든 패키지의 리스트를 출력합니다. pip list pip freeze 명령어 사용하기 pip freeze 명령어는 현재 설치된 패키지의 리스트를 requirements.txt 파일 형식으로 출력합니다. 이 파일은 pip install -r 명령어를 사용하여 한 번에 여러 패키지를 설치하는 데 사용됩니다. pip freeze > requirements.txt conda list 명령어 사용하기 conda를 사용하여 Python 패키지를 관리하는 경우, conda list 명령어를 사용하여 현..
-
(파이썬 클린코드) 파이썬 내장 함수 사용하기
파이썬 내장 함수를 사용하여 코드를 간결하게 작성할 수 있습니다. 예를 들어, 리스트의 합을 구하는 함수 sum을 사용하여 코드를 간결하게 작성할 수 있습니다 간단 예시 numbers = [1, 2, 3, 4, 5] sum_of_numbers = sum(numbers) range(): 지정한 범위의 정수들을 반환하는 함수입니다. for i in range(1, 11): print(i) zip(): 두 개 이상의 리스트의 요소들을 병렬로 묶어주는 함수입니다. names = ['Alice', 'Bob', 'Charlie'] ages = [25, 30, 35] for name, age in zip(names, ages): print(name, age) sorted(): 인자로 받은 iterable 객체를 정렬..
-
(파이썬 클린코드) 제너레이터(Generator)
(파이썬 클린코드) 제너레이터(Generator)파이썬에서 제너레이터(generator)는 이터레이터(iterator)와 유사하지만, 이터레이터보다 더 강력하고 효율적인 함수입니다. 제너레이터는 값을 반환할 때마다 함수의 상태를 기억하고 다음 값 반환에 사용합니다. 제너레이터 함수는 yield 키워드를 사용하여 값을 반환합니다. 예를 들어, 0부터 시작하여 지정된 범위까지 모든 짝수를 반환하는 제너레이터 함수를 작성해 보겠습니다. def even_numbers(n): for i in range(n): if i % 2 == 0: yield i 이 함수를 호출하면, 이터레이터 객체가 반환됩니다. 이 객체는 __next__() 메소드를 사용하여 값을 하나씩 가져올 수 있습..
-
(파이썬 클린코드) 람다 함수(Lambda Function)
(파이썬 클린코드) 람다 함수(Lambda Function)람다 함수(Lambda Function) 사용하기함수를 한 줄로 간결하게 작성할 수 있는 방법입니다.예를 들어, 두 개의 숫자를 더하는 함수를 람다 함수로 작성하면 다음과 같습니다.add = lambda x, y: x + y 람다(lambda) 함수는 이름이 없는 익명 함수를 말합니다. 간단한 로직을 갖는 함수를 한 줄로 간결하게 표현할 수 있어서, 함수의 인자로 함수를 전달해야 하는 경우나 간단한 연산을 수행하는 경우에 매우 유용합니다. 람다 함수는 lambda 키워드를 사용하여 정의합니다. 일반적인 함수와는 다르게 함수명이 없으며, 함수의 인자와 리턴 값만을 정의합니다. 일반적으로는 한 줄로 표현되는 간단한 연산에 사용됩니다. 람다 함수의 기..
-
(파이썬 클린코드) 리스트 컴프리헨션(List Comprehension)
(파이썬 클린코드) 리스트 컴프리헨션(List Comprehension)리스트 컴프리헨션(List Comprehension) 사용하기반복문을 한 줄로 간결하게 작성할 수 있는 방법입니다.예를 들어, 1부터 10까지의 숫자 중에서 짝수만을 리스트로 만들고 싶을 때 다음과 같이 작성할 수 있습니다.even_numbers = [i for i in range(1, 11) if i % 2 == 0]self.rgbIpArr = [f'192.168.0.{ip}' for ip in args.rtspIps.split(',')]
-
파이썬 클린코드 기본
클린 코드는 여러가지 측면이 있지만, 그 중에서도 다른 사람이 쉽게 이해하고 유지보수할 수 있는 코드를 작성하는 것이 중요합니다. 이를 위해서는 가독성, 명확성, 간결성 등이 필요합니다. 아래는 클린 코드를 작성하는 예시 코드입니다. # 좋은 변수명 사용하기 def calculate_rectangle_area(length, width): return length * width # 함수의 기능을 잘 나타내는 이름 사용하기 def get_unique_values(values_list): return list(set(values_list)) # 코드 중복을 피하기 def calculate_circle_area(radius): PI = 3.14 return PI * radius ** 2 def calculate..
-
파이썬 삼항 연산자 사용법
기본 사용법 [True 값] if [조건식] else [False 값] 예시 x = 5 result = "x는 5입니다." if x == 5 else "x는 5가 아닙니다." print(result)
REACT
-
시니어 개발자가 알아야 할 15가지 고급 React 기술
React 애플리케이션이 점점 더 복잡해짐에 따라, 초기에 사용하던 패턴들이 점차 한계를 드러낼 수 있습니다. 예를 들어, 간단한 MVP는 잘 작동하지만 시간이 지나면서 성능 문제나 상태 관리의 복잡성이 커질 수 있습니다. 이러한 문제는 주니어 개발자가 시니어로 성장하면서 마주하는 자연스러운 과정입니다. 다행히도, React에서 복잡한 문제를 해결할 수 있는 고급 기술들이 존재합니다. 이번 글에서는 useCallback과 ref의 효과적인 활용법부터 Suspense를 활용한 데이터 패칭, 가상화, 에러 핸들링, 성능 최적화까지 총 15가지 기법을 소개합니다. 글을 다 읽고 나면 더 탄탄한 React 개발 역량을 가질 수 있을 것입니다. 1. useCallback을 사용하여 서비스 참조 유지하기useCal..
-
React와 Media Query: window.matchMedia를 활용한 반응형 스타일링
window.matchMedia를 활용하여 React에서의 반응형 웹 구현을 위한 코드입니다.import { useEffect, useState } from 'react';export default function Home() { const [isMobile, setIsMobile] = useState(false); useEffect(() => { const mediaQuery = window.matchMedia('(max-width: 768px)'); const handleChange = () => setIsMobile(mediaQuery.matches); mediaQuery.addEventListener('change', handleChange); setIsMobile(med..
-
Error: Unexpected token I in JSON at position 0
Error: Unexpected token I in JSON at position 0 NextJS로 개발하실때 이런 에러 한번씩 뜨실겁니다. 이 에러에 대해서 처음 보시거나 모르시는분들은 프론트에서 문제를 찾으실겁니다. 막상 확인해보면 api 요청하는데 요청값이 잘못 들어가서 Backend server에서 에러가 나서 생긴 오류입니다. 저같은 경우도 아래의 에러 메세지 처럼 backend server에서 생긴 문제였습니다.
-
useSearchParams() should be wrapped in a suspense boundary at page "/loginPage". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout
Next.js에서 useSearchParams() 사용 시 주의사항문제 상황다음과 같은 에러 메시지를 보신 적 있나요?useSearchParams() should be wrapped in a suspense boundary at page "/loginPage". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout 이 메시지는 "/loginPage"에서 useSearchParams()를 사용할 때 Suspense 경계로 감싸지 않아 발생하는 오류입니다. Suspense는 리액트 18버전에서 도입이 되었습니다. 다음 링크를 참조해주세요.-> https://ko.react.dev/reference/react/Suspense..
-
ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label)
ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label) React 프로젝트에서 자주 마주치는 ESLint 오류 중 하나인 "A control must be associated with a text label.(jsx-a11y/control-has-associated-label)"에 대해 알아보고, 이를 해결하는 방법을 공유하려고 합니다.오류의 의미이 오류는 웹 접근성(Web Accessibility)과 관련이 있습니다. 간단히 말해, 사용자 인터페이스의 컨트롤(예: 버튼, 입력 필드)에 연관된 텍스트 레이블이 없을 때 발생합니다. 텍스트 레이블은 스크린 리더 사용자를 포함한 모든 사용자가 해..
-
Nextjs Image domain src error, hostname set as domain and getting error Invalid src prop on `next/image`
NextJSnext.config.js에서 remotePatterns까지 셋팅해줬는데!!! Image 태그 src에 도메인주소를 넣으면 이미지가 안나오신다면 Loader를 사용하셔야 합니다! (Solution code)const src = `${API}/user/photo/${blog.postedBy.username}`; src} src={src} width={500} height={500}/> Next.js에서 이미지 로더(Loader) 이해하기Next.js에서 이미지 로더(Loader)가 어떻게 동작하는지에 대해 알아보겠습니다. 특히, 이미지 최적화와 관련된 부분을 중점적으로 다뤄보겠습니다.이미지 로더(Loader)란 무엇인가?Next.js에서 이미지 로더는 이미지의 URL을 생성하는 함수입니다..
-
⚠ The "images.domains" configuration is deprecated. Please use "images.remotePatterns" configuration instead.
Next.js 버전 14에서 도메인 설정을 remotePatterns로 변경하는 방법Next.js의 새로운 버전 14에서 도메인 설정이 어떻게 변경되었는지에 대해 알아보겠습니다. 특히, 이미지 호스팅과 관련된 설정을 하시는 분들에게 유용한 정보가 될 것 같습니다.Next.js 14에서의 주요 변경 사항Next.js 버전 14에서는 기존의 domains 설정이 deprecated(더 이상 사용되지 않음)되고, 새로운 remotePatterns 설정으로 대체되었습니다. 이는 next.config.js 파일에서 설정할 수 있습니다. 이 변경으로 인해 이미지 호스팅 설정을 더 유연하고 간편하게 할 수 있게 되었습니다.설정 변경하기기존에 domains 설정을 사용하던 분들은 아래와 같은 형식으로 설정을 하고 있었..
-
NextJS build Error: Failed to fetch data
NextJS build Error: Failed to fetch dataserver component에서 SSR을 위해 데이터를 패치할때 dev모드에서는 정상적으로 작동하던것이 build할때 문제를 일으킬때가 있다. 해당 문제는 동적으로 데이터를 받아와야할 페이지를 정적으로 구현하려고하니 발생한 문제이다.아래 코드를 import 밑에 삽입하고 다시 build를 해보자.export const dynamic = 'force-dynamic';
Ubuntu
-
E: The repository ' https://download.docker.com/linux/ubuntu jammy InRelease' is not signed.(우분투 docker 설치시 에러)
우분투에서 Docker 설치할때 아래와 같은 에러가난다면!!! W: https://dl.winehq.org/wine-builds/ubuntu/dists/focal/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.W: GPG error:https://download.docker.com/linux/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9..
-
우분투에서 SMTP 서버를 구축해보자 (feat.postfix)
Ubuntu에서 Postfix로 SMTP 서버 구축 및 사용하기: 완벽 가이드SMTP 서버를 구축하면 직접 이메일을 전송할 수 있는 서버를 운영할 수 있습니다. 이 가이드에서는 Ubuntu에 Postfix를 설치하고, 기본 설정부터 테스트 및 보안 설정까지 단계별로 설명합니다.1. Postfix란?Postfix는 Linux에서 가장 널리 사용되는 **메일 전송 에이전트(MTA)**로, SMTP를 통해 이메일을 전송 및 수신할 수 있도록 도와줍니다. 빠르고 보안이 잘 되어 있으며 설정이 비교적 쉽습니다.2. Postfix 설치1) 시스템 업데이트 및 Postfix 설치sudo apt updatesudo apt install postfix -y설치 과정에서 Postfix 설정 마법사가 실행됩니다. 아래 단계..
-
🥳🤗😄Ubuntu 이모티콘 사용법 / Emote 설치😁😍❤️
우분투에서 Emote를 이용한 이모티콘 사용 방법우분투(Ubuntu)에서 Emote를 설치하고, 이모티콘(emoji)을 편리하게 사용하는 방법을 단계별로 설명하겠습니다. Emote는 간단하고 직관적인 방식으로 다양한 환경에서 이모티콘을 사용할 수 있도록 도와주는 도구입니다.설치 방법sudo apt updatesudo apt install snapdsudo snap install emoteEmote 단축키 설정Emote를 더욱 편리하게 사용하려면 단축키를 설정하세요.Clipboard Manager 설치 Emote는 클립보드에 복사하기 때문에 클립보드 매니저와 함께 사용하면 더 편리합니다. 예: Clipman 또는 xclip.sudo apt install xclip단축키 설정 우분투의 키보드 설정에서 Emo..
-
ImportError: cannot import name 'cached_download' from 'huggingface_hub'
ImportError: cannot import name 'cached_download' from 'huggingface_hub' RealESRGAN/model.py 돌리는데 위와 같은 에러가 났다. huggingface_hub 버전을 바꿔서 설치하고 정상작동 되었습니다.pip install huggingface-hub==0.23.2pip install datasets==2.20.0
-
error: RPC failed; HTTP 400 curl 56 The requested URL returned error: 400
Git push Error error: RPC failed; HTTP 400 curl 56 The requested URL returned error: 400 git push를 하는데 갑자기 에러가 났다$ git push origin mainEnumerating objects: 73, done.Counting objects: 100% (73/73), done.Delta compression using up to 10 threads.Compressing objects: 100% (50/50), done.error: RPC failed; HTTP 400 curl 56 The requested URL returned error: 400fatal: The remote end hung up unexpectedly..
-
Status: display_server_not_supported (Anydesk display server not supported Ubuntu 22)
Status: display_server_not_supported (Anydesk display server not supported Ubuntu 22) 우분투에서 Anydesk 이용할때 display 문제로 에러나고 안되는 경우가 있습니다.Ubuntu 22에서 Anydesk의 "display_server_not_supported" 오류를 해결하는 방법을 알려드리겠습니다. 이 문제는 주로 Wayland 디스플레이 서버를 사용할 때 발생합니다. 해결 방법은 다음과 같습니다: 방법 1. Wayland 비활성화하기: Wayland를 완전히 비활성화하려면 다음 단계를 따르세요:터미널을 엽니다.다음 명령어로 설정 파일을 엽니다:sudo vim /etc/gdm3/custom.conf WaylandEnable=fal..
-
E: Sub-process /usr/bin/dpkg returned an error code (1)
E: Sub-process /usr/bin/dpkg returned an error code (1)오류의 주요 원인과 해결 방법을 다루어 보겠습니다. 1. 잠긴 dpkg 상태dpkg 또는 apt가 이미 실행 중인 경우 발생할 수 있습니다.해결 방법: 다른 패키지 관리 프로세스가 실행 중인지 확인하고, 문제가 없다면 잠금 파일을 삭제합니다.sudo rm /var/lib/dpkg/lock-frontend /var/lib/dpkg/locksudo rm /var/cache/apt/archives/locksudo dpkg --configure -asudo apt-get install -f 대부분 위에서 해결됩니다. 참고다른 블로그에서 sudo rm /var/lib/dpkg/info/* 를 많이 쓰는데 이 ..
-
The TCP/IP connection to the host 192.168.10.152, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connec
The TCP/IP connection to the host 192.168.10.152, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". 우분투에서 DBeaver등 SQL 클라이언트로 MSSQL 서버에 접속 하려고 할때 MSSQL 서버에 연결할 수 없다는 것을 의미합니다. - 우분투에서의 기준입니다...
🐳Docker
-
ERROR LOG
-
ERROR LOG
-
ERROR LOG
-
SETTING
-
SETTING