1. MSBI(Microsoft Business Intelligence)

SSIS(SQL Server Integration Services) : 데이터 통합 툴

과거 SQL 2000 DTS(데이터 변환 서비스)가 2005 버전으로 오면서 SSIS로 이름이 변경되고 많은 향상이 이루어졌다.

데이터를 가져오고 내보내고, 통합하는 등 ETL을 가능하게 해주는 서비스다. 서로 다른 데이터베이스의 통합도 가능한 것 같다. 현재 시점에 SSIS는 2019까지 나온 것으로 확인된다.

근데... 그냥 파이썬에서 SQLAlchemy + Pandas 쓰면 쉽게 해결되는거 아닌가...? 무료에다 쉬운데... 스택오버플로에 정보도 많고...

 

참고 : m.blog.naver.com/ahnmh1121/130039237012

 

SSIS 란

『SSIS, Integration Services, 데이터 통합 서비스.. 』 이것들이 무엇인지 모르는 분들을 위해 다...

blog.naver.com

docs.microsoft.com/ko-kr/sql/integration-services/sql-server-integration-services?view=sql-server-ver15

 

SQL Server Integration Services - SQL Server Integration Services (SSIS)

엔터프라이즈 수준 데이터 통합 및 데이터 변환 솔루션을 빌드하기 위한 Microsoft 플랫폼인 SQL Server Integration Services에 대한 정보

docs.microsoft.com

 

SSAS(SQL Server Analysis Services) : 데이터 분석 툴

docs.microsoft.com/ko-kr/analysis-services/?view=asallproducts-allversions

 

Analysis Services 핵심 설명서

클라우드 및 온-프레미스에서 Analysis Services 솔루션을 생성하고 관리하는 방법을 알아봅니다.

docs.microsoft.com

 

SSRS(SQL Server Reporting Services) : 데이터 리포트 툴

docs.microsoft.com/ko-kr/sql/reporting-services/create-deploy-and-manage-mobile-and-paginated-reports?view=sql-server-ver15

 

SQL Server Reporting Services란? - SQL Server Reporting Services (SSRS)

온-프레미스에서 모바일 및 페이지가 매겨진 Reporting Services 보고서에 대한 도구 및 서비스에 대해 알아봅니다.

docs.microsoft.com

 

SSMS(SQL Server Management Studio) : SQL Server에서 Azure SQL Database까지 모든 SQL 인프라를 관리하기 위한 통합 환경

MS SQL Server나 Azure SQL Database와 통신하기 위한 툴이다.docs.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

 

SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)

최신 버전의 SSMS(SQL Server Management Studio)를 다운로드합니다.

docs.microsoft.com

DB가 SSMS와 동일 PC가 아니라 다른 PC에 설치된 경우

Authentication을 'SQLL Server Authentication'으로 바꾸고 DB 서버 인증을 통해 접속한다.

MS-SQL을 사용하려면 'Windows Defender 방화벽'에서 1433포트를 인/아웃바운드 포트 추가해주고, 'Sql Server Configuration Manager'에서 TCP/IP'를 '사용'으로 변경 후 

그 후 'Sql Server 서비스 > SQL Server (MSSQLSERVER)' 우클릭 해서 재시작.

 

2. Power BI

데이터를 검색, 시각화, 모델링하는 툴로 DDDM(데이터 기반 의사 결정)에 도움을 준다.

Power BI는 몇 가지 버전으로 나뉜다.

  • Power BI Desktop : 데스크톱에 설치하면 무료로 제공된다. 데이터를 손쉽게 연결, 수정, 시각화 할 수 있다.
  • Power BI Services : MS Azuer를 통해 제공되는 클라우드 서비스다. 온라인이라는 것과 애저 서버를 사용하는 것이 장점이자 단점.
  • Power BI Mobile App : 이동중에 사용이 가능하다.

 

 

개인적인 생각이지만 MSBI는 개발자와 DB쪽에 초점이, Power BI는 사용자와 시각화, 조회쪽에 초점이 맞춰진 것 같다(?)

 

 

