'2009/08'에 해당되는 글 5건

  1. 2009/08/31 육일약국 갑시다 (2)
  2. 2009/08/20 요약본을 읽지 않는 이유
  3. 2009/08/20 PDF 보안 제거 (8)
  4. 2009/08/05 프로필은 잠시 잊어라
  5. 2009/08/05 PDF Parser와 FlateDecoder

Newer Entries Older Entries

육일약국 갑시다

View Comments

사용자 삽입 이미지
도서링크
알라딘













육일약국은 전국에서 가장 작은 4.5평 약국으로 시작했다. 평수는 작더라도 위치가 괜찮다면 그나마 다행이었겠지만, 시내버스에서 내려 15분을 걸어가야 겨우 찾을 수 있는 약국이다. 협소한 규모에 변두리에 자리한 이 약국. 일반적으로 사람들은 크고 위치가 좋은 약국을 선호하므로, 굳이 이런 약국을 찾아오는 손님은 그리 많지 않을 것이다. 그렇다면 이해타산에 따라 일찍이 폐업정리라도 했을 법한 이 약국에 무슨 일이 있기에 이토록 화젯거리가 되었을까? 쥐구멍에 해라도 뜬 걸까? 그렇다. 믿기 어렵겠지만, 기적과 같은 일이 일어났다. 저자는 교방동이라는 마산 변두리에 자리한 4.5평짜리 약국을 11년 만에 13명의 약사를 둔 기업형 약국으로 키워냈고, 영남산업 대표이사를 거쳐 지금은 국내 굴지의 교육업체인 메가스터디 중등부 엠베스트 대표직을 맡고 있다. 이 정도면 어마어마한 성과가 아닌가. 도대체 어떤 사람이기에 이런 일을 해냈을지 궁금해졌고, 책을 읽고 난후 나름대로 정리해보았다.

저자는 비전의 사람이었다. 그는 열악한 환경의 약국을 운영하면서도 현실에 좌절하거나 어려움에 포기하지 않고, 기업형 약국이라는 원대한 꿈을 키웠다. 사실 따져보면 가당치도 않은 꿈이다. 돈이 없어 빚 600만원으로 어디에 있는지 찾기도 힘든 4.5평짜리 약국을 겨우 운영하기 시작한 처지에 기업형 약국을 운영하겠다고? 지금은 허황된 꿈보다는 주어진 현실을 직시해야 할 때가 아니냐는 염려의 목소리를 한껏 들었을 것이다. 사실 이대로라면 언제 문을 닫을지 모르는 상황이 아닌가? 그런 그가 생존을 염려하기 보다는 크나큰 꿈을 품었다. 현실이라는 틀에 갇히지 않고, 자신의 꿈을 위해 주어진 현실에 최선을 다했다. 4.5평의 약국을 운영하면서도 기업형 약국을 꿈꾸었기에, 공간의 크기를 꿈의 크기만큼이나 크게 만들어 놓았다.

저자는 불굴의 의지를 가진 사람이었다. 어떠한 상황에서도 절대 포기하지 않았다. 육일약국을 교방동의 랜드마크로 만들기 위해 택시를 탈 때마다 주변지리에 빠삭한 기사들도 모르는 육일약국으로 가자고 해놓고는 일일이 길 안내를 하며 홍보를 하고, 약국 내부가 멀리서도 환하게 보이도록 25개의 형광등을 설치하는 등 창의적인 발상으로 새로운 시도를 감행했다. 이 밖에도 마산시에서 두 번째로 자동문을 설치하고, 한방을 공부하는 등 협소한 공간의 이름 없는 약국이지만, 시도만큼은 단연 앞섰다. 제조업이라는 생소한 분야의 대표이사직을 맡았을 때에는 경쟁업체들이 맡기 싫어하는 부품들을 하청을 받길 자처해서 구매담당자로부터 호감을 사게 되어 경쟁력 있는 부품들을 생산하게 된 일화도 있다. 천진 출장 사건도 인상적이다. 항공사의 실수로 자신의 비행기 표가 예매되지 않아 빚어진 사건이었는데, 일정대로 천진에 가야한다는 신념 하나로 홀연 단신 북경으로 날아가서는 우여곡절 끝에 동행과 합류하게 된 사건은 그의 의지를 잘 보여주는 일화이다. 교육사업에 뛰어들었을 때에도 포기하지 않았다. 특히 안정된 부사장직을 뒤로 하고 새로운 사업에 도전했을 때는 자칫 무모해보이기까지 하다. 모회사로부터는 아무런 지원도 받지 못하고 책상 두 개로 사업을 시작하게 되었지만, 그는 포기하지 않고 자신의 신념에 따라 도전하는 불굴의 의지를 가졌다. 이러한 저자의 정신은 마치 어느 CF의 문구를 연상시킨다. “불가능, 그것은 아무것도 아니다.”

