반응형

안녕하세요,

Qlik으로 밥먹고 사는 제씨입니다.

 

대세는 Self-BI로 돌아선지 오래이고,

이미 시장은 Tableau와 Power BI, Qlik Sense 와 같은 제품들의 군웅할거가 진행되어 있습니다.

 

하지만 몇 해를 Qlik으로 여러 고객사에서 프로젝트를 해오면서,

고객들이 두 제품을 비교하다가 결국엔 QlikView로 돌아서는 것을 많이 경험했습니다.

 

세계적으로 대세가 Qlik Sense인데, 왜 한국에서만 QlikView를 선호하는 걸까요?

 

제가 경험을 바탕으로 아래와 같이 이유를 정리해보았습니다.

 

 

 

1. 정형화된 보고 방식

 

솔루션을 구매하는 기업은 보통 규모가 큰 편입니다.

제가 구축했던 기업은 모두 중견 이상은 되었던 것 같네요.

 

그런 기업들은 이미 자신들의 시스템이 어느 정도 구축되어 있으며,

보고체계와 방법들이 규칙처럼 정해져 있습니다.

 

하지만 Qlik Sense는 사용자가 직접 만들어서 사용하는 시각화 툴이죠?

그래서 정형화된 보고에는 맞지 않는 것입니다.

 

결국 정해진 포멧으로 결정된 툴에서 약간의 수정을 가미하는 것을 더 선호하겠죠

 

 

 

2. IT와 현업 사이의 현격한 간격

 

큰 기업일수록 IT 또는 전산팀이 잘 꾸려져 있는 것 같습니다.

 

그래서 경영관리 또는 각 현업들은 IT적인 부분에 있어서 이들의 지원을 받는 것을 더 선호합니다.

바꿔말하자면, 현업이 직접 IT 툴을 다루는 것을 아직 불필요하다고 생각하는 것 같습니다.

 

어쩌면 문과, 이과로 나누어 기계나 메커니즘이라면 자신의 것이 아니라고 생각하게 만든 교육환경도

무관하지 않다고 생각이 드네요.

 

어찌 되었거나 큰 기업에서 현업들에게 Qlik Sense는 자유로운 데이터의 놀이터라는 개념보다,

오히려 한 가지 업무의 추가의 개념인 것 같습니다.

 

 

 

3. 결국은 EIS

 

결국에 큰 기업은 EIS(Executive Information System)를 원합니다.

즉 임원에게 보고할 수 있는 자료를 만들 수 있는 툴, 그리고 회의를 할 수 있도록 지원하는 큰 화면,

짧은 간격으로 모니터링할 수 있는 간편하고 화면을 원하는 것 같습니다.

 

게다가 Qlik Sense는 섬세하게 만들고 싶다면, 디자인의 한계도 명확하다보니,

QlikView의 PPT같은 디자인 자유도를 더 선호하기도 합니다.

(임원들께서는 아름다운 그래프를 원하시는데(자신들의 입맛에 맞는) Qlik Sense는 그걸 다 맞추긴 어렵겠죠ㅠㅠ)

 

물론 Qlik Sense도 여타 개발 기술이 있다면 더욱 화려하게 만들 수 있겠으나,

추가적인 기술지원이 붙어야하므로 오히려 QlikView보다 어려울 겁니다.

 

 

 

 

이상으로 대한민국에서 QlikView가 더 선호되는 이유를 살펴보았습니다.

 

결국 대세는 Data Literacy를 성장시키는 방향으로 흘러가게 될 것입니다.

아마 QlikView를 사용하고 유지보수 하다가 보면,

자신들이 보고자 하는 화면을 자유롭게 만들 수 있는 Qlik Sense의 필요성을 느끼기도 하겠지요

 

결국 문화의 차이인 것 같습니다.

 

이상 제씨였습니다:)

감사합니다.

반응형

'Data > Qlik' 카테고리의 다른 글

