기본 콘텐츠로 건너뛰기

정보유출방지 위한 실시간 시스템 모니터링의 오픈소스 활성화해야



정보유출방지 위한 실시간 시스템 모니터링의 오픈소스 활성화해야



모바일 시대가 되면서 기업은 고객이 만족하는 서비스를 위해 단순한 서비스도 여러 기업과 협업하여 처리하는 세상이 되었다고객이 신용카드 발급을 요청할 때도 제휴서비스를 위해 최소 수십에서 수백까지의 기업들과 정보를 공유한다.
이번 개인정보 유출대란에 중요한 사실은 해킹이 아닌 내부시스템에 직접 접근해서 개인정보를 유출시켰다는 것이다기업이 내부직원이나 내부 시스템에 관여할 수 있는 사람들에게 마음만 먹으면 언제든 개인정보 유출가능성을 열어놓은 상태에서 제도를 강화한다고 해서 크게 바뀌지 않는다.
개인정보를 보호하기 위한 기업들의 대책은 있는 것일까?
기업들의 전체 시스템을 철저하게 실시간으로 모니터링 관리하는 체계 도입이 필요하다빅데이터가 도입되면 단순한 개인정보가 아닌 특화된 정보가 되어 유출 시 더 큰 재난을 불러일으킬 수 있으므로 누가 접근하는지 왜 접근했는지를 실시간 모니터링하고 분석되어야 한다.
기업들은 기간계정보계, EDW, Data Mart 등 개인정보가 다양한 시스템에 분산되어 있으므로 데이터 관리체계를 명확히 설정하여 각 업무 시스템별 데이터관리기준을 수립하여 실시간으로 직원의 개인 PC부터 업무의 모든 서버에서 로그를 수집하여 실시간으로 분석하도록 감독기관이 지침이 내려가야 한다.
실제 실시간 관리체계 구현 시 기대할 수 있는 효과는 고객의 신뢰도가 증가한다는 것이다고객의 만족은 실제 ROI보다 무형의 가치를 올리는 것이다.
하지만 많은 기업들이 비용문제로 구현이 어렵다고 할 것이다시중은행은 업무서버가 2천여 대와 직원 약 2만 명 이상 직원 PC에 대해 모니터링체계를 구축해야 하므로 솔루션 도입 시 라이선스 비용이 기하급수적으로 증가한다따라서 페이스북 등 많은 오픈소스를 이용하는 기업들은 솔루션 비용대신 IT 인력들에 대한 오픈소스 개발역량을 향상시켜 이 시스템을 구축하고 있다.
실시간 모니터링 시스템 서버에 대한 가용성 향상을 위한 오픈소스를 이용하여 분산처리 등을 수행하여야 하므로 오픈소스를 도입하는 기업은 비용이 절감되고 국내 오픈소스 개발역량이 향상될 아주 좋은 기회이다.
골드만삭스페이팔 등 미국 기업들이 오픈소스로 자신의 기업 솔루션을 개발하고 관리하겠다는 것은 현재 처리하고 있는 업무들에 대해 상용 솔루션들로는 업무처리에 제약이 많고 각 기업만의 비즈니스 모델을 특화하지 못하기 때문이다.
오픈소스 도입은 어려운 게 아니라 유지관리가 힘들다는 것이다따라서 기업이 오픈소스를 도입하게 되면 오픈소스 인력을 양성해야 하므로 국내 일자리 창출에도 도움이 된다.
현재 위기는 새로운 기회이므로 기업들도 유닉스 또는 해외 대형 Vendor사 만을 고집하지 말고 x86 서버에서 구동되는 오픈소스를 이용할 방안을 만들어야 한다빅데이터와 클라우드 등 새로운 기술 트렌드는 스케일 면에서 기존 유닉스환경에서는 방어할 수 없으므로 X86 서버 기반으로 점진적으로 변화해 가야한다현재 국내에서 만든 오픈소스는 많지 않지만 이 기회를 국내 오픈소스를 만드는 시점으로 정하고 투자해야 한다.
결과적으로 실시간 시스템 모니터링은 향후 사물인터넷위치기반 서비스를 위한 시스템 구현을 하기 위해서는 꼭 갖춰야 할 체계이다실시간 환경 솔루션도 국내 기술로 만들어서 구축할 수 있는 시대가 되어야 소프트웨어 인재 및 직업도 창출되므로 글로벌 소프트웨어 세상으로 가는 경쟁력이 강화된다.
문용준(빅데이터 아키텍처)
- SK C&C 부장
금융 차세대 프로젝트 및 IFRS 프로젝트 수행
금융 Application Architect로 활동 중 