저자는 ‘섬김의 리더십’을 실천하는 사람이었다. 자신의 약국에 한번이라도 방문한 고객은 그의 이름과 증상을 다 외웠고, 길을 묻는 외지인들에게는 가게를 비우더라도 직접 안내까지 나서는 등 고객감동을 몸소 실천했다. 이제 막 빚을 청산한 상태라 남을 생각할 만큼 여유로운 상황이 아님에도 월 십만 원씩 장학금을 주기로 결심하는 나눔의 정신을 실천하였고, 지금은 사랑의 입학식을 통해서 가정 형편이 어려워 공부하기 어려운 학생 50명에게 학용품과 책가방, 교복맞춤권을 선물하는 등 자신의 형편보다 남을 더 생각하고 베풀고자 애썼다. 자신보다 남을 더 배려하는 자세는 사업적으로 고객을 중심으로 생각하도록 하며, 이러한 사고와 행동은 최상의 서비스 제공과 고객감동으로 이어지게 된다. 근래에 리더십의 패러다임이 ‘권위적 리더십’에서 ‘섬김의 리더십’으로 바뀌는 추세라는 점을 감안한다면, 시대흐름에 적합한 리더십을 추구한다고 볼 수 있다.

성공한 리더들은 공통적으로 원대한 비전과 절대로 포기하지 않는 불굴의 의지를 가지고 있다. 저자도 마찬가지이다. 비록 저자는 자신에게는 ‘섬김의 리더십’ 외에는 남다른 경쟁력이 없었다고 말하지만, 그는 비전과 꿈을 위해 전진하는 불굴의 의지를 가지고 있다. 그리고 무엇보다 그를 빛나게 해주는 건 다름 아닌 그의 고백처럼 타인을 먼저 생각하는 섬김의 자세에 있다.

2009/08/31 10:31 2009/08/31 10:31

2 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

요약본을 읽지 않는 이유

View Comments

시간활용이 경쟁력인 시대입니다. 기업에서 직원을 평가할 때 업무시간(엄밀히 말하면, 초과근무 시간) 보다는 업무성과를 더 중요하게 여기는 문화가 확산되면서, 공평하게 주어진 시간들을 효율적으로 사용하는 방법을 강구하는 사람들이 많아졌습니다. 탁월한 두뇌를 가진 인재들은 타고난 능력으로 뛰어난 성과를 일궈내지만, 대다수의 평범한 사람들은 시간을 효율적으로 사용하여 생산성을 극대화하는 방법을 계발해야 남다른 성과를 낼 수 있지요.

그래서인지 독서에 힘쓰는 사람들이 많습니다. 전문가가 오랜 시간에 걸쳐 얻은 지식들을 단시간에 습득할 수 있다는 장점을 가지고 있기 때문이지요. 투자비용과 투자시간을 고려한다면, 독서만큼 생산적인 자기계발방법은 없을 겁니다. 정비례하지는 않지만, 독서량에 따라 지식이 쌓이고 실전을 통해 지식활용능력 또한 향상되지요. 이러한 경험을 몇 번 해보고 나면, 자신도 모르는 사이에 실력이 부쩍 늘었다는 사실에 놀라게 됩니다. 그래서 독서량을 유지 혹은 늘리려는 욕심이 생기게 되지요. 이러한 욕심이 생기고 나면 독서량 자체에 집착하게 되는 부정적인 현상도 생기게 됩니다. 저의 경우에는 매년마다 백 권 이상의 책을 3년 넘게 읽다 보니 어느 순간에 지적 빅뱅현상을 경험하게 되었고, 이 때를 기점으로 전과는 차원이 다른 단계에 올라서게 되었습니다. 다들 어렵다고 하는 책도 망설임 없이 읽게 되고, 저자의 주장을 비판하고 그 이면에 숨겨진 사고를 찾아내 더욱 합리적인 결론을 도출하는 능력이 생긴 겁니다. 검증된 방법은 아니지만, 제 경험에 비추어보면 일년에 백 권 정도의 책을 꾸준히 읽어야 지속적인 성장이 가능하다는 생각이 들자 일정 독서량을 고집하게 되었습니다. 실제로 바쁜 일정으로 일정독서량에 도달하지 못하게 되면 요약본을 읽어서라도 채우려는 유혹에 시달리기도 했지요.