QlikView - Performance 향상시키는 방법  (10) 2020.11.02
QlikView와 QlikSense의 차이  (0) 2020.03.22
Qlik이란 무엇인가?  (0) 2019.07.28
반응형

lapply()

  • 입력값으로 vector 또는 list를 받아 list를 반환한다.

즉 vector를 넣든, list를 넣든 결과값으로 list 형식의 자료형으로 return 해준다.

그리고 이 list자료를 다시 vector로 바꾸기 위해서는 unlist를 사용해주면 된다.

a <- lapply(1:10, function(x) x*2)
unlist(a)


> typeof(a)
[1] "list"

> typeof(unlist(a))
[1] "double"

 

 

Sapply()

  • lapply는 list를 반환하지만 sapply는 matrix 또는 vector로 반환한다.
> zz <- sapply(iris[,1:4], function(x){ x*5 })
> typeof(zz)
[1] "double"
> class(zz)
[1] "matrix"


> head(zz)
     Sepal.Length Sepal.Width Petal.Length Petal.Width
[1,]         25.5        17.5          7.0           1
[2,]         24.5        15.0          7.0           1
[3,]         23.5        16.0          6.5           1
[4,]         23.0        15.5          7.5           1
[5,]         25.0        18.0          7.0           1
[6,]         27.0        19.5          8.5           2


> zzz <- sapply(iris[1,1:4], function(x){ x*5 })
> typeof(zzz)
[1] "double"
> class(zzz)
[1] "numeric"

기본적으로 iris 데이터는 data.frame이지만, matrix형태로 반환해주는 것을 알 수 있다.

 

결론은, 반환하려는 자료형의 형태에 따라 lapply와 sapply를 다르게 사용해주면 된다.

반응형
반응형

typeof() : 원시 자료형 (R 에서의)

먼저 원시 자료형이라는 건, R에서 취급하는 일반적인 자료형의 모든 형태를 지칭한다.

예를 들어,

  • NULL: 데이터가 없는 경우
  • Logical: 불리언, 참 또는 거짓
  • Int: 정수
  • Double: 부동소수점 실수
  • Complex: 복소수
  • Character: 문자열
  • List: 리스트
  • Closure: 함수

이런 것들을 자료형이라고 부른다.

 

그래서 가장 기본적인 데이터인 iris의 type을 물어보면 다음과 같은 값이 return된다.

typeof(iris)
"list"

 

그러면 이건 Class()와 뭐가 다른 걸까?

 

 

class() : R 객체지향 관점에서의 자료형

 

R 에서 클래스는 변수가 가지는 속성의 하나이다. 따라서 자료형과 클래스는 같은 값을 가지지 않을 수도 있다.

특히 다음과 같은 점에 주의한다.

  • 부동소수점 실수의 자료형은 double 이지만 클래스는 numeric 이다.
  • 함수의 자료형은 closure 이지만 클래스는 function 이다.
  • matrix, data.frame 등의 클래스 객체나 사용자 정의 클래스의 자료형은 list 이다.

출처: https://datascienceschool.net/view-notebook/0a66597ee82f464b9e2015e41cff8205/

 

Data Science School

Data Science School is an open space!

datascienceschool.net

 

즉 흔히 헷갈릴 수 있는 게 list()나 data.frame이 같은 선상에 있는 자료형이라고 생각하는 것이다.

하지만 data.frame이나 matrix는 엄연히 말하면 객체이며 다음의 iris 예시에서 이렇게 확인할 수 있다.

 

class(iris)
"data.frame"

 

정리하자면, Iris는 list의 자료형을 가진 data.frame 객체이다.

반응형
반응형

Apply 공부를 하다보니, 이게 다양한 종류가 있는 함수라는 걸 알게 되었다.

 