Tag. ms sql, sql server, ms sql server, microsoft sql server, msbi, microsoft business intelligence, sql server integration services, sql server analysis services, sql server reporting services, sql server integration service, sql server analysis service, sql server reporting service, power bi desktop, power bi azure, power bi services, power bi service, power bi mobile, power bi 아이폰, power bi 안드로이드, power bi 앱, power bi 스마트폰

OOP(Object Oriented Programming, 객체지향 프로그래밍) : 모든 데이터를 현실에 빗대어 객체로 다루는 프로그래밍 기법. 객체지향 언어의 5가지 특징은 다음과 같다.

1 ) 캡슐화 (Encapsulation) : 데이터와 함수를 하나로 묶는다.

  • 데이터의 세부 내용이 객체 은닉된다. 즉, 데이터 변경으로 인한 에러가 줄어들고, 객체들간에 데이터를 자세히 알 필요가 없으므로 코드가 단순해진다.
  • 객체와 함수의 재사용이 쉽다.

2 ) 정보은닉 (Information Hiding) : private으로 선언한 데이터는 자기 자신을 통해서만(setter, getter) 접근 가능하다.

  • 각 객체간의 수정이 다른 객체에 미치는 영향을 최소화 한다.
  • 외부 객체의 직접 접근을 막아 프로젝트 확장 시 오류를 최소화 한다.

3 ) 추상화 (Abstraction) : 불필요한 부분은 생략하고 중요한 것에만 초점을 맞춰 모델로 만든다.

  • 복잡한 모델을 중요한 것 만 추려 추상화 함으로써 시스템 구조를 시각적으로 표현할 수 있다.
  • 완전한 시스템이 구축되지 않더라도 개략적으로 모델을 만들어 테스트 하고 살을 붙여나갈 수 있다.

4 ) 상속성 (Inheritance) : 부모클래스에 정의된 모든 것을 자식 클래스가 물려받는다.

  • 재정의 할 필요가 없어 코드 작성이 간결해진다.
  • 상속으로 인한 최소한의 규칙을 통해 프로젝트의 확장 시 오류를 최소화 한다.
  • 자식클래스에서 새로운 함수를 추가하거나 부모 클래스의 함수를 재정의(Overriding)해 사용할 수 있다.
  • 클래스의 재사용이 쉽다.

5 ) 다형성 (Polymorphism) : 호출하는 객체에 따라 다른 동작을 한다.

  • 하나의 클래스에서 같은 이름의 함수를 여러 개 가질 수 있다(Overloading). 호출하는 객체가 어떤 인풋 파라미터를 사용해 호출하냐에 따라 각자 다른 함수가 호출되게 한다. 즉, 비슷한 기능을 하는 다른 함수를 만들 때 불필요하게 너무 많은 함수명을 만들어 내 가독성이 떨어지는 문제를 해결할 수 있다.

 

객체지향 설계 5원칙 SOLID : sabarada.tistory.com/36 이건 아직 이해가 안 되서... 나중에 읽어보면 좋을 것 같다.

 

객체지향 설계의 5가지 원칙 S.O.L.I.D

안녕하세요. 오늘은 객체지향의 5가지 원칙, SOLID에 대해서 알아보도록하겠습니다. java의 특징은 많이 들어보셨을 것 같습니다. 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 이렇게 있죠

sabarada.tistory.com

 

AOP(Aspect Oriented Programming, 관점지향 프로그래밍) : OOP를 더욱 발전시키기 위한 개념이다. 하나의 소프트웨어가 하나의 거대한 OOP로써 설계, 프로그래밍 되었다면 이것을 각 기능별로 모듈화 해서 분리를 시키는 개념이다.

아래의 그림을 보면 이해가 쉽다.

기존의 단순 OOP에서는 계좌이체, 입출금, 이자계산의 서비스가 각각의 OOP로 프로그래밍 되었고, 각각의 OOP 모두 기능 작동을 위해 로깅, 보안, 트랜잭션을 하는 코드가 구현되어있었다.

