BlogFlow | 블로그

프론트엔드 개발과 IT 기술을 중심으로 실무 경험과 학습을 기록합니다.

이산수학

이산수학 함수 정리: 정의역·공역·치역부터 단사·전사·역함수 쉽게 이해하기

2026.03.13·수정 2026.03.27·약 9분

이 글에서 정리하는 내용

이 글에서는 함수가 관계와 어떻게 다른지부터 시작해 정의역, 공역, 치역의 차이, 함수 판별 기준, 단사함수·전사함수·전단사함수의 의미, 역함수와 합성함수의 연결, 그리고 계승함수·바닥함수·천장함수·나머지 함수까지 한 흐름으로 정리합니다. 끝까지 읽으면 시험 문제에서 함수인지 아닌지 빠르게 판별할 수 있고, 공역과 치역을 헷갈리지 않게 되며, 역함수가 왜 전단사에서만 가능한지도 자연스럽게 이해할 수 있습니다.

함수는 관계와 무엇이 다른가

ChatGPT Image 2026년 3월 12일 오후 06 43 03

함수는 관계의 특수한 형태입니다. 관계는 순서쌍의 집합으로 넓게 정의되지만, 함수는 그중에서도 정의역의 모든 원소가 공역의 정확히 하나의 원소와 대응되어야 합니다. 여기서 가장 중요한 기준은 두 가지입니다. 첫째, 정의역의 원소가 하나도 빠지면 안 됩니다. 둘째, 정의역의 한 원소가 두 개 이상의 출력으로 나가면 안 됩니다. 즉 함수는 입력 하나당 출력 하나라는 규칙을 반드시 만족해야 합니다.

주어진 관계가 함수인지 판별하는 기준

A = {1, 2, 3}, B = {a, b, c, d, e}
R1 = {(1, a), (1, b), (2, c), (3, d)}
R2 = {(1, a), (2, b), (3, c)}
R3 = {(1, a), (2, b)}

R1은 함수가 아닙니다. 원소 1이 a와 b 두 곳으로 동시에 연결되기 때문입니다. 입력 하나에 출력이 둘이면 함수가 될 수 없습니다.

R2는 함수입니다. 1, 2, 3이 모두 한 번씩 등장하고, 각각 하나의 원소와만 대응되기 때문입니다. 반대로 R3은 함수가 아닙니다. 정의역 A의 원소 3이 아예 대응되지 않았기 때문입니다. 시험에서는 순서쌍을 볼 때 각 입력값이 한 번씩만 등장하는지, 그리고 정의역의 모든 원소가 빠짐없이 등장하는지를 먼저 확인하면 훨씬 빨리 판별할 수 있습니다.

정의역, 공역, 치역 이해하기

함수를 이해할 때 가장 자주 섞이는 개념이 정의역, 공역, 치역입니다. 정의역은 입력으로 넣는 집합이고, 공역은 출력이 속할 수 있도록 미리 정해 둔 전체 후보 집합입니다. 치역은 그 공역 안에서 실제로 출력된 값들의 집합입니다. 즉 공역은 가능성의 범위이고, 치역은 실제 결과의 범위입니다. 그래서 공역과 치역은 같을 수도 있지만 항상 같은 것은 아닙니다.

정의역, 공역, 치역을 한 번에 보는 예시

f: X → Y
X = {1, 2, 3}
Y = {a, b, c, d}
f(1) = a
f(2) = a
f(3) = c

이 예시에서 정의역은 X = {1, 2, 3}이고 공역은 Y = {a, b, c, d}입니다. 실제 출력된 값은 a와 c뿐이므로 치역은 {a, c}가 됩니다. 여기서 b와 d는 공역에는 포함되지만 실제 결과로 나오지 않았으므로 치역에는 들어가지 않습니다. 이 차이를 이해해야 전사함수 개념도 자연스럽게 이어집니다.

또한 두 함수가 같은지 판단할 때는 식 모양만 보면 안 됩니다. 같은 정의역과 같은 공역을 가지면서, 정의역의 모든 원소에 대해 출력값이 모두 같아야 상등함수라고 볼 수 있습니다. 즉 함수의 동일성은 외형보다 대응 결과 전체로 판단해야 합니다.

