근로계약서 작성·교부 확인: 임금·근로시간·휴일·전자문서

이미지
공식 안내와 실제 처리상태를 구분해 준비하는 고유 이미지. 근로를 시작하기 전 임금의 구성항목·계산방법·지급방법, 소정근로시간, 휴일, 연차유급휴가 등을 서면에 명시하고 근로자가 실제 사본을 받아 보관해야 합니다. 전자문서도 작성만 해 두는 것이 아니라 근로자가 지정한 이메일 등으로 수신할 수 있게 교부됐는지 확인하세요. 고용노동부 근로계약서 공식자료 확인 클릭 목차 공식 안내에서 확인한 핵심 실행 순서 상태·증빙 비교표 상황별 판단 마지막 체크리스트 오해와 실패 방지 FAQ — 자주 묻는 질문 1. 공식 안내에서 확인한 핵심 근로기준법 제17조 안내는 임금·소정근로시간·휴일·연차유급휴가 등 핵심 근로조건을 명시하도록 합니다. 임금의 구성·계산·지급방법 등 법정사항은 서면으로 명시하고 근로자에게 교부해야 합니다. 전자근로계약서는 근로자가 수신하고 이후 내용을 확인·보존할 수 있는 방식으로 교부됐는지 확인합니다. 근로조건이 바뀌면 변경내용과 적용일을 합의하고 새 서면을 받아 기존 계약서와 함께 보관합니다. 공식 안내의 일반 기준과 개인별 조회·처리 결과는 다를 수 있습니다. 실행일의 상태와 확인시각을 함께 기록합니다. 2. 실행 순서 1. 대상과 범위 확인 2. 공식 화면·문서 대조 3. 신청·점검·문의 실행 4. 결과와 후속조치 기록 조회, 제출, 기관 접수, 심사, 발급·지급·조치는 서로 다른 단계입니다. 각 단계의 날짜와 근거를 따로 남기세요. 3. 상태·증빙 비교표 근로계약서 작성·교부 확인: 임금·근로시간·휴일·전자문서 확인표 확인 항목 판단 기준 남길 기록 대상·범위 근로기준법 제17조 안내는 임금·소정근로시간·휴일·연차유급휴가 등 핵심 근로조건을 명시하도록 합니다. 대상·조회일 핵심 기준 임금의 구성·계산·지급방법 등 법정사항은 서면으로 명시하고 근로자에게 교부해야 합니다. 공식 화면·문서 실행 단계 전자근로계약서는 근로자가 수신하고 이후 내용을 확인·보존할 수 있는 방식으로 교부됐는지 확인합니다. 접수·점검 기록 완료 기준 근로조건이 바...

SQL 배우기: SELECT·WHERE·GROUP BY와 NULL 실습

SQL을 배우기 시작했다면 필요한 행 찾기 → 채널별로 묶기 → 집계 기준 검산하기를 작은 데이터로 연습해 보세요. 문법 이름을 외우는 것과 결과가 질문에 맞는지 확인하는 일을 함께 다루는 것이 이번 실습의 목표입니다.

아래 문의6건은 모두 학습을 위해 만든 가상 데이터입니다. 실제 고객이나 회사의 처리 실적이 아닙니다. 예제는 SQLite3.45.3에서 확인하며, 대규모 데이터 성능이나 다른 데이터베이스 제품의 실행 결과를 평가하는 내용은 아닙니다.

퇴사말고 취업기회 SQL 배우기
퇴사말고 취업기회 SQL 배우기

질문과 데이터의 한 행 정의하기

이 예제에서 한 행은 문의 한 건입니다. id는 문의 번호, channel은 접수 채널, status는 현재 상태, hours는 완료 건에 기록한 처리시간입니다. hours의 단위는 시간이며, 진행중·취소 상태에서는 값을 기록하지 않았다고 가정합니다.

idchannelstatushours
1온라인완료2.0
2전화진행중NULL
3온라인완료1.5
4이메일취소NULL
5전화완료4.0
6이메일완료2.5

먼저 답할 질문: “완료된 문의 중 처리시간이2시간 이상인 건은 무엇인가?”, “채널별 완료 건수와 평균 처리시간은 얼마인가?”, “전체6건과 시간이 기록된 건수는 같은가?”를 순서대로 계산합니다.

각 코드의 WITH requests(...) AS (VALUES ...) 부분은 위 데이터를 그 문장 안에서 사용할 수 있도록 정해 놓은 것입니다. 영구 테이블을 만드는 명령이 아니며, 코드 블록 전체를 한 문장으로 실행해야 합니다. 한 번 실행한 뒤 다음 문장에서 requests라는 표가 계속 남아 있는 구조가 아닙니다. SQLite WITH·CTE 공식 설명

