시스템을 창고의 개념으로 설명하기1 - 창고 vs 시스템

비전공자를 위한 시스템 설명시스템의 발전 과정

비전공자를 위해 “창고” 비유를 사용하여 시스템을 설명드립니다.

창고가 시스템을 설명하기에 적합한 개념인가요?

  • 저는 IT 개념을 설명할 때 최대한 IT와 관계없는 개념을 사용하는 것을 좋아합니다.
    • 사람이 가장 빠르게 어떤 개념을 이해하는 방법이 비교이기 때문입니다. 매우 예외적인 경우가 아니면 전문가 수준으로 IT 개념을 정확하게 습득할 필요가 없습니다.
    • 전반적인 동작 원리를 아는 것만으로도 충분히 의사결정을 잘 해낼 수 있습니다.
  • 창고는 여러가지 형태의 물건들이 제한없이 들어가고 나가며, 안의 내용을 밖에서 쉽게 파악하기 어렵다는 점에서 시스템을 설명하기에 유용한 개념입니다.

그렇다면, 창고와 시스템은 얼마나 비슷한가요?

  • 창고
    • 창고는 물건을 집어넣고, 저장하고, 꺼내어 쓰기 위한 건물(들)입니다.
    • 창고의 크기는 매우 다양합니다. 방 한칸도 창고이고, 축구장 100개 크기의 건물들의 집합도 창고입니다.
    • 창고가 작을 때는 특별한 체계가 없어도 되지만, 창고가 커질수록 규칙에 따라 운영해야 합니다.
  • 시스템
    • 시스템은 데이터를 입력하고, 저장하고, 출력하기 위한 하드웨어와 소프트웨어의 결합물입니다.
    • 시스템의 크기는 매우 다양합니다. 컴퓨터 1대에 설치되는 작은 시스템도 있고, 서버 100대를 사용하는 대형 시스템도 있습니다.
    • 시스템이 작을 때는 특별한 체계가 없어도 되지만, 시스템이 커질수록 규칙에 따라 운영해야 합니다.

초기의(아주 작은) 창고

  • 어떤 일을 하다가 물건을 더 이상 쌓아둘 곳이 없으면 창고가 필요해집니다.
  • 처음에 마련한 창고는 크기가 크지 않습니다. 적당한 빈 공간을 찾아서 창고로 사용하면 그만입니다.
  • 창고안의 물건들은 그렇게 다양하지 않고, 어떤 물건을 넣어둔 것을 잊었다고 하더라도 잠시 시간을 내서 창고를 정리하면 모든 물건을 찾아낼 수 있습니다.
  • 별도의 창고지기가 존재하지 않고, 누구나 들어가서 물건을 쌓아두거나 꺼내올 수 있습니다.
  • 창고 안에 어떤 물건이 저장되어 있는지 기록되어 있는 문서가 없습니다.

초기의(아주 작은) 시스템

  • 어떤 일을 하다가 자료를 별도로 저장, 처리하기 위해 시스템이 필요해집니다.
  • 처음에 마련한 시스템은 크기가 크지 않습니다. 적당한 컴퓨터를 찾아서 엑셀 파일로 데이터를 관리하면 그만입니다.
  • 시스템 안의 데이터는 그렇게 다양하지 않고, 어떤 데이터를 넣어둔 것을 잊었다고 하더라도 잠시 시간을 내서 데이터를 살펴보면 모든 데이터를 찾아낼 수 있습니다.
  • 별도의 시스템관리자가 존재하지 않고, 누구나 접근해서 데이터를 저장하거나 출력할 수 있습니다.
  • 시스템 안에 어떤 물건이 저장되어 있는지 기록되어 있는 문서가 없습니다.