단사함수, 전사함수, 전단사함수

이제 함수의 성질을 봐야 합니다. 단사함수는 서로 다른 입력이 같은 출력으로 겹치지 않는 함수입니다. 전사함수는 공역에 있는 모든 원소가 적어도 한 번은 출력으로 등장하는 함수입니다. 전단사함수는 이 둘을 동시에 만족하는 함수입니다. 시험에서는 보통 이 세 개를 따로 외우려다 헷갈리는데, 실제로는 겹침과 빈칸이라는 두 기준으로 보면 훨씬 단순해집니다.

겹침과 빈칸으로 빠르게 판별하기

단사함수: 서로 다른 입력이 같은 출력으로 모이지 않음
전사함수: 공역에 비어 있는 칸이 없음
전단사함수: 겹침도 없고 빈칸도 없음

예를 들어 입력 두 개가 모두 같은 출력으로 가면 단사는 아닙니다. 반대로 공역에 있는 어떤 값이 아무 입력과도 연결되지 않으면 전사는 아닙니다. 그래서 단사는 겹침을 보고, 전사는 빈칸을 본다고 기억하면 좋습니다. 전단사는 그 두 문제를 모두 해결한 상태라고 보면 됩니다.

성질 빠른 판별 기준
단사·전사·전단사 겹침이 없으면 단사, 빈칸이 없으면 전사, 둘 다 만족하면 전단사

역함수와 합성함수

역함수는 함수의 방향을 거꾸로 돌리는 개념입니다. 원래 함수가 x를 y로 보냈다면, 역함수는 y를 다시 x로 돌려보내야 합니다. 그런데 이 과정이 제대로 성립하려면 출력 하나가 입력 하나에 정확히 대응되어야 하므로, 원래 함수는 전단사여야 합니다. 단사가 아니면 서로 다른 입력이 같은 출력으로 합쳐져서 되돌릴 수 없고, 전사가 아니면 공역의 어떤 값은 아예 출발점을 찾을 수 없습니다. 그래서 역함수는 전단사일 때만 함수로 존재합니다.

역함수와 합성함수 예시

f(x) = x + 2
g(x) = 3x
(g ∘ f)(x) = g(f(x)) = 3(x + 2) = 3x + 6
f⁻¹(x) = x - 2

합성함수는 바깥 함수부터가 아니라 안쪽 함수부터 계산합니다. 위 식에서 먼저 f(x)를 구한 뒤, 그 결과를 다시 g에 넣어야 합니다. 기호는 g ∘ f처럼 쓰지만 계산 순서는 오른쪽의 f가 먼저라는 점을 자주 실수합니다.

역함수도 같은 맥락에서 보면 이해가 쉬워집니다. f(x) = x + 2는 입력에 2를 더하는 함수이므로, 되돌릴 때는 2를 빼면 됩니다. 그래서 f⁻¹(x) = x – 2입니다. 그리고 f(f⁻¹(x)) = x, f⁻¹(f(x)) = x가 되어야 진짜 역함수라고 볼 수 있습니다.

계승함수와 바닥·천장·나머지 함수

ChatGPT Image 2026년 3월 12일 오후 06 43 05

함수 단원 후반에는 컴퓨터과학에서도 자주 쓰이는 특수 함수들이 나옵니다. 계승함수는 경우의 수와 순열에서 자주 등장하고, 바닥함수와 천장함수는 실수를 정수 구간으로 바꾸는 데 자주 쓰입니다. 나머지 함수 mod는 반복 구조, 인덱스 순환, 홀짝 판별처럼 프로그래밍에서도 매우 흔하게 등장합니다. 이 부분은 단순 암기보다 실제 값이 어떻게 바뀌는지 보는 것이 중요합니다.

계승함수, 바닥함수, 천장함수, 나머지 함수 예시

5! = 5 × 4 × 3 × 2 × 1 = 120
⌊3.8⌋ = 3
⌈3.2⌉ = 4
⌊-1.2⌋ = -2
⌈-1.2⌉ = -1
17 mod 5 = 2

