Contents

FreeTalk
2015.06.23 13:00

문제는 알고리즘이다

조회 수 370 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

수만 명의 회원이 가입한 생활코딩이라는 페이스북 그룹이 있다. 나도 최근에 회원으로 가입했는데, 여러 가지 포스팅 중에서 간혹 알고리즘에 대한 질문이 올라오는 것을 보게 된다. “프로그래밍을 하려면 알고리즘을 꼭 알아야 하나요?” “개발자에게 알고리즘은 얼마나 중요한가요?” 이와 같은 내용의 질문이다.

알고리즘이라고 하면 병합정렬, 그래프검색, 동적프로그래밍 등과 같이 구체적인 ‘알고리즘’을 떠올리는 경우가 일반적이다. 아마 질문을 올린 사람도 그런 알고리즘을 염두가 두었을 것이다. 그렇기 때문에 위의 질문을 “PHP로 웹사이트를 개발하고 있는데 반드시 병합정렬을 알아야 하나요?”처럼 좁은 의미로 해석하면 대답하기가 쉽다. 웹사이트를 개발하기 위해서 꼭 병합정렬을 알아야 할 필요는 없기 때문이다.

그렇지만 우리가 이야기하는 알고리즘이라는 것이 그렇게 특정한 ‘알고리즘’을 모아놓은 것을 의미할까. 이 부분이 핵심이다. 제대로 된 답을 구하려면 우선 질문을 제대로 구성하는 것이 중요하다. 메리엄-웹스터 사전에 나와 있는 알고리즘의 정의를 살펴보자.

“a set of steps that are followed in order to solve a mathematical problem or to complete a computer process”

수학적인 문제를 해결하거나 컴퓨터 프로세스를 완결하기 위해서 차례로 뒤따르는 단계의 집합. 이게 알고리즘이다. 여기에서 “단계의 집합”은 “규칙의 집합”이라고 바꿔 불러도 좋을 것이다. 이러한 정의에 따르면 알고리즘은 어떤 문제를 해결하기 위해서 필요한 규칙을 이해하고 그러한 규칙을 단계별로 적용해서 문제를 해결하는 것을 의미한다.

다시 질문으로 되돌아가보자. “프로그래밍을 하려면 규칙을 이해하고 그런 규칙을 단계별로 적용하는 능력이 반드시 필요한가요?” 혹은 “개발자에게 규칙을 이해하고 그런 규칙을 적용해서 문제를 해결하는 능력은 얼마나 중요한가요?” 질문을 이렇게 바꾸면 질문 자체가 성립하지 않는다는 사실을 알게 된다. 왜냐하면 “규칙을 이해하고 그런 규칙을 적용해서 문제를 해결하는 것”이 바로 프로그래밍이기 때문이다.

올초 지디넷코리아에 실렸던'컴공 전공자가 왜 SW 개발을 못하나'라는 기사가 개발자 사이에서 잠시 회자되었다. 컴퓨터 공학을 전공한 졸업생들이 회사에 취업했을 때 회사가 원하는 수준의 코딩 실력을 갖추지 못하는 현실을 지적한 내용이었다. 컴공을 전공한 학생이 대학을 졸업하서 코딩을 하지 못하면 확실히 문제다. 하지만 ‘코딩’이 특정 회사가 요구하는 특정 플랫폼, 특정 언어, 특정 API에 대한 내용이면 이야기가 달라진다.

대학은 학원이 아니기 때문이다. 대학에서 학생들이 배워야 하는 것은 특정한 API를 다루는 ‘코딩’ 능력이 아니라 주어진 문제를 해결하기 위해서 규칙을 이해하고 규칙을 단계별로 적용해서 문제를 해결하는 능력이다. 즉, 코딩이 아니라 알고리즘이다. 코딩은 알고리즘이라는 능력이 겉으로 드러나는 여러 가지 방식의 하나일 뿐이다. 코딩은 외공이고 알고리즘은 내공이다.