소형 창고

  • 저장해야 하는 물건이 점차 늘어남에 따라 단칸방 창고로는 모든 물건을 저장할 수 없게 되어 창고를 확장하게 됩니다.
  • 초기의 창고와 비슷한 건물을 1~3개 더 마련해서 아주 작은 창고를 여러개 마련하는 방법이 주로 사용됩니다.
  • 창고가 커지긴 했지만, 하나의 창고 자체는 작아서 안의 물건을 쉽게 파악할 수 있고, 창고를 모두 둘러보는데 그렇게 오랜 시간이 걸리지 않습니다.
  • 그렇지만, 어느 창고에 무엇이 들어있는지 헷갈리는 일들이 생기기 시작하면서 어느 창고에는 무슨 물건을 넣어두자는 규칙이 생기기 시작합니다.
    • 예를 들어, 창고를 가지고 있는 사업체가 음식점이라면 1번 창고에는 음식물 같이 상하기 쉬운 것들을 넣고, 2번 창고에는 조리도구나 그릇과 같이 유통기한이 없는 물건을 넣자 라는 식으로 규칙을 만들게 됩니다.
    • 하지만, 이런 규칙은 원칙일 뿐이고, 상황에 따라 유동적으로 물건을 저장할 수 있습니다.
  • 창고가 커지면서 창고의 열쇠를 관리하기 시작하고, 창고에 어떤 물건이 들어가 있는지 기록하기 시작합니다. 하지만, 정해진 양식이 있는 것은 아니고, 창고의 운영은 대부분 책임자의 결정에 따라 이뤄집니다.

소형 시스템

  • 저장해야 하는 데이터가 점차 늘어남에 따라 개인용 컴퓨터로는 모든 데이터를 저장할 수 없게 되어 별도 하드웨어를 마련하게 됩니다.
  • 하드웨어는 확장했지만, 데이터를 저장하는 방법은 이전과 비슷합니다.
  • 데이터의 유형이 그렇게까지 다양하지는 않아서 데이터를 비교적 쉽게 파악할 수 있고, 데이터를 눈으로 확인하는데 그렇게 오랜 시간이 걸리지 않습니다.(하루 안에 가능)
  • 그렇지만, 시스템에 저장된 데이터가 무엇에 대한 데이터인지 헷갈리는 일들이 생기기 시작하면서 시스템의 어느 부분에는 어떤 데이터만 넣어두자는 규칙이 생기기 시작합니다.
    • 예를 들어, 기업에 대한 정보와 근로자/실직자에 대한 정보, 지원금에 대한 정보를 각각 다른 곳에 저장하자는 정도의 규칙을 만들게 됩니다.
    • 하지만, 이런 규칙은 원칙일 뿐이고, 상황에 따라 유동적으로 데이터를 저장할 수 잇습니다.
  • 시스템이 커지면서 시스템의 접근권한을 관리하기 시작하고, 시스템에 어떤 데이터가 저장되어 있는지 기록하기 시작합니다. 하지만, 정해직 양식이 있는 것은 아니고, 시스템의 운영은 대부분 관리자의 결정에 따라 이뤄집니다.

중형 창고

  • 중형 창고를 운영하려면 기업은 이미 중견기업 이상이라고 보아야 합니다.
  • 창고에는 다양한 물건들이 쌓여있어서 창고를 처음보는 사람은 어디에 무슨 물건이 쌓여있는지 알기 어렵게 됩니다.
  • 창고에 물건을 들이고 내보내는 사람과 창고 안에서 물건을 정리하는 사람이 각자 존재해야 하고, 창고 안의 선반에는 정해진 물건을 두도록 규칙이 정해집니다.
    • 예를 들어 공구는 3-1 선반에 두어야 하고, 운반용 마대자루는 4-2 선반에 두어야 합니다. 즉, 물건의 종류를 기준으로 해서 물건을 정리합니다.
  • 예전에는 적당히 물건을 두어도 괜찮았지만, 이제는 규칙을 제대로 지키지 않고 쌓은 물건은 찾기 어렵기 때문에 창고관리자는 그런 행동을 매우 싫어합니다.
  • 창고에 물건을 넣기 위해서 또는 창고의 물건을 꺼내기 위해서는 별도의 신청서를 작성해서 제출해야 합니다.
  • 창고에 쌓인 물건이 손상되면서 발생하는 손해도 무시할 수 없기 때문에 창고 건물 자체도 관리가 필요해집니다.

