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

기술 블로그

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

export const dynamic = 'force-dynamic'의 역할과 사례

Next.js 13부터 렌더링 방식을 제어할 수 있는 새로운 설정이 도입되었습니다. export const dynamic = 'force-dynamic' 을 사용하면 해당 페이지나 API 라우트를 항상 서버 측에서 동적으로 렌더링 하도록 강제할 수 있습니다. 특정 페이...

Redis 샤딩(Sharding), 데이터 분산을 통한 성능 최적화

샤딩(Sharding)이란? Redis는 기본적으로 단일 노드(싱글 인스턴스)에서 데이터를 저장하고 제공 하는 인메모리 데이터베이스입니다. 하지만 데이터가 많아지고 트래픽이 증가하면 한 개의 Redis 인스턴스만으로는 한계를 가질 수 있습니다. ✅ 샤딩(Sharding...

PostgreSQL 설치 가이드: Windows, macOS, Ubuntu, Docker 환경 정리

Windows에서 설치 PostgreSQL 공식 웹사이트 ( https://www.postgresql.org/download/windows/ ) 방문 Windows용 인스톨러 다운로드 다운로드한 인스톨러 실행 설치 마법사의 지시에 따라 진행: 설치할 구성 요소 선택 (...

Hydration Error와 mounted 상태 관리에 대한 설명

문제 상황 // 문제가 있는 코드 export const FeatureToggles = () => { const { user } = useAuth(); const isAdmin = user?.email === 'test@gmail.com'; return ( <div> ...

일본 지역을 타깃으로 한 Redis 캐시 구성 가이드

최근 다양한 웹 애플리케이션에서 빠른 응답 속도와 안정성을 확보하기 위해 Redis 를 활용하는 사례가 늘어나고 있습니다. 특히 일본 사용자를 대상으로 하는 서비스라면 도쿄 리전(ap-northeast-1)을 통해 지연 시간을 최소화할 수 있어요. 왜 Redis 캐시인...

기본 포트 번호 변경 시 주의 사항

호환성 문제 기존 애플리케이션과의 연동: 많은 애플리케이션과 도구들이 MySQL에 연결할 때 기본적으로 3306 포트를 사용하도록 설정되어 있습니다. 포트 번호를 변경하면 이러한 애플리케이션의 설정을 모두 수정해야 하며, 누락 시 연결 오류가 발생할 수 있습니다. 환경...

Next.js suppressHydrationWarning 속성 이해하기

suppressHydrationWarning 이란 무엇인가? suppressHydrationWarning 은 React/Next.js에서 하이드레이션 경고(Hydration Warning)를 억제하기 위한 특별한 속성입니다. 서버 사이드 렌더링(SSR)된 내용과 클라이...

Java clone후 실행 문제 발생 해결 방안

build.gradle 파일 점검 먼저 build.gradle 파일이 제대로 설정되어 있는지 확인하세요. Spring Boot 의존성이 제대로 추가되어 있는지 확인해야 합니다. plugins { id 'org.springframework.boot' version '3....

Docker Compose를 활용한 Java 애플리케이션 환경 구성

Docker Compose를 사용하면 여러 개의 컨테이너를 손쉽게 관리하고 실행할 수 있습니다. Docker Compose를 활용한 Java 애플리케이션과 데이터베이스(PostgreSQL) 환경 구성 방법을 살펴보겠습니다. Docker Compose란? Docker C...

[문서] Next.js App Directory에서 Canonical 태그 작성

Canonical이란? Canonical(정식 URL)은 검색 엔진에 여러 유사한 페이지 중 "원본" 또는 "선호되는" 버전을 알려주는 HTML 요소입니다. 이는 중복 콘텐츠 문제를 해결하고 검색 엔진 최적화(SEO)를 개선하는 데 중요한 역할을 합니다. 검색 엔진에 ...

[입문] 간단한 Java 서버 구현하기

Java 기반 웹 서버(Spring Boot) 기본 설정 Java 서버 개발을 시작하려면 먼저 환경을 구축해야 합니다. Spring Boot는 간단한 설정만으로도 강력한 웹 애플리케이션을 만들 수 있는 프레임워크로, 초보 개발자에게 적합한 선택입니다. 🛠️ 개발 환경...

[중요도 낮음] ESLint의 promise/param-names 규칙

해당 경고는 eslint-plugin-promise 의 param-names 규칙에 의해 발생한 것. 새로운 Promise 객체를 생성할 때 매개변수의 이름과 순서를 일관되게 사용하도록 강제합니다. 따라서 매개변수 이름을 resolve 와 reject 로 지정하고, 이...

IntelliJ IDEA html, body 한줄 정렬 문제 해결

IntelliJ IDEA에서 html 및 body 태그의 포맷팅 문제 해결 방법 검색 하면 가장 많이 나오는 해결책이 " Ctrl + Alt + L 단축키를 사용하여 파일 코드를 자동으로 정렬할 수 있다."입니다. 해당 해결책이 작동하지 않을 때 아래 방법을 통해서 해...

클라우드에서 Docker로 배포하기

왜 클라우드 배포가 필요할까? 애플리케이션을 개발하고 로컬에서 실행하는 것은 쉽지만, 실제 사용자들이 접근할 수 있도록 배포 하려면 클라우드 서버가 필요합니다. Docker를 활용하면 개발 환경과 동일한 상태로 애플리케이션을 배포 할 수 있어 운영이 훨씬 쉬워집니다. ...

Docker Compose를 통해 여러 컨테이너 한 번에 실행하는 방법

Docker Compose란? Docker를 사용하면 하나의 컨테이너를 실행하는 것은 쉽지만, 애플리케이션은 보통 여러 개의 서비스(컨테이너)가 함께 동작 해야 합니다. 예를 들어, Spring Boot 애플리케이션 + MySQL 데이터베이스 를 실행한다고 가정해 봅시...

Docker에서 Tomcat 컨테이너 설정 및 실행

Tomcat 이미지 다운로드 Tomcat 이미지를 Docker Hub에서 다운로드합니다. 최신 버전 또는 원하는 버전을 지정할 수 있습니다. docker pull tomcat:latest tomcat:latest : Tomcat의 최신 버전을 다운로드합니다. 특정 버전...

Java Spring Boot를 Docker에서 실행하는 방법

Spring Boot 애플리케이션을 Docker에서 실행하기 🔹 1단계: Spring Boot 프로젝트 생성 우선, 간단한 Spring Boot 애플리케이션을 만듭니다. Spring Initializr ( https://start.spring.io/ ) 를 이용해서 ...

Docker 컨테이너 실행부터 Dockerfile 작성

Docker 컨테이너 실행 및 관리 Docker 컨테이너는 이미지를 기반으로 실행됩니다. Docker Hub에는 다양한 이미지가 제공되며, 가져와 실행할 수 있습니다. 🔹 첫 번째 컨테이너 실행하기 docker run hello-world ✅ 실행 결과 Docker가...

shadcn UI 'Cannot read properties of undefined (reading 'resolvedPaths')' 오류 해결 방법

2025년 02월 06일 기준 발생하고 있는 Error입니다. shadcn UI를 프로젝트에 추가하려다 'Cannot read properties of undefined (reading 'resolvedPaths')'라는 에러를 마주쳤다면 components.json ...

Docker 설치 및 기본 명령어 사용법

Docker 설치 및 기본 명령어 Docker는 컨테이너를 사용하여 애플리케이션을 가볍고 효율적으로 실행할 수 있는 도구입니다. 하지만 Docker를 처음 접하면 설치 방법과 기본 명령어를 어떻게 사용해야 할지 막막할 수 있습니다. ✅ 오늘의 주제 ✔️ Docker 설...