SQLite를 실행할 수 있는 연습 환경에서 아래 블록을 하나씩 실행합니다. 회사 데이터베이스에 접속하거나 고객 자료를 업로드할 필요는 없습니다. 코드에 포함된 가상 값만 사용하고, 따옴표·쉼표·괄호가 빠지지 않았는지 확인하세요.

SELECT·WHERE·ORDER BY로 필요한 행 찾기

SELECT에는 표시할 열, FROM에는 입력 데이터, WHERE에는 포함 조건을 씁니다. 아래에서는 “완료”와 “2시간 이상”을 둘 다 만족해야 합니다. 출력은 시간이 긴 순서로 정하고, 시간이 같으면 id가 작은 순서로 정합니다.

WITH requests(id, channel, status, hours) AS (
  VALUES
    (1, '온라인', '완료', 2.0),
    (2, '전화', '진행중', NULL),
    (3, '온라인', '완료', 1.5),
    (4, '이메일', '취소', NULL),
    (5, '전화', '완료', 4.0),
    (6, '이메일', '완료', 2.5)
)
SELECT id, channel, hours
FROM requests
WHERE status = '완료' AND hours >= 2
ORDER BY hours DESC, id ASC;
idchannelhours
5전화4.0
6이메일2.5
1온라인2.0

id3은 완료 상태지만1.5시간이므로 빠집니다. id2와4는 상태 조건을 만족하지 않습니다. “2시간 이상”이므로 경계값2.0인 id1은 포함됩니다. 조건에 맞는지와 출력 순서가 맞는지를 각각 대조하세요.

결과가 우연히 원하는 순서로 보이더라도 정렬 조건을 생략하면 그 순서를 전제로 사용할 수 없습니다. SQLite 공식 문서는 ORDER BY가 없는 결과의 행 순서를 보장하지 않는다고 설명합니다. SQLite SELECT·필터·정렬 공식 문서

GROUP BY로 채널별 완료 건수 집계하기

이번 질문은2시간 이상만 고르는 것이 아니라 모든 완료 건을 채널별로 묶는 것입니다. 앞 쿼리의 시간 조건을 그대로 남겨두면 온라인의1.5시간 건이 빠져 질문과 다른 결과가 됩니다. 아래 블록도 WITH부터 끝까지 실행하세요.

WITH requests(id, channel, status, hours) AS (
  VALUES
    (1, '온라인', '완료', 2.0),
    (2, '전화', '진행중', NULL),
    (3, '온라인', '완료', 1.5),
    (4, '이메일', '취소', NULL),
    (5, '전화', '완료', 4.0),
    (6, '이메일', '완료', 2.5)
)
SELECT channel,
       COUNT(*) AS done_count,
       AVG(hours) AS avg_hours
FROM requests
WHERE status = '완료'
GROUP BY channel
ORDER BY channel;
channeldone_countavg_hours
온라인21.75
이메일12.5
전화14.0

온라인 평균은(2.0+1.5)÷2=1.75시간입니다. 세 채널의 완료 건수 합은2+1+1=4건으로 원본의 완료 행 수와 일치합니다. 결과 표의 각 평균을 다시 단순 평균내면 전체 완료 건의 평균과 달라질 수 있으므로 분모가 몇 건인지 함께 표시합니다.

이 데이터는 채널별 사례 수가1~2건뿐인 가상 표입니다. 평균이 낮다는 사실만으로 특정 채널의 업무 품질이나 직원 역량이 우수하다고 판단할 수는 없습니다. 실무에서는 시간 측정 기준, 문의 난이도, 누락 여부 같은 조건을 더 확인해야 합니다.

COUNT·AVG와 NULL을 구분하기

COUNT(*)는 행 수를 세지만 COUNT(hours)는 hours가 NULL이 아닌 행 수를 셉니다. AVG(hours)도 NULL을 평균의 분모에 넣지 않습니다. 이 차이를 확인하려고 상태 필터 없이 전체 데이터를 집계해 봅니다. SQLite COUNT·AVG·SUM 공식 문서

WITH requests(id, channel, status, hours) AS (
  VALUES
    (1, '온라인', '완료', 2.0),
    (2, '전화', '진행중', NULL),
    (3, '온라인', '완료', 1.5),
    (4, '이메일', '취소', NULL),
    (5, '전화', '완료', 4.0),
    (6, '이메일', '완료', 2.5)
)
SELECT COUNT(*) AS all_rows,
       COUNT(hours) AS recorded_rows,
       SUM(hours) AS recorded_hours,
       AVG(hours) AS avg_recorded_hours
FROM requests;
all_rowsrecorded_rowsrecorded_hoursavg_recorded_hours
6410.02.5

기록된 시간의 합은2.0+1.5+4.0+2.5=10.0시간이고 평균은10.0÷4=2.5시간입니다. 이를 전체6건이 모두 평균2.5시간 만에 처리됐다고 설명하면 틀립니다. 이 예제의 NULL은 진행중·취소 건에 시간이 기록되지 않았다는 뜻이며0시간 처리 완료를 뜻하지 않습니다.

