SQL UNION 대 UNION ALL: 차이점, 예 및 성능 테스트됨
둘의 차이는 한 단어이지만, 잘못 선택하면 자동으로 잘못된 합계가 나올 수 있습니다. 실제 데이터에서 두 가지를 모두 확인하고, 공유하는 규칙을 알아보고, 백만 개의 행에서 시간을 측정했을 때 무슨 일이 일어났는지 읽어보세요.
UNION결과를 결합하고 중복 행을 제거합니다.UNION ALL모든 행을 유지합니다.- 비용 중복 제거가 작동하므로 일반적으로
UNION ALL이 계산 속도가 더 빠릅니다. SUM앞에UNION을 사용하면 실제 값이 자동으로 제거되어 잘못된 답이 나올 수 있습니다.- 중복 항목을 특별히 제거하려는 경우가 아니면 기본값은
UNION ALL입니다.
두 연산자 모두 두 쿼리의 결과를 서로 쌓기 때문에 SQL UNION과 UNION ALL은 사소한 선택처럼 보일 수 있습니다. 그렇지 않습니다. 추가 단어 하나가 결과와 데이터베이스 작동 강도를 모두 변경합니다.
여기 SQLite 3.50에서 모든 쿼리를 실행했으며 표시된 결과와 타이밍은 해당 실행에서 나온 것입니다. 기본 동작은 주요 데이터베이스 전반의 표준 SQL입니다. 그러나 타이밍은 사용자의 데이터베이스, 데이터 및 하드웨어에 따라 다를 수 있으므로 예시로 여기십시오.
짧은 대답
UNION 두 개의 결과 세트를 결합하고 고유한 행만 반환합니다. UNION ALL는 그것들을 결합하고 중복을 포함한 모든 것을 반환합니다. 이것이 전체적인 차이점이며, 이 기사의 나머지 부분에서는 이것이 왜 중요한지에 대해 설명합니다.
UNION 대 UNION ALL 나란히
| 측면 | 유니온 | 유니온 올 |
|---|---|---|
| 중복된 행 | 삭제됨 | 유지 |
| 추가 작업 | 중복된 항목을 찾아야 함 | 없음 |
| 평소 속도 | 느리게 | 더 빠르게 |
| 반환된 행 | 같거나 더 적음 | 그들 모두 |
| SUM 또는 COUNT 이전에는 안전합니까? | 종종 그렇지 않음 | 예 |
| 다음에 가장 적합 | 고유 목록 | 데이터, 로그, 합계 병합 |
샘플 데이터
온라인 주문과 매장 내 주문을 별도의 테이블에 보관하는 매장을 상상해 보세요. Asha는 두 개의 동일한 온라인 주문과 하나의 동일한 매장 주문을 가지고 있습니다.
CREATE TABLE online_orders (customer TEXT, total INT);
CREATE TABLE store_orders (customer TEXT, total INT);
INSERT INTO online_orders VALUES ('Asha',100), ('Ben',200), ('Asha',100);
INSERT INTO store_orders VALUES ('Asha',100), ('Dev',300);
차이점 보기
SELECT customer, total FROM online_orders
UNION
SELECT customer, total FROM store_orders;
-- Asha | 100
-- Ben | 200
-- Dev | 300
SELECT customer, total FROM online_orders
UNION ALL
SELECT customer, total FROM store_orders;
-- Asha | 100
-- Ben | 200
-- Asha | 100
-- Asha | 100
-- Dev | 300
5개의 입력 행이 UNION로 3개가 되었고, 5개 모두 UNION ALL에 그대로 유지되었습니다. 주목해야 할 두 가지 사항:
UNION첫 번째 테이블 내의 항목을 포함하여 전체 결과에서 중복 항목을 제거했습니다. 단순히 테이블을 비교하는 것이 아닙니다.- 행은 선택한 모든 열이 일치하는 경우에만 중복으로 간주됩니다.
정말로 별개의 목록을 원한다면 UNION이 딱 맞습니다. 이는 두 채널 중 하나를 통해 구매한 모든 고객에게 다음을 제공합니다.
SELECT customer FROM online_orders
UNION
SELECT customer FROM store_orders;
-- Asha
-- Ben
-- Dev
잘못된 전체 버그
이것이 선택이 정말로 중요한 이유입니다. 총 수익을 원한다고 가정해 보겠습니다. 위의 주문을 합하면 800이 됩니다. 각 연산자가 제공하는 내용을 확인하세요.
SELECT SUM(total) FROM (
SELECT total FROM online_orders
UNION
SELECT total FROM store_orders
);
-- 600
SELECT SUM(total) FROM (
SELECT total FROM online_orders
UNION ALL
SELECT total FROM store_orders
);
-- 800
UNION 버전이 200만큼 틀렸습니다. total 열만 선택했기 때문에 3개의 개별 100루피 주문이 중복되어 하나로 축소되었습니다. 오류 메시지도 없으며 600은 완벽하게 믿을 수 있는 숫자처럼 보입니다. 이러한 유형의 조용한 버그는 몇 달 동안 재무 보고서에 남아 있을 수 있습니다.
팁: 동일하게 보이는 두 개의 행이 두 개의 실제 이벤트일 수 있습니다. UNION를 사용하기 전에 동일한 행이 두 번 기록된 동일한 사실을 의미하는지, 아니면 두 개의 다른 사실을 의미하는지 물어보세요. 판매, 결제, 로그 항목의 경우 일반적으로 두 번째입니다.
둘 다 따라야 하는 규칙
두 연산자 모두 동일한 요구 사항을 갖습니다.
- 각
SELECT은 동일한 수의 열을 반환해야 합니다. - 열은 이름이 아닌 위치로 일치하므로 동일한 순서로 유지하세요.
- 각 위치의 데이터 유형은 호환되어야 합니다.
- 결과 열 이름은 첫 번째
SELECT에서 나옵니다. ORDER BY은 맨 마지막에 오고 전체 결과에 적용됩니다.
첫 번째 규칙을 위반하면 오류가 발생합니다. SQLite의 메시지는 다음과 같습니다.
SELECT customer, total FROM online_orders
UNION
SELECT customer FROM store_orders;
-- SELECTs to the left and right of UNION do not have
-- the same number of result columns
두 번째 규칙은 오류 없이 실패할 수 있으므로 더 위험합니다. first_name, last_name 등 동일한 유형의 두 열을 서로 바꾸면 쿼리가 실행되고 데이터가 잘못 출력됩니다. SQLite는 유형에 대해서도 완화된 반면 PostgreSQL과 같은 데이터베이스는 더 엄격하며 명시적인 유형이 필요할 수 있습니다CAST.
소스 라벨 지정
매우 실용적인 방법은 각 행의 출처를 표시하는 상수 열을 추가하는 것입니다. 레이블이 다르기 때문에 서로 다른 테이블의 행은 더 이상 서로 중복된 것으로 처리될 수 없습니다.
SELECT customer, total, 'online' AS channel FROM online_orders
UNION ALL
SELECT customer, total, 'store' FROM store_orders
ORDER BY customer, channel;
-- Asha | 100 | online
-- Asha | 100 | online
-- Asha | 100 | store
-- Ben | 200 | online
-- Dev | 300 | store
데이터에 라벨이 있으면 GROUP BY를 사용하여 채널별로 판매를 보고하도록 그룹화할 수 있습니다. 여러 단계를 결합해야 하는 경우 결합을 CTE로 묶어 읽기 쉽도록 유지하세요.
성능: 테스트에서 발생한 일
중복 항목을 제거하려면 데이터베이스는 일반적으로 행을 정렬하거나 해싱하여 행을 비교해야 합니다. UNION ALL은 이 단계를 건너뛸 수 있습니다. 우리는 0부터 50,000까지의 임의의 숫자를 포함하는 각각 500,000개의 행을 포함하는 두 개의 테이블을 만들었기 때문에 중복된 항목이 많았습니다. 각 쿼리를 여러 번 실행하여 최적의 시간을 유지했습니다.
먼저, 프로그램으로 행을 다시 보내는 데 소요된 시간이 비교에 영향을 미치지 않도록 결과를 계산했습니다.
| COUNT(*)로 래핑된 쿼리 | 행 | 최고의 시간 |
|---|---|---|
| 유니온 | 50,001 | 261ms |
| 유니온 올 | 1,000,000 | 1ms 미만 |
큰 격차는 부분적으로 SQLite가 모든 행을 읽지 않고도 해당 개수를 계산할 수 있기 때문에 발생하므로 “수천 배 더 빠르다”고 읽지 마십시오. 그러나 이는 핵심 아이디어를 보여줍니다. UNION은 실제 작업을 수행해야 했지만 UNION ALL는 수행하지 않았습니다.
그런 다음 모든 행을 Python으로 가져왔고 결과가 반전되었습니다.
| 쿼리, 모든 행 가져오기 | 반환된 행 | 최고의 시간 |
|---|---|---|
| 유니온 | 50,001 | 277ms |
| 유니온 올 | 1,000,000 | 392ms |
여기서 UNION ALL은 20배 많은 행을 전달했기 때문에 시간이 더 오래 걸렸습니다. 속도를 늦추는 것은 중복 제거 때문이 아닙니다. 백만 개의 행을 처리했습니다. 따라서 정직한 규칙은 UNION ALL가 데이터베이스 계산에 더 저렴하지만 결과의 크기도 중요하다는 것입니다. 온라인의 많은 차트에서는 이를 “UNION ALL이 항상 더 빠릅니다”로 축소하고 있으며, 우리의 테스트에서는 이것이 왜 그렇게 간단하지 않은지 보여줍니다.
속도만을 기준으로 선택하지 마십시오. 먼저 정답을 제시하는 연산자를 선택한 다음 튜닝하세요. 쿼리가 느린 경우 SQL 쿼리 최적화 가이드를 읽어보세요.
각각을 사용하는 경우
다음과 같은 경우 UNION ALL을 사용하세요.
- 월별 파티션과 같은 유사한 테이블의 데이터를 병합하고 있습니다.
- 나중에 총계나 개수를 계산하게 됩니다.
- 입력이 겹칠 수 없다는 것을 알고 있습니다.
- 중복은 로그나 감사 기록과 마찬가지로 의미가 있습니다.
다음과 같은 경우 UNION을 사용하세요.
- 두 시스템의 모든 이메일 주소와 같은 고유한 목록이 필요합니다.
- 겹치는 소스에는 동일한 사실이 두 번 이상 포함되어 있습니다.
UNION ALL을 기본값으로 취급하고 의도적으로 UNION를 사용하십시오. 조기에 필터링하기 위해 각 분기에 WHERE 절을 추가하면 두 가지 모두에 도움이 됩니다.
교차 및 제외
관련된 두 집합 연산자가 서로 다른 질문에 답합니다. 둘 다 동일한 열 규칙을 따릅니다.
SELECT customer FROM online_orders
INTERSECT
SELECT customer FROM store_orders;
-- Asha (bought in both channels)
SELECT customer FROM online_orders
EXCEPT
SELECT customer FROM store_orders;
-- Ben (online only)
Oracle은 전통적으로 EXCEPT 대신 MINUS을 사용했으며 이러한 연산자에 대한 지원은 데이터베이스 및 버전에 따라 조금씩 다릅니다.
UNION 대 JOIN
이는 종종 혼동되지만 데이터를 서로 다른 방향으로 결합합니다.
| 작동 | 방향 | 결과 |
|---|---|---|
| 유니온 | 수직 | 더 많은 행을 추가합니다. |
| 가입 | 수평 | 더 많은 열을 추가합니다. |
일반적인 실수
- 습관적으로 UNION을 사용합니다. 속도가 저하되거나 유효한 행이 제거될 수 있습니다.
- 열을 너무 적게 선택했습니다. ID를 생략하면 개별 행이 동일하게 보입니다.
- 열 순서가 일치하지 않습니다. 값이 오류 없이 잘못된 열에 배치될 수 있습니다.
- 각 분기에 ORDER BY를 추가합니다. 마지막에 한 번 정렬합니다.
- UNION을 사용하여 잘못된 조인을 패치합니다. 조인으로 인해 중복이 나타나면 조인을 수정합니다.
- 결과 순서를 가정합니다.
ORDER BY가 없으면 두 연산자 모두에 대해 행 순서가 보장되지 않습니다.
마무리
매번 하나의 질문을 하십시오. 동일한 행이 동일한 사실입니까, 아니면 별도의 사실입니까? 분리되어 있거나 중복이 불가능한 경우에는 UNION ALL을 사용하세요. 고유한 목록이 필요한 경우 UNION를 사용하세요. 자신의 보고서를 확인하려면 코드에서 SUM 또는 COUNT 근처에 있는 UNION을 검색하여 해당 합계가 실제로 올바른지 확인하세요.
자주 묻는 질문
UNION과 UNION ALL의 차이점은 무엇입니까?
UNION은 두 개의 결과 세트를 결합하고 중복 행을 제거합니다. UNION ALL은 이를 결합하고 중복을 포함하여 모든 행을 유지합니다.
UNION과 UNION ALL 중 어느 것이 더 빠릅니까?
UNION ALL은 중복을 확인하지 않기 때문에 일반적으로 계산 비용이 더 저렴합니다. 테스트에서 알 수 있듯이 훨씬 더 큰 결과를 반환하는 데는 전체적으로 더 오랜 시간이 걸릴 수 있습니다.
UNION은 한 테이블 내에서 중복을 제거합니까?
예. 동일한 테이블에서 나온 동일한 행을 포함하여 전체 결합 결과에서 중복 항목을 제거합니다.
UNION에서는 열 이름이 일치해야 합니까?
아니요. 열은 위치에 따라 일치하며 결과는 첫 번째 SELECT의 이름을 사용합니다. 열 개수가 일치해야 하며 유형이 호환되어야 합니다.
UNION과 함께 ORDER BY를 사용할 수 있나요?
예, 하지만 명령문 맨 끝에 ORDER BY를 하나 입력하세요. 단일 분기가 아닌 전체 결합 결과를 정렬합니다.
계속 학습하세요
테스트, 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, 바이너리 파일, 안전한 쓰기, 오류 처리 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Python 클래스 및 객체: 실제 예제가 포함된 OOP 튜토리얼
우리가 실행한 코드로 설명된 Python 클래스와 객체: __init__, 메소드, 클래스 대 인스턴스 속성, 상속, 속성, 던더 메소드, 데이터 클래스 및 일반적인 실수.
기사 읽기 →인공지능대규모 언어 모델이란 무엇입니까? LLM의 작동 방식, 과대광고 없이 설명
대규모 언어 모델이란 무엇입니까? LLM은 토큰, 임베딩, 주의, 훈련, 온도 및 컨텍스트 창, 작은 다음 단어 데모 및 실제 한계 등 일반 언어로 설명됩니다.
기사 읽기 →DevOps초보자를 위한 Linux 명령: 예제가 포함된 필수 터미널 가이드
탐색, 파일, 로그 보기, grep, 파이프, 권한, 프로세스 및 아카이브 등 작업별로 그룹화된 초보자를 위한 Linux 명령과 실용적인 로그 분석 예제가 포함되어 있습니다.
기사 읽기 →소프트웨어 개발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와 흔한 실수, 성능 팁까지 정리했습니다.
기사 읽기 →