본문 바로가기
반응형

전체 글647

Git 커밋 전에 삭제될 파일만 확인하려면 diff --cached --diff-filter=D를 써요 커밋 직전에 삭제가 포함됐는지만 보고 싶으면 git diff --cached --name-status --diff-filter=D를 실행해요. 이 명령은 이미 스테이징된 변경에서 삭제로 분류된 파일을 골라 보여 줍니다. 파일이나 커밋을 변경하지 않아요.두 조회 결과의 범위를 따로 읽기git diff --cached --name-status --diff-filter=Dgit diff --name-status --diff-filter=D첫 줄은 다음 커밋에 들어갈 스테이징 영역과 HEAD를 비교하고, 둘째 줄은 작업 디렉터리와 스테이징 영역을 비교해요. 삭제가 스테이징돼 있으면 첫 줄에서 D와 경로를 볼 수 있어요.이름이 바뀐 파일이 R로 감지되면 D 필터에 나오지 않아요. 이름 변경도 검토해야 한다면 --.. 2026. 11. 11.
SQLite에서 완료율을 계산할 때, 작업이 0건인 팀은 NULLIF로 구분해요 완료율 표에서 ‘한 건도 완료하지 못함’과 ‘작업이 한 건도 없음’을 구별하려면 분모가 0일 때 빈 값으로 계산하고, 표시에서 ‘대상 없음’으로 읽히게 하세요. SQLite에서 나눗셈 결과가 정수로 잘리는 것도 함께 피할 수 있어요.분모에 NULLIF, 분자에 실수 연산WITH teams(name, done, total) AS ( VALUES ('A', 1, 4), ('B', 0, 5), ('C', 0, 0))SELECT name, 100.0 * done / NULLIF(total, 0) AS pct FROM teams ORDER BY name;A는 25.0, B는 0.0, C는 NULL이에요. NULLIF는 두 인수가 같으면 NULL을 반환합니다. SQLite에서 0으로 나눈 결과도 NULL이지.. 2026. 11. 11.
Python pathlib에서 원본 옆에 보고서를 만들 때, with_name으로 파일명만 바꿔요 여러 폴더의 orders.csv 옆에 같은 폴더의 요약 파일을 만들어야 한다면 with_name으로 마지막 파일명만 바꿔 보세요. 지금 작업 폴더가 아니라 원본 경로가 있는 폴더를 기준으로 결과 이름을 계산할 수 있어요.부모 폴더와 파일명을 함께 확인from pathlib import PurePosixPathsource = PurePosixPath('inbox/shop-a/orders.csv')report = source.with_name(source.stem + '_summary.csv')print(report)print(report.parent == source.parent)출력은 inbox/shop-a/orders_summary.csv와 True예요. with_name은 새 경로 객체만 반환하므로 .. 2026. 11. 11.
JavaScript에서 통화 기호를 떼어 꾸미고 싶다면 formatToParts로 분리하세요 결제 화면에서 통화 기호만 스타일을 다르게 주고 싶을 때는 문자열의 첫 글자를 잘라 쓰기보다 Intl.NumberFormat의 formatToParts()를 써 보세요. 기호의 위치와 공백은 지역 설정에 따라 달라질 수 있어요.화면에 그대로 쓸 조각과 꾸밀 조각 확인const price = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD',});const parts = price.formatToParts(1234.5);console.log(parts.find(part => part.type === 'currency').value);console.log(parts.map(part => part.value).join(''));en-U.. 2026. 11. 11.
JavaScript에서 Array(3).map이 함수를 부르지 않을 때, Array.from으로 인덱스를 만들어요 1부터 3까지 번호를 만들려고 Array(3).map을 호출하면 콜백을 한 번도 부르지 않아요. Array(3)은 길이는 있지만 채워진 슬롯이 없는 배열이라서 map이 건너뜁니다.길이를 바탕으로 세 값을 만들기let calls = 0;Array(3).map(() => ++calls);console.log(calls);const numbers = Array.from({ length: 3 }, (_, index) => index + 1);console.log(JSON.stringify(numbers));출력은 0과 [1,2,3]이에요. Array.from에는 길이만 있는 배열 같은 객체를 주고, 변환 함수의 두 번째 인수인 인덱스를 사용했어요.이미 있는 배열을 복사하면서 빈 슬롯과 undefined를 구별해.. 2026. 11. 11.
SQLite에서 외래 키가 먹히지 않나요? 현재 연결의 foreign_keys 값을 확인하세요 테이블 정의에 REFERENCES가 있어도, 실제로 연결에서 외래 키 검사가 켜졌는지 확인해야 해요. 연결을 여러 개 쓰는 앱이라면 한 창에서 ON을 설정한 결과를 다른 연결에 그대로 기대할 수 없어요.새 연결을 열자마자 값을 읽고 설정해요PRAGMA foreign_keys = ON;PRAGMA foreign_keys;조회 결과가 1이면 그 연결에서 켜진 상태예요. 여러 줄을 하나의 트랜잭션에서 실행하는 도구에서는 BEGIN 전에 설정하세요. SQLite는 트랜잭션이 진행 중일 때 이 값을 바꾸려는 시도를 적용하지 않아요.이미 들어 있는 데이터도 확인해야 한다면 같은 연결에서 PRAGMA foreign_key_check를 실행해요. foreign_keys는 이후 쓰기에서 규칙을 적용하는 스위치이고, fo.. 2026. 11. 11.
반응형