알기쉬운 IT 용어: 알고리즘(Algorithm)

판단의 기준만능키 아님

알고리즘은 이제 흔히 쓰이는 단어가 되었지만, 무엇을 뜻하는지는 명확하지 않습니다.

알고리즘이란?

  • 알고리즘은 어떤 (복잡한) 문제를 해결하기 위한 절차나 방법입니다.
    • 문제를 해결하려면 문제를 답변이 가능한 질문으로 나누고, 세분화된 질문에 대한 답을 찾아 연결해야 합니다. 그 과정이 알고리즘입니다.

알고리즘의 특징

1. 입력과 출력이 존재

  • 입력은 주어진 조건을 의미합니다.
  • 출력은 원하는 해결방법을 의미합니다.
  • 알고리즘은 입력값과 출력값을 가집니다.

2. 명확함

  • 알고리즘의 각 단계는 명확해야 합니다.
  • 명확하지 않다면 알고리즘이 아닙니다.

3. 반복 사용이 가능

  • 입력값이 변경되더라도 언제나 문제를 해결할 수 있습니다.

알고리즘 적용 사례

1. 출근 수단 선택하기
  • 오늘 출근 방법을 선택하는 문제를 해결해봅시다.
    • 출근 방법을 선택하기 위해서는 주어진 조건에 따라 질문을 세분화하고, 답변에 따라 질문을 연결해 나가야 합니다.
  • Main 질문: 어떤 수단으로 출근할 것인가?
    • 질문 1: 출근 시간까지 60분 이상 남아있는가? Yes → 질문 1-1로 / No → 질문 2로
      • 질문 1-1: 비가 오는가? Yes → 질문 2로 / No → 질문 1-2로
      • 질문 1-2: 날씨가 너무 춥거나 덥지 않은가? Yes → 질문 2로 / No → 걸어서 출근
    • 질문 2: 내 차는 운행가능한가? Yes → 질문 2-1로 / No → 질문 3으로
      • 질문 2-1: 내 차는 5부제 적용되는 날인가? Yes → 질문 3으로 / No → 차로 출근
    • 질문 3: 출근 시간까지 30분 이상 남아있는가? Yes → 질문 3-1로 / No → 택시로 출근
      • 질문 3-1: 비가 오는가? Yes → 버스로 출근 / No → 질문 3-2로
      • 질문 3-2: 집 주변에 공유 자전거가 있는가? Yes → 자전거로 출근 / No → 버스로 출근
2. 야근을 할 것인지 결정하기
  • Main 질문: 오늘 야근을 할 것인가?
    • 질문 1: 야근을 하면 해결될 일인가? Yes → 질문 1-1로 / No → 질문 2로
      • 질문 1-1: 어제, 그저께 모두 야근을 했는가? Yes → 야근 안한다 / No → 야근 한다
    • 질문 2: 동료들이 모두 야근을 하고 있는가? Yes → 야근 안한다 / No → 질문 2-1로
      • 질문 2-1: 과장님이 야근을 지시하셨는가? Yes → 야근 한다 / No → 야근 안한다

알고리즘 사례가 주는 시사점

  • 알고리즘은 어떤 복잡한 문제를 최대한 세부적인 질문으로 나누고, 그 질문에 대한 답을 찾아내어 전체 문제에 대한 답을 구하는 과정입니다.
  • 즉, 알고리즘을 만드는 핵심 과정은 복잡한 문제를 단순한 문제로 나누는 것입니다.
    • 기존의 문제를 분석하는 분석적 사고 역량과 문제를 새롭게 바라보는 문제 정의 역량이 필요합니다.
  • 일단 알고리즘이 만들어지면 다른 사람들도 그 절차나 방법을 활용할 수 있기 때문에 좋은 알고리즘의 파급력은 매우 큽니다.
    • 최근 딥러닝 알고리즘이 발전되면서 인공지능이 급속도로 발전하고 있는 것을 보면 그 파급력을 알 수 있습니다.
  • 얼마나 많은 알고리즘을 가지고 있는지, 그리고 그 알고리즘이 얼마나 잘 작동하는지 판단할 수 있는지가 그 사람 또는 그 조직의 역량을 판단하는 기준이 될 것입니다.