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

기술 블로그

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

Cloudflare 필수 설정 체크리스트

성능(속도), 보안, 검색엔진 최적화(SEO) 수준을 끌어올리기 위한 Cloudflare 설정 가이드입니다. Cloudflare의 핵심 기능을 항목별로 나누어 각 설정의 역할과 권장 값을 상세히 설명하겠습니다. SSL/TLS: 완벽한 HTTPS 암호화 구축 HTTPS는...

EC2 HTTPS 설정하는 방법

HTTP는 데이터를 암호화하지 않기 때문에 보안에 취약합니다. 특히 로그인, 결제, 개인정보 입력 등 민감한 데이터를 다룰 경우 반드시 HTTPS(SSL/TLS 암호화) 를 적용해야 합니다. AWS EC2에서 운영 중인 서버에 HTTPS를 적용하는 방법은 크게 3가지로...

EC2 인스턴스 IP 고정하기 (Elastic IP 설정)

AWS EC2 서버 배포는 외부와 통신하는 대표적인 연결 수단입니다. 하지만 일반적인 퍼블릭 IP는 인스턴스를 재시작하거나 중지 후 다시 시작하면 IP가 변경되는 문제가 있어, 고정 IP 설정이 필수입니다. 퍼블릭 IP의 문제 EC2 인스턴스를 생성하면 퍼블릭 IPv4...

Spring Boot와 함께 사용하기 좋은 프론트엔드 프레임워크

Spring Boot 서버 개발 시 주관적인 프론트엔드 프레임워크 추천입니다. 추천 프론트엔드 프레임워크 TOP 3 1. React.js (Next.js 포함) 글로벌 표준에 가까운 React는 Spring Boot와의 REST API 연동이 자연스럽고, 문서와 자료가...

쉽게 만드는 React Tab 라이브러리 react-tabs

개발자가 커스텀 스타일을 쉽게 적용할 수 있도록 최소한의 스타일만 제공하여 유연한 스타일링 이 가능한 라이브러리입니다. 상태 관리가 내장되어 있어 탭 선택 및 패널 표시 로직을 직접 구현할 필요 없이 간편하게 사용할 수 있습니다. 기본 사용법 먼저, 라이브러리를 설치합...

가볍고 유연한 React 아이콘 라이브러리 lucide-react

lucide-react 는 React 애플리케이션에서 SVG 아이콘을 손쉽게 사용할 수 있도록 지원하는 라이브러리 입니다. 인기 있는 Feather 아이콘을 기반으로 제작되었으며, 1000개 이상의 일관성 있는 디자인의 아이콘을 제공합니다. 또한 실제 프로젝트에서 사용...

Next.js 환경 변수 NEXT_PUBLIC 접두사 역할

NEXT_PUBLIC 접두사를 붙이면 변수의 접근 범위가 완전히 달라집니다. 이 차이점을 이해하는 것이 안전하고 효율적인 Next.js 애플리케이션을 구축하는 데 중요합니다. NEXT_PUBLIC 접두사가 없는 환경 변수 (서버 전용) NEXT_PUBLIC 접두사 없이...

Docker/Docker-Compose 주요 명령어 정리

컨테이너 시작 및 중지 (Container Lifecycle) 서비스의 생명주기를 관리하는 가장 기본적인 명령어들입니다. 아래 빌드 명령어를 별도로 작성했지만, docker-compose up -d --build 명령어 입력 시 이미지를 새로 빌드(build)한 후 에...

Java 이미지 최적화 라이브러리 Thumbnailator

Thumbnailator 소개 Thumbnailator는 Java 기반의 간편하고 강력한 이미지 처리 라이브러리로, 특히 이미지 리사이징 및 썸네일 제작에 최적화되어 있습니다. 직관적인 API로 빠른 개발이 가능하며, 다양한 이미지 형식을 지원합니다. 주요 특징 간결하...

Next.js와 Spring Boot 연동 시 API 호출 방식

프론트엔드에서 데이터를 어떻게 가져올 것인지에 대한 논의이므로, 프론트엔드 카테고리에 가장 잘 어울린다고 판단했습니다. 방식 1. Next.js의 api 폴더를 사용하는 방법 (중간 API 서버를 두는 방식) 설명 Next.js에서 제공하는 pages/api 또는 ap...

프로그래머스 배열 조각하기

정수 배열 arr 와 query 가 주어집니다. query 를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr 에서 query[i] 번 인덱스를 제외하고 배열의 query[i] 번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr 에서 query[...

Docker 환경에서 AWS S3 리전 에러 및 API 404 발생 시 문제 해결 가이드

문제 상황 (Problem Description) Spring Boot 애플리케이션 개발 중, 로컬 환경( java -jar 또는 IDE 실행)에서는 모든 기능이 정상 동작했지만, docker-compose up 으로 컨테이너 환경에서 실행했을 때만 S3 파일 업로드 ...

Next.js에서 Java 서버 API를 사용하는 방법

이 문서는 Next.js 프론트엔드에서 외부 Java 백엔드 API를 호출 하는 관점에서 작성되었으며, 백엔드 자체 구현보다는 프론트엔드에서 어떤 방식으로 API 요청을 설계해야 하는가 에 중점을 두었습니다. Next.js를 프론트엔드 프레임워크로 사용하는 상황에서, ...

데이터베이스 권한 관리와 데이터 조작

DCL: Data Control Language (데이터 제어 언어) 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다. 주로 DBA(Database Administrator) 가 데이터 관리를 목적으로 사용한다. DCL의 종류 COMMIT...

리눅스에서 폴더 압축하는 방법 총정리

리눅스 환경에서 폴더를 압축하는 것은 파일 관리, 백업, 전송 등을 할 때 유용합니다. tar.gz형식으로 압축하기 (가장 널리 사용되는 방식) tar 명령어는 여러 파일이나 폴더를 하나로 묶는 아카이브 도구이며, gzip 과 함께 사용하면 .tar.gz 형식으로 압축...

Git SSH 인증 오류 해결 가이드

git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and t...

프로그래머스 배열 만들기 2

문제 설명 정수 l 과 r 이 주어졌을 때, l 이상 r 이하의 정수 중 에서 숫자 "0"과 "5"로만 이루어진 모든 정수 를 오름차순으로 저장한 배열을 반환하라. 조건을 만족하는 정수가 없을 경우 [-1] 을 반환한다. 문제 풀이 핵심 아이디어 숫자를 직접 생성해보되...

프로그래머스 전국 대회 선발 고사

문제 설명 목표 : rank 배열에는 각 학생의 등수, attendance 배열에는 대회 참가 가능 여부가 주어졌을 때, 참석 가능한 학생들 중 상위 3명을 선발 function solution(rank, attendance) { // 1. 참가 가능한 학생 (inde...

프로그래머스 정사각형으로 만들기

문제 설명 주어진 2차원 배열 arr 은 행과 열의 길이가 다를 수 있습니다. 이 배열을 정사각형 형태(N × N) 로 만들기 위해, 행(row) 수와 열(column) 수 중 더 큰 값을 N 이라 정의하고, 부족한 행은 [0, 0, ...] 배열을 추가 ,...

프로그래머스 그림 확대

function solution(picture, k) { var answer = []; // 1. 그림의 각 줄(row)을 하나씩 꺼내서 처리 for(let row of picture) { // 2. 가로 확대된 줄을 만들기 위한 빈 문자열 let expandedRow...