전체 글
SSOT(Single Source of Truth)란?
SSOT(Single Source of Truth)란?
2023.03.03SSOT는 Single Source of Truth의 약어로, 데이터베이스, 애플리케이션, 프로세스 등의 모든 데이터에 대해 하나의 출처를 사용하는 개념을 의미합니다. 이는 데이터의 정확성, 일관성, 신뢰성을 보장하고, 일관성 있는 의사결정 및 작업 효율성을 높이는 데 도움을 줍니다. SSOT의 장점 SSOT는 기업에서 데이터 및 정보의 일관성을 유지하고 보장하기 위해 매우 중요합니다. 이를 통해 다음과 같은 장점을 얻을 수 있습니다. 1. 정확성 데이터에 대한 일관성과 정확성을 유지하므로, 잘못된 데이터로 인한 잘못된 결정을 내리는 경우를 줄일 수 있습니다. 2. 일관성 모든 사용자가 동일한 정보를 사용하도록 보장하기 때문에, 업무 프로세스 및 의사결정에 일관성을 유지할 수 있습니다. 3. 효율성 모든..
SCIM(System for Cross-domain Identity Management)이란?
SCIM(System for Cross-domain Identity Management)이란?
2023.03.03SCIM(System for Cross-domain Identity Management)은 클라우드 기반 인증 및 권한 부여 서비스의 표준화된 방법을 제공하는 프로토콜입니다. 이는 사용자 계정, 그룹 및 기타 리소스와 같은 식별자와 관련된 데이터를 관리하고 교환하는 데 사용됩니다. 이는 특히 기업의 IT 관리자들이 클라우드 기반 서비스에 대한 접근을 간소화하고, 보안을 유지하며, 사용자 데이터를 효율적으로 관리하는 데 사용됩니다. SCIM은 IETF(Internet Engineering Task Force)에서 표준으로 지정되어 있으며, 이는 현재 많은 클라우드 서비스 제공업체(예: Google, Microsoft, Salesforce 등)에서 지원됩니다. SCIM의 이점 SCIM은 기업에서 사용자 계정..
Puppeteer를 활용해서 웹사이트 클릭 자동화하기
Puppeteer를 활용해서 웹사이트 클릭 자동화하기
2023.03.03소개 Puppeteer는 Node.js 기반의 headless 브라우저 automation 도구입니다. 이를 사용하면 브라우저에서 수동으로 수행하는 작업을 자동화 할 수 있습니다. 이번 글에서는 Puppeteer를 사용하여 웹사이트에서 클릭 이벤트를 자동화하는 방법에 대해 설명하겠습니다. Puppeteer를 사용한 웹사이트 클릭 자동화 Puppeteer를 사용하여 웹사이트에서 클릭 이벤트를 자동화하려면 다음과 같은 단계를 따라야 합니다. puppeteer를 설치합니다. puppeteer를 사용하여 브라우저를 엽니다. 페이지를 로드합니다. 원하는 요소를 찾습니다. 클릭 이벤트를 트리거합니다. 예를 들어, 구글 검색 페이지에서 "puppeteer"를 검색하고 첫 번째 결과 링크를 클릭하는 코드는 다음과 같습..
CentOS7에서 Docker 데몬 설치 시 무한 대기 현상 (iptable_nat 이슈)
CentOS7에서 Docker 데몬 설치 시 무한 대기 현상 (iptable_nat 이슈)
2022.04.17최근 CentOS7 서버에서 겪었던 Docker 설치 후 무한 대기하는 현상 관련해서 공유하고자 합니다. TL;DR: 결론적으로 이런 경우 iptable_nat 커널 모듈이 서버에 정상적으로 로딩되어있는지 체크하시기 바랍니다. (modprobe를 통해 체크 가능) 이는 OS 레벨의 퍼포먼스 튜닝목적으로 NAT를 disable한 경우일 수 있습니다. 현상 먼저 리눅스 서버에서 CLI를 통해 아래와 같이 Docker 패키지를 설치할 수 있습니다. (repository 방식) # https://docs.docker.com/engine/install/centos/#install-using-the-repository # on root user yum install -y yum-utils yum-config-man..
Fluentd에서 Azure Event Hubs 연동하기
Fluentd에서 Azure Event Hubs 연동하기
2022.02.01파일 데이터를 실시간으로 Azure Event Hub로 전송하기위한 Fluentd 파이프라인 구성 방법 및 주의사항을 다뤄보겠습니다. 사전 지식 본 파이프라인 이해를 위해서 필요한 사전지식을 아래에 정리했으니 기본적인 사항을 숙지하고 구성하시기 바랍니다. 더보기 AEH(Azure Event Hubs)란? Azure Event Hubs는 빅데이터의 실시간 스트리밍 처리를 위한 Azure 클라우드 제품 중 하나입니다. AEH는 Apache Kafka의 Managed service라고 볼 수 있습니다. 실제로 카프카 프로토콜을 지원하여 동일한 방식으로 인터페이스 가능하며 이 외의 다른 연동 방법도 지원합니다. AEH SAS(Shared Access Signature) AEH는 기본적으로 신뢰 가능한 통신을 수..
브라우저에 주소를 입력하면 어떻게 웹사이트 화면이 그려질까?
브라우저에 주소를 입력하면 어떻게 웹사이트 화면이 그려질까?
2022.01.16"브라우저 주소창에 뭔가 입력하면 웹사이트가 나오는데, 어떻게 동작할까요? 그 과정을 아는대로 전부 설명해주세요" 입사 면접에서 이런 질문을 받았던 적이 있습니다. 정말 대답하기 막막한 질문이라는 생각이 스치는 찰나에, 그래도 잘 대답해야겠다는 생각에 어떻게든 아는 것을 설명했습니다. 나름 막힘 없이 설명했지만 중간에 끊고 면접관이 재차 물어본 질문에 당황하여 대답을 정확하게 하지 못했습니다. 그 질문의 정답은 3-Way Handshake였는데, 왜 이게 생각이 안났지 싶으면서도 면접에서 떨어진 이후로 계속해서 기억에 남는 질문입니다. 그리고 이걸 다시 블로그에 정리해야겠다는 생각이 들었습니다. 정리하는 하는 이유는 숙제처럼 생각했던 문제 복기를 지금이라도 해보고, 이후에도 면접자 혹은 면접관으로서 이와..
Databricks Terraform 실행 시 MALFORMED_REQUEST, IAM Role 에러 현상 및 해결 방법
Databricks Terraform 실행 시 MALFORMED_REQUEST, IAM Role 에러 현상 및 해결 방법
2022.01.15버전 Terraform Databricks Provider: 0.4.3 Terraform AWS Provider: 3.38 현상 Terraform으로 Databricks 환경을 구성할 때 아래와 같은 에러가 발생합니다. Error: MALFORMED_REQUEST: Failed credentials validation checks: Spot Cancellation, Create Placement Group, Delete Tags, Describe Availability Zones, Describe instances, Describe Instance Status, Describe Placement Group, Describe Route Tables, Describe Security Groups, Descr..
Medallion 아키텍처란?
Medallion 아키텍처란?
2021.12.12Medallion 아키텍처란 Databricks에서 제시하는 데이터 파이프라인 모델로 Delta Lake와 함께 CDC(Change Data Capture) 방식의 데이터 웨어하우스 구성 방법을 제시합니다. CDF(Change Data Feed) 기능을 사용하면 더욱 쉽게 구현 가능합니다. 변경 데이터 캡쳐 (Change Data Capture) Medallion 아키텍처를 살펴보기 전에 CDC라는 개념을 살펴봐야 합니다. CDC는 어떤 데이터소스의 데이터가 변경 되었을 때, 이를 감지하고 이에 필요한 후속 조치를 할 수 있게 자동화하는 방식의 설계 혹은 메커니즘을 이야기 합니다. CDC 매커니즘이 적용된 데이터 파이프라인에서는 원천 데이터 소스의 변경을 타겟에 반영하는 것이 매우 자연스럽고 자동화된 방..
크롬 확장 프로그램 제작 맛보기 - 날아다니는 밈
크롬 확장 프로그램 제작 맛보기 - 날아다니는 밈
2021.11.21이번 글에서는 최근 학습 겸 재미 삼아 만들어본 날아다니는 밈의 제작 과정을 살펴보면서 크롬 확장 프로그램 제작 및 등록 방법을 알아보겠습니다. 본인의 프로그램을 제작하실 때 가이드라인 정도로 봐주시기 바랍니다. (※ 주의 : 저의 앱은 쓸모 있는 용도가 아니라 학습을 목적으로 만든 것입니다!) 날아다니는 밈 날아다니는 밈 재생기입니다. chrome.google.com 시작에 앞서 : 꼭 해봐야만 할까? 크롬 확장 프로그램을 만들어보는 것은 선택 사항입니다. 본인이 판단해서 필요하다고 생각하거나, 그냥 재미삼아 해보고싶으면 따라서 해보면 됩니다. 다만, 다음과 같은 사람에게는 도움이 될 거라고 생각합니다. 웹 개발 언어(HTML, CSS, Javascript)를 공부하고싶은 사람 자기만의 프로덕트를 간단..
하이라이트 링크 복사 원리를 파해쳐보자 : Text Fragment
하이라이트 링크 복사 원리를 파해쳐보자 : Text Fragment
2021.11.19본문에서는 크롬 브라우저의 하이라이트 링크 복사 기능을 사용해보고, 어떻게 동작하는지 URL 구조를 분석해보겠습니다. 하이라이트 링크 복사(Copy To Link)가 뭔가요? 하이라이트 링크 복사는 최신 크롬 브라우저(95+ 버전부터 기본 지원)에서 추가된 기능으로, 웹페이지 본문 내에 존재하는 텍스트로 바로 이동 가능하도록 링크를 복사하는 기능입니다. 복사된 링크는 상당히 긴 URL로 생성되며, 이를 공유할 수도 있고 링크로 만들 수도 있기 때문에 유용하게 쓰일 수 있습니다. 저는 해당 기능이 어떻게 동작하는지 궁금해졌고, 링크에 비밀이 숨어있을 거라는 생각이 들어 조금 더 자세하게 파악해보기로 했습니다. URL 구조 살펴보기 먼저 하이라이트 링크 복사를 해보겠습니다. 위처럼 텍스트 블록을 우클릭해서 ..
connect-redis 코드 분석 및 'toString' of null 에러 해결 방법
connect-redis 코드 분석 및 'toString' of null 에러 해결 방법
2021.10.09TLDR: 세션 정보를 저장하는 레디스에는 다른 데이터가 섞여있지 않아야 합니다. connect-redis는 Express 앱에서 Redis 스토리지를 통해 세션을 효과적으로 관리해주는 미들웨어입니다. 본 글에서는 제가 해당 모듈을 사용하면서 겪었던 TypeError: Cannot read property 'toString' of null 에러 현상과 함께 이를 해결하는 방법을 알아보고자 합니다. 아래는 당시 모듈 버전 정보입니다. express-session: 1.14.2 connect-redis: 3.1.0 redis: 2.6.3 현상 세션 정보와 몇 가지 추가적인 데이터가 섞여서 레디스에 저장되어있다고 가정하겠습니다. 이때, 존재하는 모든 세션 정보를 읽어오기 위해서는 req.sessionStore..
스스로에게 과제 부여하기 (1일 1서비스 챌린지에 느낀 점)
스스로에게 과제 부여하기 (1일 1서비스 챌린지에 느낀 점)
2021.10.04얼마 전 페이스북 커뮤니티 생활코딩에서 천재 해커로 유명한 이두희님의 글이 인상깊었습니다. 해당 글은 일주일동안 1일 1서비스 런칭하기 챌린지에 관한 글이었습니다. 실제로 이두희님은 하루에 1개씩 글을 올려 사람들에게 인증을 했고, 매일 올라왔던 서비스들은 간단하지만 재밌는 아이디어를 구현한 프로젝트들이었습니다. (ex. 사진으로 몇 살처럼 보이는지 알려주기, 몇 등신인지 알려주기, 긴 문장 세 줄 요약하기 등) 아마 토이프로젝트를 진행해본 개발자라면 아실 것입니다. 아무리 작은 아이디어라도 이를 기획하여 코드로 구현하고 서비스화 하는 일은 결코 쉽지 않다는 것을요. 더욱이 하루라는 짧은 시간 안에 이를 수행한다는 것은 생각보다 어렵습니다. 프로덕트를 런칭하는 과정에는 예측하기 어려운 요소들이 많은데, ..