그렇기 때문에 대학은 학생들에게 코딩 능력이 아니라, 문제를 해결할 수 있는 능력, 즉 알고리즘 능력을 길러주는 방법을 고민해야 한다. 살에 새긴 문신 같은 코딩 능력은 MOOC, 학원, 스터디 그룹 등을 통해서 필요할 때 얼마든지 배울 수 있다. 지울 수도 있다. 하지만 뼈에 녹아들어 나와 한 몸이 되는 알고리즘 능력은 그 자체로 프로그래머의 정체성을 규정한다. 그렇기 때문에 배워야 하는 시기가 따로 있다. 시기를 놓치면 익히기 어렵다.

요즘처럼 기술변화의 속도가 빠른 시대에는 특정 기술, 플랫폼, 언어, API에 종속되는 코딩 기술의 가치가 전보다 크지 않다. 오히려 낡은 기술을 버리고 새로운 기술을 재빨리 익히는 능력이 중요하다. 전투기의 생명이 빠르게 방향을 전환하는 기동성(maneuverability)에 달려 있는 것처럼, 프로그래머의 생명도 방향전환 능력에 달려있다. 알고리즘은 그러한 방향전환을 가능하게 만들어주는 일종의 “메타-능력”이다.

그래서 미국의 IT 회사들은 (특별한 경우를 제외하면) 특정 기술이나 API에 정통한 사람을 찾지 않는다. 기본적인 능력(문제를 해결할 수 있는 능력, 즉 알고리즘)을 갖춘 상태에서 새로운 기술을 빠르게 습득해서 활용할 수 있는 사람을 찾는다. 이런 면들을 생각해보면 실리콘밸리라는 미국드라마에서 해커 느낌이 풍기는 보안전문가와 자바전문가가 아니라 파일을 압축하는 ‘알고리즘’을 개발한 사람을 주인공으로 배치한 것은 우연이 아니었을 것이다.

프로그래밍이라는 기술은 이렇게 알고리즘이라는 세포로 이루어져 있다. 그리고 알고리즘이라는 세포의 내부에 존재하는 DNA는 논리다. 만사에 논리적인 사람은 좋은 코드를 작성하지만, 논리적 사고가 결핍되어 있는 사람은 아무리 열심히 ‘코딩’을 배워도 좋은 코드를 작성하지 못한다. 다시 질문으로 되돌아가보자.

“프로그래밍을 하려면 알고리즘을 꼭 알아야 하나요?” “개발자에게 알고리즘은 얼마나 중요한가요?”

이제 질문의 의미를 정확하게 이해할 수 있게 되었으므로 대답을 할 수 있다. 그렇다. 프로그래밍을 하려면 알고리즘이라는 메타 능력이 반드시 있어야 한다. 알고리즘이 얼마나 중요한가하면 프로그래밍 그 자체라고 말할 수 있을 정도로 중요하다. 문제는 알고리즘이다.


[출처] http://www.zdnet.co.kr/column/column_view.asp?artice_id=20150622080223

