
PostgreSQL에서 Pivot과 Unpivot은 데이터를 행(row) 또는 열(column) 기준으로 변환하는 작업을 의미한다.이 작업은 주로 데이터 분석과 시각화를 준비하는 단계에서 사용되며, Pivot과 Unpivot을 활용하는 일이 종종 있어 작성하고자 한다.이를 작성하는 이유는 PostgreSQL은 Unpivot을 지원하는 전용 함수가 없기 때문이다. 1. Pivot행 데이터를 열 데이터로 변환 예제 - 각 제품별 매출을 월별로 정리하기아래 테이블이 sales라는 테이블이며, 데이터는 아래와 같이 되어 있다고 가정해보자.monthproductpriceJanuaryA100000JanuaryB150000FebruaryA120000FebruaryB140000 이 데이터를 Pivot하면 아래과 같은 ..

PostgreSQL에서의 서브쿼리(subquery)는 하나의 쿼리 안에서 또 다른 쿼리를 실행하는 방법으로, 복잡한 쿼리를 단순화하거나 중간 결과를 계산할 때 매우 유용하다.요약PostgreSQL의 서브쿼리는 FROM, WHERE, SELECT, EXISTS 등 다양한 절에서 사용 가능별칭을 반드시 지정해야 하며, 성능 문제를 고려해야 함복잡한 서브쿼리는 CTE로 변환해 가독성과 효율성을 높이는 것이 좋음서브쿼리와 조인의 장단점을 이해하고, 적절한 시점에 사용1. 서브쿼리의 기본 개념서브쿼리란?SQL 쿼리 내부에서 실행되는 또 다른 SQL 쿼리서브쿼리는 메인 쿼리에서 사용할 데이터를 반환하거나 조건을 생성하는 데 사용PostgreSQL에서는 서브쿼리를 SELECT, FROM, WHERE, 또는 다른 SQ..

Google Cloud Data Fusion은 데이터 통합을 위한 완전 관리형 클라우드 서비스로, 다양한 데이터 소스와 싱크를 연결하고, 데이터를 변환하며, 파이프라인을 구축할 수 있도록 지원한다. 이러한 파이프라인의 실행을 위해 Cloud Data Fusion은 Google Cloud의 Dataproc 서비스를 활용한다. 1. Dataproc란?그럼 Dataproc이란 무엇이냐하면 Dataproc은 Apache Spark와 Apache Hadoop을 기반으로 한 완전 관리형 서비스로 배치 처리, 쿼리, 스트리밍, 머신러닝 등 다양한 작업을 수행할 수 있다. Dataproc은 클러스터의 생성, 관리, 확장 및 종료를 자동화하여 사용자가 인프라 관리에 소요되는 시간을 줄이고 데이터 처리에 집중할 수 있도록..

그동안 DW 프로젝트 참여로 인해 블로그 신규 글 업데이트가 늦었는데, 이제부터 다시 글을 작성해보려 한다.기존 AWS를 활용하여 데이터를 핸들링하였지만, 작성하지 못한동안 DW 프로젝트를 참여하여 처음 Google Cloud Paltform를 활용하여 프로젝트에 적용하고 이를 추후 운영할 계획에 있다. 그 중, Google Cloud Data Fusion 이라는 서비스에 대해 소개 및 활용했던 방식을 공유하려 한다. Google Cloud Data Fusion 이란Google Cloud Data Fusion은 데이터 파이프라인을 신속하게 빌드, 관리하기 위한 완전 관리형 클라우드 기반 기업 데이터 통합 서비스이다. Cloud Data Fusion은 그래픽 UI 기반으로 ETL 파이프라인을 작성하며 쉽게..

🐼 : 기상청_단기예보((구)_동네예보) Open API 데이터 불러오기 데이터를 보기 위해 우리가 직접 데이터를 만드는 방법도 있지만, Open API를 활용하면 굳이 직접 데이터를 만들지 않아도 공짜로 제공되는 데이터가 있어서 이를 활용해보려고 한다. STEP1. 데이터 활용 신청하기 우선, 아래 공공데이터 포털에서 회원가입 및 로그인 진행해야 데이터를 가져올 수 있다. (회원가입 ~ 로그인까지 진행 Go!) 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 검색에 '기상청'을 검색하면 아래 제목과 같이 이번 포스팅..

