기술 블로그
웹과 앱을 만들며 남긴 기록 447편입니다.
성능(속도), 보안, 검색엔진 최적화(SEO) 수준을 끌어올리기 위한 Cloudflare 설정 가이드입니다. Cloudflare의 핵심 기능을 항목별로 나누어 각 설정의 역할과 권장 값을 상세히 설명하겠습니다. SSL/TLS: 완벽한 HTTPS 암호화 구축 HTTPS는...
HTTP는 데이터를 암호화하지 않기 때문에 보안에 취약합니다. 특히 로그인, 결제, 개인정보 입력 등 민감한 데이터를 다룰 경우 반드시 HTTPS(SSL/TLS 암호화) 를 적용해야 합니다. AWS EC2에서 운영 중인 서버에 HTTPS를 적용하는 방법은 크게 3가지로...
AWS EC2 서버 배포는 외부와 통신하는 대표적인 연결 수단입니다. 하지만 일반적인 퍼블릭 IP는 인스턴스를 재시작하거나 중지 후 다시 시작하면 IP가 변경되는 문제가 있어, 고정 IP 설정이 필수입니다. 퍼블릭 IP의 문제 EC2 인스턴스를 생성하면 퍼블릭 IPv4...
Spring Boot 서버 개발 시 주관적인 프론트엔드 프레임워크 추천입니다. 추천 프론트엔드 프레임워크 TOP 3 1. React.js (Next.js 포함) 글로벌 표준에 가까운 React는 Spring Boot와의 REST API 연동이 자연스럽고, 문서와 자료가...
개발자가 커스텀 스타일을 쉽게 적용할 수 있도록 최소한의 스타일만 제공하여 유연한 스타일링 이 가능한 라이브러리입니다. 상태 관리가 내장되어 있어 탭 선택 및 패널 표시 로직을 직접 구현할 필요 없이 간편하게 사용할 수 있습니다. 기본 사용법 먼저, 라이브러리를 설치합...
lucide-react 는 React 애플리케이션에서 SVG 아이콘을 손쉽게 사용할 수 있도록 지원하는 라이브러리 입니다. 인기 있는 Feather 아이콘을 기반으로 제작되었으며, 1000개 이상의 일관성 있는 디자인의 아이콘을 제공합니다. 또한 실제 프로젝트에서 사용...
NEXT_PUBLIC 접두사를 붙이면 변수의 접근 범위가 완전히 달라집니다. 이 차이점을 이해하는 것이 안전하고 효율적인 Next.js 애플리케이션을 구축하는 데 중요합니다. NEXT_PUBLIC 접두사가 없는 환경 변수 (서버 전용) NEXT_PUBLIC 접두사 없이...
컨테이너 시작 및 중지 (Container Lifecycle) 서비스의 생명주기를 관리하는 가장 기본적인 명령어들입니다. 아래 빌드 명령어를 별도로 작성했지만, docker-compose up -d --build 명령어 입력 시 이미지를 새로 빌드(build)한 후 에...
Thumbnailator 소개 Thumbnailator는 Java 기반의 간편하고 강력한 이미지 처리 라이브러리로, 특히 이미지 리사이징 및 썸네일 제작에 최적화되어 있습니다. 직관적인 API로 빠른 개발이 가능하며, 다양한 이미지 형식을 지원합니다. 주요 특징 간결하...
프론트엔드에서 데이터를 어떻게 가져올 것인지에 대한 논의이므로, 프론트엔드 카테고리에 가장 잘 어울린다고 판단했습니다. 방식 1. Next.js의 api 폴더를 사용하는 방법 (중간 API 서버를 두는 방식) 설명 Next.js에서 제공하는 pages/api 또는 ap...
정수 배열 arr 와 query 가 주어집니다. query 를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr 에서 query[i] 번 인덱스를 제외하고 배열의 query[i] 번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr 에서 query[...
문제 상황 (Problem Description) Spring Boot 애플리케이션 개발 중, 로컬 환경( java -jar 또는 IDE 실행)에서는 모든 기능이 정상 동작했지만, docker-compose up 으로 컨테이너 환경에서 실행했을 때만 S3 파일 업로드 ...
이 문서는 Next.js 프론트엔드에서 외부 Java 백엔드 API를 호출 하는 관점에서 작성되었으며, 백엔드 자체 구현보다는 프론트엔드에서 어떤 방식으로 API 요청을 설계해야 하는가 에 중점을 두었습니다. Next.js를 프론트엔드 프레임워크로 사용하는 상황에서, ...
DCL: Data Control Language (데이터 제어 언어) 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다. 주로 DBA(Database Administrator) 가 데이터 관리를 목적으로 사용한다. DCL의 종류 COMMIT...
리눅스 환경에서 폴더를 압축하는 것은 파일 관리, 백업, 전송 등을 할 때 유용합니다. tar.gz형식으로 압축하기 (가장 널리 사용되는 방식) tar 명령어는 여러 파일이나 폴더를 하나로 묶는 아카이브 도구이며, gzip 과 함께 사용하면 .tar.gz 형식으로 압축...
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and t...
문제 설명 정수 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...