본문으로 건너뛰기
코드룸CODE ROOMTENMO ↗

기술 블로그

웹과 앱을 만들며 남긴 기록 447편입니다.

Query와 Parameter의 차이점

웹 개발에서 Query 와 Parameter (경로 파라미터)는 API 요청을 다룰 때 혼동할 수 있는 용어입니다. 특히 RESTful API를 구현하거나 사용하면서 이 둘의 용도를 명확히 이해하는 것이 중요합니다. Query와 Parameter란 무엇인가? Query...

MongoDB Atlas Search 빠른 검색 기능

MongoDB Atlas Search란? MongoDB Atlas Search는 Atlas에서 제공하는 완전 관리형, 내장형 검색 엔진입니다. Elasticsearch와 비슷한 Lucene 기반으로 구축되어 있으며, MongoDB 데이터베이스에 직접 통합되어 빠른 검색...

DAO 메서드에서 List와 Void 주요 차이점

DAO (Data Access Object) 메서드를 사용할 때, List 또는 void 를 사용하는 선택은 작업의 성격에 따라 달라집니다. 간단히 말해, List 는 데이터를 조회할 때 사용되며, void 는 삽입, 수정 또는 삭제와 같이 데이터를 반환하지 않는 작업...

@tanstack/react-query 살펴보기

@tanstack/react-query 는 서버 상태 관리 라이브러리로, Next.js와 같은 React 기반 애플리케이션에서 서버 데이터의 fetching, caching, synchronizing, 업데이트를 효율적으로 관리하는 데 사용됩니다. 이를 통해 서버에서 ...

간단하고 빠른 웹 프레임워크 (Hono)

Hono 는 빠르고 가볍게 웹 애플리케이션을 만들 수 있는 웹 프레임워크로, 특히 Edge 환경에서 사용하기에 적합합니다. Hono란? Hono는 TypeScript와 JavaScript 환경에서 사용 가능한 웹 프레임워크로, 성능이 뛰어나며 코드가 단순한 것이 특징입...

Next.js에서 IP 주소를 이용한 사용자 분류 방법

사용자의 IP 주소를 기반으로 위치 정보를 추출하여 Next.js 애플리케이션에서 사용자 맞춤형 경험을 제공하는 방법을 소개합니다. 이 글에서는 Next.js의 middleware 를 사용하여 사용자를 위치에 따라 분류하는 간단한 방법을 다룹니다. Geolocation...

RPC 개념과 작동 원리