그런데 계좌이체, 입출금, 이자계산 비즈니스 모두가 공통적으로 갖는 로직이 있는 것을 알 수 있다. 그렇다면 이것을 각각의 OOP 소스코드에서 제거하고 외부로 빼내 하나의 공통 모듈로 만들 수 있다. 이것이 바로 기존의 OOP에 AOP 관점을 더해 발전시킨 기법이다.

Core Concern(핵심 관심) : 각 서비스의 핵심 비즈니스 로직.   i.e. 계좌이체, 입출금, 이자계산
Crosscut Concern(횡단 관심) : 공통 모듈.   i.e. 로깅, 보안, 트랜잭션

AOP의 핵심은 공통 모듈을 분리시켜 해당 소스코드가 외부의 다른 클래스에서 존재하는 것이다.

AOP개념을 도입함으로써 얻는 장점

  • 각 비즈니스 로직마다 복붙을 통해 생겨난 중복 코드가 사라진다.
  • 각 비즈니스 로직을 구현하는 개발자는 자기 자신의 비즈니스 코드에만 집중할 수 있어 코드가 간결해지고, 유지보수가 쉬워진다.
  • 재활용성이 더욱 높아진다.

AOP의 구성 요소

  • JointPoint : Crosscut Concern(횡단 관심)을 삽입할 시점(when).
    i.e. 함수가 Before(실행 전), After(실행 후), AfterReturning(반환 후), AfterThrowing(예외 발생시), Around(실행 전과 후)
  • PointCut : 어떤 클래스의 어떤 함수에 삽입할건지. 삽입할 위치(where).
  • Aspect : JointPoint(when) + PointCut(where)
  • Advice : 무엇(what)을 삽입할건지.
  • Weaving : Aspect(when + where) + Advice(what). 위빙을 통해 지정된 객체를 새 Proxy 객체로 생성한다.
  • Proxy : Crosscut Concern(횡단 관심)이 Core Concern(핵심 관심)에서 직접 실행되지 않고 Proxy(대리인)을 생성해 실행된다.

 

 

 

 

Tag. 오버라이딩, 오버로딩

로그아웃 눌러보고 알았다... 내 블로그는 딱히 비공개 할만한 글이 없다 생각해서 거의다 공개글이라 생각했는데...

로그아웃 누르니 글 수가 확 줄어든다;; 생각보다 비공개가 많구나....

애플 메모앱은 편하고 좋긴 한데... 펜이나 카메라 연동도 쉽고 하니까... 문제는 애플기기가 아니면 거의 쓰는게 불가능하고...

원노트는 원드라이브 동기화 불안정 때문에 도저히 사용을 못 하겠고...

굿노트는 필기 아니면 메모하기가 나쁘고... 윈도우에도 굿노트가 있는지도 모르겠다...

에버노트는 유료고...

HTML 기반이라 플랫폼 가리지도 않다 보니(근데 티스토리틑 생각보다 가린다 ㅡㅡ;; 검색엔진도 구리고...) 메모할 필요가 있을 때 메모도 여기다 해서 그런가보다...

월요일 수업 시작하자마자 갑자기 졸업작품 공지가 나오는 바람에 회사 준비하려던 일정에 차질이 생겨버렸다. ㅠㅠ

용어랑 개념정리는 틈틈히 보고 Power BI도 잠깐 했지만 앵귤러를 봐야하는데 ㅠㅠ

정리하는김에 블로그에 잡다하거나 중요도가 떨어지는 글은 다 지워버렸다.

이번주는 거의 졸업작품때문에 파이썬 ETL 코드 고치고, AWS에 MariaDB 구축과 자바서버 구축해서 소스 올리고 톰캣 서버로 띄우는데 시간이 거의 다 간 것 같다... 얼떨결에 이거 한다고 카카오 API도 발급해서 넣어보고...

남은 기간은 발표날을 제외하면 전부 타입스크립트와 앵귤러에만 집중해야겠다.

 

