본문 바로가기

전체 카테고리66

헷갈리는 Lodash import 구문 : import * as _는 되고 import _는 안 되는 이유 저는 Typescript를 사용하면서 Lodash라는 라이브러리를 자주 사용했습니다.그런데 lodash를 import할 때 이런 두 가지 방식 중 어떤 건 되고, 어떤 건 안 되는 경험을 다들 해보셨나요?import * as _ from 'lodash'; // ✅ 잘 됨import _ from 'lodash'; // ❌ 에러 발생! 🧐 원인은? 모듈 시스템의 차이!이 문제는 CommonJS와 ES 모듈(ESM)이라는 모듈 시스템의 차이 때문에 발생합니다. 🌱 CommonJS (Node.js에서 주로 사용)lodash는 전통적으로 CommonJS 방식으로 배포되어 있습니다.CommonJS는 module.exports를 사용하며, default export 개념이 없습니다.모듈 전체를 하나의.. 2025. 6. 24.
[QueryDSL] CaseBuilder 활용 조건식 표현 SQL에서 조건별로 값을 다르게 리턴하는 CASE 문은 자주 사용됩니다.예를 들어, 아래와 같은 쿼리를 생각해볼 수 있습니다.SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C' END AS gradeFROM student;이 코드를 Java에서 QueryDSL을 사용해 표현하려면 어떻게 작성해야 할까요? QueryDSL에서 CASE문 작성 시 주의점아래와 같은 코드를 작성했다고 가정해 봅시다.student.score.goe(90).then(1) .when(student.score.goe(80)).then(2) ... 2025. 6. 16.
Lombok 필드 타입에 따른 setter 생성 차이점 Lombok은 setter를 생성할 때set + 기존 엔티티 필드명규칙으로 짓습니다. 다만 필드 타입에 따라 setter가 다르게 생성됩니다.필드 타입필드명Lombok GetterLombok SetterbooleanisSomethingisSomethingsetSomethingBooleanisSomethinggetIsSomethingsetIsSomething표처럼 생성되게 됩니다. Boolean은 객체 타입이기 때문에 단순 문자열로 처리되어, getIsX() / setIsX()처럼 원래 필드명을 그대로 사용합니다.boolean같은 원시 타입의 경우, Lombok은 is 접두어를 무시하고 setUse()만 생성합니다. 2025. 5. 16.
Github pages 정적 배포하는 방법 | 정적배포란? 정적배포란?정적 웹 사이트는 콘텐츠가 미리 만들어진 HTML, CSS, JavaScript 파일 등으로 구성되어 있으며, 사용자의 요청이 들어오면 서버가 해당 파일을 그대로 전달하는 방식입니다. 이 방식은 작성자가 소수이고 콘텐츠의 변화가 적은 웹사이트에 적합합니다.정적 웹사이트는 서버에서 별도의 처리를 하지 않고 미리 준비된 파일을 그대로 제공하므로, 로딩 속도가 빠르고 배포가 간편합니다. 다만, 콘텐츠를 자주 변경하거나 사용자 맞춤형 기능이 필요한 경우에는 한계가 있을 수 있습니다.💡 정적 콘텐츠(HTML, 이미지 등)를 웹사이트에 올려놓고 그대로 보여주는 것이라고 생각하면 됩니다.  동적배포란?동적 웹 사이트는 클라이언트(사용자)의 요청에 따라 서버에서 콘텐츠를 실시간으로 생성해 전달하는 방식입니.. 2025. 4. 6.
mac 맥북 톰캣 설치 및 실행 방법 1. 톰캣(tomcat) 설치https://tomcat.apache.org/download-10.cgi Apache Tomcat® - Apache Tomcat 10 Software DownloadsWelcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomcat 10.1.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versitomcat.apache.org 저는 10버전 톰캣을 다운받.. 2025. 4. 6.
[프로그래머스] 피로도 (Java) 이번 문제는 완전탐색(BFS)를 활용해 풀어야 합니다.사실 완전탐색을 잘 몰라서 해당 개념을 서치하고, 다른 분들은 어떻게 푸셨는지 많이 참고해서 풀어보았습니다. 다만 모두 완전탐색을 안다는 것을 전제로 설명한 글이 많기에동작을 제대로 설명해주는 글이 없는듯하여 어떤 과정으로 코드가 동작된건지 설명하려합니다. 중요한 포인트는 세가지 입니다.1. 방문 여부 & 최소 피로도 만족 확인2. 다음 던전으로3. 다음 던전에 못가면 처음부터 다시 탐색   코드를 순서대로 실행하다보면 중간에 탐험이 불가능해질때가 생깁니다.  이때 재귀함수가 멈추고 visited[n] = false로 재정의됩니다.그리고 반복문에 의해 그 다음 n+1 자리로 가게 됩니다.  그리고 다시 재귀함수를 돌게 됩니다.끝까지 잘돌면 answer.. 2025. 3. 28.
[프로그래머스] 기능개발 (Java) 문제  1. 기능별 작업일수 계산하기for (int i = 0; i  2. 배포일 기억해두고, 해당 작업이랑 같이 배포 가능한 작업들 개수 세기for (int i = 0; i   import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] daysArr = new int[progresses.length]; for (int i = 0; i answer = new ArrayList(); int prevMaxDays = daysArr[0]; int count = 0; for (int i = 0; i .. 2025. 3. 26.
git init 이후 hint 메시지와 master 브랜치가 자동 생성될때 로컬 폴더에 git init를 해주었는데git inithint: Using 'master' as the name for the initial branch. This default branch namehint: is subject to change. To configure the initial branch name to use in allhint: of your new repositories, which will suppress this warning, call:hint:hint: git config --global init.defaultBranch hint:hint: Names commonly chosen instead of 'master' are 'main', 'trunk' andhint: 'd.. 2025. 3. 20.