이 글은 함수의 형식적 정의부터 함수가 아닌 반례, 정의역·공역·치역, 단사·전사·전단사, 역함수와 합성함수, 바닥·천장·팩토리얼·나머지 연산까지 단계별로 정리합니다. 누락된 기호와 모호한 예시를 완전한 식으로 복원하고, 각 결과를 작은 집합에서 직접 검산할 수 있게 구성했습니다.
이 글에서 정리하는 내용
- 함수는 먼저 입력 기준으로 보기
- 함수인지 아닌지 판별하는 두 가지 조건
- 정의역·공역·치역을 구분하는 방법
- 단사·전사·전단사를 겹침과 빈칸으로 판단하기
- 역함수와 합성함수에서 자주 틀리는 부분
- 특수 함수는 계산 기준부터 잡기
- 문제 풀 때 확인할 순서
함수는 먼저 입력 기준으로 보기
함수 f : X → Y는 정의역 X의 모든 원소 x에 대해 공역 Y의 원소 y를 정확히 하나 대응시키는 규칙입니다. 관계의 언어로 쓰면 f ⊆ X × Y이면서 각 x ∈ X에 대해 (x,y) ∈ f인 y가 유일해야 합니다. 이때 y를 f(x)라고 씁니다.
X = {1, 2, 3}
Y = {a, b, c}
f = {(1,a), (2,a), (3,c)}
이 관계는 함수입니다. 입력 1, 2, 3이 모두 한 번씩 등장하고 각 입력의 출력이 하나뿐이기 때문입니다. 서로 다른 입력 1과 2가 같은 출력 a로 가는 것은 함수 정의에 어긋나지 않습니다. 함수 여부는 한 입력이 여러 출력으로 가는지를 먼저 보고, 서로 다른 입력의 출력이 겹치는지는 단사 여부를 판단할 때 확인합니다.
입력과 출력만 떼어 보는 예시
순서쌍 (1,a)는 입력 1의 출력이 a라는 뜻입니다. 순서쌍을 읽을 때 첫 좌표는 정의역, 두 번째 좌표는 공역에 속합니다. f(1)=a, f(2)=a, f(3)=c로 다시 쓰면 같은 함수입니다.