중형 시스템

  • 중형 시스템을 운영하려면 기업은 이미 중견기업 이상이라고 보아야 합니다.
  • 시스템에는 다양한 데이터가 쌓여있어서 시스템을 처음보는 사람은 어디에 무슨 데이터가 쌓여있는지 알기 어렵게 됩니다.
  • 시스템에 데이터를 입력하는 사람과 데이터 자체를 정리하는 사람이 각자 존재해야 하고, 시스템 안의 데이터베이스에는 정해진 데이터만 저장하도록 규칙이 정해집니다.
    • 예를 들어, 지원금 종류별로 각각의 DB가 있어야 하고, 어떤 DB인지에 따라 관리되는 데이터가 정리됩니다.
  • 예전에는 임시 DB를 만들어 데이터를 저장해도 괜찮았지만, 이제는 규칙을 제대로 지키지 않고 저장한 데이터는 찾기 어렵기 때문에 시스템관리자는 그런 행동을 매우 싫어합니다.
  • 시스템에 데이터를 저장하기 위해 또는 저장된 정보를 조회하기 위한 별도의 프로그램이 필요합니다.
  • 저장된 데이터 간에 논리적인 모순이 발생할 경우 어떤 데이터를 활용할지에 대한 기준이 필요해집니다.

대형 창고

  • 대형 창고가 되면 이제 더 이상 사람이 직접 물건을 넣고 빼는 것이 불가능해집니다. 창고는 완벽히 규칙에 의해 운영됩니다.
  • 이제 물건들은 종류를 기준으로 관리되지 않습니다. 기록을 기준으로 관리됩니다.
    • 어떤 물건이 창고에 들어가기 위해서는 반드시 창고관리자의 허락을 받아야만 하고, 창고의 어느 부분에 쌓여있는지는 기록으로 확인해야 합니다.
  • 창고가 커졌기 때문에 물건을 창고에 넣었다 빼는 작업 자체에 상당한 비용이 소요됩니다.
    • 물건들을 조립해야 할 필요가 있는 경우에는 물건을 옮기는 데 비용이 들기 때문에 창고 안에서 조립을 하는 경우도 생깁니다.
  • 창고 관리자가 여러명이고, 창고의 짐을 옮기는 사람은 더 많기 때문에 어떤 사람이 창고의 물건을 전부 파악한다는 것은 불가능에 가까워집니다.

대형 시스템

  • 대형 시스템이 되면 이제 더 이상 프로그래머가 직접 데이터를 저장하거나 조회하는 것이 불가능해집니다. 시스템의 완벽히 규칙에 의해 운영됩니다.
  • 이제 데이터는 데이터의 내용을 기준으로 관리되지 않습니다. 데이터에 대한 기록을 기준으로 관리됩니다.
    • 어떤 데이터가 시스템에 저장되기 위해서는 반드시 시스템관리자의 허락을 받아야만 하고, 시스템의 어디에 저장되어 있는지는 기록으로 확인해야 합니다.
  • 시스템이 커졌기 때문에 데이터를 시스템에 입력하고 조회하는 작업 자체에 상당한 비용이 소요됩니다.
    • 데이터를 연계하여 분석할 필요가 있는 경우에는 데이터를 일일이 조회하는 대신 시스템 내에서 분석작업을 해서 결과만 출력하는 경우도 생깁니다.
  • 시스템 관리자가 여러명이고, 시스템 데이터를 정비하는 사람은 더 많기 때문에 어떤 사람이 시스템의 데이터를 전부 파악한다는 것은 불가능에 가까워집니다.