정적으로 설명을 적자면,

  • apply() 제품군은 R 기본 패키지와 관련이 있으며 행렬, 배열, 목록 및 데이터 프레임의 데이터 조각을 반복적 인 방식으로 조작하는 함수로 채워져 있다.
  • 이러한 함수를 사용하면 여러 가지 방식으로 데이터를 교차시킬 수 있으며 루프 구문을 명시적으로 사용하지 않아도 된다.
  • 입력 목록, 행렬 또는 배열에서 작동하며 하나 이상의 선택적 인수와 함께 명명된 함수를 적용합니다.
  • apply () 함수는보다 복잡한 조합의 기초를 형성하며 아주 적은 코드 행으로 작업을 수행하는 데 도움이 된다.
  • 보다 구체적으로, 패밀리는 apply(), lapply(), sapply(), vapply(), mapply(), rapply() 및 tapply() 함수로 구성

그 중에서도 오늘은 Apply에 대해서만 집중해보자

 

Apply

 

  • Apply 함수는 특정 구조를 지니는 object 를 입력값으로 받아 인자별 및 그룹별로 함수를 적용하는 것이다.

 

https://www.datacamp.com/community/tutorials

 

 

x <- matrix(1:9, c(3,3))
x
# [,1] [,2] [,3]
# [1,]    1    4    7
# [2,]    2    5    8
# [3,]    3    6    9

# apply(array, 1 또는 2, 함수)
# 1:행, 2:열

y <- apply(x, 1, function(x) {5*x })
y
# [,1] [,2] [,3]
# [1,]    5   10   15
# [2,]   20   25   30
# [3,]  

 

반응형
반응형

# R에서 폴더를 생성하고 저장하는 방법

- dir.exists 는 폴더명이 존재하는지 여부를 T,F 형태로 리턴하는 함수

- dir.create는 작은 따옴표 안의 폴더명으로 폴더명 생성하는 함수 

- ifelse 구문으로 폴더명 확인 후 없으면 create하는 구문 실행

- write.csv로 해당 루트에 파일 저장

 

 

ifelse(dir.exists('폴더명'), F, dir.create('폴더명'))
write.csv('저장하고 싶은 파일,폴더명/저장할 파일명.csv')

ifelse 구문을 통해 전체 구ㅁ

반응형

'Data > R' 카테고리의 다른 글

R) Data Frame 다루기  (0) 2021.02.06
R) rvest와 httr 이용해서 네이버 실시간 증권 뉴스 크롤링  (0) 2021.01.05
R) lapply와 sapply의 차이  (0) 2020.04.23
R) class(), typeof()의 차이  (0) 2020.04.23
R) apply 정리  (0) 2020.04.22
반응형

 DB 사용하는 사람들 사이에서는 핫한 Client라고 해서 한 번 받아보기로 했다.

 

- 사용 후기 모음

https://okky.kr/article/631704

 

OKKY | DBeaver 무료 DB Client

요즘 Postgresql 작업을 하고 있는데, 적당한 클라이언트 찾다가 발견했습니다. eclipse plugin도 지원하고, 깔끔하고 좋습니다. https://dbeaver.io

okky.kr

 

 

 

<장점>

 

1. 무료에 오픈 소스라는점

 

2. 다양한 SQL과 연동하여 사용가능하다는 점(오라클, MS-SQL, MySQL, PostgreSQL, MariaDB 등)

 - Windows, Mac, Linux 의 환경에서 사용 가능

3. 비버가 귀여움

 

 

요즘은 마스크도 씌웠다... 커엽

 

 

 

 

 

 

<설치>

 

1. 사이트 접속 https://dbeaver.io/

 

DBeaver Community | Free Universal Database Tool

DBeaver Universal Database Tool Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase,

dbeaver.io

 

 

 

 

2. OS에 맞춰서 다운로드

나는 Windows 64 bit 버전으로 다운로드했다.

 

 

 

 

3. 원하는 SQL 연결

 - 나는 Postgre를 연결하기로 했으니 연결해본다.

DBeaver와 Postgre SQL 연결

 

 