사실 요약본은 여러모로 유용합니다. 중요한 내용들을 추리고 추려서 정리해 놓았기 때문에 구매할 책들을 고르는데 도움이 됩니다. 하루에도 수 많은 책들이 출판되고 있지만, 모든 책들이 제 값을 하는 건 아니므로 요약본을 읽어보는 것만으로도 양질의 책을 구매할 수 있습니다. 그리고 10분 정도면 핵심내용을 파악할 수 있도록 정리되어 있기 때문에 급박할 때 필요한 부분만 사용할 수도 있습니다. (이러한 편이함 때문에 독후감 제출과 같은 과제물을 하는데 악용되는 사례가 많습니다.)

하지만 실제로는 도움이 되지 않는다고 봐도 무방합니다. 대형서점에서 제공하는 신간목록에는 1쪽 분량의 책 소개와 함께 요약을 제공하고 있는데, 이 정보만으로 책을 구매하는 사람은 거의 없습니다. 인터넷서점을 통해 구매하는 경우라면 모를까,1 서점을 이용하는 대부분의 독자들은 관심도서들을 유심히 읽어보고 나서야 구매합니다.2 저의 경우에도 신간목록은 읽을 가치가 있는 책이 출판되었는지 알아보는 용도로만 사용합니다. 눈에 들어온 책은 서점에서 읽어보고 구매여부를 결정하지요. 특히 필자는 서점을 빙 둘러보는 습관을 가지고 있어서 신간목록의 도움은 거의 받지 않는다.3

무엇보다 요약본은 저자의 사고과정을 따라갈 수 없습니다. 주요내용만 추려내면서 앞 뒤 문맥이 사라졌기 때문입니다. 자신이 요약한 글은 나중에 읽어도 이해가 되겠지만,4 다른 사람에 의해 요약되었기에 그 내용에 대한 지식이 갖추어지지 않는 상태라면 이해하는데 어려움을 겪습니다. 핵심어(keyword)만으로는 문장을 이해하는데 한계가 있듯이, 핵심문장만으로 문맥을 이해할 수 없지요. 요약이란 문맥을 통해 핵심문장이 가려진 후에 이뤄지니까요. 사실 독서란 지식습득 이외에도 저자와의 교류, 상상과 분석적 사고가 병행되는 행위이고, 책 내용 보다는 독서과정을 통해 얻어지는 열매가 더 많은데, 요약본은 이러한 과정을 단절시키므로 따지고 보면 득 보다 실이 더 크다고 생각합니다.

이러한 이유로 인해 저는 요약본은 가급적 읽지 않습니다. 한 때는 편법(?)이더라도 독서할당량을 채우는데 중점을 두었지만, 이제는 실제적인 도움을 주지 않는다는 사실을 알고 있기에 독서 자체를 즐기려 노력하고 있습니다. 그러니 여러분들도 가급적 요약본은 읽지 마시길 바랍니다.
  1. 인터넷서점은 도서에 대한 정보를 얻는데 한계가 있습니다. 출판사에서 제공해준 정보와 구매자들의 후기 외에 얻을 수 있는 정보가 거의 없기 때문입니다. [Back]
  2. 이와 관련해서는 필자의 <프로필은 잠시 잊어라>란 글을 읽어보세요. [Back]
  3. 이와 관련해서는 필자의 <대가와 소통하라>란 글을 읽어보세요. [Back]
  4. 저도 가끔 주요문장들은 요약해 보관해두는데, 필요에 의해 찾아보면 무슨 의미였는지 떠오르지 않아 고민하는 경우가 있습니다. 이럴 때면 앞뒤문맥을 읽어야 겨우 기억해내곤 합니다. [Back]
2009/08/20 15:36 2009/08/20 15:36

댓글0 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

PDF 보안 제거

View Comments

소개

도구는 PDF 파일의 보안 제거하도록 해준다. 비록 다양한 테스트를 거치지는 않았지만, 보안된 PDF 파일이라면 비밀번호 없이 열리게끔 동작하도록 되어 있다.

당신은 이러한 기능을 원하는가? 많은 보안 PDF 파일들이 본문을 복사하지 못하도록 혹은 인쇄하지 못하도록 설정되어 있다. 이러한 기능은 이따금씩 짜증나도록 하는데, 특히 필요한 자료일 그렇다.

배경

예전에 PDF 파일을 담고 있는 부록 CD 포함된 수험서를 구매했었다. 그런데 안타깝게도 파일은 보안이 걸려있어서 장의 예제들을 복사할 수도 인쇄할 수도 없었다. 그래서 이런 어플리케이션을 개발하게 되었다.

코드사용

도구는 아주 간단하다. 나는 원본 PDF 읽기 위해 PDFSharp 라이브러리를 사용한다. 그리고 새로운 PDF 페이지를 복사하고 저장한다.

