코드 스타터 캠프 1주차 미션을 위한 저장소입니다.
A. 정확성과 효율성, 즉 오류와 시간을 줄임으로써 컴퓨터가 정보를 처리하는 데에 최적의 환경을 만들어 낼 수 있기 때문이다. 이진법을 사용했을 때, 우리가 알 수 있듯이 가능성은 0 과 1, 혹은 On or Off이다. 하지만 갑자기 그 안에 가능성이 한 가지 더 추가되어 0, 1 ,2 혹은 On, middle, off 라고 한다면? 가능성의 갯 수 즉 'n'만큼이 더 늘어나면서 컴퓨터가 정보를 처리하는데에 오류가 생길 가능성 또한 늘어나는 것이고, 정보를 처리하는 데에 걸리는 시간 + 오류가 생긴다면 그것을 해결하는 시간이 늘어나면서 그만큼 효율적이지 못 한 상황이 발생하기 때문에, 컴퓨터에서는 이진법이 가장 효율적이다.
A. 알고리즘의 정의(Definition). 사실 나는 비전공자이기 때문에 CS의 이론에 대해서는 무지했다. 심지어 모든 사람들이 알고있을 그 단어 '알고리즘'의 정의에 대해 나는 '어떤 사물이나 객체 혹은 어떤 '것'에 대하여 그와 비슷한 형태의 것을 함께 출력하는 것.' 이렇게 알고 있었다. 어렵게 써놓 긴 했지만, 쉽게 설명하면 '유튜브 알고리즘'이 되겠다. 예를 들어 내가 '2022년 대한민국 대선'에 대한 영상을 보았을 때, 보고 난 후 '2022 대선 후보 이재명, 윤석열'에 관련 된 동영상들이 함께 보여지는 것이다. 하지만 나는 알고리즘의 정의를 완벽하게 잘 못 알고 있었다. 사실 알고리즘에 대한 공식적인 정의는 없다. 구글이나 위키백과에선 어렵사리 설명해 놓았지만, 사실 간단히 말하자면 '방법'이다. 따라서 CS에서 말하는 알고리즘이란 원하는 값을 얻기위한 '가장 효율적인 방법' 이다. 예를 들어 0에서 30까지의 요리 레시피 항목이 있다고 했을 때, '숫자 20'안에 있는 레시피 항목을 찾고 싶다. 여기서 알고리즘을 대입 해 보자면,
- 숫자 0 부터 30까지 하나 하나 순서대로 항목을 찾아가며 레시피를 찾는 방법.
- 숫자 0 부터 30까지 중 가운데를 찾은 뒤 (ex: 15) 내가 찾고싶은 항목이 그 숫자보다 클 경우 작은 숫자를 전부 무시 한 후, 다시 한번 가운데를 찾아 수를 대입하며 내가 찾는 항목의 수가 나올 때 까지 반복하는 방법. 이런 식으로 CS에서 말하고자 하는 '알고리즘'은 앞서 말했 듯, '원하는 값을 얻기 위한 가장 효율적인 방법'인 것을 알아두자. 다만, 내가 알고있던 알고리즘에 대한 정의도 '유튜브' 내에서는 틀린 것이 아니다. 왜냐하면 '사용자가 영상을 시청했을 때, 사용자가 원하는 정보나 흥미를 끌어 계속해서 비디오를 볼 수 있게 만드는 '방법' 인 것이다. 이렇게 '알고리즘' 이란, 사용자에 따라서 그리고 포멧에 따라서 제각각의 방법에 대한 정의가 달라질 수 있다는 점이 무척이나 흥미로웠다.
07.02.2022