경영, 영업직 사람들이 범하는 흔한 오류

음… 이건 좀 다른 분의 술주정을 듣고는 “아, 이런 사람들이 아직도 널리고 널렸구나..”란 생각에서 적는 겁니다.

왜 경영하고 영업직이냐고요? 들어보세요.

흔히 사업을 하다보면 이것저것 해서 상당히 어려운 일들을 많이 겪게 됩니다. 사업 어려운 겁니다. 절대 쉬운 거 아니에요. 사업하려고 하면 돈 문제 가지고도 이상한 사람들 만나서 아주 개판되어 오기도 하고, 이상한 놈이 와서 이것저것 막 예기하다가 뭐가 좋고 안좋고 하면서 회사 이미지 다운시키고 하는 등 은근 미친 짓 많이 당하는 게 경영입니다. 외적 바람이 상당히 심하죠. 

거기에 영업이요? 영업맨들 밖에서 병신 취급 당합니다. 그래도 계약서 따오려고 그 미친넘들 비위 맞추고 이리저리 쑈하는 거 어렵죠. 특히나 한 성질 하는 분들은 더더욱 힘들게 영업할 겁니다. 제가 영업은 잘 모르지만 이것저것 술자리에서 들어보니 장난 아닙니다. 클라이언트가 되도않는 부탁해서 개발 기간 잡고 새로 개발해야 되는 케이스도 엄청 널리고 하죠. ㅡㅅㅡ

이런 저런 예기 더 쓰면 글만 길어지겠지만.. 요는 이 두 부류도 상당히 힘들게 산다는 겁니다. 근데 이런 사람들이 흔히 범하는 오류가 있습니다.

어떤 오류냐고요?

회사 밖에서 이리저리 개판같이 당했던 그 기억이 떠올라서 회사 안에서도 그와 같이 대우한다는 겁니다.

음… 좀 더 예기를 더 적을께요. 이러니 저러니 해도 회사에서 같이 일을 하는 동료들은 그 사람들이 해온 것들을 지켜보고, 함께 해나가려는 사람들입니다. 그러기 위해서 협력을 하는 거고요. 근데 그런 관계에서 오고 가는 마찰에 대해 자신들이 봤던 피해 의식이 떠올라서 회사 내부에서도 개판 상황을 만들어 내는 겁니다. 그러다 보면 이사람이 이래서 어떻고 저래서 어떻고 하면서 사람들을 이것저것 막 터치하려 합니다. (회사 생활 하시는 분들은 아마 아실 겁니다) 그게 작게는 잔소리부터 시작해서 크게는 월권 행위까지 일삼게 되죠. 

일종의 트라우마입니다. 본인이 겪은 게 그런 거 뿐이니깐요. ㅡㅅㅡ

근데 그렇다고 해서 선의의 목적으로 같이 일하는 동료들을 그런 식으로 보게 되면 나중에 생기는 건 회사 동료에 대한 무시와 막가자 행동들에 의한 소모전의 연속입니다. 그렇게 마음 떠나면 결국은 사직서 쓰는 거죠. ㅡㅅㅡ

제발 이런 오류 범하지 마세요. 좋을 거 하나도 없습니다.

모바일 앱 개발하는 회사들이 왜 맥을 쓰죠?

이건 제가 연구실 플젝하면서 같이 개발하는 후배들이나 그밖에도 개발하고자 하는 분들이 제일 많이 묻는 말입니다. 왜 PC에 윈도우 환경 놔두고 맥을 쓰냐고요. ㅇㅅㅇ

사실 대답하기 힘듭니다. 그냥 닥치고 안드로이드만 개발하겠다면 별 문제 없는데 아이폰 땜에 그런다는 대답은 누구나 하지만, 솔직히 말하면 이건 30%도 못맞춘 대답이라고 생각합니다. 그렇게 따지면 안드로이드만 개발한다면 구글의 권장인 우분투 리눅스 + ADT면 완벽한데요?

사실 이리저리 보다보면 의외로 궁합이 좋아서 맥쓰는 겁니다. (뽀대는 덤) 특히 윈도우에서만 하면 오류가 나는 환경들이 있는데 그런 것들에 대해 철저히 무시하고 넘길 수 있죠.

제일 대표적인 한글 인코딩 문제. ㅡㅅㅡ winapi만 보던 사람들이 스마트폰 개발하면서 자꾸 인코딩 오류난다 뭐다 드러면서 인코딩 해결책을 찾고 있는데.. 전 아직 그런 걸 못본지라..ㅡㅅㅡ 작게는 인코딩 설정부터 시작해서 크게는 파일 인코딩 변환을 위해 libiconv를 쓰기까지… 엄청난 작업들을 동반할 바에야 환경 맞는 리눅스랑 맥 쓰면 됩니다.