Private Sub Form1_Load(ByVal sender As System.Object, _

            ByVal e As System.EventArgs) Handles MyBase.Load

    'Show open file dialog box,

    'this is where you choose what file to load

    Dim ofd As New OpenFileDialog()

    'if you say OK, then continue

    If ofd.ShowDialog() <> Windows.Forms.DialogResult.OK Then

        Exit Sub

    End If

 

    'import document using PDFSharp

    Dim maindoc As PdfDocument = PdfReader.Open(ofd.OpenFile(), _

                                 PdfDocumentOpenMode.Import)

 

    'Create the Output Document as a new PDF Document

    Dim OutputDoc As PdfDocument = New PdfDocument()

 

    'Copy over pages from original document

    For Each page As PdfPage In maindoc.Pages

        OutputDoc.AddPage(page)

    Next

 

    'Show the Save File Dialog box

    Dim sfd As New SaveFileDialog()

    'if user clicks ok then continue, else dispose objects

    If sfd.ShowDialog() <> Windows.Forms.DialogResult.OK Then

        maindoc.Dispose()

        OutputDoc.Dispose()

        Exit Sub

    End If

 

    'save new document

    OutputDoc.Save(sfd.OpenFile(), True)

    'dispose of objects

    maindoc.Dispose()

    OutputDoc.Dispose()

    'close the form

    Me.Close()

End Sub


흥미로운

나는 이렇게 동작하도록 하는데 매우 간단하다는 사실이 흥미롭다. 나는 복잡하리라고 예상했었는데, 만약 그랬었다면 진작에 포기했었을지도 모른다.

 

 

출처 : http://www.codeproject.com/KB/files/PDFDeSecurer.aspx


2009/08/20 15:32 2009/08/20 15:32

8 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

프로필은 잠시 잊어라

View Comments

책을 구매하는 기준은 무엇인가? 저자이력? 추천서? 내용? 판매순위? 지인 가운데 표지디자인을 보고 구매한다고 말한 이도 있다. 짐작했다시피, 그는 디자이너이다. 하지만 이러한 경우는 흔치 않을 테고, 대체로 저자이력, 추천서, 내용, 판매 순위 등 다양한 요소들을 고려하여 구매하리라. 이렇게 다양한 요소들 가운데 구매여부를 결정하는데 가장 고려해야 할 사항은 무엇일까? 저마다 다양한 의견이 있겠지만, 필자의 경험에 의하면 대부분의 사람들은 책을 고를 때 저자의 이력을 우선적으로 찾아 본다. 어느 학교 출신인지, 경력은 어떤지, 전문가들의 평가와 대중들의 인지도 등 책의 수준을 가늠케 하는 정보를 고스란히 담고 때문이다.

출판사 관계자들은 잠재적인 독자들에게 책의 품질에 신뢰를 주기 위해 각 분야의 전문가들을 섭외하길 힘쓴다. 기획에 적합한 인물들을 여러 경로를 통해 탐색하며, 전문성과 대중성을 갖추고 있는지 시험하는데 이때 기대수준을 만족시켜야만 비로소 집필에 들어간다. 그러므로 책을 출판할 정도라면 검증된 전문가라고 봐도 무방하다. 그들은 이미 출판사 관계자들의 시험을 거쳤고 그 기준을 만족시켰다. 더구나 이력은 실력을 반영한다. 그러므로 저자의 이력이 독자로 하여금 양질의 책을 구매하도록 하는데 큰 도움이 된다.

하지만 저자의 이력과 책의 품질은 정비례하지 않는다는 사실을 유의하자. 저자의 이력과 작문실력은 상관관계가 아니다! 엄밀히 말하자면, 저자는 관심의 대상이 아니다.1 중요한 건 오직 책 내용이다. 잠시 생각해보자. 대형서점에 가면 서가 앞에서 책을 읽고 있는 사람들이 많다. 단지 호기심에 이끌려서 재미있는 부분만 읽기도 하고, 핵심내용만 집어가기 위해 읽기도 하지만, 대부분은 자신에게 필요한 책을 신중하게 고르기 위해 읽는다. 이러한 읽기는 구매가격에 대한 가치를 확인하는 과정으로, 글의 흡입력이 강할수록 구매할 확률은 높아진다. 결국 독자는 책의 내용을 보고 결정하는 셈이다. 따라서 책의 내용과 상관없이 저자의 이력을 신뢰하여 책을 구매한다면, 뒤늦게 실망할 가능성이 있게 된다. 출판사 관계자들은 저자의 이력에 걸맞은 책을 출판하려 애쓰지만, 언제나 그렇듯 항상 바람대로 되진 않는다. 더구나 수익만을 위해 그럴듯한 저자를 섭외하는 비양심적인 출판사 관계자들도 의외로 많다. 이들은 유명한 인물을 전면에 내세우는 전략을 즐겨 사용한다. 그러므로 양질의 책을 읽고 싶다면 저자의 이력은 잠시 잊어라. 대신 책을 열심히 읽어보고 결정하라. 가급적 책 내용만으로 구매여부를 결정하라.

 

 