계승함수는 1부터 어떤 자연수까지 차례대로 곱한 값입니다. 예를 들어 5!는 120입니다. 바닥함수는 주어진 수보다 작거나 같으면서 가장 큰 정수를 주고, 천장함수는 주어진 수보다 크거나 같으면서 가장 작은 정수를 줍니다. 특히 음수에서 많이 헷갈리는데, -1.2보다 작거나 같은 정수 중 가장 큰 수는 -2가 아니라 -2보다 큰 -1이 아니냐고 착각하기 쉽습니다. 하지만 -1은 -1.2보다 크므로 바닥값이 될 수 없습니다. 그래서 ⌊-1.2⌋ = -2입니다.

나머지 함수는 어떤 수를 나누었을 때 남는 값을 다룹니다. 17 mod 5 = 2라는 것은 17을 5로 나누면 몫이 3이고 나머지가 2라는 뜻입니다. 프로그래밍에서는 배열 인덱스를 반복시키거나, 요일처럼 주기적인 값을 계산할 때 매우 자주 사용됩니다.

이 단원에서 자주 나오는 기호 읽는 법

f: X → Y        : f는 X에서 Y로 가는 함수
x ↦ f(x)        : x는 f(x)로 대응된다
∀               : 모든, 임의의
∃               : 존재한다
g ∘ f           : g와 f의 합성함수
f⁻¹             : f의 역함수
⌊x⌋             : x의 바닥함수
⌈x⌉             : x의 천장함수
x!              : x 팩토리얼, 계승
n mod m         : n을 m으로 나눈 나머지

함수 단원은 기호가 많아서 개념보다 읽는 단계에서 먼저 막히는 경우가 많습니다. 그래서 기호를 그냥 넘기지 말고, 읽는 말과 의미를 함께 붙여 두는 것이 좋습니다. 특히 ∀, ∃, ∘, ⌊ ⌋, ⌈ ⌉는 정의 문장에 자주 나오므로 읽는 방법까지 익혀 두면 해석 속도가 훨씬 빨라집니다.

정리

함수의 핵심은 입력 하나당 출력 하나라는 규칙입니다. 여기서 출발하면 함수 판별, 정의역·공역·치역 구분, 단사·전사·전단사 판단, 역함수와 합성함수의 의미가 하나의 흐름으로 이어집니다. 시험에서는 먼저 함수 여부를 판별하고, 그다음 겹침과 빈칸으로 성질을 확인하며, 마지막으로 역함수와 합성함수의 계산 순서를 점검하면 정리가 훨씬 쉬워집니다. 후반의 계승함수, 바닥함수, 천장함수, 나머지 함수는 계산 예시를 직접 손으로 써 보는 것이 가장 빠른 학습 방법입니다.

많이 받는 질문

Q. 공역과 치역은 왜 다른가요?
공역은 출력이 들어갈 수 있도록 미리 정해 둔 전체 집합이고, 치역은 실제로 나온 출력값들의 집합입니다. 그래서 어떤 함수는 공역의 일부만 실제로 사용하고, 이 경우 공역과 치역은 서로 다릅니다.

Q. 전사함수와 단사함수는 가장 빠르게 어떻게 구분하나요?
단사함수는 출력이 겹치는지 보면 되고, 전사함수는 공역에 비어 있는 원소가 있는지 보면 됩니다. 즉 겹침은 단사 판별, 빈칸은 전사 판별이라고 기억하면 빠르게 정리됩니다.

Q. 바닥함수와 천장함수는 음수에서 왜 더 헷갈리나요?
많은 분이 바닥함수를 단순히 버림, 천장함수를 단순히 올림으로만 기억하기 때문입니다. 정확한 정의는 각각 작거나 같은 최대 정수, 크거나 같은 최소 정수입니다. 그래서 음수에서는 일상적인 버림·올림 감각과 다르게 느껴질 수 있어 정의 그대로 판단해야 합니다.

이 글이 마음에 드세요?

RSS 피드를 구독하세요!

댓글 남기기