집합·관계·함수와 좌표
회원과 상품이 있고, 회원이 상품을 구매하며, 가격을 넣으면 할인금액이 나온다. 이 문장에서 회원의 모음은 집합, 누가 무엇을 구매했는가는 관계, 가격을 할인금액에 대응시키는 규칙은 함수로 표현할 수 있다. 여러 특성을 축으로 정하고 한 대상을 좌표로 놓으면 대상 사이 위치도 비교할 수 있다. 이 네 언어는 데이터베…
복잡한 현실도 대상·연결·규칙으로 나누면 읽힌다
회원과 상품이 있고, 회원이 상품을 구매하며, 가격을 넣으면 할인금액이 나온다. 이 문장에서 회원의 모음은 집합, 누가 무엇을 구매했는가는 관계, 가격을 할인금액에 대응시키는 규칙은 함수로 표현할 수 있다. 여러 특성을 축으로 정하고 한 대상을 좌표로 놓으면 대상 사이 위치도 비교할 수 있다. 이 네 언어는 데이터베이스, 통계, 인공지능과 성능모델을 읽는 가장 작은 수학 문법이다.
먼저 되짚기: 수와 표현
수는 양과 순서를 나타내는 추상적인 값이고, 숫자 표기와 비트열은 그 값을 기록하는 표현이다. 같은 값도 단위와 표현 범위가 다르면 다른 방식으로 저장되고 계산된다. 집합과 함수에서는 값 자체와 값을 적은 기호를 구분한다.
집합·관계·함수·좌표
먼저 두 명과 두 역할을 손으로 짝지어 보자. U와 R은 두 집합의 이름이고, 중괄호 { } 안에는 원소들을 쉼표로 구분해 적는다. 소괄호 ( , ) 안의 두 대상은 첫째·둘째 위치를 구별한 순서쌍이다. U={민수, 지영}, R={조회자, 관리자}에서 가능한 쌍은 (민수,조회자), (민수,관리자), (지영,조회자), (지영,관리자) 네 개다. 이 중 민수의 두 쌍과 지영의 조회자 쌍만 실제로 허용했다면 가능한 네 쌍 중 세 쌍을 골라 연결한 것이다. 다음 정의는 “모음”, “가능한 모든 짝”, “선택한 연결”에 각각 이름을 붙인다.
집합은 어떤 기준으로 구별한 대상들의 모음이고, 각 대상을 원소라 한다. x ∈ A는 x가 집합 A의 원소라는 뜻이며, A의 모든 원소가 B에도 들어 있으면 A는 B의 부분집합이다. 두 집합 A와 B의 데카르트 곱 A × B는 A의 원소 하나와 B의 원소 하나를 순서 있게 짝지은 모든 쌍의 집합이다.
관계는 이 순서쌍 중 의미 있는 연결을 고른 집합이다. 회원 집합과 상품 집합 사이의 구매 관계에는 실제로 구매한 (회원, 상품) 쌍만 들어간다. 함수는 정의역의 각 입력을 공역의 정확히 한 출력에 대응시키는 특별한 관계다. f: A → B에서 A는 허용 입력의 집합인 정의역, B는 가능한 출력의 집합인 공역이며, 실제로 나온 출력들의 집합은 치역이다. 서로 다른 입력이 같은 출력으로 가는 것은 허용되지만 한 입력이 동시에 서로 다른 두 출력으로 가면 함수가 아니다. f(a)는 함수 f에 입력 a를 넣어 얻은 출력값이라는 표기다. 따라서 f(x)=0은 입력 x에서 출력값이 0이 되는 지점을 찾는 식이다. [a,b]는 양 끝 a와 b를 포함한 입력 구간을 뜻한다.
함수가 어떤 구간에서 연속이라는 것은 입력을 조금 바꿀 때 출력도 조금씩 바뀌며 값이 갑자기 뛰거나 끊기지 않는다는 뜻이다. 연속함수는 구간의 두 끝 출력 사이의 모든 값을 지나므로, f(a)와 f(b)의 부호가 다르면 중간값 정리에 따라 [a,b] 안에 f(x)=0인 점이 적어도 하나 있다. 이는 근의 존재를 보이지만 하나뿐임을 보장하지는 않는다.
좌표는 정한 축과 순서에 따라 대상의 위치를 수들의 순서쌍이나 순서열로 나타낸 것이다. (처리시간, 오류율) = (120밀리초, 0.2%)처럼 각 축의 뜻·단위·원점을 정해야 좌표를 해석할 수 있다.
현실 대상을 수학 표현으로 바꾸는 순서
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
U×R의 가능한 4쌍 중 (민수,조회자), (민수,관리자), (지영,조회자) 3쌍을 실제로 허용했다. 민수의 두 연결을 하나로 지우면 현실 의미를 잃는다. 가격·날짜·등급을 입력으로 한 할인함수와 서비스 상태의 좌표는 별도 표현이다.
대상 범위를 집합으로 정하고 그 사이 연결을 관계로 표현한다. 정의역의 모든 입력마다 출력이 정확히 하나인지 확인해야 함수로 부를 수 있다. 좌표를 쓸 때는 별도로 축의 뜻·순서·단위를 정한다. 관계가 모두 함수가 되거나 함수가 반드시 좌표로 바뀌는 단계라는 뜻은 아니다.
출력이 하나라는 말에는 존재와 유일성이 함께 들어 있다
함수인지 검사할 때는 입력마다 두 가지를 따로 묻는다. 출력이 존재하는지, 그리고 그 출력이 하나뿐인지를 확인한다. 민수에게 조회자만 연결하고 지영에게는 아무 역할도 연결하지 않은 관계는, 회원 집합 U 전체에서 역할 하나를 출력하는 함수가 아니다. 민수에게 출력이 하나인 것만으로 지영의 빠진 출력을 해결할 수 없기 때문이다. 지영을 정의역에서 제외하면 다른 입력 계약이 되므로, 원래 회원 전체를 다뤄야 하는 요구와 맞는지 먼저 확인한다.
다중 역할을 보존하면서 함수로 표현할 수도 있다. 출력 하나를 역할 하나가 아니라 역할들의 집합으로 정하면 된다. g(민수)={조회자, 관리자}, g(지영)={조회자}는 각 회원에게 역할집합 하나를 대응시킨다. 공역은 R 자체가 아니라 R의 모든 부분집합을 모은 P(R)이다. 이 표기를 멱집합이라고 하며, 여기서는 빈 집합, 조회자만, 관리자만, 두 역할 모두의 네 집합이 들어간다. 역할이 없는 회원에게는 빈 집합 하나를 출력한다. 원래 회원–역할 관계에서 연결 두 개를 지운 것과, 여러 역할을 한 집합으로 묶은 것은 서로 다른 모델링이다.
사례: 회원–역할과 가격–할인을 다르게 모델링한다
회원 U={민수, 지영}, 역할 R={조회자, 관리자}에서 민수가 두 역할을 가지면 회원–역할 할당은 여러 순서쌍을 허용하는 관계다. 이를 회원 하나에 역할 하나만 대응하는 함수로 만들면 실제 연결 하나가 사라진다.
가격과 할인금액은 날짜·회원등급 같은 필요한 조건까지 입력에 포함하면 입력 하나에서 결과 하나를 정하는 함수로 만들 수 있다. 서비스 상태를 응답시간 ms와 오류율 %의 좌표로 둘 때는 축 순서와 단위를 고정해야 한다.
할인을 실제로 계산하면 d(10000)=10000×0.1=1000원, d(20000)=2000원이다. 작은 학습 모형의 입력집합을 {10000,20000}, 출력으로 허용한 집합을 {0,1000,2000}으로 정하면 실제 출력은 {1000,2000}뿐이다. 허용출력(공역)과 실제출력(치역)이 다를 수 있음을 보여준다. 음수 가격은 이 예의 정의역 밖이다.
성능 점 (120ms,0.2%)의 첫 숫자는 시간, 둘째는 전체 요청 중 오류 비율이다. 첫 축을 초로 바꾸면 (0.120s,0.2%)로 같은 상태이며, 단위 없이 120을 그대로 옮기면 다른 점이 된다. 연속성을 쓰는 경우도 별도 가정이다. f(x)=x−2는 [1,3]에서 끝값 −1, +1 사이를 끊김 없이 지나 x=2에서 0이지만, 계단식 할인 규칙에는 연속성을 확인하지 않고 중간값 정리를 적용하지 않는다.
회원·권한·성능을 수학 문장으로 바꿔 본다
회원 집합을 U = {민수, 지영}, 역할 집합을 R = {조회자, 관리자}라고 하자. 한 회원이 여러 역할을 가질 수 있으므로 할당은 U × R의 일부인 관계다. 민수가 두 역할을 가진다면 (민수, 조회자)와 (민수, 관리자)가 모두 들어간다. 이 대응은 한 입력에 여러 출력이 있으므로 회원 → 역할 하나인 함수로 보면 안 된다.
할인함수 d(가격) = 가격 × 0.1은 허용 가격 하나에 할인금액 하나를 대응시킨다. 함수의 정의역을 0 이상의 원화 금액으로 정하지 않으면 음수 가격처럼 의미 없는 입력까지 허용하게 된다. 서비스 상태를 (응답시간, 오류율) 좌표로 기록하면 한 시점의 상태가 평면의 한 점이 되고, 시간에 따라 점이 움직이는 모습으로 성능 변화를 볼 수 있다.
어떤 표현이 맞는지 네 질문으로 고른다
| 표현 | 핵심 질문 | 예 | 확인할 조건 |
|---|---|---|---|
| 집합 | 어떤 대상들이 범위에 들어가나 | 활성 회원의 모음 | 포함 기준과 중복 없는 원소 |
| 관계 | 어떤 대상끼리 연결되는가 | 회원–역할 할당 | 방향과 일대일·일대다·다대다 의미 |
| 함수 | 입력마다 출력이 하나로 정해지는가 | 가격–할인금액 | 정의역·공역·규칙·예외 입력 |
| 좌표 | 어떤 축에서 대상의 위치를 나타내나 | 응답시간–오류율 | 축 순서·단위·척도·원점 |
관계를 억지로 함수로 만들면 여러 역할 중 하나가 사라지고, 함수를 단순 관계로만 보면 입력 하나의 결과가 유일하다는 중요한 규칙을 놓친다. 좌표의 숫자는 계산하기 쉬워도 축의 의미가 없다면 비교할 수 없다.
정의역과 단위를 빼면 계산은 맞고 판단은 틀린다
함수 규칙만 쓰고 정의역을 적지 않으면 0으로 나누는 입력, 음수가 될 수 없는 수량과 지원하지 않는 코드가 섞인다. 날짜에 따라 결과가 바뀌는 할인 규칙을 가격만의 함수라고 쓰면 같은 입력에서 출력이 달라진 것처럼 보인다. 실제 입력에 날짜가 필요하다면 함수의 입력을 (가격, 날짜)로 고쳐야 한다.
좌표축에 원화와 달러, 초와 밀리초를 섞거나 범주 번호를 실제 거리처럼 계산하면 수치상 가까움이 의미상 가까움을 보장하지 않는다. 결측값을 0으로 넣는 일도 측정되지 않음과 실제 값 0을 혼동한다. 모든 수학 표현에는 대상 범위, 단위, 입력 조건과 예외를 함께 적는다.
자체 10점 문제
집합·관계·함수·좌표의 개념과 상호관계를 설명하고 정보시스템 모델링 적용 시 유의사항을 제시하시오.
요구어는 설명과 제시다. 대상 범위, 연결의 개수 성격, 함수의 정의역·공역·숨은 입력, 좌표의 축·단위·결측 의미를 같은 흐름으로 정리한다.
10점 풀이 방향과 모범답안 보기
10점 답안 목차
- 집합과 원소
- 관계와 순서쌍
- 함수의 정의역·공역·유일 대응
- 좌표의 축·단위
- 다대다·숨은 입력·결측 실패
10점 답안 도식
집합 A×B의 순서쌍 중 선택한 연결이 관계다. 그 관계가 정의역의 입력마다 정확히 한 출력을 정하면 함수이며, 좌표 표현에는 축·단위 계약을 별도로 붙인다. 회원–역할 관계 그림의 민수 두 연결을 반례로 설명한다.
기술사 답안으로 전환하기
예상문제: “집합·관계·함수·좌표의 개념과 상호관계를 설명하고 정보시스템 모델링 적용 시 유의사항을 제시하시오.”
집합은 기준으로 구별한 대상의 모음이며, 두 집합의 데카르트 곱은 양쪽 원소를 순서 있게 짝지은 모든 쌍의 집합이다. 관계는 그 순서쌍 중 의미 있는 연결을 고른 부분집합이고, 함수는 정의역의 각 입력을 공역의 정확히 한 출력에 대응시키는 특별한 관계다. 좌표는 축의 순서·뜻·단위에 따라 대상을 수의 순서열로 나타낸 표현이다.
회원과 역할은 한 회원이 여러 역할을 가질 수 있어 관계로 모델링하고, 가격과 할인금액은 정한 날짜·조건을 입력에 포함하면 함수로 모델링할 수 있다. 서비스 상태를 응답시간과 오류율 좌표로 놓으면 여러 특성을 함께 비교할 수 있다. 표현을 고를 때 대상 포함기준, 관계의 방향과 개수 성격, 함수의 정의역·공역·숨은 입력, 좌표축의 단위와 척도를 명시한다.
다대다 관계를 억지로 함수로 만들면 연결이 사라지고, 날짜처럼 필요한 입력을 빼면 같은 입력이 여러 출력으로 간 것처럼 보인다. 범주 번호를 실제 거리로 취급하거나 결측을 0과 혼동하는 것도 오판을 만든다. 계산 전에 현실 의미와 표현 규칙을 검증하고 예외·단위·범위를 함께 기록한다.
자체 25점 문제
회원·권한·할인·서비스 상태를 집합·관계·함수·좌표로 표현하고 잘못된 함수화·숨은 입력·단위 혼합을 검증하는 모델링 절차를 설계하시오.
요구어는 표현과 설계다. 계산 전에 현실 의미와 수학 표현의 계약을 맞추고 반례로 모델 오류를 검증한다.
25점 풀이 방향과 모범답안 보기
25점 답안 목차
- 대상·포함기준과 집합
- 관계 방향·개수 성격
- 함수의 입력·출력 계약
- 숨은 조건의 입력 포함
- 좌표축·단위·척도
- 결측과 실제 0 구분
- 반례·경계값 검증
- 모델 변경·재검증
25점 답안 도식
| 현실에서 표현으로 연결 | 검증할 계약 |
|---|---|
| 현실 대상 → 포함 기준 → 집합 | 어떤 대상이 정의역·범위에 들어오는가 |
| 집합 → 관계 → 함수 여부 | 모든 입력의 출력 개수와 숨은 입력 |
| 입력계약·예외 → 좌표축·단위 검증 | 음수·결측·단위 변환이 의미를 보존하는가 |
실제 다중역할 그림과 아래 할인·좌표의 반례를 함께 사용한다.
25점 모범답안
먼저 회원·역할·상품처럼 대상의 포함기준을 정해 집합을 만든다. 대상 사이 연결은 관계로 표현하고 일대일·일대다·다대다 의미를 명시한다. 회원이 여러 역할을 가질 수 있으면 회원→역할 하나의 함수가 아니라 회원×역할의 부분집합인 관계로 둔다.
가격–할인은 정의역, 공역과 대응규칙을 적고 결과를 바꾸는 날짜·등급이 있다면 입력에 포함한다. 같은 가격에서 날짜에 따라 결과가 달라지는 구조를 가격만의 함수라고 표현하지 않는다. 서비스 상태 좌표는 응답시간과 오류율의 축 순서·단위·척도를 고정한다.
검증은 다중역할, 음수·경계 가격, 날짜 변경, 단위 변환, 결측과 실제 0을 포함한다. 표현 규칙이 현실 의미를 보존하는지 반례로 확인하고 업무 조건이 바뀌면 정의역·관계·좌표 계약을 함께 갱신한다.
출처와 적용 경계
집합·관계·함수·좌표는 안정된 수학 기초개념이다. 함수의 전체 입력과 유일 출력 구분은 MIT 6.042의 관계·함수 강의자료와 대조했다. 이 절에서는 별도 언급이 없으면 정의역의 모든 입력에 출력이 있는 함수를 다룬다. 회원·역할·할인·성능 사례와 연습은 자체 예이며 실제 권한모델이나 가격정책을 뜻하지 않는다.
자기교정과 조건 변경
| 잘못 쓴 답 | 수정 | 복습 |
|---|---|---|
| 모든 관계는 함수다 | 입력마다 출력 하나가 정해지는 관계만 함수다 | 정의 |
| 회원 하나에 역할 하나만 두면 된다 | 다중 역할이면 일반 관계로 표현한다 | 사례 |
| 할인은 가격만의 함수다 | 날짜·등급이 결과를 바꾸면 입력에 포함한다 | 실패 |
| 좌표 숫자만 같으면 같은 의미다 | 축 순서·단위·척도가 같아야 비교된다 | 비교 |
| 결측값은 0으로 넣어도 된다 | 측정되지 않음과 실제 0을 구분한다 | 실패 |
회원이 역할별 유효기간을 가진다면? 관계의 원소에 기간을 포함하거나 별도 할당 객체로 모델링한다.
할인규칙에 재고상태가 추가되면? 함수 입력에 재고상태를 포함하고 정의역을 다시 적는다.
응답시간 단위가 ms에서 s로 바뀌면? 좌표 변환과 비교기준을 같은 단위로 명시한다.
직접 확인: 출력의 개수와 좌표의 뜻을 먼저 적는다
다음은 자체 연습이다. 답을 펼치기 전에 입력집합과 출력집합부터 적고 이유를 한 문장씩 써 보자.
- U는 민수·지영, R은 조회자·관리자다. 관계에
(민수,조회자)만 있을 때U → R인 함수인가? 두 회원 모두 조회자에 연결하면 판단이 바뀌는가? - 민수는 조회자·관리자, 지영은 역할이 없다. 각 회원에게 역할들의 집합을 출력하는 g의 두 출력과 공역
P(R)을 적어라. - 같은 서비스 상태를 A는
(120ms,0.2%), B는(0.120s,0.002)로 기록했다. B의 둘째 축은 0부터 1 사이의 오류 비율이다. 같은 상태인가? 숫자를 그대로 빼서 두 점의 거리를 계산해도 되는가?
연습 풀이와 확인 과정 보기
- 처음에는 지영의 출력이 없어 함수가 아니다. 두 회원 모두 조회자에 연결하면 모든 입력의 출력이 정확히 하나이므로 함수다. 서로 다른 입력이 같은 출력으로 가도 되고, 공역의 관리자에 도달할 필요는 없다. 이때 치역은 조회자만 포함한다.
g(민수)={조회자,관리자},g(지영)=빈 집합이다. 공역은 빈 집합·조회자만·관리자만·두 역할 모두의 네 집합을 원소로 갖는다. 지영의 출력은 없는 것이 아니라 빈 집합 하나이므로 출력 존재 조건을 만족한다.120ms=0.120s,0.2%=0.2÷100=0.002이므로 같은 상태다. 먼저 두 축을 같은 단위·척도로 맞춰야 한다. 변환 뒤에도 시간과 오류 비율을 하나의 거리로 합치려면 각 축에 어떤 가중치나 정규화를 적용할지 정해야 하며, 숫자가 있다는 이유만으로 유클리드 거리가 업무상 유사도를 뜻하지는 않는다.
30초 정리
- 집합은 대상의 모음, 관계는 대상 사이의 순서쌍, 함수는 입력마다 출력 하나를 정하는 관계다.
- 함수는 정의역·공역·대응 규칙을 함께 적고 실제 출력의 모음을 치역이라 한다.
- 좌표는 축의 순서·뜻·단위에 따라 대상의 위치를 수들의 순서열로 표현한다.
- 계산 전에는 관계의 개수 성격, 함수의 숨은 입력, 좌표의 단위와 결측 의미를 확인한다.