axios response type을 Blob으로 지정한 경우 에러 메시지 파싱이 필요합니다.관련해 겪은 이슈의 내용을 정리해 보았습니다. 서론최근 엑셀 다운로드 API를 수정할 일이 있었습니다. 조회 시작 날짜와 종료 날짜를 받아 데이터를 뽑고 엑셀 파일로 응답하는 일반적인 API였는데요.날짜 데이터를 주지 않으면 전체데이터에 대한 엑셀 파일이 만들어지게 됩니다. 이때 데이터량이 많은 경우 메모리 과부하로 서버가 다운되어 버리는 일이 발생했습니다. 그래서 기존 함수에 날짜 데이터를 검증하는 아주 간단한 예외처리 추가 했습니다. if (조회기간에 대한 데이터가 없다면) { throw new BadRequestException('기간을 선택해주세요.'); } '간단한 예외처리니깐 별..
인프런 [AWS(Amazon Web Service) 입문자를 위한 강의]를 듣고 정리한 내용입니다. ELB 로드 밸런서(Load Balancer)는 부하(load)를 적절하게 분배해주는 장치입니다. AWS에서는 ELB(Elastic Load Balancer)라는 로드 밸런서를 제공합니다. ELB가 제공하는 주요 기능은 다음과 같습니다. 트래픽 분산: 서버 간에 요청을 고르게 분배하여 서버 부하를 낮춘다.자동 확장: 트래픽이 많아질 때 자동으로 서버를 추가한다.고가용성: 한 서버가 다운되더라도 자동으로 다른 서버로 요청을 분산하여 장애를 방지한다.SSL/TLS 종료: 보안 연결을 처리하고, 서버에 부담을 줄여 ELB의 유형ELB는 다음과 같은 세 가지 주요 유형으로 나뉩니다 Application Loa..
인프런 [AWS(Amazon Web Service) 입문자를 위한 강의]를 듣고 정리한 내용입니다. EC2Amazon Elastic Compute Cloud의 약자로 가상 서버(Virtual Machine)를 제공하는 서비스 입니다. *클라우드는 크게 세 가지 주요 서비스(컴퓨팅, 스토리지, 네트워크)로 구성됨. EC2는 그중 컴퓨팅 자원을 제공하는 부분에 해당됩니다. 왜 사용하나요?클라우드 컴퓨팅 서비스는 물리 서버의 한계를 극복하기 위해 등장했습니다. 전통적으로 IT 인프라는 직접 서버를 구매하고 관리해야 했습니다. 이를 위해 상당한 비용과 시간이 소요 되었고요. 또한 서버의 용량을 미리 예측하여 구매해야 하므로 예측에 실패할 경우, 자원이 낭비되거나 부족해지는 문제가 발생했습니다. 물리 서버는 실..
인프런 [AWS(Amazon Web Service) 입문자를 위한 강의]를 듣고 정리한 내용입니다. AWS(Amazon Web Service) 입문자를 위한 강의 강의 | Sungmin Kim - 인프런Sungmin Kim | 요즈음 회사 및 다양한 프로젝트에서 종종 사용되는 AWS 서비스들의 핵심 이론을 배우며 뿐만 아니라 함께 따라하는 실습을 통하여 AWS를 온전히 내것으로 만들자!, [사진] AWS 핵심 기술www.inflearn.com IAM이란?IAM(Identity and Access Management)은 AWS 리소스*에 대한 액세스를 제어하는 서비스입니다.*AWS 리소스는 AWS에서 제공하는 서비스나 인프라 요소를 의미합니다. EC2 인스턴스, S3 버킷, RDS 데이터베이스, Lam..
AI와 UUID 그리고 MySQL The Problem with Using a UUID Primary Key in MySQL — PlanetScaleUnderstand the different versions of UUIDs and why using them as a primary key in MySQL can hurt database performance.planetscale.com 서론프로젝트를 진행하다가 UUID 기본키(PK)에 대한 내용이 나오게 되었습니다. UUID · Issue #69 · rimo030/nestjs-e-commerce-frame우리는 PK로 int 타입을 지정하고 있습니다. 하지만 제 개인적인 선호는 UUID 쪽이긴 합니다. UUID는 뭘까요? 그리고 int로 지정하는 것..
아래 글에 이어서 작성되었습니다. [TS] Greater Than 타입 구현해보기 - 1 타입 챌린지 Greater Than에 도전합니다. type-challenges/questions/04425-medium-greater-than/README.md at main · type-challenges/type-challenges Collection of TypeScript type challenges with online judge - type-challenges/type-challenges github.c munak.tistory.com 서론 이전글에서 배열을 이용해 Greater Than 타입을 구현했었습니다. 하지만 기본적으로 타입스크립트에서는 너무 많은 재귀가 발생하는 것을 막고 있기 때문에 999까지..
타입 챌린지 Greater Than에 도전합니다. type-challenges/questions/04425-medium-greater-than/README.md at main · type-challenges/type-challenges Collection of TypeScript type challenges with online judge - type-challenges/type-challenges github.com 서론 타입 GreaterThan를 구현하는 문제입니다. 문제는 간단합니다. number인 T와 U를 입력받고, `T가 U보다 큰 경우 true를 반환`하면 됩니다. `T와 U가 같거나 작은 경우에는 false를 반환`하고, 음수의 경우는 생각하지 않습니다. 타입시스템에서는 연산자를 사용할 ..
Git 브랜치 전략은 무엇이고 왜 필요한가 서론Git 브랜치 전략이란 무엇인가?쉽게 협업시 브랜치(branch) 생성 규칙을 정의하는 것을 말합니다.일관된 규칙은 소통의 효율성을 높여 협업이 원활하게 진행되도록 도와줍니다. 브랜치 전략은 각 기능이나 버그 수정, 테스트 작업을 별도의 브랜치에서 수행하고 메인 코드 베이스에 병합함으로써 코드의 안정성을 유지하고 개발 속도를 높이는 것을 목표로 합니다.🪄 대표적으로 Git-Flow와 GitHub-Flow가 있으며, 프로젝트의 규모, 팀원들의 숙련도, 배포 빈도 등에 따라 적절한 브랜치 전략을 선택하는 것이 좋습니다. 📍Git FlowGit Flow는 Vincent Driessen이 제안한 브랜치 전략으로, 복잡한 프로젝트 관리에 유용합니다. 다음과 ..