4. DB를 깔 때 만들었던 비밀번호와 PortNumber를 쳐서 넣어준다.

 - 보통 포트넘버는 알아서 잡는 것 같다.

 - Postgre를 캡쳐하려고 했는데 이미 연결해서 ㅠㅠ 마리아DB 화면 캡쳐

 

 

5. 연결완료☆

 

 

 

확실히 UI도 깔끔하고 내 정서에 맞는다.

SQL Developer는 너무 딱딱한 느낌이 있어서 정감이 안가는데, 요녀석은 하얗고 아기자기한 게 개발할 맛이 나는 것 같다.

 

이상 DBeaver 포스팅 끝!

반응형

'Data > Postgre SQL' 카테고리의 다른 글

PostgreSQL pgAdmin 데이터베이스, 테이블 조회  (0) 2019.09.25
Postgre SQL pgAdmin 사용법  (0) 2019.09.25
반응형

안녕하세요 제씨입니다.

저는 현장에서 Qlik툴을 이용해서 고객사에서 프로젝트를 하고 있습니다.

 

 

Qlik

 

그래서 현장에서 목소리를 들어보면

Qlik에서 제공하는 이 두 가지 툴에 대해 궁금증이 많이 있으세요

 

그래서 오늘은 이 두 가지 툴을 비교하는 블로깅을 해보고자 합니다 :-)

 

 

1. QlikSense와 QlikView의 공통점

이 두 제품은 한 회사에서 만든 제품이므로 엔진 측면에서 공통적인 분모를 가져갑니다.

BI에서 Qlik의 역할

먼저 위의 구조도를 보시면 이해에 도움이 될까하여 올립닏.

Qlik은 기존 BI가 담당하던 여러 부분을 저렇게 하나로 묶어서 제공합니다.

 

ETL(Extract, Transform, Load)에서부터 마트구성, 그리고 시각화까지 말이지요

 

위에 언급한 전반적인 기능은 두 제품이 모두 공유합니다.

그리고 Qlik 엔진이 가지고 있는 In-Memory 성능을 통한 속도의 장점,

QVD 마트를 통한 데이터 압축을 포함해서요.

 

 

그럼 이 두 제품이 각각 나뉜 이유가 무엇일까요?

 

 

저는 그 가장 큰 이유로 비즈니스가 전반적으로 Agile형태로 바뀌었기 때문이라고 생각합니다.

 

 

기존의 BI툴은 의사결정자를 위한 것이었습니다.

그들이 보고자 하는 지표들은 정해져 있었죠

그 회사의 KPI, 매출현황, 이익현황, 또는 각 제품별 분석 등으로 말이지요

다시 말하면, 한 번 만들어놓으면 그것을 다시 힘들여 제작할 필요가 적었습니다.

 

하지만 지금은 어떤가요?

소비자가 빠르게 변하고, 각 기업은 빠르게 변화하는 시장환경과 내부상황을 파악해야 합니다.

즉 기업은 빠르게 분석할 수 있는 환경을 원합니다.

하지만 QlikView라는 툴보다는 QlikSense 툴이 이런 빠른 방식의 분석에 조금 더 용이합니다.

 

왜냐하면 Qlik Sense는 보다 사용자 편의를 고려한 제품이거든요!

다시 말해 사용자, 즉 해당 분석을 담당하는 구성원(경영자, 의사결정자가 굳이 아니더라도)이 직접 시각화를 구성하고

데이터를 묶을 수 있는 전반적인 BI의 과정을 손쉽게 구현하도록 만든 제품이라는 말입니다.

 

 

2. QlikView vs QlikSense

QlikView

먼저 QlikView는 현재 12 Version까지 출시가 되었습니다.

QlikView2가 1996에 출시되었다고 하니, BI툴이 하나의 브랜드를 가지고 25년을 살아남고 있는거네요.(이번 조사에서 알게 되었습니다.) 그리고 QlikView12가 2015년에 출시되었고, 현재 버전업을 거쳐 2019년 SR2버전을 마지막으로 새로운 업데이트는 없습니다. 왜냐하면 지금은 Qlik Sense라는 제품에 회사가 주력하고 있기 때문이지요 :)

 

 