게임 개벌하면서 jni 사용해야 하는데 환경 변수 설정하고 컴파일 하는 과정에서 gcc 필요하다며 시그윈 깔고 여러모로 삽질하고 나서 어렵다 하는데 어차피 개발 환경에 대놓고 쉘스크립트 이용해서 셋팅하는 정보가 무지 날아다녀요. 그럼 그냥 리눅스나 맥에서는 터미널 열어서 알아서 실행하면 됩니다.

그 외에도 리눅스나 맥쓰면 좀 더 편하게 개발 가능한 것들이 많은데 출근길에 쓰니 힘드네요…

그래서 맥 찾습니다. 그러다가 아이폰 앱 개발도 겸사겸사 할 수 있고요…

나름 장점이 많은지라 씁니다.

리눅스나 맥을 안써보다가 쓰려 하니 어렵겠죠.. 근데 그렇다고 해서 앱등이니 뭐니 하는 식의 말로 우겨넣고 하는 세상이다 보니 사람들 생각이 편협된 거 같군요.

문서 분류

음…. 원래 이 글은 Maching Learnning에 대한 개념이 아주 약간이라도 있는 상태에서 보면 더 좋은 글이긴 한데… 일단 문서를 분류하는 법에 대해 간단하게 정리만 해 드리겠습니다.

 

문서분류란 새로운 문서를 미리 정의된 부류로 대응 시키는 일련의 작업을 말합니다. 문서분류는 1960년대의 정보검색의 한 분야로 연구되어지기 시작하여, 1980년대 말 까지는 주로 이론적인 연구에 머물러 있었고, 실제 응용프로그램 또한 전문가의 수작업을 통해 규칙을 생성해 낸 기반으로 문서를 자동분류 하는 방법을 통해 구현되어 왔습니다. 1990년대에 들어서 컴퓨터가 널리 보급되고 인터넷이 발전함에 따라 디지털 형태의 정보가 급격히 증가하기 시작하여 정보의 과잉현상이 나타나게 되는데, 이때 많은 양의 정보를 자동으로 가공하여 분류하는 문서분류분야의 중요성이 널리 인식되기 시작하게 되었습니다.

최근의 문서분류의 연구는 주로 여러 통계적 기계학습 기법을 기반으로 이루어지고 있습니다. K-NN(Nearest Neighbor), 결정트리(Decision Trees), Support Vector Machine(SVM), 신경망(Neural Network), 나이브 베이지안 학습(Naïve Bayesian Learning), TFIDF(Term Frequency Inverse Document Frequency) 등의 기계학습 기법은 도메인 지식에 독립적이며 대량의 정보를 다룰 수 있어서 자동분류분야연구에 알맞은 기법으로 알려져 있습니다. 그에 대한 연구도 지금 활발하게 이루어 지고 있고요..

K-NN 방법은 메모리 기반 추론에 기반을 둔 학습 기법으로서 관련 문서들 간의 근접도를 이용하여 문서분류가 이루어지는 기법이고, 나이브 베이지안 학습 기법은 각각의 주어진 클래스에 따른 문서의 통계적 확률을 이용하여 클래스를 결정하는 기법입니다. TFIDF방법은 문서 속에 있는 단어의 빈도수를 이용하여 문서를 분류하는 학습 기법입니다.

그러나 통계적인 기계학습을 기반으로 하는 문서분류는 이미 분류가 되어 있는 충분한 양의 데이터를 가지고 기계학습 알고리즘으로 학습 시킨 후, 새로운 문서가 들어왔을 때 학습된 데이터를 기반으로 문서를 분류하는 것이죠. 그러므로, 기계학습기법을 이용한 문서분류기가 최대의 성능을 발휘하려면 충분한 양의 Labeled 데이터가 존재해야 하는데, 그것을 얻기 위해서는 많은 비용이 듭니다. 학습을 시키는 과정 자체가 상당한 양의 비용 지출이 됩니다. 따라서 최근에는 Unlabeled 데이터를 이용해서 문서분류의 향상을 높이려는 연구가 많이 이루어 지고 있습니다.

참고) 여기서 labeled data란 target value를 가지고 있는 데이터를 말하고, unlabeled data는 target value를 가지고 있지 않은 데이터를 말합니다.

일단 이런 이야기인데… 쉽게 와닿지는 않을 꺼에요.

글자 인식

오랜만에 올려봅니다. ㅇㅂㅇ

