SQL CASE WHEN 문: 구문, 실제 예 및 일반적인 실수
CASE WHEN은 SQL에서 if-then 논리를 작성하는 방법입니다. 두 가지 양식을 모두 익힌 다음 NULL 및 순서 지정 트랩을 피하면서 라벨, 피벗 스타일 보고서, 사용자 정의 정렬 및 안전한 업데이트에 사용하세요.
CASE은 참인 첫 번째 조건을 기반으로 값을 반환합니다.- 가장 구체적인 조건을 먼저 두십시오. 그렇지 않으면 나중 조건에 도달하지 못할 수도 있습니다.
ELSE이 없으면 일치하지 않는 행은NULL를 반환합니다.SUM또는COUNT내부에서 CASE는 하나의 쿼리를 간단한 피벗 스타일 보고서로 변환합니다.
대부분의 보고서에는 몇 가지 논리가 필요합니다. 즉, 주문에 크거나 작은 라벨을 지정하고, 지불된 주문과 보류 중인 주문을 나란히 계산하거나, 긴급 항목을 먼저 표시합니다. SQL CASE WHEN은 이 모든 것을 쿼리 내에서 직접 처리하며 모든 주요 데이터베이스에서 작동합니다.
우리는 SQLite 3.50에서 모든 쿼리를 실행했으며 표시된 결과는 해당 실행에서 나왔습니다. CASE는 표준 SQL의 일부이므로 이 예에서는 PostgreSQL, MySQL, SQL Server 및 Oracle에서 동일한 방식으로 작동합니다.
CASE WHEN은 무엇인가요?
CASE는 별도의 명령이 아닌 표현식입니다. 조건을 순서대로 평가하고 값을 반환하므로 SELECT, WHERE, GROUP BY, ORDER BY 또는 함수 내부 등 값이 허용되는 모든 위치로 이동할 수 있습니다. 항상 END로 끝납니다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE fallback
END
샘플 테이블
CREATE TABLE orders (id INT, customer TEXT, total INT, status TEXT);
INSERT INTO orders VALUES
(1,'Asha',1200,'paid'), (2,'Ben',300,'pending'),
(3,'Asha',800,'paid'), (4,'Chitra',2500,'shipped'),
(5,'Dev',150,'cancelled'), (6,'Ben',NULL,'pending');
주문 6에는 합계가 없습니다. 그 행은 나중에 중요합니다.
검색된 CASE
이는 각각의 WHEN이 자체적인 완전한 조건을 갖기 때문에 보다 유연한 형식입니다.
SELECT id, total,
CASE
WHEN total >= 1000 THEN 'large'
WHEN total >= 500 THEN 'medium'
ELSE 'small'
END AS size
FROM orders;
-- 1 | 1200 | large
-- 2 | 300 | small
-- 3 | 800 | medium
-- 4 | 2500 | large
-- 5 | 150 | small
-- 6 | NULL | small
마지막 행을 보세요. 주문 6에는 합계가 없지만 ‘소형’이라는 라벨이 지정되어 있습니다. NULL과의 비교는 모두 사실이 아니므로 ELSE에 해당합니다. NULL 섹션에서 이 문제를 해결하는 방법을 보여줍니다. 항상 AS를 사용하여 결과에 이름을 지정하십시오. 그렇지 않으면 어색한 열 이름이 나올 수 있습니다.
간단한 사례
한 열을 고정 값과 비교할 때 더 짧은 형식이 더 잘 읽힙니다.
SELECT id,
CASE status
WHEN 'paid' THEN 'Complete'
WHEN 'shipped' THEN 'Complete'
WHEN 'pending' THEN 'Waiting'
END AS label
FROM orders;
-- 1 | Complete
-- 2 | Waiting
-- 3 | Complete
-- 4 | Complete
-- 5 | NULL
-- 6 | Waiting
| 양식 | 비교하다 | 범위를 사용할 수 있나요? | 다음에 가장 적합 |
|---|---|---|---|
| 단순 | 평등을 나타내는 한 가지 표현 | 아니요 | 코드를 라벨에 매핑 |
| 검색됨 | 지점당 모든 조건 | 예 | 범위, 다중 열, NULL 검사 |
주문 문제
CASE는 첫 번째 true 조건에서 중지되며 이는 가장 일반적인 논리 버그입니다. 이전 쿼리의 두 조건을 바꿉니다.
SELECT id, total,
CASE
WHEN total >= 500 THEN 'medium'
WHEN total >= 1000 THEN 'large'
ELSE 'small'
END AS size
FROM orders WHERE id IN (1, 4);
-- 1 | 1200 | medium
-- 4 | 2500 | medium
이제 그 어떤 것도 “큰” 일이 될 수 없습니다. 총 2500도 최소 500이므로 첫 번째 분기가 승리하고 두 번째 분기에는 도달하지 않습니다. 오류는 나타나지 않고 잘못된 레이블만 나타납니다. 범위의 경우 가장 제한적인 조건을 먼저 입력하거나 total >= 500 AND total < 1000과 같이 전체 범위를 작성하세요.
ELSE가 없으면 어떻게 되나요?
위의 간단한 CASE 예에서는 주문 5가 취소되었으며 이를 처리한 분기가 없으므로 결과는 NULL입니다. 다음 섹션에서 볼 수 있듯이 때로는 이것이 정확히 원하는 것일 수도 있습니다. 그러나 레이블을 작성할 때 일반적으로 명확한 ELSE 'other'가 더 좋습니다. 보고서에 공백을 두는 것보다 예상치 못한 값을 표시하기 때문입니다.
팁: 모든 브랜치는 동일한 유형을 반환해야 합니다. 텍스트와 숫자를 혼합하는 것은 SQLite에서 느슨하게 작동하지만 PostgreSQL과 같은 더 엄격한 데이터베이스에서는 오류가 발생하거나 의도하지 않은 방식으로 값을 변환하려고 시도합니다.
SUM을 사용한 피벗 스타일 보고서
이는 일상적인 SQL에서 가장 유용한 패턴 중 하나입니다. CASE를 집계로 래핑하면 행이 열로 바뀌며 고객당 한 행이 포함됩니다.
SELECT customer,
SUM(CASE WHEN status = 'paid' THEN total ELSE 0 END) AS paid,
SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) AS pending_orders
FROM orders
GROUP BY customer
ORDER BY customer;
-- Asha | 2000 | 0
-- Ben | 0 | 2
-- Chitra | 0 | 0
-- Dev | 0 | 0
이제 하나의 쿼리로 별도의 쿼리나 조인이 필요 없이 유료 수익과 보류 중인 주문 수를 모두 제공합니다. 이 패턴은 일부 데이터베이스에서만 제공되는 전용 PIVOT 구문과 달리 거의 모든 데이터베이스에서 작동합니다. GROUP BY가 처음이라면 SQL GROUP BY 및 HAVING을 읽어보세요.
조건부 개수
COUNT은 NULL을 건너뛰므로 ELSE가 없는 CASE는 일치하는 행만 계산합니다.
SELECT COUNT(*) AS all_orders,
COUNT(CASE WHEN status = 'paid' THEN 1 END) AS paid_orders,
COUNT(CASE WHEN total >= 1000 THEN 1 END) AS large_orders
FROM orders;
-- 6 | 2 | 2
주의하세요: COUNT 안에 ELSE 0을 추가하면 0은 NULL이 아니기 때문에 모든 행이 계산됩니다. SUM에는 ELSE 0을 사용하고 COUNT에는 사용하지 마세요. PostgreSQL과 SQLite도 COUNT(*) FILTER (WHERE ...)을 지원하는데, 읽기는 좋지만 모든 곳에서 사용할 수 있는 것은 아닙니다.
CASE별로 그룹화
자신만의 버킷을 생성한 후 요약할 수 있습니다.
SELECT CASE WHEN total >= 1000 THEN 'large' ELSE 'other' END AS bucket,
COUNT(*)
FROM orders
GROUP BY bucket
ORDER BY bucket;
-- large | 2
-- other | 4
별칭별 그룹화는 SQLite, PostgreSQL 및 MySQL에서 작동합니다. SQL Server에서는 이를 허용하지 않으므로 전체 식을 반복하거나 쿼리를 CTE 또는 하위 쿼리에 먼저 넣어야 합니다.
ORDER BY를 사용한 사용자 정의 정렬
알파벳 순서는 기업이 원하는 경우가 거의 없습니다. CASE를 사용하면 자신만의 순서를 정의할 수 있습니다.
SELECT id, status FROM orders
ORDER BY CASE status
WHEN 'pending' THEN 1
WHEN 'paid' THEN 2
ELSE 3
END, id;
-- 2 | pending
-- 6 | pending
-- 1 | paid
-- 3 | paid
-- 4 | shipped
-- 5 | cancelled
보류 중인 주문이 먼저 나오므로 작업 대기열에 편리합니다. 두 번째 정렬 열인 id은 각 그룹 내에서 예측 가능한 순서로 행을 유지합니다.
업데이트된 사례
CASE를 사용하면 하나의 문이 다른 행에 다른 변경 사항을 적용할 수 있습니다. 여기서는 소액 보류 주문이 검토 대상으로 표시됩니다.
UPDATE orders
SET status = CASE
WHEN status = 'pending' AND total < 500 THEN 'review'
ELSE status
END;
SELECT id, status FROM orders WHERE customer = 'Ben';
-- 2 | review
-- 6 | pending
ELSE status은 다른 행을 변경하지 않고 유지합니다. 이를 그대로 두면 위험합니다. 일치하지 않는 행은 NULL로 설정되기 때문입니다. WHERE 절이 없으면 이 문은 모든 행에도 적용되므로 큰 테이블에서는 필터를 추가하고 커밋하기 전에 결과를 확인할 수 있도록 트랜잭션에서 변경 사항을 래핑하는 것을 고려하세요. 또한 주문 6은 NULL 합계가 total < 500를 충족하지 않았기 때문에 변경되지 않았습니다.
NULL 트랩
NULL은 CASE에 두 가지 별도의 문제를 발생시킵니다. 첫째, 간단한 형식은 같음을 사용하여 비교하며 NULL 자체는 물론 NULL과도 같지 않습니다.
SELECT CASE NULL WHEN NULL THEN 'matched' ELSE 'not matched' END;
-- not matched
따라서 CASE col WHEN NULL은 일치하지 않습니다. 대신 IS NULL로 검색된 양식을 사용하세요. 둘째, 순서 6에서 본 것처럼 NULL 값은 비교를 통과하여 ELSE에 들어갑니다. 해결 방법은 먼저 확인하는 것입니다.
SELECT id,
CASE
WHEN total IS NULL THEN 'unknown'
WHEN total >= 1000 THEN 'large'
ELSE 'other'
END AS size
FROM orders WHERE id IN (1, 2, 6);
-- 1 | large
-- 2 | other
-- 6 | unknown
이제 주문 6에 정직한 라벨이 붙습니다. SQL NULL 값에 대한 가이드에서는 이 동작을 전체적으로 다루고 있습니다.
CASE와 다른 옵션
| 옵션 | 다음에서 근무 | 다음과 같은 경우에 사용하세요. |
|---|---|---|
사례 |
모든 주요 데이터베이스 | 이식 가능한 논리를 원합니다 |
합체하다 |
모든 주요 데이터베이스 | NULL에 대한 대체만 필요합니다. |
IF() |
MySQL | 간단한 양방향 선택 |
IIF() |
SQL 서버, SQLite | 간단한 양방향 선택 |
DECODE() |
오라클 | 이전 Oracle 코드 |
| 조회 테이블 | 모두 | 매핑이 길거나 자주 변경됩니다. |
마지막 옵션은 생각해 볼 가치가 있습니다. CASE가 30개의 분기로 늘어나고 5개의 쿼리에 나타나는 경우 매핑을 테이블로 이동하고 테이블에 조인합니다. 그러면 변경은 5개 위치의 코드 변경이 아니라 단일 행 업데이트입니다.
일반적인 실수
- 잘못된 조건 순서. 넓은 조건은 먼저 좁은 조건을 숨깁니다.
- 잊어버림
END. 가장 자주 발생하는 구문 오류입니다. WHEN NULL를 사용합니다. 일치하지 않으므로WHEN col IS NULL을 사용합니다.COUNT안에ELSE 0를 추가합니다. 모든 행의 개수를 계산합니다.- 업데이트에서
ELSE를 생략합니다. NULL로 값을 지울 수 있습니다. WHERE의 CASE를 기준으로 필터링합니다. 인덱스 사용을 중지할 수 있습니다. SQL 쿼리 최적화에 대한 가이드를 참조하세요.
마무리
CASE WHEN은 많은 작업을 수행하는 작은 기능입니다. 세 가지 규칙을 기억하십시오. 첫 번째 실제 분기가 승리하고, 일치하지 않는 행은 ELSE 없이 NULL이 되며, NULL에는 자체 검사가 필요합니다. 연습하려면 현재 여러 쿼리로 작성하고 있는 보고서를 SUM(CASE ...)를 사용하여 하나의 쿼리로 생성해 보세요.
자주 묻는 질문
CASE WHEN은 SQL에서 무엇을 합니까?
쿼리에 if-then 논리를 추가합니다. SQL은 각 조건을 순서대로 확인하고 참인 첫 번째 값을 반환하거나, 참이 아닌 경우 ELSE 값을 반환합니다.
CASE 문에 ELSE가 없으면 어떻게 되나요?
조건과 일치하지 않는 행은 NULL을 반환합니다. 이는 COUNT 내에서 유용하지만 레이블 및 업데이트에서는 공백이 생기거나 데이터가 손실될 수 있습니다.
WHERE 절에 CASE를 사용할 수 있나요?
응, 표현이니까. 그러나 일반 AND 및 OR 조건은 일반적으로 더 명확하며 인덱스를 사용할 가능성이 더 높습니다.
단순 CASE와 검색 CASE의 차이점은 무엇인가요?
단순 CASE는 하나의 표현식을 고정 값과 비교하여 동일한지 확인합니다. 검색된 CASE에는 WHEN마다 전체 조건이 있으므로 범위 및 NULL 검사를 처리할 수 있습니다.
CASE 문을 중첩할 수 있나요?
예, CASE는 다른 CASE 안에 나타날 수 있습니다. 하지만 깊은 중첩은 읽기 어렵기 때문에 조건을 AND로 결합하거나 조회 테이블을 사용하는 것을 고려해 보세요.
계속 학습하세요
테스트, WordPress 또는 SEO에 도움이 필요하십니까?
우리는 팀이 더 나은 소프트웨어를 출시하고 사이트를 성장시킬 수 있도록 돕습니다. 현재 진행 중인 작업을 알려주시면 명확한 다음 단계를 제안해 드리겠습니다.
추가 가이드 테스트, AI 및 최신 개발
이 기사가 마음에 드셨나요? 주제를 선택하고 최신 튜토리얼로 바로 이동하세요.
AI 환각 설명: 언어 모델이 사물을 구성하는 이유와 이를 줄이는 방법
AI 환각은 그것이 무엇인지, 언어 모델이 환각을 생성하는 이유, 일반적인 유형, 접지 및 프롬프트를 통해 환각을 줄이는 방법, 그리고 우리가 실행한 간단한 점검에 대해 설명했습니다.
기사 읽기 →DevOps환경 변수 설명: .env 파일, 비밀 및 구성이 올바르게 완료되었습니다.
우리가 실행한 Python 예제를 통해 설명된 환경 변수: 읽기 및 설정, 모든 값이 문자열인 이유, .env 파일, 프로세스 상속, 비밀 및 유효성 검사.
기사 읽기 →소프트웨어 개발API 속도 제한 설명: 알고리즘, 헤더 및 429 오류 처리
우리가 실행한 시뮬레이션을 통해 설명된 API 속도 제한: 토큰 버킷, 고정 창, 슬라이딩 창, 429 응답, 속도 제한 헤더, 백오프를 사용한 재시도 및 테스트 제한.
기사 읽기 →테스트 자동화Python에서 조롱: unittest.mock, 패치 및 테스트를 거짓말로 만드는 실수
Unittest.mock을 사용하여 Python에서 모의, 테스트됨: 모의 및 return_value, 부작용, 이름이 사용되는 패치, 사양 및 자동 사양, 모의 날짜 및 일반적인 실수.
기사 읽기 →소프트웨어 테스트코드 커버리지 설명: 회선 커버리지와 분기 커버리지 및 100%의 실제 의미
실제 Coverage.py 실행을 통해 설명되는 코드 적용 범위: 라인, 분기 및 조건 적용 범위, 보고서 읽기, 100% 적용 범위가 여전히 버그를 놓칠 수 있는 이유 및 합리적인 대상.
기사 읽기 →데이터베이스 및 SQLSQL의 DELETE vs TRUNCATE vs DROP: 차이점, 롤백 및 사용 시기
테스트된 SQL을 통해 DELETE 대 TRUNCATE 대 DROP에 대해 설명합니다. 각각의 제거, 롤백, 트리거, ID 재설정, 속도 및 PostgreSQL, MySQL, SQL Server 및 SQLite의 차이점.
기사 읽기 →데이터베이스 및 SQLSQL 뷰 설명: 예제를 통해 함정 생성, 사용 및 방지
우리가 실행한 쿼리로 설명된 SQL 뷰: 뷰 생성, 실시간 결과, 열 숨기기, 성능, 업데이트 가능하고 구체화된 뷰, 손상된 종속성 및 모범 사례.
기사 읽기 →소프트웨어 개발TypeScript 인터페이스와 유형: 실제 차이점, 컴파일러로 테스트
TypeScript 인터페이스 대 유형, 실제 컴파일러로 확인: 둘 다 할 수 있는 것, 하나만 할 수 있는 것, 선언 병합, 확장 대 교차점 및 따라야 할 간단한 규칙.
기사 읽기 →소프트웨어 개발Python *args 및 **kwargs 설명: 명확한 예가 포함된 유연한 함수
Python *args 및 **kwargs는 우리가 실행한 코드(패킹 및 언패킹, 매개변수 순서, 키워드 전용 및 위치 전용 인수, 데코레이터 및 일반적인 오류)를 설명했습니다.
기사 읽기 →소프트웨어 개발Python Lambda 함수: 구문, 실제 사용 및 사용하지 말아야 할 경우
Python 람다 함수는 구문, 키를 사용한 정렬, 맵 및 필터, 클로저, 후기 바인딩 트랩, 일반 def가 더 나은 선택인 경우 등 우리가 실행한 코드로 설명되었습니다.
기사 읽기 →인공지능AI 에이전트란 무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음
AI 에이전트란 무엇입니까? 우리가 실행한 작은 Python 루프, 실제 위험 및 간단한 챗봇이 더 나은 선택일 때 에이전트 루프, 도구, 메모리 및 가드레일에 대한 일반 가이드입니다.
기사 읽기 →DevOps모니터링과 관찰 가능성: 로그, 지표, 추적을 통한 실제 차이점
모니터링과 관찰 가능성 설명: 알려진 오류와 알려지지 않은 오류, 로그, 지표 및 추적, 결제 사건 안내, 골든 신호, OpenTelemetry 및 유용한 경고.
기사 읽기 →DevOpsDocker 볼륨과 바인딩 마운트: 컨테이너 데이터를 올바른 방식으로 유지
Docker 볼륨과 바인드 마운트 설명: 컨테이너 데이터가 사라지는 이유, 명명된 볼륨, 바인드 마운트, tmpfs, Compose 예제, 백업, 권한 및 각 사용 시기.
기사 읽기 →테스트 자동화TDD와 BDD: 주요 차이점, 두 가지 방식으로 구축된 하나의 기능 및 각 사용 시기
TDD와 BDD는 두 가지 방식으로 구축된 하나의 할인 기능, 즉 우리가 실행한 코드를 사용한 적록 리팩토링, 주어진 시점 시나리오, 도구, 장단점 및 각 사용 시기를 설명합니다.
기사 읽기 →소프트웨어 테스트UAT(사용자 승인 테스트): 프로세스, 체크리스트 및 실제 사례
사용자 승인 테스트는 누가 실행하는지, QA와 어떻게 다른지, 7단계 프로세스, UAT 테스트 사례 템플릿, 체크리스트, 승인 기준 및 일반적인 실수에 대해 설명했습니다.
기사 읽기 →데이터베이스 및 SQLSQL NULL 값 설명: IS NULL, COALESCE, NULLIF 및 피해야 할 함정
우리가 실행한 쿼리를 통해 설명된 SQL NULL 값: 3개 값 논리, IS NULL, COALESCE, NULLIF, 집계, 조인 및 정렬이 NULL을 처리하는 방법 및 조용히 발생하는 버그.
기사 읽기 →데이터베이스 및 SQLSQL CASE WHEN 문: 구문, 실제 예 및 일반적인 실수
우리가 실행한 쿼리로 설명된 SQL CASE: 단순 및 검색 양식, 조건 순서, SUM이 있는 피벗, COUNT 트릭, 사용자 정의 정렬, 업데이트 및 피해야 할 NULL 트랩.
기사 읽기 →소프트웨어 개발JWT란 무엇입니까? 실제 예제로 설명되는 JSON 웹 토큰
JWT란 무엇입니까? JSON 웹 토큰은 세 부분, 즉 우리가 실행한 코드에서 구축 및 변조된 토큰, JWT 대 세션, 저장소, 새로 고침 토큰 및 보안 실수를 설명했습니다.
기사 읽기 →소프트웨어 개발JavaScript 이벤트 루프 설명: 예제가 포함된 호출 스택, 마이크로태스크 및 타이머
호출 스택, 작업 및 마이크로태스크 대기열, setTimeout 0이 즉시 실행되지 않는 이유, 차단, 기아 및 인터뷰 퀴즈 등 우리가 실행한 코드로 JavaScript 이벤트 루프를 설명했습니다.
기사 읽기 →소프트웨어 개발Python 생성기 및 수율 설명: 실제 예제로 메모리 절약
Python 생성기와 항복은 우리가 실행한 코드로 설명됩니다. 일시 중지 및 재개 방법, 측정된 메모리 절약, 파이프라인, 무한 시퀀스, 항복, 전송 및 공통 트랩.
기사 읽기 →인공지능임베딩이란 무엇입니까? 벡터와 코사인 유사성을 간단하게 설명
임베딩이란 무엇입니까? 벡터, 코사인 유사성 및 의미론적 검색에 대한 일반 언어 가이드로, 우리가 실행한 작은 예, 일반적인 용도, 모델 선택 및 알려진 한계를 제공합니다.
기사 읽기 →DevOps블루-그린 배포와 카나리아 배포: 차이점, 장단점 및 선택 방법
블루-그린 배포와 카나리아 배포에 대한 설명: 각각의 작동 방식, 비용, 위험 및 롤백, 테스트한 안정적인 사용자 버킷팅, 데이터베이스 마이그레이션, 롤링 업데이트 및 선택 방법.
기사 읽기 →테스트 자동화불안정한 테스트: 원인과 해결 방법
우리가 실행한 데모를 통해 불안정한 테스트에 대해 설명했습니다. 주요 원인, 확인 및 진단 방법, 시기, 공유 상태 및 날짜, 격리 프로세스에 대한 적절한 수정 사항.
기사 읽기 →소프트웨어 테스트부하 테스트와 스트레스 테스트 비교: 차이점, 측정항목 및 k6 예
부하 테스트와 스트레스 테스트 비교 설명: 각각의 증명, 스파이크 및 흡수 테스트, 중요한 측정항목, 평균이 잘못된 이유, k6 예 및 테스트 계획 방법.
기사 읽기 →소프트웨어 테스트테스트 케이스와 테스트 시나리오: 주요 차이점, 예 및 각각의 사용 시기
테스트 케이스와 테스트 시나리오 설명: 명확한 정의, 병렬 테이블, 시나리오에서 케이스로 가져온 하나의 비밀번호 재설정 기능, 템플릿 및 각 사용 시기.
기사 읽기 →데이터베이스 및 SQLSQL 쿼리 최적화: 타이밍에 따라 실행 계획을 읽고 느린 쿼리를 수정합니다.
백만 개의 행에서 테스트된 SQL 쿼리 최적화: 실행 계획 읽기, 올바른 인덱스 추가, 분할할 수 없는 필터 수정, 복합 인덱스 및 키 세트 페이지 매김 사용.
기사 읽기 →데이터베이스 및 SQLSQL UNION 대 UNION ALL: 테스트된 차이점, 예 및 성능
SQL UNION과 UNION ALL은 우리가 실행한 쿼리(중복, 둘 다 따르는 규칙, 실제 데이터 버그, 측정된 성능, INTERSECT 및 EXCEPT, 각각의 사용 시기)를 설명합니다.
기사 읽기 →소프트웨어 개발JavaScript Fetch API 튜토리얼: GET, POST, 오류 처리 및 시간 초과
로컬 서버에 대해 테스트된 JavaScript Fetch API 튜토리얼: GET 및 POST, 404가 발생하지 않는 이유, 재사용 가능한 도우미, 쿼리 문자열, 시간 초과, CORS 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Python 파일 처리: 읽기, 쓰기, CSV, JSON 및 pathlib 예제 포함
우리가 실행한 코드로 설명된 Python 파일 처리: 개방형 모드, 대용량 파일 읽기, CSV, JSON, pathlib, 바이너리 파일, 안전한 쓰기, 오류 처리 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Git merge vs rebase: 차이점, 예제, 언제 무엇을 쓸까
Git merge vs rebase를 실제 로그 출력, 비교표, rebase의 황금률, 안전한 팀 워크플로로 설명합니다.
기사 읽기 →소프트웨어 개발파이썬 리스트 컴프리헨션: 문법, 예제, 피해야 할 때
파이썬 리스트 컴프리헨션 설명: 문법, 필터링, if-else, 중첩 반복문, 실제 측정 시간, 그리고 일반 for 반복문이 더 나은 경우.
기사 읽기 →데이터베이스 및 SQL예제로 쉽게 배우는 SQL JOIN (Inner, Left, Right, Full)
샘플 테이블과 쿼리로 SQL JOIN을 단계별로 이해하세요. INNER, LEFT, RIGHT, FULL, CROSS, SELF와 흔한 실수, 성능 팁까지 정리했습니다.
기사 읽기 →