NULL을 확인할 때는 hours IS NULL 같은 조건을 사용합니다. 이 데이터에서는 id2와4가 해당됩니다. NULL을 무조건0으로 치환하면 평균의 의미가 달라지므로, 값이 없는 이유를 먼저 정리해야 합니다.

추가 확인예상 결과점검 목적
첫 쿼리의 시간 기준을99로 바꾸기결과 행0개조건에 맞는 데이터가 없는 상태 확인
시간이 NULL인 행 찾기id2,40과 값 없음 구분
없는 상태만 대상으로 전체 집계하기COUNT는0, SUM·AVG는NULL숫자0과 집계할 값 없음 구분

위 세 조건도 같은 가상 데이터를 사용해 확인하는 점검입니다. 실제 데이터에서는 완료 상태인데 시간이 빠진 행이 생길 수 있으므로, 완료 건수와 시간 기록 건수를 항상 같은 숫자로 가정하지 마세요.

✨ 비전공자도 SQL 학습으로 커리어 기회를 잡을 수 있을까?
✨ 비전공자도 SQL 학습으로 커리어 기회를 잡을 수 있을까?

학습 기록을 포트폴리오로 정리하기

SQL 학습은 다음과 같이 단계별 완료 기준을 잡을 수 있습니다. 각 단계를 며칠 안에 끝낸다고 정하기보다, 입력과 결과를 직접 설명할 수 있는지 확인하세요.

학습 단계남길 결과확인할 질문
조회·필터조건에 맞는 행과 정렬된 결과경계값과 빠진 행을 설명할 수 있나요?
집계·NULL건수·합계·평균과 분모빈 결과와 값이 없는 이유를 구분했나요?
여러 표 결합결합 키와 결합 전후 행 수중복 키 때문에 행 수가 늘지 않았나요?
업무 질문·공유질문, 데이터 정의, 코드, 검산, 해석 한계숫자로 답할 수 없는 부분을 표시했나요?

여러 표를 결합하는 단계는 CX 데이터 품질과 SQL 결합 예시로 이어갈 수 있습니다. 파일 목록 같은 입력 준비 작업에 관심이 있다면 파이썬 파일 집계·검증 실습을 함께 볼 수 있습니다.

포트폴리오에는 “가상 문의6건을 대상으로 필터링·채널별 집계·NULL 검산을 수행했다”처럼 실제 수행한 범위를 기록하세요. 실행 환경, 쿼리 원문, 예상값과 실제값, 수정한 오류를 남기면 결과를 다시 확인할 수 있습니다. 실제 회사의 생산성 향상이나 취업 성과로 바꾸어 적지는 않습니다.

취업 준비에서는 지원하려는 공고에서 사용하는 데이터베이스와 요구 업무를 확인한 뒤 현재 연습과 연결합니다. 이 예제만으로 대규모 데이터 운영, 권한 관리, 쿼리 성능 최적화까지 검증된 것은 아닙니다. 다음 과제는 공고와 자신의 부족한 부분에 맞춰 정할 수 있습니다.

자주 묻는 질문

왜 SELECT만 실행했는데 requests가 다음에는 없다고 나오나요?

이 글의 requests는 영구 테이블이 아니라 한 문장에서만 쓰는 CTE입니다. 해당 블록의 WITH부터 SELECT 끝의 세미콜론까지 함께 실행하세요.

NULL을0으로 바꾸면 계산하기 편하지 않나요?

0이 실제 측정값인지, 아직 기록되지 않은 값인지 먼저 구분하세요. 위 예제에서 NULL은0시간 만에 처리했다는 뜻이 아닙니다. 임의로 바꾸면 평균이 달라집니다.

다른 데이터베이스에서도 똑같이 실행되나요?

이 글에서 실행 확인한 환경은 SQLite3.45.3입니다. 다른 제품에서는 VALUES를 쓰는 위치, 자료형, 함수와 정렬 규칙 등을 해당 공식 문서에 맞춰 확인해야 합니다.

SQL만 배우면 바로 데이터 직무로 취업할 수 있나요?

채용 요건은 공고마다 다릅니다. 코드 작성과 함께 데이터의 의미, 검산 과정, 본인의 역할을 설명할 수 있도록 준비하세요. 작은 실습의 완료를 취업 보장이나 모든 실무 역량의 확보로 해석하지 않습니다.

첫 연습에서는 조회된 행3개, 완료 건4개, 전체 행6개가 왜 서로 다른지 자신의 말로 설명해 보세요. 그 차이를 이해하면 새로운 조건을 추가할 때도 결과가 질문에 맞는지 검토할 수 있습니다.

댓글

이 블로그의 인기 게시물

재취업에 도움 되는 자격증

퇴직금 평균임금 계산법: 3개월·상여금·연차수당 검산

2026 구직지원제도 신청 전 고용24에서 확인할 항목