엑셀과 프로그래밍의 차이점은 알고리즘이 명확한가 아닌가이다... 블록

저도 엑셀의 함수를 사용해서 고도의 수식을 많이 만들어 보기도 했지만 역시 PHP 같은 프로그래밍과 이 엑셀의 차이점을 말해보라고 한다면 저는 "알고리즘의 명약관화" 인가 "특화된 알고리즘의 적용" 인가 하는 점이라고 봅니다. PHP가 전자라면 후자는 엑셀에 적용되는 특성이라는 거지요.

PHP는 DB 필드(셀)들을 다루기가 매우 편리하고 복잡한 작업을 손쉽고 빠르고 정교하게 해결해 주지만 사전 작업이 많이 필요하다는 단점이 있고 엑셀은 사용이 매우 편리하고 간단하다는 장점이 있지만 함수를 반복 사용해 보지 않으면 쉽게 까먹고 함수 자체를 이해하기가 까다롭습니다. 왜냐하면 엑셀 함수 자체가 경우에 따라서는 여러셀에 걸쳐서 특화된 기능만을 제공하기 때문에 함수의 기능 자체를 이해하기가 까따로운 게 태생적이라는 거죠.

즉 PHP나 어플리케이션 프로그래밍은 방대한 데이타를 가지고 고도의 함수를 만들어 사용하는 것에 유리하고 엑셀은 셀로 구성된 데이타들을 계산하고 분석하는 데에 유리할 거란 얘기죠. 혹시 엑셀 중급까지 공부해 보신 분들은 꼭 VBA(어플리케이션을 위한 비주얼베이직 프로그래밍) 까지 함께 공부해 보실 것을 권합니다. 저도 뭐 VBA는 잘 안다뤄봤지만 프로그래밍을 잘 알기 때문에 VBA의 강력함을 알고 있습니다.

오늘은 뜬금없이 엑셀 이야기네요. 이글루스에서 어느 분이 엑셀 이야기를 하신 걸 보고 생각이 나서 적어봤습니다. ^^;

