이 글은 함수의 형식적 정의부터 함수가 아닌 반례, 정의역·공역·치역, 단사·전사·전단사, 역함수와 합성함수, 바닥·천장·팩토리얼·나머지 연산까지 단계별로 정리합니다. 누락된 기호와 모호한 예시를 완전한 식으로 복원하고, 각 결과를 작은 집합에서 직접 검산할 수 있게 구성했습니다.
이 글에서 정리하는 내용
- 함수는 먼저 입력 기준으로 보기
- 함수인지 아닌지 판별하는 두 가지 조건
- 정의역·공역·치역을 구분하는 방법
- 단사·전사·전단사를 겹침과 빈칸으로 판단하기
- 역함수와 합성함수에서 자주 틀리는 부분
- 특수 함수는 계산 기준부터 잡기
- 문제 풀 때 확인할 순서
함수는 먼저 입력 기준으로 보기
함수 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를 정확히 읽는 데서 시작합니다. 모든 입력에 출력이 정확히 하나인지 확인하고, 실제 출력인 치역을 공역과 구분한 뒤 단사는 출력의 겹침, 전사는 공역의 빈칸으로 판정하세요. 두 조건을 모두 만족하는 전단사에서만 공역 전체를 정의역으로 하는 역함수가 생기며, 합성은 중간 집합과 오른쪽부터의 적용 순서를 확인하면 됩니다.
“이산수학 함수 쉽게 이해하기: 정의역 공역 치역과 단사 전사”에 대한 1개의 생각