RPC(Remote Procedure Call)는 네트워크 상에서 원격 시스템의 프로시저(함수)를 로컬에서 호출하듯이 호출할 수 있는 기술입니다. 복잡한 분산 시스템을 간단하게 구현하기 위해 많은 개발자들이 사용됩니다. RPC란 무엇인가? RPC(Remote Proce...

[Spring] MVC 아키텍처 정리 및 주요 구성 요소 설명

Spring MVC 는 전통적인 MVC(Model-View-Controller) 디자인 패턴 을 따르는 웹 애플리케이션 프레임워크로, 사용자 인터페이스와 데이터 간의 분리를 통해 코드 유지보수와 확장성을 높이는 데 도움을 줍니다. 요약 DispatcherServlet ...

[Spring] 의존성 주입(DI)과 제어의 역전(IoC) 이해하기

Spring Core는 의존성 주입(Dependency Injection, DI)과 제어의 역전(Inversion of Control, IoC) 두 가지는 Spring Framework의 기본 요소입니다. 1. 의존성 주입(Dependency Injection, DI)...

[JavaScript] 객체 지향 프로그래밍 가이드

1. 클래스와 객체의 기본 개념 1.1과 1.2를 같이 보셔야 합니다. class 는 객체를 생성하기 위한 양식 이라고 생각하면 쉽습니다. 직접 객체를 생성할 수 있다 그럼 왜 class 를 사용할까요? 객체를 직접 생성하는 것보다 class 를 사용했을 때 가독성이 ...

MongoDB 변경 스트림 (Change Streams)를 사용한 실시간 데이터 변경 감지

MongoDB 변경 스트림이란? MongoDB 변경 스트림은 데이터베이스에서 발생하는 모든 변경 사항(데이터 추가, 수정, 삭제 등)을 실시간으로 감지하여 애플리케이션에 전달하는 기능입니다. 이는 실시간 데이터 모니터링 이 필요한 시스템, 예를 들어 물류 시스템에서 재...

IntelliJ에서 타임리프(Thymeleaf) 자동 새로고침 설정 방법 (Live Reload)

IntelliJ IDEA 에서 타임리프(Thymeleaf)를 사용해 개발할 때, 변경 사항을 실시간으로 브라우저에 반영하는 Live Reload(자동 새로고침) 기능을 설정할 수 있습니다. 이 설정을 통해 매번 수동으로 빌드하거나 애플리케이션을 재시작하지 않고도 변경된...

Cloud Architecture 구성 요소에 대한 이해

1. 프레젠테이션 계층 (Presentation Layer) 웹 애플리케이션 : 사용자가 웹 브라우저를 통해 접근할 수 있는 인터페이스입니다. React, Next.js 등의 프론트엔드 프레임워크를 사용하여 구축됩니다. 모바일 애플리케이션 : 모바일 접근도 중요하므로,...

MongoDB 시계열 데이터(Time Series) 알아보기

시계열 데이터(Time Series Data) 는 시간이 지나면서 변화하는 데이터를 의미합니다. 온도, 주식 가격, 기계의 상태 등 시간이 중요한 역할을 하는 모든 데이터를 포함할 수 있습니다. MongoDB는 시계열 데이터를 효율적으로 처리 할 수 있는 기능을 제공합...

MongoDB 성능 최적화를 위한 색인 이해

MongoDB에서 색인(Index)은 데이터베이스 성능을 최적화하는 중요한 도구입니다. 색인을 사용하면 특정 필드에서 데이터를 빠르게 검색하거나 정렬할 수 있습니다. 색인은 데이터베이스에서 특정 필드를 미리 정렬된 자료 구조로 저장 해 두는 것을 의미합니다. 이 자료 ...

[MongoDB] 데이터 처리 및 분석을 위한 aggregate와 pipeline

MongoDB의 aggregate 는 데이터 처리 및 분석을 위해 여러 스테이지를 거쳐 데이터를 변형 하거나 집계하는 데 사용되는 강력한 도구입니다. aggregate 메서드는 pipeline 개념을 사용하여, 데이터를 다양한 스테이지로 처리해 원하는 결과를 도출합니다...

MongoDB 문서 삭제 방법 (deleteOne, deleteMany)

MongoDB에서 문서를 삭제하려면 deleteOne() 과 deleteMany() 메서드를 사용합니다. 1. deleteOne() deleteOne() 은 조건에 맞는 첫 번째 문서를 삭제하는 메서드입니다. db.users.deleteOne({ name: 'Jin' ...

MongoDB 문서 수정하기 예시 (updateOne, updateMany, replaceOne)

MongoDB는 데이터를 업데이트할 때 여러 가지 메서드를 제공하여 유연하게 데이터 관리를 할 수 있습니다. 1. updateOne vs replaceOne : 기능 차이 updateOne : 문서의 일부 필드 만 수정하고 나머지 필드는 유지. replaceOne : ...

Next.js에서 MongoDB find() 쿼리를 사용해 문서 검색하기

1. MongoDB에서 문서 검색하기 MongoDB의 find() 메서드를 사용하면 컬렉션에서 특정 조건에 맞는 문서를 검색할 수 있습니다. find() 메서드 예시 db.collection('kakao').find({ title: '안녕' }).toArray(); k...

Next.js 14 프로젝트 폴더 구조 가이드

폴더별 역할과 배치를 설명하며, 자산을 어디에 배치할지에 대한 설명을 드리겠습니다. 1. Next.js 14 권장 폴더 구조 Next.js 14 프로젝트의 기본적인 폴더 구조는 아래와 같습니다. 이 구조를 통해 코드를 모듈화하고, 확장 가능하며, 유지보수하기 쉽게 설계...