함수는 대응표, 화살표 그림, 식, 순서쌍 집합으로 표현할 수 있습니다. 표현이 달라져도 모든 입력에 출력이 정확히 하나라는 조건은 바뀌지 않습니다. 식으로 주어진 경우에도 정의역의 값에서 식이 실제로 정의되는지, 계산 결과가 선언한 공역 안에 들어가는지 함께 확인해야 합니다.
함수인지 아닌지 판별하는 두 가지 조건
관계가 함수인지 판단할 때는 완전성과 유일성을 나누어 확인합니다. 첫째, 정의역의 모든 입력이 적어도 한 번 등장해야 합니다. 둘째, 각 입력은 많아야 하나의 출력과 연결되어야 합니다. 두 조건을 합치면 각 입력에 출력이 정확히 하나가 됩니다.
| 검사 | 질문 | 실패 예시 |
|---|---|---|
| 완전성 | 정의역의 모든 원소가 입력으로 등장하는가? | 입력 3에 대응하는 순서쌍이 없음 |
| 유일성 | 같은 입력이 서로 다른 두 출력으로 가지 않는가? | (1,a)와 (1,b)가 동시에 있음 |
| 공역 일치 | 모든 출력이 선언한 공역에 속하는가? | Y에 없는 d가 출력으로 등장함 |
함수가 아닌 이유를 분리해서 보기
X = {1, 2, 3}
Y = {a, b, c}
R = {(1,a), (2,b)}
R에서는 입력 3의 출력이 없으므로 X에서 Y로 가는 함수가 아닙니다. 관계에 등장한 입력만 보지 말고 선언된 정의역 전체를 확인해야 합니다.
S = {(1,a), (1,b), (2,c), (3,a)}
S에서는 입력 1이 a와 b라는 서로 다른 두 출력으로 가므로 함수가 아닙니다. 반면 {(1,a), (2,a), (3,c)}는 출력 a가 겹쳐도 각 입력의 출력은 하나이므로 함수입니다. 단, 식 f(x)=1/x를 실수 전체에서 실수 전체로 선언하면 x=0에서 출력이 없으므로 함수가 아니며, 정의역을 ℝ ∖ {0}으로 제한하면 함수가 됩니다.
정의역·공역·치역을 구분하는 방법
함수 f : X → Y에서 X는 정의역, Y는 공역입니다. 치역은 실제로 나온 출력의 집합으로 f(X) = {f(x) : x ∈ X}라고 씁니다. 따라서 치역은 항상 공역의 부분집합이지만 공역과 같을 필요는 없습니다.
공역과 치역이 달라지는 예시
A = {1, 2, 3}
B = {a, b, c, d}
f : A → B
f = {(1,a), (2,a), (3,c)}
| 구분 | 집합 | 판단 근거 |
|---|---|---|
| 정의역 | {1, 2, 3} | 입력으로 허용한 전체 집합 A |
| 공역 | {a, b, c, d} | 함수 선언에서 출력이 속한다고 정한 집합 B |
| 치역 | {a, c} | 실제로 나온 출력 f(1), f(2), f(3)의 집합 |
공역은 함수의 일부이므로 같은 계산식이라도 공역을 다르게 선언하면 서로 다른 함수로 봅니다. 예를 들어 f : ℝ → ℝ, f(x)=x²의 치역은 0 이상의 실수라서 전사가 아니지만, 공역을 [0,∞)로 정한 f : ℝ → [0,∞)는 전사입니다. 식만 보고 공역을 임의로 치역과 같다고 바꾸면 안 됩니다.
단사·전사·전단사를 겹침과 빈칸으로 판단하기
함수 f : X → Y의 단사성과 전사성은 서로 다른 질문입니다. 단사는 서로 다른 입력이 같은 출력으로 겹치는지 보고, 전사는 공역의 모든 원소가 실제 출력으로 사용되는지 봅니다.
| 종류 | 형식적 기준 | 그림에서 볼 것 |
|---|---|---|
| 단사 | f(x₁)=f(x₂) ⇒ x₁=x₂ |
공역의 한 원소로 두 화살표가 모이지 않음 |
| 전사 | 모든 y ∈ Y에 대해 f(x)=y인 x ∈ X가 존재 |
공역에 화살표를 받지 못한 빈칸이 없음 |
| 전단사 | 단사이면서 전사 | 공역의 각 원소가 정확히 한 화살표를 받음 |
단사는 출력의 겹침을 본다
f : {1,2,3} → {a,b,c,d}에서 f(1)=a, f(2)=b, f(3)=c이면 서로 다른 입력의 출력이 다르므로 단사입니다. 공역의 d가 사용되지 않아도 단사 여부에는 영향을 주지 않습니다. 반대로 f(1)=a, f(2)=a이면 두 입력이 겹치므로 단사가 아닙니다.
전사는 공역의 빈칸을 본다
g : {1,2,3} → {a,b}에서 g(1)=a, g(2)=b, g(3)=a이면 공역 a와 b가 모두 나오므로 전사입니다. 출력이 겹쳐 단사는 아니지만 전사일 수 있습니다. 단사와 전사를 둘 다 만족하면 각 공역 원소에 원상이 정확히 하나이므로 전단사입니다.
정의역과 공역의 원소 수가 같은 유한집합 사이에서는 단사이면 전사이고 전사이면 단사입니다. 그러나 무한집합에서는 이 지름길이 성립하지 않습니다. 예를 들어 0을 포함하는 자연수 집합 ℕ₀={0,1,2,…}에서 f : ℕ₀ → ℕ₀, f(n)=n+1은 단사지만 0을 출력하지 않는 전사 아닌 함수입니다. 원소 수 비교를 사용할 때 유한성 조건을 빠뜨리지 마세요.
역함수와 합성함수에서 자주 틀리는 부분
역함수는 전단사일 때만 공역 전체에서 정의된다
함수 f : X → Y가 전단사이면 각 y ∈ Y에 대응하는 x ∈ X가 정확히 하나이므로 역함수 f⁻¹ : Y → X를 정의할 수 있습니다. 역함수는 f⁻¹(f(x))=x와 f(f⁻¹(y))=y를 만족합니다.
f : ℤ → ℤ, f(x) = x + 2
f⁻¹ : ℤ → ℤ, f⁻¹(y) = y - 2
f⁻¹(f(5)) = f⁻¹(7) = 5
f : ℝ → ℝ, f(x)=x²는 음수 실수가 출력되지 않고 f(1)=f(-1)이므로 전단사가 아니며 ℝ 전체에서 역함수를 갖지 않습니다. 정의역을 [0,∞), 공역을 [0,∞)로 제한하면 전단사가 되어 f⁻¹(y)=√y를 정의할 수 있습니다. 또한 f⁻¹({y})처럼 쓰는 역상은 전단사가 아니어도 집합으로 정의할 수 있으므로 역함수와 구분해야 합니다.
합성함수는 오른쪽 함수부터 계산한다
f : X → Y와 g : Y → Z가 있으면 합성함수 g ∘ f : X → Z는 (g ∘ f)(x)=g(f(x))로 정의합니다. f의 출력이 g의 입력으로 들어가므로 오른쪽 f를 먼저 계산합니다.
f : ℤ → ℤ, f(x) = x + 2
g : ℤ → ℤ, g(x) = 3x
(g ∘ f)(x) = g(x + 2) = 3x + 6
(f ∘ g)(x) = f(3x) = 3x + 2
이 예시는 일반적으로 g ∘ f와 f ∘ g가 다르다는 점도 보여 줍니다. 합성 전에 f의 공역이 g의 정의역에 들어가는지 타입을 확인하고, 식을 대입한 뒤 괄호를 풀어야 계산 순서 오류를 줄일 수 있습니다.
특수 함수는 계산 기준부터 잡기
이산수학에서는 입력을 정수나 유한집합으로 바꾸는 함수가 자주 등장합니다. 이름만 외우기보다 정의역, 공역, 경계값에서의 규칙을 함께 적어야 합니다.
| 종류 | 정의 | 검산 예시 |
|---|---|---|
| 항등함수 | id_X(x)=x |
모든 x ∈ X를 그대로 돌려줌 |
| 상수함수 | 고정된 c ∈ Y에 대해 f(x)=c |
정의역이 비어 있지 않고 원소가 둘 이상이면 단사 아님 |
| 바닥함수 | ⌊x⌋는 x 이하의 가장 큰 정수 |
⌊3.7⌋=3, ⌊-1.2⌋=-2 |
| 천장함수 | ⌈x⌉는 x 이상의 가장 작은 정수 |
⌈3.2⌉=4, ⌈-1.2⌉=-1 |
| 팩토리얼 | n ≥ 1에서 n!=n(n-1)…1, 그리고 0!=1 |
5!=120 |
| 나머지 연산 | m ≥ 1일 때 n mod m은 0 이상 m 미만의 나머지 |
17 mod 5=2 |
자주 나오는 계산 예시
음수에서 바닥과 천장은 0을 기준으로 버리는 연산이 아닙니다. -1.2 이하인 정수 중 가장 큰 수는 -2이고, -1.2 이상인 정수 중 가장 작은 수는 -1입니다. 나머지 연산은 법 m을 고정하면 정수를 {0,1,…,m-1}로 보내는 함수로 볼 수 있고, 같은 나머지를 갖는 정수들은 동치류를 이룹니다.