덧글

  • 2015/04/08 09:12 # 삭제 답글

    가족이 생겨야 정신을 차릴 거 같은데 그런 날은 안 올 듯...
  • 지나가다 2015/04/08 09:48 # 삭제

    정신을 차려야 가족이 생기죠 ㅋㅋㅋ
  • 총체적 문제 2015/04/08 18:17 # 삭제

    닭이 먼저인가 달걀이 먼저인가
  • Halfround 2015/04/22 22:08 #

    그냥 닭을 시켜먹는게 빠를 듯.
  • 지나가다 2015/04/08 10:04 # 삭제 답글

    엑셀은 코딩이 아니죠. VBA까지 가도 마찬가지. ㅋㅋㅋ

    결정적으로 cell range access가 너무 느립니다. 글고 요즘도 number of rows 한계가 65k인가요? 그래서 엑셀로는 절대 프로그래밍을 해서는 안된다고 봅니다.

    그리고 알고리즘의 명확함까지는 사실 엑셀에 기대하지도 않는데... 기본적으로 간단한 표계산 이상을 하려면 엑셀은에서는 그 로직이 눈에 보이지 않습니다. 예를들어 학교 전체 학생들 성적표 spreadsheet가 큰 게 반마다 한 장씩 만들어져 있는데 여기서 전교 남학생들 수학 성적만 뽑아 평균 분산 구한다고 해 보세요. 이미 남학생, 수학이라는 검색 조건만 해도 복잡해지죠. 결국은 코딩이 아니라 표만들기 마우스 신공이 들어갈 수 밖에 없습니다.

    그리고 표만들기는 코딩이 아니죠.


  • 유치찬란 2015/04/08 12:46 # 삭제

    단순 공학적/과학적 사용용이라면 빅데이터 분석이 아닌 이상에야 충분히 파워풀하다고 봅니다.
    다만 미리 시트와 표를 만들 때 이후 코딩을 할 것을 고려하면서 해야된다는 것을 제외하면...
    근데 이건 사실 단순히 엑셀-VBA만의 문제가 아니라 DB 구성시에도 마찬가지라고 봅니다.
  • 희망의빛™ 2015/04/08 22:12 #

    엑셀도 찾아보면 느낌표로 시작하는 통합문서 셀 참조란 기능은 있습니다. 하지만 셀과 시트 보호 등 취해야할 사전조치가 필요하죠. 엑셀은 각 반 담임 선생님이 그런 식으로 데이타를 작성해 상부로 송부하면 상부에서 데이타를 취합해 그걸 참조하도록 돼 있는 게 일반적이죠. 하지만 역시 프로그래밍의 정교함엔 못따라가죠. 다만 각 반 담임 선생님이 프로그래밍을 할 수 없기 때문에 이런 식으로 엑셀을 사용하고 있는 것 같습니다. 다른 방법이 있다면 각 반 담임으로부터 엑셀 시트 보호된 특정 셀 안에 데이타를 입력하게 한 뒤 그걸 CSV 파일로 변환한 뒤 그걸 DB에 프로그래밍으로 저장하고 그걸 처리하는 PHP 프로그래밍을 구성하는 방법 등이 있습니다. 이것도 좋은 방법인데 CSV 파일이 단순 콤마(,)로 데이타들이 분리돼 있어서 프로그래밍을 거쳐서 DB에 저장해 처리해야 하기 때문에 초보자들이 쉽게 할 수 있는 부분은 아니지요. 근데 저도 이같은 방법을 사용하여 데이타를 처리해 본 적이 있는데 매우 효과적이었습니다. 일단 DB에 들어가는 수많은 데이타들의 입력을 엑셀 같은 응용프로그램으로 사용하기 때문에 매력적이었습니다. 그렇게 엑셀로 데이타들을 입력하고 CSV로 변환한 다음 일괄적으로 PHP를 사용해 DB로 포팅하는 프로그램을 짠 뒤 MySQL 같은 DB에 저장하고 나서 데이타들을 가공하고 처리하면 매우 효과적이었습니다.
  • 랠리 2015/04/08 11:04 # 삭제 답글

    엑셀도 쓸만해요
  • 지나가던 이 2015/04/08 13:09 # 삭제 답글

    1. 엑셀로도, 프로그래밍으로도 각각 밥벌어 먹고 살았던 사람입니다. 살다보니 엑셀과 프로그래밍을 비교하는 글도 만나는군요. 일단 한 마디 하죠; 정말 뜬금없군요.

    1-1. 애시당초 존재 목적 자체가 다른 두 대상을 수평비교하는 게 무슨 의미가 있나 모르겠군요. 제목 보고 혹시나 해서 왔다가 내친 김에 내용까지 봤습니다만 역시 쓸데없는 잡소리로만 보입니다. 이건 어떤가요. "벤츠 S600과 부가티 베이런의 차이점은 타이어가 무슨 타이어인가의 차이점입니다"

    1-2. 내친 김에 다른 글도 몇 개 더 봤습니다만, 내용의 맞고 그름에 앞서 일단 문법이 틀린 문장이 너무 많습니다. 당장 이 글만 해도 그렇군요. "A와 B의 차이점은 C인가 아닌가의 차이점이 존재한다." 주인장이 중학생 혹은 한국 이름을 쓰는 외국인이 아닐까 싶습니다. 참고로 제목을 문법에 맞게 다시 쓰자면 이렇게 되겠네요; 엑셀과 프로그래밍의 차이점은 알고리즘이 명확한가 아닌가이다.
  • 희망의빛™ 2015/04/08 22:02 #

    네 제가 아침에 급하게 글을 쓴 뒤 회사 가느라 수정을 못해서 제목이 중언부언 됐네요. 수정해 놓겠습니다. ^^; 고맙습니다.
  • 지나가던 이 2015/04/08 13:09 # 삭제 답글

    2. 본론으로 돌아와서 한 마디 하겠습니다. 설령 엑셀과 프로그래밍을 수평비교할 수 있다고 칩시다. 그래도 엑셀, 훌륭한 프로그밍 도구입니다. 적어도 주인장이 평가하는 것보다는 훨씬 나은 수준으로요. 제 생각에 한국에서 엑셀을 도구로써 가장 잘 쓰는 전문가 집단은 아마 보험계리 (actuary라고 합니다) 부문에서 일하는 계리사들이지 싶은데, 혹시라도 가능하다면 계리사들이 어느 정도로까지 엑셀을 구현해서 쓰는지 꼭 확인해 보세요. 대형 상용 어플리케이션이 버젓이 시장을 형성하고 있는 cash flow의 초장기 projection, MatLab 수준에서나 구현 가능한 data modeling, 수십 개의 dynamic 변수를 고려한 multi-factor simulation 등이 모두 엑셀로 구현되고 있습니다.
  • 희망의빛™ 2015/04/09 06:33 #

    네 엑셀의 고급 기능을 사용해서 원하는 수식과 통계, 기능을 구현, 분석하는 사람들을 저도 많이 봤습니다. 다만 그것을 구현하기 까지는 명확한 알고리즘이라기 보다 엑셀의 기능에 특화된 알고리즘을 이해해야 한다는 그런 장애 아닌 장애가 존재하고 있는 건 사실입니다. 하지만 PHP만 하더라도 자유분방한 알고리즘 구현을 조금만 다룰 줄만 알면 훨씬 더 복잡하고 정교한 로직과 방대한 데이타들을 다룰 수가 있지요. 물론 엑셀을 잘 활용하는 고급 사용자들도 훌륭하고 뛰어납니다. 하지만 그런 고급 사용자들도 VBA와 더불어 프로그래밍을 접목한다고 한다면 더 뛰어난 빅데이터 분석가가 될 수 있죠. 수집된 데이터를 기반으로 새로운 데이터를 가공하고 능률적으로 잘 처리할 수도 있을 거구요. ^^; 전 그걸 강조하고 싶었습니다.
  • 지나가던 이 2015/04/08 13:13 # 삭제 답글

    2-1. 왜 엑셀로 구현하냐고요? 한 카피당 3천만원이 넘는 상용 어플리케이션의 도입을 최소화하고, 구현할 모델의 정합성을 선행 검증하기 위해서입니다.

    2-2. 하나만 더. 2-1에서 언급한 상용 어플리케이션으로 두 달 이상 코딩해야 할 작업을, 삼성생명 등 메이저 회사의 계리사들은 달랑 이틀 정도면 엑셀로 똑같이 구현해 냅니다. 그럼 생산성은 어느 쪽이 더 높을까요?

    2-3. 엑셀이 뭐 그리 대단하냐 싶겠지만, 표그리기가 엑셀의 전부는 아닙니다. 굳이 VBA까지 안 가고 엑셀의 함수만 쓰는 수준에서라도.

    3. 자신만의 짧은 경험으로 전체를 판단하는 건 스스로의 부족을 드러내는 것 뿐입니다. 그리고 다시 말하는데, 비문 한 개당 글 전체의 설득력이 반씩 깎여나간다는 것도 명심했으면 하네요.
  • ... 2015/04/08 13:36 # 삭제 답글

    벽 보면서 지 혼자 떠들기로 유명한 두마리 중 한마리가 쓴 글인데
    이리도 진지한 댓글을 달아주시다니...

    시간을 너무 낭비하셨습니다.
    이 인간 글은 읽을 가치도 없을 뿐 아니라...댓글 달아 줄 가치는 더더욱 없어요...

  • ChristopherK 2015/04/08 16:01 # 답글

    밸리제한이풀린경우의예시.jpg
  • 루루카 2015/04/08 17:03 # 답글

    "프로그래밍을 잘 알기 때문에" 이 부분에서 심하게 당황하고 갑니다.
    (프로그래밍으로 밥 먹고 사는 저도 저 말은 정말 하기 무섭던데...)
  • 오이 2015/04/08 17:46 # 삭제

    내가 해봐서 아는데. 증후군이에요
    관리자급 또는 CEO 에게서 나타나는 증상입니다
  • Miyun_86 2015/04/08 18:07 # 삭제

    루루카님 // "할줄 안다"랑 "잘 안다"랑은 차원이 틀린 말인데 말이죠...
    (저도 이걸로 밥먹고 사는 입장이라 저런 말 하기 무섭습니다.)

    오이님 // 여기 주인장이 관리자급이나 CEO던가요?
  • 마누 2015/04/08 23:45 # 삭제

    Miyun_86//관리자라면 관리자겠죠. 자기 홈피 관리자(...)
  • 긁적 2015/04/09 00:34 #

    보통 프로그래밍을 잘 아는 사람은 자기가 프로그래밍을 잘 안다고 말할 시간동안 코드를 짜죠 (...)
  • 희망의빛™ 2015/04/08 22:06 # 답글

    엑셀은 그냥 기초연금 수급 대상자에 해당하는지 않는지 그런 거 분석하기에 딱 좋은 툴임은 분명합니다. 물론 PHP로도 그걸 간단하게 분석할 수 있지만 엑셀은 그냥 셀 안에 데이타를 넣고 그걸 셀 위치 참조해 수식을 넣어주면 바로 대상자 여부 결과가 나오기 때문에 편리하죠. 은행에 넣어둔 정기예금을 은행별로 관리하기도 편리하게 만들어 놨구요. 항목별로 합계가 일목요연하게 나오도록 만들 수가 있기 때문에 편리하죠. 메모도 삽입할 수가 있구요. 매우 편리합니다. ^^;
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색