"O 기업, 300억 규모의 시리즈 A 유치"와 같은 기사를 종종 접하곤 한다. 이렇게 유치를 성공했다는 내용을 보면 좋은 이야기라는 것은 누구나 알 것이라 생각한다. 그러나, 투자 유치 소식의 A, B, C 의미는 단계가 올라갈수록 좋다는 것은 알지만 어떻게 좋은지 잘 모른다. 스타트업에 관심이 있다면 한 번 쯤은 찾아봤을 내용이지만, 투자 라운드 (시리즈 A, B,...)의 개념에 대해 이해하고 있으면 좋다고 생각해 이번 기회에 시리즈 개념들을 정리해보고자 한다.투자라운드투자 라운드는 스타트업의 성장 과정에 따라 투자 단계를 구분한 것으로 시드, 시리즈 A, B, C 로 올라가는 것을 투자라운드(Investment Round)라고 한다. 투자 관련 기사를 보면 '시리즈 A', '시리즈 B', ... ..

기본검색 알고리즘(Basic Search Algorithm) 1. 탐색 저장된 정보들 중에서 원하는 값을 찾는 것 프로그래밍에서 가장 간단하고 대표적인 문제가 탐색 문제 2. 탐색 알고리즘의 종류 선형 탐색 알고리즘 (linear search algorithm) 왼쪽부터 순서대로 확인 찾고자 하는 값을 리스트의 맨 앞에서부터 끝까지 차례대로 찾아 나가는 방식 (왼쪽부터 순서대로 확인) 장단점 장점 : 검색 방법 중 가장 단순하여 구현이 쉽고, 정렬되지 않은 리스트에서도 사용 가능 단점 : 검색할 리스트의 길이가 길면 비효율적 이진 탐색 알고리즘 (binary search algorithm) 중간지점을 기준으로 반씩 제외하는 방식 오름차순으로 정렬되어 있는 리스트에서 특정한 값을 찾을 때, 처음 중간의 값..

04. 서버 프로그램 구현 - OSI 7 계층 서버 프로그램은 일반적으로 응용 계층에서 구현된다. 응용 계층에서는 사용자의 요청을 처리하고, 데이터를 전송하거나 수신한다. 응용 계층에서 데이터를 전송하거나 수신하기 위해서는 하위 계층의 기능을 이용해야 한다. OSI 7 계층을 이해한다면, 서버 프로그램의 구현을 보다 쉽게 이해할 수 있으며, 네트워크 통신에서 발생하는 문제를 해결하는 데에도 도움이되기 때문에 아래 글을 작성해본다. 1. 개념 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 것으로 실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델 기반으로 상업적이고 실무적으로 이용 가능하도록 단순화한 것이다. 개방형 시스템 상호 연결 모델의 표준이다..

이번에는 MySQL에서 이벤트 스케줄링 하는 방법에 대해 작성하고자 합니다. MySQL 이벤트 스케줄링 요약 MySQL 이벤트 스케줄링은 데이터베이스의 특정 작업을 일정 간격으로 자동으로 실행할 수 있는 기능이다. 해당 기능을 사용할 수 있는 일반적인 경우는 아래와 같다. 백업 통계 수집 데이터 정리 데이터 마이그레이션 자동화 MySQL 예제를 통한 EVENT Scheduler 활용법 1단계: Event Scheduler 활성화하기 이벤트 스케줄러는 MySQL 서버에 기본적으로 내장된 구성 요소로서, 이벤트를 실행하는 데 사용됩니다. 다음 명령어로 이벤트 스케줄러를 활성화 할 수 있다. SET GLOBAL event_scheduler = ON; 2단계: Event 생성 다음은 매일 밤 12시에 'old_..

