전체 글
-
Data Catalogue Platform 구축기: 0.구축 계획 수립 (기존 구축 process에서 수정 및 추가)Project/D.D.P (Datahub) 2023. 4. 5. 19:44
처음 구축했던 process에서 초록색 부분을 수정 및 추가해서 구축하기로 계획을 세웠다. 전체 계획 1. Terraform으로 네트워크 및 EKS 클러스터 구축 2. Terraform으로 ArgoCD 설치 및 배포 3. ALB 연결해서 ArgoCD 노출시키기 4. ArgoCD로 Datahub 설치 및 배포 5. ALB 연결해서 Datahub 노출시키기 6. MySQL DB 배포 (Datahub metadata DB) 7. EKS 클러스터에 Datadog 연결하여 모니터링 시스템 구축 8. Glue, S3 소스 주입 9. Metadata 자동 업데이트 기능 구축: 1) Metadata 배치 주입 2) Glue/ S3에 리소스 삭제시 Datahub DB에 sync맞추는 기능 3) Glue job 생성/ 수..
-
[자료구조] 자료구조를 알아야하는 이유와 배열(list), 연결리스트(linked list)CS기초/Algorithm, Data Structures 2023. 4. 1. 00:56
배열 포스팅을 쓰면서 참조, mutable, id까지 쓰려다가 평생 포스팅 못 할 것 같아 일단 간단하게 자료구조에 대한 글 먼저 쓰려고 한다. 자료구조 (Data Structure) 자료구조는 컴퓨터에서 값을 담는 구조이다. 컴퓨터는 자료구조로 값 사이의 논리적 관계를 조직화한다. 예를 들어 값 사이의 계층을 만든다던가, 값의 순서를 인식한다던가 하는 것이다. 이런 논리적 관계의 인식 때문에 각 자료구조는 같은 값을 담아도 컴퓨터 내에서 사용하는 메모리의 용량과, 값을 삽입, 수정, 탐색, 삭제 시 소요하는 시간이 달라진다. 시간과 메모리는 프로그램의 가장 기본적인 비용이며, 이것이 개발자가 자료구조를 알아야하는 이유이자 알고리즘을 배울 때 자료구조가 항상 따라오는 이유이다. 컴퓨터의 기본 자료구조는 ..
-
컴퓨터에서의 뺄셈 구현 - 보수(complement)를 활용한 감산의 가산 처리CS기초/OS,HW 2023. 3. 29. 20:09
컴퓨터에서 곱셈은 덧셈, 뺄셈과 나눗셈은 보수의 덧셈을 활용하여 동작한다. 따라서 컴퓨터는 사칙연산 중 덧셈밖에 하지 못한다. 일단, 곱셈의 경우 덧셈으로 간단하게 구현이 가능한데, 해당 연산을 위한 회로를 따로 설계하는 것은 비효율적이기 때문이다. 나눗셈 역시 피제수(나누어지는 수)에서 제수(나누는 수)를 제수보다 적어질 때까지 계속 뺀 후 뺄셈의 횟수를 세면 되기 때문에 뺄셈을 구현하면 따로 회로를 설계할 필요가 없다. (예 - 7/2 → 2보다 작아질 때까지 7에서 2를 빼서 뺀 횟수를 구함 → 3, 나머지 1) 그렇다면 뺄셈은 왜 보수의 덧셈으로 구현할까? 뺄셈은 정확히 말하면 양수와 음수, 또는 음수끼리의 덧셈이다. 덧셈은 교환법칙이 성립하지만 뺄셈은 성립하지 않으므로, 앞 뒷 값의 절대값 크기..
-
험난하고 험난한 Datahub - EKS Trouble shooting: prerequisites-cp-schema-registry pod CrashLoopBackOff 해결하기 (EBS CSI Controller 설치)Project/D.D.P (Datahub) 2023. 3. 27. 21:20
EKS 구축하는 동안 제일 많이 한 말이 아늬...왜 안되냐고... 인 것 같다. 자꾸 파드가 죽고, 그러다 갑자기 지 혼자 살아나고, 그러다 다시 죽어있고..... 아니.. HA때문에 EKS 쓴다면서요.. 내 클러스터는 가용성 왜 이런데.. 문제 상황 prerequisites-cp-schema-registry-xxx 파드: CrashLoopBackOff elasticsearch-master, prerequisites-kafka, prerequisites-mysql, prerequisites-zookeeper 파드: Pending 문제 원인 파악 0. 진정하기 (이제 crashloopbackoff만 봐도 화남) 1. 파드에 문제가 생기면 일단 describe 확인 -> log 확인으로 문제 원인을 알 수..
-
Einstein's riddle - Who owns the goldfish? : How I solved (아인슈타인의 "금붕어를 키우는 사람은 누구인가" 문제)카테고리 없음 2023. 2. 11. 01:30
불금을 맞이하여 알고리즘이 아닌 문제를 한번 풀어보았다. 답은 생각보다 빨리 찾았는데 문제랑 상관없는 다른 질문이 생겼고, 같은 질문을 하는 글들이 있어 기록을 해본다. (아.. 한국어로 같이 적다가 너무 힘들어서 포기함) * Following question and conditions are translated back in English from Korean so some words or nuance can be different from the original text. I recommend to look for the original English version. (아래의 문제는 영어 원문을 한국어로 전달받은 것을 다시 영어로 번역한 것이므로 원문의 뉘앙스와 다른 것이 있을 수 있으니, 원문을 찾..
-
우분투에 Curl 최신 버전 설치하기 (http 400, 500에러 실패 처리하기 (--fail 옵션), curl: option --retry-all-errors: is unknown 에러 해결)Tips 2023. 1. 30. 16:24
http 400/500 응답시 cUrl 요청 실패처리하기 cUrl은 http, https, ftp 등의 프로토콜을 통해 url로 데이터를 전송하는 명령줄 도구이다. 서버가 응답을 하면 성공으로 인식을 하는데, http/https서버의 경우 400번대, 500번대 응답 코드를 받아도 응답한 것으로 간주하여 CICD 파이프라인에서 cUrl로 서버 응답 확인을 할 때 서버는 띄워졌으나 특정 엔드포인트가 응답하지 않을 경우에도 exitcode를 0으로 리턴하는(성공)으로 인식하는 문제가 있었다. 이 때, 두 가지 방법으로 처리할 수 있는데, 첫번째 방법은 -w 옵션을 사용하여 http상태코드를 출력값으로 받는 것이다. 해당 출력값을 변수로 받아 if문으로 200이 아닌 경우 파이프라인을 실패하도록 처리할 수 있..
-
apt vs apt-get vs apt-cache차이, remove vs purge vs auto-remove 차이Tips 2023. 1. 30. 11:56
apt란? 나는 VM 운영체제로 주로 우분투를 사용하는데, ubuntu에서는 패키지를 관리할 때 apt를 사용한다. apt는 advanced package tool의 줄임말로, 데비안 계열의 운영체제들의 패키징 시스템 관리 도구다. CICD파이프라인을 짜다보면 패키지 업데이트나 삭제를 해야할 일들이 많은데, 이 때 사용되는 명령어들의 차이가 궁금해져 한 번에 정리해보려고 한다. 1. apt vs apt-get vs apt-cache apt-get은 패키지를 설치, 업데이트, 제거하는데 사용하며, apt-cache는 새 패키지를 검색하는데 사용한다. 이 외에도 dpkg라고 시스템에 이미 설치되어있는 패키지를 조회하는 명령어가 있는데, 이 세 개에서 각각 자주 사용되는 명령어들을 합쳐서 최종 사용자들이 한 ..
-
Comparing AWS messaging service - SNS vs SQS (AWS SNS vs SQS 비교, Slack 메세지 보내기 적합한 파이프라인 선택하기)Data Engineering/AWS, Spark 2023. 1. 18. 15:28
AWS SNS, SQS is the famous services which help to send event messages. Here, I will look through those two services and find which one is best for my pipeline. I'm writing this post for the pipeline that sending a Slack notification from AWS Elastic Beanstalk and S3 through Lambda function. Therefore, please be aware all comparision, listing, describing something in this post will focus on this ..