MongoDB(5)
-
Jest를 활용한 유닛 테스트
서론 유닛 테스트는 단순한 기능 검증을 넘어 시스템 안정성과 코드 품질을 보장하는 중요한 요소입니다. 이번 프로젝트에서는 전체 서비스의 다양한 기능에 대해 Jest를 사용하여 유닛 테스트 코드를 작성하였고, 이를 통해 테스트 커버리지를 17.3% 향상시켰습니다. 이 블로그에서는 Jest를 활용한 유닛 테스트를 어떠한 이유로 작성하게 되었는지에 대한 배경을 공유합니다. 왜 테스트 코드를 작성했는가?프로젝트에서 작성한 테스트 코드는 주요 로직, 에러 처리, 비동기 로직, 그리고 보조 기능들까지 모두 포함되어 있습니다. 다음은 테스트 코드를 작성하며 중점적으로 작업한 이유들입니다:핵심 로직 검증서비스의 주요 로직을 철저히 검증하기 위해 각 기능별로 최소 3~4개의 테스트를 작성했습니다.예: TTS API 호..
2024.12.11 -
AWS Polly vs Google Text-to-Speech
서론인턴으로 일하면서 처음으로 TTS API 개발 프로젝트를 맡게 되었습니다. 회사에서는 기존에 사용하던 AWS 서비스와의 연계성, 비용 효율성 등을 고려해 AWS Polly와 Google TTS 두 가지 플랫폼을 검토했습니다. 최종적으로 저는 AWS Polly를 선택했는데, 그 이유와 과정, 그리고 결과에 대해 소개하고자 합니다. 1. AWS Polly를 선택한 이유TTS 플랫폼 선택의 주요 기준은 비용 절감, 품질, 그리고 기존 시스템과의 통합성이었습니다. AWS Polly는 다음과 같은 이유로 Google Cloud TTS에 비해 우위를 점했습니다:기존 AWS 인프라와의 연계성회사의 대부분 서비스가 AWS에서 운영되고 있었기 때문에 AWS Polly는 기존 시스템과 쉽게 통합할 수 있었습니다...
2024.12.11 -
[mongoDB] Cast to ObjectId failed for value (type string) 에러
이번에 Node.js, mongoDB 사용을 하면서 프로젝트 진행 중 예외처리를 만드는 중 mongoDB에서 에러가 발생을 하였다. // 실행한 코드router.get("/api/product/:id", async (req, res) => { try { const { id } = req.params; const goodsItem = await product.findById(id).select("-password").exec(); // 에러 발생 부분 if (!goodsItem) { return res.status(404).json({ errorMessage: "존재하지 않는 상품입니다." }); } return res.status(200).json({ mess..
2024.05.19 -
Spring 프로필수정 (AWS S3)
1. 의존성 추가하기 프로젝트의 pom.xml 파일에 spring-cloud-starter-aws 의존성을 추가합니다. 이 의존성은 AWS 서비스와 통신하기 위한 라이브러리 집합을 제공합니다. 2. application.properties 파일 설정하기 애플리케이션의 구성 정보를 담고 있는 application.properties 파일에 AWS S3 액세스 키와 시크릿 키를 추가합니다. 이는 AWS 인증에 사용됩니다. 3. Config 파일 생성하기 @Configuration 어노테이션이 달린 Java 클래스를 생성하여 application.properties의 값을 불러옵니다. 이 클래스에서 AmazonS3 클라이언트 빈을 생성합니다. 4. 컨트롤러에서 파일 업로드 코드 작성하기 AWS S3 버킷에 파..
2023.12.18 -
MongoDB란?
RDB(Relational Database)는 데이타의 독립성이 높고, 고수준의 데이타 조작언어(DML-Data Manipulation Language)을 사용하여 결합, 제약, 투영 등의 관계 조작에 의해 비약적으로 표현능력을 높일 수 있습니다. 또한 이들의 관계 조작에 의해 자유롭게 구조를 변경할 수 있다는 것이 RDB의 특징입니다. 데이터의 독립성: 데이터는 테이블에 저장되며, 이 테이블들 사이의 관계를 통해 다양한 조작이 가능합니다. DML (Data Manipulation Language): SQL과 같은 언어를 통해 데이터를 효율적으로 조회하고, 조작할 수 있습니다. 유연한 구조 변경: 데이터의 구조는 관계 조작을 통해 변경이 가능하며, 이는 데이터베이스의 설계와 유지 보수에 유연성을 제공합니..
2023.11.05