?

  1. 스마트폰으로 촬영한 사진의 EXIF 정보와 GPS 태그를 맥에서 삭제하는 방법

    # 들어가며 최근 스마트폰이 광범위하게 보급되면서 디지털카메라보다는 스마트폰 카메라를 이용해 사진을 촬영하는 분들이 많이 늘었습니다. 아이폰, 아이패드, 안드로이드 스마트폰 등에서 위치 정보 서비스를 활성화하고 사진을 촬영하면 사진 촬영 일자와 ...
    Date2014.10.23 CategoryFreeTalk Byhooni Views1113
    Read More
  2. OS X 미리보기(Preview)의 활용성을 끌어 올리는 20가지 기술 모음

    # 들어가며 '미리보기(Preview)'는 OS X의 전신인 NeXTSTEP 운영체제를 통해 그 원형이 일반에 처음 공개된 이후 모든 버전의 OS X에 포함되어 온 OS X의 대표 프로그램 중 하나입니다. 초창기의 미리보기는 지금의 훑어보기(QuickLook) 수준에 지나지 않는 단...
    Date2014.10.23 CategoryFreeTalk Byhooni Views1452
    Read More
  3. 박원순시장을 어이없게 한 국감현장

    그럼 의원이라고 하지 마셔야죠! 이러고 싶네.. ㅋㅋ
    Date2014.10.23 CategoryFreeTalk Byhooni Views499
    Read More
  4. 성공하는 사람들이 퇴근 10분 전 꼭 챙기는 13가지

    via flickr 사회적으로 큰 성공을 이룬 사람에게는 유독 비슷한 공통점이 많이 발견된다. 낙천적이고 성취 지향적인 동시에 사람들에 대한 공감 능력도 뛰어나다. 물론 성실하고 남들에 비해 디테일을 잘 챙긴다는 점도 특징일 것이다. 최근 온라인 경제 전문...
    Date2014.10.23 CategoryFreeTalk Byhooni Views670
    Read More
  5. 천재적 발상

    인류 역사에 기여하는 너와 나의 10초 프로젝트 구텐베르크
    Date2014.10.24 CategoryFreeTalk Byhooni Views544
    Read More
  6. UI/UX 모바일 기획시 참고 사이트

    모바일 웹/어플리케이션 UI,UX 라이브러리 사이트 들을 소개합니다 이번에 베타서비스 진행중인 Shining을 만들면서 링크들이에요 우선 요즘은 UX가 중요해지는데 특성상 이미지로는 확인이 어려워 Gif로 UX 레퍼런스가 공유되고 있죠. http://blog.mariuszwoz...
    Date2014.10.24 CategoryFreeTalk Byhooni Views865
    Read More
  7. 대단한 911

    우리나라였다면 그냥 뚝! 뚜.. 뚜.. 뚜.. ㅋㅋ
    Date2014.10.24 CategoryFreeTalk Byhooni Views511
    Read More
  8. 일본 욕만 할게 아니었구나.

    최근 어떤 방송에서 한국여자와 일본여자의 연애 관념의 차이를 조사한 결과를 보여줌 한국여자를 김치녀로 비유하고, 일본여자를 스시녀로 비유하여 소개함. 한국의 김치녀 - 데이트 비용은 남자가 전부 지불하는게 당연 - 결혼비용은 신혼여행의 금액과 집까...
    Date2014.10.27 CategoryFreeTalk Byhooni Views778
    Read More
  9. 아이트래킹 연구가 알려준 사용자 경험 디자인 4가지 필수 규칙

    아이트래킹 연구(eye-tracking research)가 알려준 4가지의 사용자 경험 디자인(User Experience Design, UX design) 필수 규칙 웹 디자이너들은 디자인하는 사이트가 방문자를 위해 최선의 것이 되도록 많은 도구를 사용합니다. 이런 목적을 이루기 위한 가장...
    Date2014.10.27 CategoryFreeTalk Byhooni Views832
    Read More
  10. 아이트래킹 실험을 위해 알아야 할 것 by 김문정 주임

    주변시(peripheral vision)와 중심시(central vision) 중심시는 사물을 직접보며 상세하게 파악할 때 쓰이고, 주변시는 사물을 둘러싸고 있는 주변 환경(눈에 보이기는 하지만 집중은 하지 않는 배경)을 얘기한다. Adam Larson과 Lester Loschky는 사람들에게 ...
    Date2014.10.27 CategoryFreeTalk Byhooni Views818
    Read More
  11. 상위0.1%와 일반 학생의 '부모와 대화'의 차이

    EBS 다큐 프라임 10부작 '학교란 무엇인가?' 중 에서 큰 화제를 모으고 있는 8부 '0.1%의 비밀' 을 캡쳐한 것입니다. 보통 부모는 아이와 대화할 때 감정을 컨트롤하지 못하고 아이에게 모욕과 조롱, 비난, 분노를 표시하고 싸움을 걸기도 합니다. 하지만 학교...
    Date2014.10.27 CategoryFreeTalk Byhooni Views784
    Read More
  12. Who dies? Quiz

    누가 죽게되는지 맞춰보시오 ㅋㅋ 문제 풀이는.. 스크롤을 아래로 조금만 내려보면 나옴.. . . . . . . . . . . 결국 다 죽음.. 공에 맞지 않은 A와 E는 에볼라로 죽음 ㅋㅋ 다른 풀이 방법도.. 이건 어떻게 될까? . . . . . . . . . . 이건 모두 공 맞아 죽음...
    Date2014.11.04 CategoryFreeTalk Byhooni Views1612
    Read More
Board Pagination Prev 1 ... 27 28 29 30 31 32 33 34 35 36 ... 80 Next
/ 80