댓글

이 블로그의 인기 게시물

golang overload 처럼 처리하기

go 언어에서는 함수명이 같을 경우 재선언 오류를 발생시킨다. 다른 메소드를 만들고 오버로드 처리하도록 설계해서 구현해야 한다. 오버로드 처리를 위해 type switch를 사용해서 들어오는 타입에 따라 메소드 호출하는 처리를 사용한다. 함수나 메소드 인자를 다양하게 처리하려면 []interface{} 로 정의해서 다양한 인자를 받아서 오버로딩 처리하면된다. package main import (  "fmt" ) func main() {  var p Person  p = Person{"dahl"}  var s string = "moon"  fmt.Println(" overloading  ", p.Overload(s))  fmt.Println(" overloading", p.Overload(nil)) } type Person struct {  name string } func (this *Person) Overload(args interface{}) string {  switch args.(type) {  case string:   return this.GetName2("moon")  case nil:   return this.GetName1()  default:   return " no match"  } } func (this *Person) GetName1() string {  return this.name } func (this *Person) GetName2(s string) string {  return this.name }

Python으로 julian date 산출하기

줄리안 일수 산출을 위해서는 윤년여부 체크를 하여 실제 그 해의 해당 일자에 대한 일수를 365 나 366 일수에 해당 일자로 전환하여 산출한다. 현재 일자를 줄리안 즉 시퀀스 일자대로 수정하는 로직이다 #일자 산출 함수 def dayconvert(month) :      convertDay = 0      dayDict = {'01':0, '02':31, '03':59, '04':90, '05':120,      '06':151, '07':181, '08':212, '09':243, '10':273,      '11':304, '12':334}      convertDay = dayDict[month]      return convertDay #줄리안데이 산출 함수 def julian(date):     year = int(date[0:4])    month = date[4:6]    day = int(date[6:8])    #윤년여부 호출   yuncheck = yunyear(year)   # 일자산출   Dday = dayconvert(month)   # 줄리안 데이 산출   Dday = Dday + day   # 유년여부 체크 및 윤년일 경우 일수조정   if yuncheck == 1:       if int(month) > 2 :            Dday = Dday + 1   # 100일 미만일 경우 포맷조정   if Dday < 100 :          Dday = '0' + str(Dday)   else :         pass   #줄리안 일자를 스트링으로 포맷 조정

Understanding golang Type . 타입이해하기...

Pre-declared Types   go 언어에서 빌드인으로 정의된 데이터 타입들.   string, number(int, uint, float...), boolean 타입들 Named vs Unnamed Type    go언어에서는 사용자 정의(type T_Int int 등)는 기본적으로 named type 으로 인식한다.   그리고  pre-declared types도 named type으로 인식한다.    unnamed type은 composited 타입들로 []int, *int 등을 별도로 인식한다.    named type 들은 메소드 정의가 가능하지만 unnamed type은 메소드를 만들 수 없다.    type Map map[string]string //this is valid func (m Map) Set(key string, value string){ m[key] = value } //this is invalid func (m map[string]string) Set(key string, value string){ m[key] = value } Underlying Type     모든 타입은 underlying type 을 가집니다.  리터럴과 declared type들은 자신의 타입을  underlying type으로 처리한다.     새로 생성되는 타입들에는 기존의 타입들이 있어야 하고 이 타입들도 항상 underlying type 을 가진다.      type Map map[string]string type SpecialMap Map SpecialMap과 Map이 underlying type은 map[string]string 이다. Assignability      //사용자 정의 타입 type Mystring string // pre-de