컴퓨터가 발전하게 되고, 컴퓨터로 할 수 있는 일들이 많이 생기기 시작하면서 예전에 작성된 서류 혹은 설계 도면 등을 컴퓨터에 자동으로 입력할 수 있는 기술이 매우 필요하게 되었고, 문자 인식은 “입력의 자동화” 요구에 부응하는 기술로서 발달하여 왔습니다. 글자 인식 기술을 장치화한 제품이 바로 OCR(Optical Character Recognition)로서 흔히 광학 문자 판독기라 불립니다.

오늘날 문자 인식 기술은 우편물 자동 분류를 위한 우편 번호 인식, 산업 현장에서의 제품 검사나 분류, 문서 인식, 도면 인식, 팩시밀리를 통해 전달받은 영상에서의 문자 인식, 워드 프로세서 OCR, 금융 기관에서의 전표 또는 수표의 자동 입력 등 여러 분야에 걸쳐 실용화되어 실생활에 효과적으로 사용되고 있습니다. 이것은 문자인식의 종류 중 오프라인 문자인식에 속하며, 인쇄체와 필기체를 다룹니다. 인쇄체의 경우에는 상당히 인식률이 좋지만 필기체의 경우에는 필기하는 사람마다의 글씨체의 차이가 있는지라 아직도 좀 불안정한 부분이죠,

또한 최근들어 펜과 터치스크린을 이용한 HPC나 PDA, 스마트폰이 등장하면서 입력의 수단이 키보드에서 펜(손글씨)으로 변경되어가고 있습니다. 이에 펜은 PC의 마우스같은 단순한 역할이 아닌 일상 생활에서와의 동일한 수단으로 사용하기 위하여 문자인식이라는 기술을 사용하고 있습니다. 즉 일반 펜으로 노트에 글을 쓰듯이 PDA나 펜인터페이스를 가지고 있는 PC상에서 손쉽게 글이나 도형 기타 제스처등 을 입력할 수 있게 해주는 기술로써 더 이상 키보드의 어려운 자판을 암기할 필요가 없게 된 것이죠. 이러한 것을 온라인 문자인식이라 하며, 주로 필기체를 다룹니다.

근데 이것도 좀 애매한 것이… 요즘은 소프트 키보드의 발달로 인하여 키보드를 쓰던 사람들이 계속 키보드를 사용할 수 있게 해줌으로써 여러모로 말이 많은 상황이긴 합니다.

문자인식단계는 다음과 같습니다.

  1. 패턴입력: 사용자가 입력한 패턴(문자 또는 제스처등)
  2. 전처리부
  • 거리 필터링(Distance filtering)-불필요한 점 제거, 필요한 점 생성
  • 각 필터링(Angular filtering) – 16방향, 32방향, 360방향
  • 디후킹(Dehooking) – 갈고리 모양 제거
  • 정규화(Normalization) – 크기, 기울어짐
  • 방향 Encoding
  1. 인식부
  • HMM(Hidden Markov Model) : 두 패턴의 유사도를 측정하기 위해 사용: 두 패턴의 특징 벡터의 개수가 다를 때 비교하기 위한 방법으로써 간단하면서도 효과적인 방법
  • Dynamic Programming(DTW, Dynamic Time Warping)
  • Parmetic Approach
  • Neural Network
  • 한글인식 : 초성, 중성, 종성의 인식과 각 자소의 위치 관계를 이용한 조합
  1. 후처리부
  • Dictionary Search
  • Natural Language Processing
  1. 결과출력
  • 최종 일치문자 출력
  • 패턴(인식대상) – 문자, 숫자, 기호, 제스춰, 도형, 도표등

문자인식에 있어서 핵심기능은 다음과 같습니다.

  1. 빠른 인식 속도
  2. 그림/메모/도형 인식 기능
  3. 서명인식 기능
  4. 제스쳐 인식 기능
  5. 자유 입력방식 및 박스입력 방식 지원
  6. 자동 띄워쓰기 가능
  7. 소프트 키보드 지원
  8. 인식 가능 문자 지정
  9. 후보문자 선택 기능
  10. 오인식 또는 미인식 문자 정정 기능
  11. 인식 결과 출력 기능 등

문자인식의 활용 분야는 다음과 같습니다.

  1. PDA, Hendheld PC, WebPAD, Tablet PC, Pen Computer, DeskTop PC (Pen digitizer, Touch panel, electronic Pen, Pen mouse 등)
  2. NOD(News on Demand)에서 뉴스 아이콘 자막과 내용 자막 추출 및 인식 시스템에 활용
  3. 공장 자동화 및 사무 자동화에서 문자 인식 시스템에 활용
  4. 차량 번호판 인식 시스템에 활용
  5. 사용자 확인을 위한 서명인식 등

음… 오랜만에 글 편집헤서 쓰려고 하니 힘드네요…ㅇㅂㅇ;