QlikView는 개발자 친화적입니다.

원하는대로 구현이 가능하고, Off-line에서도 분석을 수행할 수 있어서 매우 편합니다.

그리고 간단한 시각화정도는 desktop버전을 받아서 손쉽게 수행할 수도 있고요.

 

 

다만 디자인적 요소가 바뀌는 시대의 흐름과 맞지 않습니다.

QlikSense의 화면을 보실까요?

 

 

 

QlikSense 대시보드 예시
QlikSene 예시 (출처: Qlik 홈페이지) 

 

어떤가요?

조금 더 단순하면서 깔끔한 느낌을 주지 않나요?

 

QlikSense는 2014년에 첫 출시를 하여 현재까지 Qlik이 주력해오고 있는 제품입니다.

 

장점은 명확합니다.

현대적인 디자인과 Grid를 통해 디자인과 그래프 배치 측면에서 사용자 편의성이 극대화 되었습니다.

QlikView보다 오히려 개발적인 측면에서는 선택지를 줄였는데요, 이게 바로 QlikSense의 핵심입니다.

 

사용자가 분석을 하기 위해 가장 필요한 분석요소만 남겨놓고, 나머지는 과감히 버린 것이지요.

물론 기존의 QlikView도 충분히 교육을 통해서 사용자가 분석하고 사용할 수 있도록 만들어 놓았습니다만,

QlikSense는 그 장점을 부각하여 제작한 툴인 것 같습니다.

 

따라서 QlikView가 구현하던 것들 중 일부가 QlikSense에서 구현되지 않는 경우가 있습니다.(반대상황도 종종 있습니다.)

 

그래프의 다양성과 확장성 측면에서 QlikSense가 조금 더 우세를 가져갑니다.

요즘들어 많이 쓰이는 fancy한 그래프들(Sankey Diagram, Waterfall barchart, Geoanaytics)을 적극적으로 지원하지요.

 

 

사실 이 외에도 다양한 차이점이 있습니다만,

툴을 선택하실 때에 필요한 정보는 여기까지만 해도 충분하고 생각이 됩니다 :)

 

요약하자면,

QlikView는 오래되었지만 오프라인에서 사용가능하고, 개발자 친화적이며, 심도 깊은 분석을 제공하는 제품이며

QlikSense는 현대적인 UI/UX, 온라인을 통해서만 가능하고, 사용자 친화적이며 확장성 높은 제품

이라고 정리해볼 수 있겠네요 :)

 

더 자세하게 궁금한 점은 댓글로 남겨주시면 추가 답변 달도록 하겠습니다.

그럼 오늘도 좋은 하루 보내세요

 

 

반응형
반응형

Decision Tree( 의사결정 나무 ) Model

 

 

 

 

모델


스무 고개처럼 일정한 기준을 질문으로 제시하였을 때, '예' 혹은 '아니오'로 갈라질 수 있는 결정 모델이다.

 

아래는 Decision Tree를 설명하는 가장 좋은 이미지

출처 : 위키백과

타이타닉 호의 생존율을 구할 때 사용하는 Decision Tree의 예이다.

 

 

 

 

 

 

 

Decision Tree Regression


 

출처 : https://gdcoder.com/decision-tree-regressor-explained-in-depth/

 

보통 Classification 모델을 쉽게 떠올리는데, 위 그림처럼 관측치에 대한 Regression도 가능하다.

다만 Continusous한 모델이 아니므로 회귀선을 그렸을 경우 아래처럼 직각형의 그래프가 나오게 된다

 

Random Forest Regression Model

위의 예제는 Random Forest의 그래프이다. 일반적인 Decision Tree보다 굴곡(꺾인 점)이 더 많다.

Random Forest는 Decision Tree를 모아서 그 결과치를 평균낸 모델이라고 해석하면 된다.

반응형

+ Recent posts