그리고... 왠지는 모르겠지만... 다른 블로그 보면 내 블로그는 너무 초보수준이고 초라해서 ㅠㅠ 처음 시작할 때는 정말 1달간 아무도 안 들어왔는데 요즘은 아무리 적어도 70명대... 많을땐 거의 200명 조금 못 되게 들어오는 것 같다. 일 평균 100명은 넘긴 하는 것 같다. 근데... 검색 유입 중 줌 검색은 대체 뭐지;;; 네이버 검색은 당연하게도(?)한 명도 없고 거의다 구글과 다음이구나... 놀랍게도 빙 검색 유입도 있다;; 인입글을 보면 거의다 파이썬 인입인데... 확실히 파이썬이 인기가 많은 것 같다.

'개발자 > TIL' 카테고리의 다른 글

TIL 20.11.02 ~ 20.11.08  (0) 2020.11.10
TIL 20.10.26 ~ 20.11.01  (0) 2020.11.02
TIL 20.10.16 ~ 20.16.18  (0) 2020.10.19
TIL 20.10.05 ~ 20.10.15  (0) 2020.10.15
TIL 20.09.28 ~ 20.10.04  (0) 2020.10.04

데이터베이스 온라인 처리

OLTP(OnLine Transaction Processing) : 네트워크 상의 여러 사용자가 데이터를 DML(SELECT, INSERT, DELETE, UPDATE)하는 작업. 금융권에서는 '온라인 거래처리'라고 한다.   i.e. 입출금, ATM기기, 카드 조회/결제 등

OLAP(OnLine Analytical Processing) :  데이터 기반 의사결정(DDDM, 참고 : greendreamtrre.tistory.com/597)을 위해 사용자가 데이터와 대화식으로 정보를 분석하는 과정을 말한다. 이는 데이터 웨어하우스(DW), 데이터 마트(DM)와 관계된다.

 

사실... 이렇게만 보면 구분이 잘 안 되는데, 둘 다 중앙 집중이든 분산 데이터든 처리를 위해 하나의 커다란 일원된 데이터베이스에 접근한다는 것은 동일하지만 차이가 있다.

  OLTP OLAP
목적 애플리케이션/서비스 운영
비즈니스 활동 지원
의사결정
비즈니스 활동 평가/예측
속도 빠름 OLTP에 비해 느림
데이터 일원화 높음 OLTP에 비해 낮음
데이터 기반 Database Database
트랜잭션 유형 INSERT, SELECT, UPDATE, DELETE SELECT
주기 실시간 비교적 긴 주기
(ETL 일정에 따른 주기)
데이터 양 비교적 작음 방대함
데이터 유형

Modeling
2차원 RDB

ER modeling
(객체(Entity)와 객체 간의 관계(Relationshop)로 표현)
다차원

Dimensional modeling
최적화 방향 수시로 이뤄지는 CRUD, 특히 갱신의 효율성
데이터 무결성
갱신으로부터 자유로움
조회 성능, 사용성

 

 

정의 : '비즈니스 인텔리전스은 기업에서 데이터를 수집, 정리, 분석하고 활용하여 효율적인 의사결정을 할 수 있는 방법에 대해 연구하는 학문이다.'라고 한다...

쉽게 말해 과거와 달리 데이터는 디지털화 되었고, 데이터의 종류와 양도 방대해졌다. 즉, 빅데이터 시대가 시작되었고, 이러한 데이터를 모아놓으면 사람의 눈과 계산 능력만으로는 보이지 않는 빅데이터 분석 결과를 통해 알 수 있는 정보를 이용해 데이터 기반 의사결정(Data-driven Decision Management, DDDM)을 할 수 있게 되었다.

 

데이터 시각화 BI 앱에는 Tableau - Tableau(태블로), MS - Power BI(파워 BI), QlikTech - Qlik Sense(클릭 센스), TIBCO - Spotfire(스팟파이어), SK - Metatron(메타트론), NEWSJELLY - DAISY(데이지) 등이 있다.

 

관련 용어

