최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
− | '''알고리즘'''(algorithm)이란 어떤 문제를 해결하기 위해 정해진 규칙이나 절차를 말한다. '''알고리듬'''(algorithm) 또는 '''산법'''(算法)이라고도 한다. [[컴퓨터]] 알고리즘은 입력된 자료를 바탕으로 원하는 출력을 유도하는 규칙들의 집합이다. 알고리즘은 [[프로그램]] 개발의 기초가 된다. | + | '''알고리즘'''(algorism)이란 어떤 문제를 해결하기 위해 정해진 규칙이나 절차를 말한다. '''알고리듬'''(algorithm) 또는 '''산법'''(算法)이라고도 한다. [[컴퓨터]] 알고리즘은 입력된 자료를 바탕으로 원하는 출력을 유도하는 규칙들의 집합이다. 알고리즘은 [[프로그램]] 개발의 기초가 된다. |
| | | |
| == 명칭 == | | == 명칭 == |
− | 알고리즘은 9세기 페르시아의 수학자인 [[무하마드 알콰리즈미]](Muhammad al-Kwarizmi)의 이름을 라틴어화한 알고리즈무스(algorismus)에서 따온 말이다. | + | 알고리즘은 9세기 페르시아의 수학자인 [[무하마드 알콰리즈미]](Muhammad al-Kwarizmi)의 이름에서 따온 말이다. |
| | | |
− | '알고리즘'은 '알고리듬'으로 표기하기도 하는데, 둘 다 허용되는 표기법이다. 양자의 사용빈도를 조사해 보면, 알고리즘이라는 표기가 알고리듬이라는 표기에 비해 압도적으로 많이 사용되고 있다. 예를 들어 구글 검색 결과를 보면, 2018년 기준으로 알고리즘이 약 590만개이고, 알고리듬이 약 21만개로서 약 30배 정도 차이가 난다.<ref>[https://www.google.com/search?source=hp&ei=y1ksW9W3GcGC8wXj8aaYAw&q=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%22&oq=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%22&gs_l=psy-ab.3..0l10.1580.4304.0.4558.15.14.0.0.0.0.144.1560.3j11.14.0....0...1.1j4.64.psy-ab..4.11.1282.0..35i39k1j0i131k1j0i3k1.0.FNz0SVauo54 구글에서 "알고리즘" 검색 결과] 및 [https://www.google.com/search?ei=0FksW7HcH5eA-QbEnZuwBg&q=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EB%93%AC%22&oq=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EB%93%AC%22&gs_l=psy-ab.3..0j0i10i30k1l9.4763.5877.0.6155.4.4.0.0.0.0.127.456.1j3.4.0....0...1.1j4.64.psy-ab..0.2.229...0i13k1.0.SeBb2k6bm3c "알고리듬" 검색 결과]</ref> | + | 알고리즘의 정확한 표기는 '알고리듬'이 되어야 한다는 주장이 있다. 영어로 algorithm의 발음 기호는 [ӕlgərɪðəm]이며 ð는 this [ðɪs]의 ð 발음이다. 따라서 이 단어는 영어식으로 '앨거리듬'으로 표기하거나 좀 더 한국식 발음으로 표기하더라도 '알고리듬'으로 표기해야 한다. algorithm을 알고리즘으로 읽는 건 this를 "지스"로 읽는 것과 마찬가지의 잘못이다. rhythm [rɪðəm]을 '리즘'이 아닌 '리듬'으로 표기하는 것과 마찬가지로 algorithm은 알고리듬으로 표기해야 한다는 주장이다. 한편 algorism이라는 "아라비아 숫자식 기수법"이라는 뜻을 가진 유사한 단어가 있는데, 이 단어의 발음기호는 [ǽlɡərìzm]이므로 오히려 이 단어를 앨거리즘이나 알고리즘이라고 읽어야 한다는 의견이다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 알고리즘]〉, 《위키백과》</ref> |
| | | |
− | 알고리듬으로 표기하는 것은 영어식 표기이다. 영어로 algorithm의 발음 기호는 [ӕlgərɪðəm]이며 ð는 this [ðɪs]의 ð 발음이다. 따라서 이 단어는 영어식으로 '앨거리듬'으로 표기하거나 좀 더 한국식 발음으로 표기하면 '알고리듬'으로 표기할 수 있다. 영어에서 algorithm을 알고리즘으로 읽는 건 this를 "지스"로 읽는 것과 마찬가지의 잘못이다. rhythm [rɪðəm]을 '리즘'이 아닌 '리듬'으로 표기하는 것과 마찬가지로 algorithm은 알고리듬으로 표기해야 한다는 주장이다. 한편 algorism이라는 "아라비아 숫자식 기수법"이라는 뜻을 가진 유사한 단어가 있는데, 이 단어의 발음기호는 [ǽlɡərìzm]이므로 오히려 이 단어를 앨거리즘이나 알고리즘이라고 읽어야 한다는 의견이다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 알고리즘]〉, 《위키백과》</ref>
| + | 하지만 실제 생활에서는 알고리즘이라는 표기가 알고리듬이라는 표기에 비해 압도적으로 많이 사용되고 있다. 예를 들어 구글 검색 결과를 보면, 2018년 기준으로 알고리즘이 약 590만개이고, 알고리듬이 약 21만개로서 약 30배 정도 차이가 난다.<ref>[https://www.google.com/search?source=hp&ei=y1ksW9W3GcGC8wXj8aaYAw&q=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%22&oq=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%22&gs_l=psy-ab.3..0l10.1580.4304.0.4558.15.14.0.0.0.0.144.1560.3j11.14.0....0...1.1j4.64.psy-ab..4.11.1282.0..35i39k1j0i131k1j0i3k1.0.FNz0SVauo54 구글에서 "알고리즘" 검색 결과] 및 [https://www.google.com/search?ei=0FksW7HcH5eA-QbEnZuwBg&q=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EB%93%AC%22&oq=%22%EC%95%8C%EA%B3%A0%EB%A6%AC%EB%93%AC%22&gs_l=psy-ab.3..0j0i10i30k1l9.4763.5877.0.6155.4.4.0.0.0.0.127.456.1j3.4.0....0...1.1j4.64.psy-ab..0.2.229...0i13k1.0.SeBb2k6bm3c "알고리듬" 검색 결과]</ref> |
− | | |
− | 위 주장에 대해 반론도 존재한다. 알고리즘이라는 말은 영어가 아니라 원래 페르시아어인데, "알콰리즘 + 이 = 알콰리즈미"(al-Kwarizmi)이므로, '리듬'이 아니라 '리즘'이 맞다는 의견이다. 이 말이 서양으로 건너온 라틴어에서도 "알고리즘 + 우스 = 알고리즈무스"(algorismus)로 표기되므로, '리듬'이 아니라 '리즘'에 가깝다. 따라서 한국어로는 최대한 원어에 가깝게 '알고리즘'으로 표시하는 것이 맞다는 의견이다. 어쨌든 실제 생활에서는 알고리즘이라는 표기가 알고리듬이라는 표기에 비해 약 30배 정도 압도적으로 많이 사용되고 있다.
| |
| | | |
| == 종류 == | | == 종류 == |
| + | * '''[[암호 알고리즘]]''' : 문서나 데이터의 내용을 다른 사람이 알지 못하게 하거나 혹은 본인 인증을 위해 사용하는 알고리즘을 말한다. [[DES]], [[AES]], [[ARIA]], [[SEED]] 등의 [[대칭키]] 암호 알고리즘과 [[RSA]], [[타원곡선암호]] 등 [[공개키]] 암호 알고리즘이 있다. |
| + | * '''[[합의 알고리즘]]''' : 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말한다. [[작업증명]](PoW), [[지분증명]](PoS), [[위임지분증명]](DPos) 등 다양한 합의 알고리즘이 있다. |
| | | |
− | === 암호 알고리즘 ===
| |
− | [[암호 알고리즘]]이란 문서나 데이터의 내용을 다른 사람이 알지 못하게 하거나 혹은 본인 인증을 위해 사용하는 알고리즘을 말한다. [[DES]], [[AES]], [[ARIA]], [[SEED]] 등의 [[대칭키 암호]] 알고리즘과 [[RSA]], [[타원곡선암호]] 등 [[공개키 암호]] 알고리즘이 있다.
| |
− |
| |
− | * '''대칭키 암호 알고리즘'''
| |
− | :* '''[[DES]]''' :
| |
− | :* '''[[AES]]''' :
| |
− | :* '''[[ARIA]]''' :
| |
− | :* '''[[SEED]]''' :
| |
− |
| |
− | * '''비대칭키 암호 알고리즘'''
| |
− | :* '''[[RSA]]''' :
| |
− | :* '''[[타원곡선암호]]''' :
| |
− |
| |
− | === 합의 알고리즘 ===
| |
− | {{:합의 알고리즘 종류}}
| |
− | === 체인 알고리즘 ===
| |
− | [[체인 알고리즘]]이란 다수의 거래기록을 암호화하여 위변조를 방지하고 탈중앙 분산 저장 방식으로 데이터를 관리하는 알고리즘이다. [[블록체인]] 알고리즘과 그 대안으로 나온 [[라이트닝 네트워크]], [[플라즈마]], [[플라즈마캐시]], [[사이드체인]], [[더블체인]], [[인터체인]], [[탱글]], [[해시그래프]] 등이 있다.
| |
− |
| |
− | {{:체인 알고리즘 종류}}
| |
| {{각주}} | | {{각주}} |
| | | |
39번째 줄: |
20번째 줄: |
| * [[암호 알고리즘]] | | * [[암호 알고리즘]] |
| * [[합의 알고리즘]] | | * [[합의 알고리즘]] |
− | * [[체인 알고리즘]]
| |
| * [[블록체인]] | | * [[블록체인]] |
| * [[탱글]] | | * [[탱글]] |
| * [[해시그래프]] | | * [[해시그래프]] |
− | * [[암호화폐]]
| |
− |
| |
− | {{알고리즘}}
| |
| | | |
| + | [[분류:알고리즘]] |
| [[분류:블록체인]] | | [[분류:블록체인]] |
| [[분류:프로그램]] | | [[분류:프로그램]] |