이산수학 1강 - 이산수학의 개요
연속적인 데이터와 이산적인 데이터를 구분하고, 이산수학이 컴퓨터과학의 문제 해결에 필요한 이유를 살펴본다. 도구·기법·방법론, 모델링과 추상화, 알고리즘의 표현 방법과 의사코드의 기본 제어구조를 익힌 뒤 주요 응용 분야까지 연결한다.
1. 이산수학의 의미
수학을 바라보는 두 가지 분류
수학은 연구 대상이나 접근 방식에 따라 대수학, 해석학, 기하학 등으로 나눌 수 있다. 한편 다루는 수학적 구조의 성격을 기준으로 보면 연속수학과 이산수학으로 구분할 수 있다. 연속수학은 값이 끊임없이 이어지는 연속적인 대상을 다루고, 이산수학은 서로 구분되는 개별 값과 구조를 다룬다.
이산수학(discrete mathematics)은 이산적인 수학 구조를 연구하는 학문이다. 강의의 그래프에서 연속적인 집합은 선으로 이어져 있지만 이산적인 집합은 서로 떨어진 점으로 표현된다. 이 차이는 데이터가 중간값을 끊임없이 가질 수 있는지, 아니면 셀 수 있는 구별된 상태나 원소로 구성되는지를 이해하는 데 도움을 준다.
이산수학의 핵심 연구 대상은 서로 구분되는 이산적인 수학 구조이다. 컴퓨터가 정보를 구별된 상태와 기호로 표현하고 처리하기 때문에 이산수학은 컴퓨터과학의 여러 분야와 밀접하게 연결된다.
2. 문제 해결의 도구·기법·방법론
세 개념의 구분
문제를 성공적으로 해결하려면 무엇을 사용할 것인지뿐 아니라 그것을 어떻게 적용하고 어떤 상황에서 선택할지도 판단해야 한다. 강의에서는 이 요소를 도구(tool), 기법(technique), 방법론(methodology)으로 구분한다.
도구는 문제 해결에 사용하는 대상이나 지식 요소이다. 기법은 도구를 실제로 활용하는 구체적인 방식이다. 방법론은 누가, 언제, 어디서, 왜, 어떠한 도구와 기법을 사용해야 하는지에 관한 체계적인 관점이다. 방법론은 상황에 맞는 도구와 기법을 효과적이고 효율적으로 선택하도록 이끈다.
축구와 수학의 사례
축구에서는 축구공, 축구화, 축구장, 골대, 보호대, 유니폼 등이 도구에 해당한다. 킥, 헤딩, 트래핑, 스토핑, 태클, 스로인, 골키핑은 도구를 활용하는 기법이다. 피라미드 시스템, 4-2-4·4-3-3 시스템, 토털사커, 수비 시스템은 경기 상황과 목표에 맞춰 선수와 기법을 조직하는 방법론의 사례이다.
수학에서는 정의와 정리가 도구가 된다. 일차연립방정식을 푸는 가우스 소거법과 방정식의 근을 구하는 공식은 기법에 해당한다. 어떤 문제에서 어떤 정의와 정리를 사용하고, 여러 풀이 기법 가운데 무엇을 선택할지 판단하는 것이 수학적 방법론이다.
| 구분 | 의미 | 축구의 예 | 수학의 예 |
|---|---|---|---|
| 도구 | 문제 해결에 사용하는 대상이나 지식 | 축구공, 축구화, 골대 | 정의, 정리 |
| 기법 | 도구를 활용하는 구체적인 방식 | 킥, 헤딩, 태클 | 가우스 소거법, 근의 공식 |
| 방법론 | 상황에 맞게 도구와 기법을 선택·조직하는 관점 | 4-3-3 시스템, 토털사커 | 가장 효과적이고 효율적인 풀이 전략의 선택 |
3. 모델링을 이용한 문제 해결
수학적 모델링
모델링(modeling)은 현실의 문제를 해결하기 쉬운 형태의 모델로 표현하는 과정이다. 수학적 모델링에서는 현실 문제를 수학의 기호, 식, 관계와 같은 추상모델로 바꾼다. 필요한 수학적 변형을 모델에 적용해 해를 구한 뒤 그 결과를 원래 문제의 해결책으로 해석한다.
수학적 모델링의 흐름은 문제 → 추상모델 → 변형된 모델 → 문제의 해결책으로 정리할 수 있다. 현실의 모든 세부 사항을 그대로 옮기는 것이 아니라 해결에 필요한 관계만 수학적으로 표현하는 것이 중요하다.
정보 모델링
정보 모델링은 실생활의 문제를 컴퓨터에서 해결할 수 있는 정보의 형태로 추상화하는 과정이다. 강의에서는 문제 → 정보 → 처리 → 문제의 해결책이라는 흐름으로 설명한다. 문제에서 필요한 정보를 골라 표현하고, 컴퓨터가 정해진 방식으로 처리하여 해결책을 얻는다.
수학적 모델링은 수학적 도구로 다룰 수 있는 모델을 만들고, 정보 모델링은 컴퓨터로 처리할 수 있는 정보 형태를 만든다. 두 과정 모두 현실 문제에서 핵심만 골라내는 추상화를 필요로 한다.
4. 추상화의 개념과 사례
추상화란 무엇인가
추상화(abstraction)는 일정한 인식 목표를 추구하기 위해 여러 표상이나 개념에서 특정한 특성이나 속성을 뽑아내는 과정이다. 문제 해결의 관점에서는 문제와 관련된 핵심 내용만 남기고 관련 없는 내용을 제거하거나 단순화하는 것을 뜻한다.
사과라는 개념을 생각할 때 모든 사과의 색, 크기, 흠집, 산지를 낱낱이 다루지 않아도 공통된 핵심 특성으로 대상을 인식할 수 있다. 컴퓨터도 슈퍼컴퓨터, 노트북, 태블릿처럼 모습과 성능이 달라도 공통된 특성을 중심으로 하나의 개념으로 묶을 수 있다. 추상화는 차이를 모두 없애는 것이 아니라 현재 목표에 불필요한 차이를 잠시 제외하는 것이다.
사과와 배 판매 문제의 추상화
사과 한 개를 600원에 사서 800원에 팔면 한 개당 이익은 200원이다. 배 한 개를 1,200원에 사서 1,500원에 팔면 한 개당 이익은 300원이다. 사과와 배를 합해 10개 팔고 총이익이 2,400원이라면 판매 개수를 각각 A와 B로 두어 다음과 같이 표현할 수 있다.
A + B = 10200A + 300B = 2,400
첫 식에서 전체 판매 개수를, 둘째 식에서 전체 이익을 나타낸다. 두 식을 풀면 A=6, B=4를 얻으므로 사과는 6개를 팔았다. 긴 문장 속에서 판매 개수와 개당 이익이라는 핵심 관계만 뽑아 식으로 바꾼 것이 추상화의 전형적인 예이다.
추상화의 목적은 문제를 막연하게 줄이는 것이 아니라, 해결에 필요한 핵심 관계를 더 분명하게 드러내는 것이다.
5. 디지털 논리회로의 간소화
수식으로 표현한 회로
추상화는 복잡한 디지털 논리회로를 논리식으로 표현하고 간소화하는 데에도 사용된다. 강의의 회로는 다음 부울식으로 표현된다.
F(X,Y) = X + XY + X̅Y
회로의 게이트와 연결을 하나씩 말로 설명하는 대신 입력과 연산 관계를 수식으로 나타내면 부울대수의 법칙을 적용할 수 있다. 동일한 논리 기능을 더 단순한 식으로 바꾸면 회로 구조도 간단해진다.
부울대수에 의한 변형
F(X,Y) = X + XY + X̅Y= X(1+Y) + X̅Y= X + X̅Y= (X+X̅)(X+Y)= X+Y
첫 단계에는 분배법칙을 적용하고, 1+Y=1을 이용해 식을 줄인다. 다시 분배법칙을 적용한 뒤 X+X̅=1을 사용하면 최종적으로 X+Y가 된다. 복잡한 원래 회로와 간소화한 회로는 같은 논리 기능을 수행한다.
강의의 회로 간소화 사례는 이산수학의 부울대수가 실제 컴퓨터 하드웨어의 논리회로 설계와 연결된다는 점을 보여 준다.
6. 알고리즘과 표현 방법
알고리즘의 정의
알고리즘(algorithm)은 어떠한 문제를 해결하기 위한 여러 동작들의 유한한 모임이다. 문제를 해결하기 위해 수행해야 할 절차를 명시적인 단계로 나타내며, 주어진 작업을 수행하는 프로시저나 함수로 볼 수도 있다.
좋은 표현은 각 단계가 무엇을 뜻하는지 모호하지 않게 전달해야 한다. 강의에서는 알고리즘의 대표적인 표현 방법으로 컴퓨터 프로그래밍 언어, 순서도, 의사코드를 제시한다.
컴퓨터 프로그래밍 언어
컴퓨터 프로그래밍 언어는 컴퓨터가 작동하도록 동작을 세밀하게 지시한다. 실제 실행 프로그램을 만들 수 있다는 장점이 있지만, 특정 언어의 문법과 부차적인 표현까지 신경 써야 하므로 알고리즘의 핵심 요소가 잘 드러나지 않을 수 있다. 또한 모든 상황에서 통일해 사용하는 하나의 프로그래밍 언어가 존재하지 않는다.
순서도
순서도(flow chart)는 정해진 도형과 화살표를 이용해 알고리즘의 진행 순서와 분기를 시각적으로 나타낸다. 알고리즘의 작동 방식을 도식화하여 흐름을 파악하기 쉽다는 장점이 있다. 반면 내용이 복잡하거나 프로그램의 규모가 커지면 그림이 지나치게 커지고 연결이 복잡해져 표현하기 어렵다.
의사코드
의사코드(pseudocode)는 모호해질 수 있는 부분에는 프로그래밍 언어의 문법을 사용하고, 구체적으로 표현할 필요가 없는 부분에는 자연어 설명을 사용하는 방식이다. 실행 자체보다 알고리즘의 작동 방식을 명확하게 설명하는 데 목적이 있다. 강의에서는 C 언어를 기반으로 한 의사코드를 사용한다.
| 표현 방법 | 장점 또는 용도 | 주의점 또는 한계 |
|---|---|---|
| 프로그래밍 언어 | 컴퓨터가 수행할 동작을 세밀하게 지시하고 실행 가능 | 언어별 문법과 부차적인 표현 때문에 핵심이 가려질 수 있음 |
| 순서도 | 알고리즘의 흐름을 도형으로 직관적으로 표현 | 내용과 규모가 커지면 표현이 복잡해짐 |
| 의사코드 | 프로그래밍 문법과 자연어를 조합하여 작동 방식을 설명 | 실행 코드가 아니라 알고리즘 설명용 표현임 |
7. 의사코드의 문장과 기본 제어구조
할당문과 제어문
의사코드에는 변수에 값을 넣는 할당문과 실행 순서를 결정하는 제어문이 사용된다. 제어구조는 크게 순차구조(sequence), 선택구조(selection), 반복구조(iteration)의 세 가지로 나뉜다.
순차구조
순차구조는 문장을 적힌 순서대로 하나씩 실행한다. 예를 들어 x ← 0, x ← x+1, x ← x+2를 차례로 수행하면 x의 값은 0, 1, 3의 순서로 바뀐다. 별도의 조건이나 되돌아가는 흐름이 없는 가장 기본적인 구조이다.
선택구조
선택구조는 조건의 참과 거짓 또는 값에 따라 실행할 문장을 고른다. if문은 조건에 따라 서로 다른 경로를 선택한다. 강의의 예에서는 x>0이면 양수를, x<0이면 음수를, 그 밖에는 0을 출력한다.
switch문은 하나의 식이나 변수 값에 따라 여러 경우 중 하나를 선택한다. 강의의 예는 x가 0이면 0, 1이면 1을 출력하고 어느 경우에도 해당하지 않으면 알 수 없는 수라는 메시지를 출력한다. 각 case 뒤의 break는 해당 선택의 처리를 마치도록 나타낸다.
반복구조
반복구조는 일정한 조건이나 자료의 범위에 따라 문장을 여러 번 수행한다. for문은 정해진 범위나 횟수를 중심으로 반복할 때 사용하고, while문은 조건이 참인 동안 반복한다. foreach문은 자료 모음의 각 원소를 하나씩 대상으로 삼아 같은 작업을 수행한다.
강의의 for문과 while문 예는 5부터 0까지 값을 차례로 출력한 뒤 fire를 출력한다. foreach문 예는 주어진 원소 모음의 값을 하나씩 출력한 뒤 같은 메시지를 출력한다. 반복 방식은 달라도 반복 대상과 종료 시점을 명확히 표현해야 한다.
| 제어구조 | 동작 방식 | 강의의 대표 문장 |
|---|---|---|
| 순차구조 | 문장을 위에서 아래로 차례대로 실행 | 할당문들의 연속 |
| 선택구조 | 조건이나 값에 따라 실행 경로를 선택 | if, switch |
| 반복구조 | 조건·횟수·원소 모음에 따라 문장을 되풀이 | for, while, foreach |
8. 이산수학의 응용 분야
이산수학의 각 주제는 컴퓨터의 구조, 데이터 처리, 네트워크, 보안, 계산 이론 등과 직접 연결된다. 강의에서는 이산수학 주제와 대표적인 컴퓨터 응용 분야를 다음과 같이 대응시킨다.
| 이산수학 주제 | 컴퓨터 응용 분야 | 이산수학 주제 | 컴퓨터 응용 분야 |
|---|---|---|---|
| 논리 | 전문가 시스템 | 부울대수 | 디지털 논리회로 |
| 증명 | 성능 평가 | 그래프 | 컴퓨터 네트워크 |
| 집합론 | 자료구조, 데이터베이스 | 트리 | 데이터 탐색 |
| 행렬 | 그래픽스, 로보틱스 | 조합이론 | 문제 해결, 성능 평가 |
| 관계 | 데이터베이스 | 정수론 | 데이터 암호화 |
| 함수 | 프로그래밍 언어 | 오토마타 | 계산 이론, 프로그래밍 언어 |
이 대응은 이산수학이 단순한 계산 과목이 아니라 컴퓨터과학의 여러 문제를 표현하고 해결하는 기초 언어라는 점을 보여 준다. 이후 학습할 논리, 집합, 관계, 그래프, 트리, 부울대수 등의 개념은 실제 컴퓨터 시스템과 소프트웨어를 이해하는 도구가 된다.
9. 핵심 개념 정리
- 이산수학은 서로 구분되는 이산적인 수학 구조를 연구하는 학문이다.
- 도구는 문제 해결에 사용하는 대상이나 지식, 기법은 구체적인 사용 방식, 방법론은 상황에 맞게 도구와 기법을 선택하는 체계이다.
- 수학적 모델링은 현실 문제를 수학적으로 해결할 수 있는 추상모델로 바꾸고, 정보 모델링은 컴퓨터가 처리할 수 있는 정보 형태로 바꾼다.
- 추상화는 문제와 관련된 핵심 내용을 남기고 관련 없는 내용을 제거하거나 단순화하는 과정이다.
- 알고리즘은 문제 해결을 위한 여러 동작의 유한한 모임이며 프로그래밍 언어, 순서도, 의사코드로 표현할 수 있다.
- 의사코드는 프로그래밍 언어의 문법과 자연어를 조합해 알고리즘의 작동 방식을 명확히 설명한다.
- 기본 제어구조는 순차·선택·반복이며, 선택에는
if와switch, 반복에는for·while·foreach등을 사용할 수 있다. - 논리, 집합론, 행렬, 관계, 함수, 부울대수, 그래프, 트리, 조합이론, 정수론, 오토마타는 다양한 컴퓨터 응용 분야의 수학적 기반이 된다.
이산수학의 문제 해결은 현실 문제에서 핵심을 추상화하고, 적합한 도구·기법·방법론으로 모델링한 뒤, 유한하고 명확한 알고리즘으로 해결 절차를 표현하는 흐름으로 이해할 수 있다.
10. 예상문제 20선
1. 이산수학에 대한 설명으로 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
이산수학은 서로 구별되는 값과 상태로 이루어진 이산적인 수학 구조를 연구한다.
2. 문제 해결에서 방법론의 의미로 가장 적절한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
방법론은 문제 상황에 맞춰 효과적이고 효율적인 도구와 기법을 선택하고 조직하는 관점이다.
3. 수학에서 ‘정의와 정리’가 해당하는 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
정의와 정리는 수학 문제 해결에 사용하는 지식 요소이므로 도구에 해당한다.
4. 다음 중 강의에서 수학의 ‘기법’으로 제시한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
가우스 소거법은 일차연립방정식을 푸는 구체적인 절차이므로 기법에 해당한다.
5. 수학적 모델링을 이용한 문제 해결의 올바른 흐름은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
현실 문제를 추상모델로 바꾸고 수학적으로 변형하여 얻은 결과를 원래 문제의 해결책으로 해석한다.
6. 정보 모델링에 대한 설명으로 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
정보 모델링은 문제에서 필요한 정보를 뽑아 컴퓨터가 처리할 수 있는 형태로 표현하는 과정이다.
7. 추상화의 의미로 옳지 않은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
추상화는 목표와 무관한 세부 내용을 제외하여 핵심 관계를 분명하게 하므로 모든 사항을 그대로 복제하지 않는다.
8. 사과와 배를 합해 10개 팔았고, 개당 이익이 각각 200원과 300원이며 총이익이 2,400원일 때 사과 판매 개수는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③A+B=10, 200A+300B=2400을 함께 풀면 A=6, B=4이다.
9. 부울식 X + XY + X̅Y를 강의의 과정에 따라 간소화한 결과는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
분배법칙과 1+Y=1, X+X̅=1을 적용하면 원래 식은 X+Y로 간소화된다.
10. 알고리즘의 정의로 가장 적절한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
알고리즘은 특정 문제를 해결하기 위해 명시된 단계적 동작들의 유한한 집합이다.
11. 컴퓨터 프로그래밍 언어로 알고리즘을 표현할 때의 한계는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
실행을 위해 언어별 문법과 세부 표현까지 작성해야 하므로 핵심 알고리즘보다 부차적인 요소가 두드러질 수 있다.
12. 순서도의 장점으로 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
순서도는 도형과 화살표로 처리 순서와 분기를 시각화하므로 작동 흐름을 파악하기 쉽다.
13. 의사코드에 대한 설명으로 옳지 않은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
의사코드는 알고리즘을 설명하기 위한 표현이며 컴퓨터가 직접 실행하는 기계어가 아니다.
14. 문장을 위에서 아래로 정해진 순서대로 실행하는 제어구조는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
순차구조는 별도의 분기나 반복 없이 문장을 작성된 순서대로 실행한다.
15. 조건의 참과 거짓에 따라 서로 다른 문장을 실행하기에 알맞은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①if문은 조건 판정 결과에 따라 실행 경로를 선택하는 대표적인 선택구조이다.
16. 하나의 변수 값에 따라 여러 case 가운데 하나를 선택하는 문장은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③switch문은 식이나 변수 값과 일치하는 case의 문장을 선택해 실행한다.
17. 자료 모음의 각 원소를 하나씩 대상으로 같은 작업을 수행하는 반복문은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②foreach문은 주어진 자료 모음의 원소를 순서대로 꺼내 동일한 처리를 반복한다.
18. 이산수학 주제와 컴퓨터 응용 분야의 연결이 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
부울대수는 논리식을 간소화하고 이를 논리게이트 회로로 구현하는 디지털 논리회로 분야에 적용된다.
19. 강의에서 제시한 ‘그래프’의 대표적인 컴퓨터 응용 분야는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
컴퓨터 네트워크의 연결 관계는 정점과 간선으로 이루어진 그래프 구조로 표현할 수 있다.
20. 현실 문제를 해결하는 전체 과정에 대한 설명으로 가장 적절한 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
문제 해결에서는 핵심을 추상화해 모델을 만들고, 상황에 맞는 도구와 기법을 선택하여 유한한 알고리즘으로 절차를 나타낸다.
댓글
댓글 쓰기