현재 우리는 하루가 아닌 몇 초마다 셀 수 없을 정도로 많은 양의 데이터와 공존하는 시대를 살아가고 있다. 이렇게 데이터에 대한 중요도가 상승됨에 따라 데이터 분석가,데이터 사이언티스트, 데이터 엔지니어 등 데이터 분야 종사자가 나타났으며, 비즈니스와 생활 영역에서도 내가 가진 데이터를 어떻게 활용할 것인지 고민해야 하는 상황을 마주한다. 이렇게 보면 '데이터 리터러시'는 이제 우리 생활 속에서 가깝고 익숙한 용어이다. 하지만, 용어의 뜻을 정확하게 알지 못해도 많은 사람들이 경험하고 있는 '데이터 리터러시'의 정의, 필요 역량, 그리고 필요성, 활용법, 성공 사례에 대해 알아보려 한다. 데이터 리터러시(Data Literacy)는 무엇일까?🤔 데이터 리터러시 정의 (Data Literacy Defini..

Dark Mode 기능은 꺼주셔야 내용이 잘보입니다😄 Database volume에 대한 고민 전체 Database에 모든 데이터를 하나의 테이블에 들어간다면 데이터베이스 관리에 어려움을 겪는다. 이유는 데이터베이스 볼륨 증가로 인해 데이터베이스의 읽기/쓰기에 대한 성능이 감소하며, 데이터베이스의 병목 지점이 되기 때문이다. 따라서 데이터를 하나의 테이블에 넣되, 적절히 분할한다면 성능 향상이 될 것이라 판단된다. 데이터베이스 성능 향상을 위해 데이터를 분할하여 저장하는 파티셔닝(Partitioning) 혹은 샤딩(Sharding)기법을 사용한다. 위 2가지 기법 모두 거대한 데이터셋을 서브셋으로 분리하여 관리하는 방법 중 파티셔닝(Partitioning)에 대해 정리하고자 한다. 1. 파티셔닝(Part..

요즘 IT업계에서는 클라우드(Cloud)에 대한 이야기가 빠지지 않는다. 그렇다면 클라우드(Cloud)는 무엇인지 간단히 알아보고, 클라우드 서비스 모델의 종류와 개념에 대해 알아보자. 01. 클라우드(Cloud)란 무엇일까?🤔 클라우드는 간단히 이야기하면 인터넷을 통해 언제 어디서든 원할 때 원하는 만큼의 IT 리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있는 서비스를 뜻한다. 02. 그럼 클라우드 서비스 모델의 종류는 무엇이 있을까? 클라우드 서비스 모델의 종류는 크게 3 가지 로 구분되며 아래와 같다. ① IaaS(Infrastructure as a Service) ② PaaS(Platform as a Service) ③ SaaS(Service as a Service) 먼저 클라우드 서..

기술 면접의 단골 질문인 데이터베이스의 기초인 트랜잭션(Transaction)과 특성(ACID)에 대해 작성해보려 한다. 01. 트랜잭션(Transaction)이란 무엇일까? 🙄 트랜잭션(Transaction)은 데이터베이스의 상태를 변경 시키기 위해 수행되는 작업 단위라는 의미를 갖는다. 그렇다면, 데이터베이스의 상태를 변경시킨다는 의미는 무엇일까? 간단히 말하면 아래의 질의어(DML, 데이터 조작어)를 활용해 데이터베이스에 접근한다는 의미이다. - SELECT : 데이터베이스에 들어있는 데이터들을 조회하거나 검색하기 위한 명령어 - INSERT : 데이터베이스에 들어있는 데이터를 추가하기 위한 명령어 - UPDATE : 데이터베이스에 들어있는 데이터들을 갱신하기 위한 명령어 - DELETE : 데이터..

🤔 서비스 기획자는 무엇을 하고 어떠한 일을 할까?우선 서비스 기획은 '사내 비즈니스의 요구사항과 사용자 및 세간의 트렌드를 반영하여 제품을 설계하는 일'을 뜻하며 서비스 기획자의 업무 프로세스 는 아래와 같다.시장조사 및 리서치 분석요구사항 정의기획 문서 작성유관부서 리뷰개발 및 디자인QA서비스 오픈모니터링 및 유지보수이와 같이 서비스 기획자의 업무 프로세스는 큰 틀로 8단계로 분류된다. 먼저, 시장조사와 리서치 분석을 통해 고객의 니즈를 파악하고, 빠르게 변화하는 트렌드에 맞추어야 비로소 기획이 시작되는 것이다.이 때 마케팅 요소인 4P, STP, 페르소나 설정 등 작업이 진행된다. 이렇게 시장조사와 리서치 분석을 통해 다양한 요구사항을 정의하고 정의된 목표를 설정하고, PRD(Product Req..

Redis (Remote Dictionary Server) 1-1. Redis 개념 Redis는 Key-Value 기반의 In-memory 데이터 저장소이다. Redis의 장점 Key-Value 기반이기 때문에, 쿼리를 작성하지 않아도 결과를 즉시 확인 가능 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 속도 측면에서 빠름 1-2.다양한 데이터 구조(Collection) 제공 상단 그림은 데이터별 저장 구조에 대해 표현된 것이고, 하단은 Redis의 다양한 데이터 구조에 대해 표로 정리해둔 내용이다. No Structure Definition Simple Description 1 String 단순 Key-Value 매핑 구조 2 Lists Array형식의 데이터 구조 처음과 끝..