* 이 원리는 인재채용에도 동일하게 적용된다. 채용담당자들은 지원자들의 이력서와 자기소개서, 포트폴리오가 그에 대해 모든 걸 말해주지 않는다는 사실을 유의하자.

  1. 물론 저자와 글은 분리될 수 없다. 글은 그 사람의 지식만이 아니라 인격을 반영하므로, 책을 읽을 때 우리는 저자에 대해서도 읽게 된다. [Back]
2009/08/05 16:12 2009/08/05 16:12

댓글0 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

PDF Parser와 FlateDecoder

View Comments

소개

여기에 담긴 전체 코드는 PDF 파일에서 스트림을 추출하고 FlateDecode 부분을 보여주는 방법을 담고 있다. 또한 SharpZipLib 소스를 담고 있어서 모든 실행은 박스 오른 쪽에서 이뤄진다.

사용자 삽입 이미지

코드사용


아래는
OpenDocument 이벤트에 대한 코드로 모든 동작방법을 보여준다.

Dim ofd As New OpenFileDialog()

Dim ow() As PDFParser.ObjectWrapper

Dim sb As New System.Text.StringBuilder()

 

ofd.Filter = "PDF|*.pdf"

ofd.InitialDirectory = _

  System.Environment.GetEnvironmentVariable("%USERPROFILE%") + "\Desktop"

 

If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then

    ow = PDFParser.Objects.GetAllObjectBlobs( _

            New System.IO.MemoryStream( _

            System.IO.File.ReadAllBytes(ofd.FileName)))

For Each wrapper As PDFParser.ObjectWrapper In ow

    sb.Append("********************" + wrapper.header + _

              "**************************" + vbCrLf)

    If wrapper.header.Contains("FlateDecode") AndAlso Not _

           wrapper.header.Contains("DecodeParms") Then

       Try

        sb.Append(PDFParser.Inflator.FlateDecodeToASCII(New _

                  System.IO.MemoryStream(wrapper.bytes)))

       Catch ex As Exception

        sb.Append("EXCEPTION: " + ex.Message)

       End Try

    End If

    sb.Append(vbCrLf)

    sb.Append("*********************************" & _

              "***************************************" + vbCrLf)

Next

txtInflatedContents.Text = sb.ToString()


세부적인
코드 사용

  1. 정적 메소드 "GetAllObjectBlobs" 사용하고 PDF 파일의 bytes 안에 전달한다.

PDFParser.Objects.GetAllObjectBlobs()

  1. 메소드는 ObjectWrappers 배열을 반환한다. 헤더와 마찬가지로 스트림 안의 bytes 모든 준다.
  2. 이제야 스크림으로 무엇을 할지 결정할 있다. 나는 간단한 디코드 메소드를 구현했다. 솔직하게 말해 어도비사의 명세서를 반영하지 않았기 때문에 암호화된 메소드들은 매번 일일이 대처하거나 비암호화된 메소드들을 보여주어야 한다.
  3. 스크림을 디코드하기로 결정했다면, "FlateDecodeToASCII" 호출하면 된다.

PDFParser.Inflator.FlateDecodeToASCII(New System.IO.MemoryStream(wrapper.bytes))

  1. 이걸로 끝이다. FlateDecode 사용하여 오브젝트 streams 추출하고 그걸 보여주도록 하는 매우 간단한 기능을 부여했다.

흥미로운

  • 코드는 암호화되지 않았다.
  • 오직 스트림이나 아스키만 가능하다.
  • 파일을 압축하지 않은 체로 실험할 알게 사실인데, FlateDecode 표기된 부분들을 갖지고 있지만 불확실한 헤더 예외를 가지고 있다.
  • 아티클은 어도비 라이브사이클 디자이너 ES 8.2 생성한 PDF에서만 실험했다.
  • 코드 예제는 VB.NET 포함되어 있고 모든 라이브러리들은 C# 있다.



출처 : http://www.codeproject.com/KB/files/PDFParser_FlateDecoder.aspx



2009/08/05 16:09 2009/08/05 16:09

댓글0 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

Newer Entries Older Entries