기술 블로그
웹과 앱을 만들며 남긴 기록 447편입니다.
📘 문제 해설 ✅ 문제 요약 두 변의 길이가 주어진 상태에서, 나머지 한 변이 될 수 있는 정수의 개수를 구하는 문제입니다. 입력: 정수 배열 sides (길이 2) 출력: 나머지 한 변이 될 수 있는 정수의 개수 ✅ 수학적 배경: 삼각형의 조건 삼각형을 만들기 위한...
🧩 문제 설명 당신은 중복되지 않는 k개의 숫자 를 무작위로 뽑아서 배열을 만들고자 합니다. 하지만 무작위 숫자들이 이미 arr 배열에 순서대로 저장되어 있다고 가정합니다. 목표 는 arr 에서 앞에서부터 순서대로 중복되지 않는 숫자를 뽑아 k개 의 배열을 만드는 것...
function solution(arr, queries) { const answer = []; for (const [s, e, k] of queries) { let min = Infinity; for (let i = s; i <= e; i++) { if (arr[i] ...
function solution(my_string, queries) { let strArr = my_string.split(''); // 문자열을 배열로 변환해서 다루기 쉽게 함 for (let [start, end] of queries) { const reversed...
function solution(a, b) { return String(BigInt(a) + BigInt(b)); } BigInt(a) → 문자열을 정확한 큰 정수(BigInt) 로 변환 BigInt(a) + BigInt(b) → 두 큰 숫자를 정확하...
1. 스프링 프레임워크란? 1.1 탄생 배경과 특징 스프링은 대규모 자바 애플리케이션에서 객체 간의 의존성 관리 를 단순화하기 위해 시작되었습니다. 기존 기술 스택의 복잡함을 해소하고자 등장했으며, 다음과 같은 특징이 있습니다. IoC(Inversion of Contr...
function solution(arr) { let stk = []; let i = 0; while (i < arr.length) { const top = stk[stk.length - 1]; if (stk.length === 0 || top < arr[i]) { st...
⚠️ 0.47 이상의 버전에 대한 내용은 작성 예정 입니다. Cursor 버전을 반드시 확인 부탁드립니다. 0.46과 0.47은 기능과 인터페이스에 변경이 있습니다. Yolo Mode (Enable Yolo Mode) 파일 쓰기, 명령 실행 등과 같은 일부 작업을 수행...
Spring Boot에서는 클라이언트가 보내는 JSON 데이터를 Java 객체(DTO)로 자동 변환하여 처리합니다. 이 과정을 JSON 역직렬화(deserialization)라고 합니다. 기본적으로 Spring Boot는 Jackson 라이브러리를 사용하여 이 작업을 ...
function solution(my_string) { var answer = new Array(52).fill(0); for(let char of my_string) { const specificChar = char.charCodeAt(0); if(specificCh...
function solution(str_list) { for (let i = 0; i < str_list.length; i++) { if (str_list[i] === "l") { return str_list.slice(0, i); // "l"의 왼쪽 반환 } else...
Next.js에서 next/dynamic 으로 컴포넌트를 동적으로 import할 때 ref 가 예상대로 전달되지 않는 원인과 해결 방법, 그리고 Next.js에서 공식적으로 권장하는 방식까지 명확하게 정리합니다. 🔍 문제 요약: dynamic import 시 ref가...
Java의 Spring Boot 프로젝트에서 DB 암호, AWS 액세스 키, API 키 등 민감한 정보를 포함하는 설정 파일( application.properties 또는 application.yml )을 그대로 GitHub와 같은 공개 저장소에 업로드하는 것은 매우...
TypeScript에서는 데이터를 정의할 때 주로 interface 와 type 을 사용합니다. 두 방식은 비슷해 보이지만, 차이점이 있습니다. 1. 확장성 (Declaration Merging) Interface는 선언 병합(Declaration Merging)이 가...
Next.js API와 함께 별도의 로직을 관리하기 위한 lib/action 폴더를 구성하는 방식은 꽤 자주 사용되는 구조지만, 명확한 장점만큼이나 실제 개발 및 운영 시 고려해야 할 단점과 한계점도 있습니다. 3번을 가장 치명적인 문제로 보고 있습니다. 그래도 Flu...
— 애플리케이션 성능 향상을 위한 캐시 전략 분석 — 1. 개요 오늘날 웹 애플리케이션은 빠른 응답 속도와 안정적인 데이터 제공이 필수입니다. 이를 위해 캐시(cache) 기술이 널리 활용되고 있는데요, Next.js에서는 내장 캐시 기능(예: g...
Next.js Image 컴포넌트 속성 최적화 화질 개선 <Image quality={95} // 기본값 75에서 상향 조정 /> 크기 및 반응형 최적화 <Image sizes="(max-width: 640px) 100vw, (max-width: 1024px) 800p...
IoC(Inversion of Control)란 무엇인가? 정의 IoC는 제어의 역전 이라는 뜻으로, 프로그램의 흐름을 개발자가 직접 제어하지 않고, 외부의 프레임워크나 컨테이너가 제어를 담당 하도록 하는 설계 원칙입니다. 왜 중요한가? 밑에 3가지 이유도 중요하지만 ...
Redis는 빠르고 효율적인 인메모리 데이터 저장소로 많이 사용되며, Redis Cluster 를 설정하면 데이터의 분산 저장과 고가용성(High Availability)을 구현할 수 있습니다. Redis Cluster의 기본 개념과 설정 방법 을 쉽게 이해할 수 있도...
Java에서 SpringApplication 클래스를 찾을 수 없다는 것을 의미합니다. 주로 Spring Boot 프로젝트에서 발생하는 문제로, 다음과 같은 이유로 발생할 수 있습니다. 의존성 누락 : 프로젝트의 pom.xml 또는 build.gradle 파일에 Spr...