Data Warehouse, DW : 데이터를 공통 형식으로 변환하여 일원적(unitary)으로 관리하는 방대한 데이터베이스. DDDM을 지원하는데 사용되며 병렬 서버에 대응하여 RDBMS(관계형 데이터베이스 관리 시스템)를 사용한다.

Data Mart, DM : 데이터 웨어하우스와 사용자의 중간층에 위치한다. 특정 부서나 고객을 위한 데이터 웨어하우스의 일부를 떼어낸 작은 데이터 웨어하우스정도로 볼 수 있다.

이미지 출처 : panoply.io/data-warehouse-guide/data-mart-vs-data-warehouse/

이 그림을 보면 이해가 쉽다.

Data Sources > Data Warehouse : 각각의 데이터들을 모아 하나로 통일시켜 저장한다(ETL). 즉, 방대한 규모의 일원적(unitary) RDBMS를 만든다.

Data Warehouse > Data Marts : 특정 부서나 고객에게 필요한 데이터를 추출해 만든다. 이 데이터마트에 각 유저가 필요에 따라 접근해 데이터 기반 의사결정(DDDM)에 활용한다.

 

ETL : Extract, Transform, Load 의 약어로 데이터를 수집(추출), 정제(가공), 저장(적재)하는 것을 말한다.

ETT : Extraction, Transformation, Transportation 의 약어로 ETL과 동의어.

 

 

Tag. DW, data warehouse, 데이터 웨어하우스, 데이터웨어하우스, DM, Data Marts, data mart, data marts, 데이터 마트, 데이터마트, etl, ett

XaaS(X as a Service) : 'as a Service'로 통칭되는 것들을 말한다. 각종 디지털 infrastructure가 네트워크 형태로 제공되는 것을 말한다. 즉, 클라우드 서비스가 제공하는 서비스 모델들을 이야기하는 것이다.

장점 : 초기 비용 절감, 안정적인 유지보수, 플랫폼 종속에서 벗어나는 것이 가능.
단점 : 클라우드 장애 발생시 다수의 서비스가 동시에 장애 발생. 장기 이용시 비용 부담.

 

IaaS(Infrastructure as a Service) : 서버, 스토리지, 네트워크 자원 서비스. i.e. AWS - EC2, MS - Azure, Google - Compute Engine, IBM - Bare Metal Cloud

PaaS(Platform as a Service) : 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공. 단점으로는 특정 플랫폼 서비스에 종속될 수 있다. i.e. Heroku, AWS - Elastic Beanstalk, MS - Azure, Google - App Engine, 카카오 API, 네이버 API,

BaaS(Backend as a Service) : 모바일 앱 개발자를 위한 클라우드 서비스. 회원관리, 인증, 푸쉬 알림 등 백엔드 기능을 일일히 개발하지 않고 API나 Plugin 형태로 제공하는 서비스. i.e. Google - Firebase, Facebook - Parse, AWS - mBaas, MS - BaaS

FaaS(Function as a Service) : 서비스형 함수. 서버리스로 서버를 관리할 필요 없이 특정 이벤트에 반응하는 함수를 등록하고, 해당 이벤트가 발생하면 함수가 실행되는 구조로 앱 개발 및 런칭에 하부 구조의 복잡한 빌드, 유지보수 없이 애플리케이션 기능을 개발, 실행, 관리할 수 있도록 플랫폼을 제공. i.e. AWS Lambda

SaaS(Software as a Service, 서비스형 소프트웨어) : On-demand Software(주문형 소프트웨어)라고도 한다. 소프트웨어 및 관련 데이터는 중앙에 호스팅되고, 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하는 형태의 소프트웨어 전달 모델. 단점으로는 커스터마이징이 어렵다. i.e. Dropbox, Google Apps, APPLE iWork

 

참고

K8(Kubernetes - Docker) : 데이터 보안이 중요한 곳에서는 네트워크 관리를 하지 않고 직접 베어메탈 방식으로 운영해야하는데 이 때 반드시 필요하다.

+ Recent posts