1. 함수 분류 3종의 큰 그림
이번 강에서 다룰 함수의 3대 분류를 먼저 정리한다.
| 단사함수 | One-to-One / Injective | 중복 타겟 없음 | 1:1 함수 |
| 전사함수 | Onto / Surjective | 남는 타겟 없음 | 위로의 함수 |
| 전단사함수 | Bijection | 단사 + 전사 | 1:1 대응 |
💡 핵심 한 줄 요약: 단사 = "겹치지 마", 전사 = "남기지 마", 전단사 = "둘 다 지켜!"
2. 단사함수 (Injective / One-to-One) ⭐
정의
서로 다른 입력은 서로 다른 출력으로 매핑되는 함수.
"중복 타겟 절대 불가!"
수학적 표현
| ¬∃x, y: x ≠ y ∧ f(x) = f(y) | 다른 입력이 같은 출력 가지면 안 됨 |
| f(x₁) = f(x₂) ⟹ x₁ = x₂ | 출력이 같으면 입력도 반드시 같음 |
학번 비유
한 학생은 학번 하나만 가진다. 마찬가지로, 다른 학생은 절대 같은 학번을 가질 수 없다. 학번이 곧 그 학생을 유일하게 식별한다 → 단사함수의 본질.
단사함수 판별 예시
| f(x) = x³ (실수) | ⭕ | 다른 x는 다른 x³ 값 |
| f(x) = x² (실수) | ❌ | f(2) = f(−2) = 4 (다른 입력, 같은 출력) |
| f(x) = 2x + 1 (실수) | ⭕ | 일대일 직선 |
| f(x) = sin(x) (실수) | ❌ | f(0) = f(π) = 0 |
시각적 판별
단사함수 ⭕ 단사함수 ❌
A B A B
1 ──→ X 1 ──→ X
2 ──→ Y 2 ──→ X ← 같은 곳!
3 ──→ Z 3 ──→ Y
단조 함수 = 단사함수
| 단조 증가(Strictly Increasing) | 항상 단사함수 ✅ |
| 단조 감소(Strictly Decreasing) | 항상 단사함수 ✅ |
💡 시험 빈출 트릭: 함수의 그래프가 항상 올라가거나 항상 내려가면 단사함수다. 즉, 수평선 테스트(Horizontal Line Test) — 어떤 수평선을 그어도 그래프와 한 점에서만 만나면 단사함수.
⚠️ 주의 — 역은 항상 성립하지 않음
"단사함수라고 해서 반드시 단조 함수는 아니다."
예: f(x) = 1/x 는 단사함수지만, x = 0에서 정의되지 않아 정의역 전체에서 단조 증가/감소라 보기 어렵다.
3. 전사함수 (Surjective / Onto) ⭐
정의
치역이 공역과 완벽히 동일한 함수.
"남겨진 원소 없음! 공역 전체를 덮어버림"
수학적 표현
∀b ∈ B, ∃a ∈ A: f(a) = b
→ 공역의 모든 원소가 최소 하나 이상의 원상을 가짐.
식당 비유
식당의 모든 메뉴(공역)가 최소 한 번씩은 주문되어 만들어지는 상황(치역) → 전사함수.
메뉴판에 있는데 한 번도 안 만들어진 요리가 있다면? 전사함수 탈락.
전사함수 판별 핵심
치역 = 공역 ⟺ 전사함수
14강에서 배운 "치역 ⊆ 공역" 관계에서 등호가 성립할 때만 전사다.
전사함수 판별 예시
| f(x) = x³ (ℝ → ℝ) | ℝ | ⭕ | 모든 실수가 어떤 x의 세제곱으로 표현됨 |
| f(x) = x² (ℝ → ℝ) | ℝ | ❌ | 음수가 결과로 안 나옴 (치역 = [0, ∞)) |
| f(x) = 2x (ℤ → ℤ) | ℤ | ❌ | 홀수가 치역에 없음 |
| f(x) = x + 1 (ℤ → ℤ) | ℤ | ⭕ | 모든 정수가 결과로 나옴 |
시각적 판별
전사함수 ⭕ 전사함수 ❌
A B A B
1 ──→ X 1 ──→ X
2 ──→ Y 2 ──→ Y
3 ──→ Z 3 ──→ Z
W ← 아무도 안 가리킴!
💡 시험 빈출 함정: f(x) = x²는 단사도 아니고 전사도 아니다(공역 = ℝ일 때). 음수 입력 시 양수가 나와 같은 출력 발생(단사 X), 음수 결과는 절대 안 나옴(전사 X).
4. 단사 vs 전사 헷갈리지 않는 법 ⭐
이 둘을 구분하는 가장 쉬운 방법.
| 핵심 질문 | "같은 곳을 가리키는 입력이 있나?" | "아무도 안 가리키는 공역 원소가 있나?" |
| 위반 조건 | 다른 입력 → 같은 출력 | 공역 원소 중 매핑 안 된 것 |
| 별명 | "겹치지 마" | "남기지 마" |
| 판별 시각 | 입력 쪽 (정의역) 검사 | 출력 쪽 (공역) 검사 |
4가지 가능한 함수 패턴
| 1 | ⭕ | ⭕ | 전단사 (Bijection) |
| 2 | ⭕ | ❌ | 단사만 |
| 3 | ❌ | ⭕ | 전사만 |
| 4 | ❌ | ❌ | 둘 다 아님 |
💡 함수 분석 표준 절차: 어떤 함수가 주어지면 단사인가? 전사인가? 를 각각 판별 → 두 결과를 조합해 분류.
5. 전단사함수 (Bijection / 1:1 대응) ⭐⭐⭐
정의
단사함수이면서 동시에 전사함수인 함수. 완벽한 1:1 매칭.
핵심 조건
| 단사 | 다른 입력 → 다른 출력 |
| 전사 | 모든 공역 원소가 매핑됨 |
| 결과 | 정의역과 공역의 1:1 짝짓기 |
두 반 학생 짝짓기 비유
두 반의 학생 수가 정확히 같아서 한 명씩 짝을 지으면, 양쪽 모두 아무도 남지 않는 상황 → 전단사함수.
전단사함수의 핵심 가치
| 역함수 존재 보장 | 전단사여야만 역함수가 존재 |
| 가역성(Invertibility) | 출력에서 입력으로 되돌아갈 수 있음 |
| 정의역 = 공역 크기 | |정의역| = |공역| 필수 조건 |
전단사함수 판별 예시
| f(x) = x + 1 (ℤ → ℤ) | ⭕ | ⭕ | ⭕ |
| f(x) = x² (ℝ → ℝ) | ❌ | ❌ | ❌ |
| f(x) = x³ (ℝ → ℝ) | ⭕ | ⭕ | ⭕ |
| f(x) = 2x (ℕ → 짝수ℕ) | ⭕ | ⭕ | ⭕ |
응용 분야
| 암호학 | 암호화 ↔ 복호화 (1:1 대응 필수) |
| 데이터 구조 | 해시 함수의 이상적 형태 |
| 데이터베이스 | Primary Key (한 행당 고유 식별자) |
| 수학 | 무한 집합의 크기 비교 (셀 수 있는 무한) |
💡 암호학 직결: 메시지를 암호화할 때 다른 메시지가 같은 암호문으로 변환되면(단사 X) 복호화가 불가능하고, 만들 수 없는 암호문이 있으면(전사 X) 일부 메시지를 표현할 수 없다. 따라서 암호화 함수는 반드시 전단사함수여야 한다.
6. 항등함수 (Identity Function, I) ⭐
정의
정의역의 모든 원소를 자기 자신에게 대응시키는 유일한 함수.
I(a) = a
거울 비유
거울에 비친 자신의 모습처럼, 입력과 출력이 항상 동일.
항등함수의 특징
| 자기 자신과 짝짓기 | f(a) = a |
| 항상 단사함수 | 다른 입력 → 다른 출력 (자명) |
| 항상 전사함수 | 모든 출력이 매핑됨 (자명) |
| 항상 전단사함수 | 위 두 조건 모두 만족 |
일상의 항등함수
| 덧셈 | 0 | x + 0 = x |
| 곱셈 | 1 | x × 1 = x |
| 합집합 | ∅ | A ∪ ∅ = A |
| 교집합 | U | A ∩ U = A |
| 함수 합성 | I | f ∘ I = f |
💡 수학적 의미: 항등함수는 함수 합성의 "단위원소" 역할을 한다. 마치 곱셈에서 1을 곱하는 것과 같다.
7. 역함수 (Inverse Function, f⁻¹) ⭐⭐⭐
정의
함수 f가 전단사일 때만 존재하며, f(a) = b일 때 f⁻¹(b) = a로 되돌리는 함수.
"되감기 버튼" 비유
함수 f가 a를 b로 보냈다면, 역함수 f⁻¹는 b를 다시 a로 돌려보낸다. 마치 영상의 되감기 버튼처럼.
역함수 존재의 절대 조건 ⭐
함수 f가 역함수를 가지려면 반드시 전단사함수여야 한다.
| 단사가 아님 | f(2) = f(−2) = 4일 때, f⁻¹(4)는 2? −2? 결정 불가 |
| 전사가 아님 | 공역에 매핑 안 된 원소 b가 있을 때, f⁻¹(b)가 정의되지 않음 |
→ 두 조건 모두 만족해야만 역함수가 함수로서 잘 정의된다.
역함수의 핵심 성질
| f⁻¹ ∘ f = I | 원래 함수 → 역함수 = 항등함수 (원상복귀) |
| f ∘ f⁻¹ = I | 역함수 → 원래 함수 = 항등함수 (원상복귀) |
역함수 계산 예제
f: ℤ → ℤ, f(x) = x + 1의 역함수는?
| 1 | y = x + 1로 놓기 |
| 2 | x에 대해 풀기: x = y − 1 |
| 3 | x와 y 교환: f⁻¹(y) = y − 1 |
| 3 | f(3) = 4 | f⁻¹(4) = 3 | 원상복귀 ✅ |
💡 시험 핵심: 역함수 문제에서 가장 먼저 확인할 것은 "이 함수가 전단사인가?". 전단사가 아니면 역함수가 존재하지 않는다고 답해야 한다.
8. 함수의 합성 (Composition, ∘) ⭐⭐⭐
정의
두 함수 g와 f를 순차적으로 적용하여 새로운 함수를 만드는 연산.
(f ∘ g)(a) = f(g(a))
조립 라인 비유
첫 번째 기계 g가 입력 a를 받아 g(a)를 출력 → 두 번째 기계 f가 g(a)를 받아 f(g(a))를 최종 출력.
마치 커피 만들기: 원두 갈기(g) → 커피 내리기(f) = 합성 함수.
합성 순서 — 오른쪽부터 적용 ⭐
(f ∘ g)(x)
↑ ↑
2번 1번 적용
"f ∘ g"는 g를 먼저, 그 다음 f를 적용. 오른쪽 함수가 먼저!
⚠️ 합성은 교환법칙 성립 안 함
(f ∘ g)(x) ≠ (g ∘ f)(x) (일반적으로)
순서가 매우 중요하다. 일반 산술(+, ×)이나 집합 연산(∪, ∩)과는 결정적으로 다른 점.
합성 계산 예제 ⭐
f(x) = 2x + 3, g(x) = 3x + 2일 때 (f ∘ g)(x)와 (g ∘ f)(x)는?
| 1 | (f ∘ g)(x) = f(g(x)) |
| 2 | = f(3x + 2) |
| 3 | = 2(3x + 2) + 3 |
| 4 | = 6x + 4 + 3 |
| 5 | = 6x + 7 |
| 1 | (g ∘ f)(x) = g(f(x)) |
| 2 | = g(2x + 3) |
| 3 | = 3(2x + 3) + 2 |
| 4 | = 6x + 9 + 2 |
| 5 | = 6x + 11 |
| (f ∘ g)(x) | 6x + 7 |
| (g ∘ f)(x) | 6x + 11 |
→ 다르다! 합성 순서가 결과를 바꾼다.
💡 시험 핵심: 합성 문제는 순서 실수가 가장 흔한 오답 원인이다. (f ∘ g)는 "g 먼저, f 나중"이라는 순서를 절대 헷갈리면 안 된다.
9. 함수 연산 — 함수도 더하고 곱할 수 있다
정의
실수 집합(ℝ) 기반 함수들 사이의 산술 연산.
| 함수 덧셈 | (f₁ + f₂)(x) = f₁(x) + f₂(x) |
| 함수 곱셈 | (f₁ × f₂)(x) = f₁(x) × f₂(x) |
메가 머신 비유
두 개의 작은 기계(f₁, f₂)를 결합해 하나의 더 큰 기계로 만드는 것.
함수 연산 예제
f₁(x) = x², f₂(x) = x − x²일 때:
| 1 | (f₁ + f₂)(x) = x² + (x − x²) |
| 2 | = x ✅ |
| 1 | (f₁ × f₂)(x) = x² × (x − x²) |
| 2 | = x³ − x⁴ ✅ |
💡 궁극의 통찰 — "모든 것은 함수다!": 우리가 1~13강에서 배운 모든 개념을 함수로 재해석할 수 있다.
| 명제(Proposition) | 상황 → {T, F}에 매핑하는 함수 |
| 명제 연산자 AND | (T, F) → F에 매핑하는 함수 |
| 집합 연산자 ∩ | (집합 쌍) → 새 집합에 매핑하는 함수 |
이것이 함수가 이산구조의 가장 강력한 추상화 도구인 이유다.
10. 특수 함수 ① 바닥 함수 (Floor, ⌊x⌋) ⭐
정의
x 이하의 가장 큰 정수로 내림하는 함수.
⌊x⌋ = max{n ∈ ℤ | n ≤ x}
핵심 부등식
⌊x⌋ ≤ x < ⌊x⌋ + 1
비유
항상 숫자를 '내려놓는' 역할.
바닥 함수 계산 예시
| 3.1 | 3 |
| 3.9 | 3 |
| 5 | 5 |
| 0 | 0 |
| −1/2 (즉 −0.5) | −1 ⚠️ |
| −2.7 | −3 ⚠️ |
⚠️ 음수에서의 함정
−0.5의 바닥값은 0이 아니라 −1!
"내림"이라는 표현 때문에 0이라 착각하기 쉽지만, 수직선상에서 더 작은 쪽으로 내려가야 한다. −0.5보다 작은 가장 큰 정수는 −1이다.
11. 특수 함수 ② 천장 함수 (Ceiling, ⌈x⌉) ⭐
정의
x 이상의 가장 작은 정수로 올림하는 함수.
⌈x⌉ = min{n ∈ ℤ | n ≥ x}
핵심 부등식
⌈x⌉ − 1 < x ≤ ⌈x⌉
비유
항상 숫자를 '들어 올리는' 역할.
천장 함수 계산 예시
| 3.1 | 4 |
| 3.9 | 4 |
| 5 | 5 |
| 0 | 0 |
| −1/2 (즉 −0.5) | 0 ⚠️ |
| −2.7 | −2 ⚠️ |
바닥 vs 천장 비교 — 음수 함정 정리 ⭐
| 3.5 | 3 | 4 |
| −3.5 | −4 | −3 |
| 0.5 | 0 | 1 |
| −0.5 | −1 | 0 |
💡 시험 함정: 음수에서 바닥/천장이 헷갈린다면 수직선을 그려보자. 바닥은 왼쪽(작은 쪽), 천장은 오른쪽(큰 쪽).
12. 천장 함수의 컴퓨터 과학 응용 ⭐
실전 문제: 메모리 할당
100 bits를 저장하려면 몇 byte가 필요한가? (1 byte = 8 bits)
| 1 | 100 ÷ 8 = 12.5 bytes 필요 |
| 2 | byte는 정수 단위로만 존재 |
| 3 | 12.5 bytes로는 부족 → 올림 필요 |
| 4 | ⌈12.5⌉ = 13 bytes ✅ |
13 bytes에 100 bits 저장하면 4 bits는 사용하지 않은 채 남게 됨 (메모리 패딩).
천장 함수가 쓰이는 컴퓨터 과학 사례
| 메모리 할당 | 필요 byte 수 계산 |
| 페이지 단위 저장 | 파일 크기 → 디스크 페이지 수 |
| 네트워크 패킷 | 데이터 → 패킷 수 |
| 알고리즘 분석 | 이진 트리의 최대 깊이 ⌈log₂ n⌉ |
| 반올림 분배 | 손님 N명, 피자 M판 → 한 판당 ⌈N/M⌉명 |
💡 실무 직결: "리소스 할당은 항상 올림"이 컴퓨터 과학의 황금률이다. 12.5 byte를 12 byte로 내리면 데이터 손실 발생. 천장 함수는 실무에서 매일 쓰는 도구.
바닥 함수의 응용
| 나눗셈 몫 | 정수 나눗셈 a // b = ⌊a/b⌋ |
| 시간 변환 | 분 → 시간 = ⌊분/60⌋ |
| 버킷 분류 | 데이터를 일정 구간으로 나누기 |
📌 한눈에 보는 핵심정리
| 단사함수(Injective) | "겹치지 마" — 다른 입력은 다른 출력 |
| 전사함수(Surjective) | "남기지 마" — 치역 = 공역 |
| 전단사함수(Bijection) | 단사 + 전사, 완벽한 1:1 대응 |
| 단조함수 → 단사 | 단조 증가/감소 함수는 항상 단사 |
| 항등함수 I(a) = a | 자기 자신에 매핑, 항상 전단사 |
| 역함수 f⁻¹ | 전단사일 때만 존재 |
| 역함수 성질 | f⁻¹ ∘ f = I, f ∘ f⁻¹ = I |
| 함수 합성 (f∘g)(x) | f(g(x)) — g 먼저, f 나중 |
| 합성은 교환법칙 X | (f∘g) ≠ (g∘f) 일반적으로 |
| 함수 덧셈/곱셈 | 같은 입력의 출력값을 더하거나 곱함 |
| 바닥 함수 ⌊x⌋ | x 이하 가장 큰 정수 (내림) |
| 천장 함수 ⌈x⌉ | x 이상 가장 작은 정수 (올림) |
| 음수 주의 | ⌊−0.5⌋ = −1, ⌈−0.5⌉ = 0 |
🧠 예상문제 2제
문제 1. 함수 분류 종합
함수 f: ℝ → ℝ, f(x) = x³에 대한 설명으로 옳은 것은?
① 단사함수이지만 전사함수는 아니다 ② 전사함수이지만 단사함수는 아니다 ③ 전단사함수이며 역함수가 존재한다 ④ 단사도 전사도 아니다
👉 정답: ③
분석:
| 단사 판별 | x³은 단조 증가 함수 → 다른 x는 다른 x³ → ⭕ 단사 |
| 전사 판별 | 모든 실수 y에 대해 y = x³인 x = ∛y가 존재 → ⭕ 전사 |
| 결론 | 단사 + 전사 = 전단사함수 |
| 역함수 존재 | 전단사이므로 역함수 존재: f⁻¹(y) = ∛y |
| 2 | f(2) = 8 | f⁻¹(8) = ∛8 = 2 ✅ |
| −3 | f(−3) = −27 | f⁻¹(−27) = ∛−27 = −3 ✅ |
💡 시험 핵심 비교: f(x) = x²는 단사도 전사도 아니지만, f(x) = x³은 둘 다 만족하는 전단사함수다. 이 차이가 함수 분류 문제의 단골 비교 대상이다.
문제 2. 함수 합성과 천장 함수
f(x) = ⌈x/2⌉, g(x) = 2x − 1일 때, (f ∘ g)(7) 의 값은?
① 6 ② 7 ③ 13 ④ 14
👉 정답: ②
| 1 | (f ∘ g)(7) = f(g(7)) — g 먼저 |
| 2 | g(7) = 2(7) − 1 = 13 |
| 3 | f(13) = ⌈13/2⌉ = ⌈6.5⌉ |
| 4 | ⌈6.5⌉ = 7 ✅ (천장 함수: 6.5 이상 가장 작은 정수) |
| ① 6 | ⌊6.5⌋ = 6으로 바닥 함수와 헷갈림 |
| ③ 13 | 천장 함수 적용 안 함 |
| ④ 14 | g(7) = 14로 잘못 계산 |
💡 추가 학습: 합성 함수 문제에서 순서(g 먼저, f 나중)와 천장/바닥 구분(올림/내림)을 모두 정확히 체크해야 한다. 두 개념이 결합된 문제는 부분 점수 없이 통째로 틀리기 쉬우니 단계별로 천천히 풀자.
마치며
이번 15강에서는 함수의 본격적인 분류(단사·전사·전단사)와 핵심 연산(합성·역함수·산술 연산), 그리고 컴퓨터 과학에서 매일 쓰이는 바닥/천장 함수까지 다뤘다.
핵심 통찰
함수 분류 = 역함수 존재의 결정 기준
| 단사만 | ❌ | 부분적 역함수만 가능 |
| 전사만 | ❌ | 역함수 정의 불가 |
| 전단사 | ⭕ | 암호학·DB 키·1:1 매핑 |
14~15강 함수 파트 정리
| 함수가 무엇인가 | 함수의 분류와 활용 |
| 정의역·공역·치역 | 단사·전사·전단사 |
| 상·원상·부분집합의 상 | 역함수·합성·연산 |
| 단답형 빈출 | 계산·서술형 빈출 |
'📌 SW전공-개념 > 이산구조' 카테고리의 다른 글
| [이산구조 개념-17] 영-일 행렬과 부울린 연산 — 0과 1로 그리는 관계의 지도 (0) | 2026.06.10 |
|---|---|
| [이산구조 개념-16] 행렬의 기초와 연산 — 숫자들의 사각형 세계 (1) | 2026.06.09 |
| [이산구조 개념-14] 함수의 기초 — 입력하면 출력된다, 매핑 머신의 수학 (0) | 2026.06.07 |
| [이산구조 개념-13] 집합 연산과 항등 법칙 — 합집합·교집합부터 증명까지 (1) | 2026.06.06 |
| [이산구조 개념-12] 집합의 기초 — 원소·표기·부분집합부터 데카르트 곱 (0) | 2026.06.05 |