특수 함수를 계산한 뒤에도 결과가 선언한 공역에 속하는지 확인하세요. 예를 들어 바닥함수는 ⌊·⌋ : ℝ → ℤ로 자연스럽게 선언할 수 있고 전사지만 단사는 아닙니다. 서로 다른 실수들이 같은 정수로 내려가기 때문입니다.
문제 풀 때 확인할 순서
- 함수 선언을 적습니다.
f : X → Y에서 정의역 X와 공역 Y를 고정합니다. - 함수 여부를 확인합니다. 모든 입력에 출력이 있고, 각 입력의 출력이 하나뿐이며, 출력이 공역 안에 있는지 봅니다.
- 치역을 따로 구합니다. 실제 출력만 모아 중복을 제거하고 공역과 비교합니다.
- 단사는 겹침을 검사합니다. 같은 출력으로 가는 서로 다른 입력이 있는지 찾습니다.
- 전사는 빈칸을 검사합니다. 공역의 각 원소가 적어도 한 번 출력되는지 확인합니다.
- 역함수는 전단사부터 확인합니다. 필요하면 정의역과 공역을 제한한 뒤 역을 구합니다.
- 합성은 타입과 순서를 봅니다. 중간 집합이 맞는지 확인하고 오른쪽 함수부터 계산합니다.
공개 교재로 다시 확인하기
- Discrete Mathematics: An Open Introduction — Functions — 함수·정의역·공역·치역과 단사·전사·전단사의 정의를 제공하는 공개 교재입니다.
- MIT OpenCourseWare: Mathematics for Computer Science 읽기 자료 — 공개 대학 교재의 판본과 함수·관계가 포함된 강의 읽기 범위를 확인할 수 있습니다.
다음 학습 경로
정의역·공역과 곱집합 표기가 낯설다면 이산수학 집합 기초부터 복습하세요. 함수가 관계의 특별한 경우라는 연결은 이산수학 관계와 동치관계에서 확인할 수 있습니다. 단사와 전사의 성질을 논리식으로 증명하려면 이산수학 증명법을, 전단사로 경우의 수를 세는 응용은 순열·조합과 조합론을 이어서 학습하는 것이 좋습니다.
결론: 함수 문제는 식을 계산하기 전에 f : X → Y를 정확히 읽는 데서 시작합니다. 모든 입력에 출력이 정확히 하나인지 확인하고, 실제 출력인 치역을 공역과 구분한 뒤 단사는 출력의 겹침, 전사는 공역의 빈칸으로 판정하세요. 두 조건을 모두 만족하는 전단사에서만 공역 전체를 정의역으로 하는 역함수가 생기며, 합성은 중간 집합과 오른쪽부터의 적용 순서를 확인하면 됩니다.
작은 예제로 직접 확인하기
사용자 ID 집합에서 이메일 집합으로 가는 대응이 함수인지 확인합니다.
- 주어진 대상과 조건을 기호 또는 표로 옮깁니다.
- 한 단계씩 계산하고 중간값을 생략하지 않습니다.
- 본문의 정의에 다시 대입해 조건을 만족하는지 확인합니다.
풀이 확인
정답만 맞히는 것보다 각 단계에서 어떤 정의를 사용했는지 설명할 수 있어야 합니다. 조건 하나를 바꿨을 때 결과가 어떻게 달라지는지도 함께 계산하면 개념을 구분하기 쉽습니다.
개발에서 연결되는 지점
프론트엔드 데이터 변환에서 입력 하나가 출력 하나로 정해지는지 검토할 때 사용합니다.
확인 결과: 수식·표·그래프의 각 요소를 실제 데이터와 코드 조건에 대응시켜 설명할 수 있으면 학습이 완료됩니다.
이 글이 도움이 되었나요?
이산수학 학습 순서
필수 12개 · 전체 13개
읽음 기록 관리
전체 과정 목차 (13개)
- 필수 학습 · 명제 논리 조건명제 기준: 참과 거짓이 헷갈릴 때 구분하기
- 필수 학습 · 이산수학 집합 쉽게 이해하기: 원소 부분집합 집합연산
- 필수 학습 · 이산수학 증명법 쉽게 이해하기: 직접증명과 귀납법 기준
- 필수 학습 · 이산수학 관계 쉽게 이해하기: 곱집합과 동치관계 기준
- 필수 학습 · 이산수학 함수 쉽게 이해하기: 정의역 공역 치역과 단사 전사 현재 글
- 필수 학습 · 부울대수 쉽게 이해하기: 진리표와 논리게이트 간소화 기준
- 필수 학습 · 순열·조합 구분법: 차이와 공식, 예제로 이해하기
- 선택 참고 · 행과 열 쉽게 구분하기: 2열 종대까지 한 번에 외우는 방법
- 필수 학습 · 행·열 구분과 행렬 기본 개념: 곱셈·가우스 소거법
- 필수 학습 · 그래프 이론 기본 개념: 용어 경로 행렬 표현 기준 잡기
- 필수 학습 · 평면 그래프와 다익스트라: 오일러 해밀턴 경로 이해하기
- 필수 학습 · 정수론 RSA 쉽게 이해하기: 유클리드 호제법과 합동식 기준
- 필수 학습 · 오토마타 이론 쉽게 이해하기: DFA NFA와 형식 문법 기준
새 글 받아보기
RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.