전체 글(133)
-
axios Ngrok와 통신하면서 발생한 문제
서론프로젝트에서 서버 비용 문제로 인해 빠른 테스트를 위해 개발 과정에서 Ngrok을 사용하기로 결정하였습니다. 그러나 Ngrok을 통한 통신 과정에서 에러가 발생하였습니다. 프론트엔드에서 서버로 API 요청을 보냈으나 요청한 값 대신 이미지와 같은 에러가 발생하였습니다. 백엔드에서는 204 상태 코드와 OPTIONS 요청이 발생하였고, 이를 통해 원인을 분석하였습니다. 원인 분석204 상태 코드와 OPTIONS 요청이 발생하는 조건은 다음과 같습니다:GET, HEAD, POST 요청이 아닌 경우Custom HTTP Header가 존재하는 경우유저 에이전트가 자동으로 설정한 헤더예: Connection, User-Agent (en-US) 등Fetch 명세에서 “forbidden header name”..
2024.10.26 -
Docker와 Ngrok을 활용
1. 서론현재 온라인 사이드 프로젝트를 진행 중이며, DevOps 환경이 아직 구축하지 못해, 하지만 프론트엔드와의 통신을 위해 Docker와 Ngrok을 활용하여 외부에서 접근할 수 있는 환경을 설정하는 방법을 공유하고자 합니다. NestJS 애플리케이션을 Docker 컨테이너에서 실행하고, Ngrok을 통해 외부 IP를 사용할 수 있도록 만드는 과정을 설명합니다. 2. Dockerfile 작성2.1 Dockerfile 기본 구조NestJS 애플리케이션을 위한 Dockerfile을 작성하는 것이 첫 번째 단계입니다. 아래는 기본적인 Dockerfile 예시입니다.# Base imageFROM node:18.20.4-alpine# # Create app directoryRUN mkdir -p /var/a..
2024.10.12 -
NestJS cache-manager 사용하기
캐싱을 통한 성능 개선 1. cache?캐싱은 데이터의 복사본을 임시 저장소에 저장하여, 동일한 데이터에 대한 요청이 있을 때 더 빠르게 응답할 수 있도록 하는 기술입니다. 이를 통해 데이터베이스의 부하를 줄이고, 응답 속도를 개선할 수 있습니다. 2. 캐싱의 필요성 성능 향상: 데이터베이스 쿼리의 수를 줄여 응답 속도를 개선합니다. 비용 절감: 데이터베이스의 부하를 줄여 서버 비용을 절감할 수 있습니다. 사용자 경험 개선: 빠른 응답 속도로 사용자 만족도를 높입니다. 3. 캐싱 구현 방법NestJS를 사용하여 캐싱을 구현하는 방법을 소개합니다. 3.1. 캐시 모듈 설치npm install @nestjs/cache-manager cache-manager 3.2. 캐시 모듈 설정app.modul..
2024.10.03 -
[NestJS] google-cloud-text-to-speech vs AWS Polly 차이점 & 사용법
서론최근 텍스트 음성 변환(TTS) 기술은 고객 지원 시스템 등에서 자연스러운 음성 경험을 제공하며 빠르게 발전하고 있습니다. Google Cloud Text-to-Speech와 AWS Polly는 대표적인 클라우드 기반 TTS 서비스로, 각자의 강점과 특징이 있어 프로젝트에 적합한 서비스를 선택하는 것이 중요합니다. 본 글에서는 이 두 서비스의 특징과 차이점을 비교하고 간단한 사용법을 안내합니다. Google Cloud Text-to-SpeechGoogle Cloud Text-to-Speech는 **Google Cloud Platform(GCP)**에서 제공하는 텍스트 음성 변환 서비스로, 딥러닝 기반의 WaveNet 기술을 사용하여 자연스러운 음성을 생성합니다. 이 서비스는 220개 이상의 다양한..
2024.10.01 -
[NestJS] Elasticsearch 와 Like 차이
BookPang 프로젝트의 검색 기능 구현 고민BookPang 프로젝트를 진행하면서 검색 기능을 어떻게 구현할지 고민하던 중, 이전 프로젝트에서 사용했던 Elasticsearch가 떠올랐습니다. 바로 Elasticsearch로 구현을 시도하려다, Full-text Search와 데이터베이스의 LIKE 기능도 고려하지 않고 진행한 건 아닌지 궁금해져, 세 가지 방법의 차이점을 비교해보고자 이 글을 작성하게 되었습니다.1. LIKE, Full-text Search, Elasticsearch의 차이점LIKE (SQL의 문자열 검색)기능: LIKE는 단순 문자열 패턴 매칭을 위해 사용됩니다. %와 _ 와일드카드를 사용하여 텍스트를 검색하며, 특정 패턴과 일치하는 결과를 반환합니다.장점: SQL 문법을 사용하여 ..
2024.09.25 -
[프로그래머스] 비밀지도
def solution(n, arr1, arr2): answer = [] arr1_bin = [] arr2_bin = [] for i in range(n): arr1_bin.append(bin(arr1[i])[2:]) arr2_bin.append(bin(arr2[i])[2:]) arr1_bin[i] = ('0' * (n-len(arr1_bin[i]))) + arr1_bin[i] arr2_bin[i] = ('0' * (n-len(arr2_bin[i]))) + arr2_bin[i] tmp = '' for p in range(n): if arr1_bin[i][p] == '1' or arr..
2024.08.23