728x90

전체 글 164

Kubenetes 정리#2(k8s)

- 앞에서 도커에 대한 간략한 정리를 했으니 쿠버네티스가 무엇인지 알아보자. 쿠버네티스(kubenetes, k8s)는 컨테이너화된 앱의 작업을 자동화하는 컨테이너 오케스트레이션 오픈소스 플랫폼이다. 컨테이너화된 애플리케이션을 배포하고 확장하는 데 수동 프로세스가 필요하지 않다. 즉, Linux 컨테이너를 실행하는 호스트 그룹을 함께 클러스터링할 수 있으며 쿠버네티스를 통해 이러한 클러스터를 쉽고 효율적으로 관리할 수 있다. 클러스터는 퍼블릭 클라우드, 프라이빗 클라우드 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있다. 이러한 이유로 쿠버네티스는 Apache Kafka를 통한 실시간 데이터 스트리밍과 같이 신속한 확장을 요하는 클라우드 네이티브 애플리케이션을 호스팅하는 데 이상적인 플랫폼이다. -..

Kubenetes 2022.09.29

프로그래머스 Level2 문제 모음[Python]

- https://school.programmers.co.kr/learn/courses/30/lessons/60058 - 키워드 : stack - 레벨 : 2 from collections import Counter def is_correct(u): # 올바른 괄호 문자열 판단 stack = [] for i in u: if i == "(": stack.append(i) else: if not stack: return False x = stack.pop() return True def solution(p): # 빈 문자열인 경우 if not p: return "" # 이미 올바른 괄호 문자열일 경우 if is_correct(p): return p u = "" v = "" # 2. 균형잡힌 괄호 문자열 u,..

Python 2022.09.29

Python 알고리즘 라이브러리 모음

- 아스키코드, ascii ord("a") => 문자열 a를 아스키코드로 chr(65) => 아스키코드 65를 문자열 A로 - 힙, heap import heapq # 최소 힙 생성, push heap_list = [] heapq.heappush(heap_list, 4) heapq.heappush(heap_list, 1) heapq.heappush(heap_list, 7) # pop heapq.heappop(heap_list) # pop하지 않고 최솟값 얻기 print(heap_list[0]) # 기존 리스트를 힙으로 변환 a_list = [4, 1, 7, 3, 8, 5] heapq.heapify(a_list) - 정렬, sort https://docs.python.org/ko/3/howto/sortin..

Python 2022.09.29

Kubenetes 정리#1(docker)

- 쿠버네티스에 대해 정리하기 앞서 도커의 개념부터 정리해 보도록 하자. - 도커는 가상화 기술을 기반으로 만들어 졌다. 기존의 가상화는 하이퍼바이저가 논리적으로 분할된 공간에서 VM이라는 독립된 가상환경을 만들고 VM에 깔린 OS를 구동 및 모니터링하는 역할을 한다. 즉, VM은 다른 가상환경에 영향을 미치지 않는다는 장점이 있다. - 그렇다면 도커와 VM의 차이는 무엇일까? 간단히 말하자면 Guest OS의 유무라고 할 수 있다. 아래 그림을 보면 알 수 듯이 VM에는 Guest OS가 깔린다. 하지만 도커는 컨테이너를 기반으로 작동한다. 이는 곧 자원의 효율성과 직결된다. VM은 새로 생성할 때 마다 OS를 위한 자원을 할당해 주어야 하지만 도커는 app을 위한 패키지만 있으면 컨테이너를 구동시킬 ..

Docker 2022.09.29

Kubernetes ETL With EFK (포트 포워딩 및 배포)#2

1. git clone https://github.com/parksubo/ekf-with-flask 2. 현재 minikube에 elastic namespace가 없어서 아래 명령어를 실행할 수 없음, kubectl create namespace elastic로 namespace 생성 후 // resource create kubectl apply -f ./elasticsearch.yaml kubectl apply -f ./kibana.yaml kubectl apply -f ./fluentd.yaml 로 배포한다. 3. kubectl get svc -n elastic 로 elastic 레이블이 부착된 모든 서비스가 잘 돌아가는지 확인한다. 4. 포트포워딩 kubectl port-forward svc/fla..

Data Engineering 2022.09.08

Kubernetes ETL With EFK(개발 환경 설정)#1

1. vscode에서 kubernetes extension 설치 2. 설치하면 dependencies 없다고 나오는데 전부 설치 3. https://minikube.sigs.k8s.io/docs/start/ https://blog.naver.com/PostView.nhn?blogId=isc0304&logNo=221879359568 위 링크 참고해서 minukube 설치 (사전에 docker 설치 및 실행 잊지 말기 //ubuntu : sudo apt install docker.io -y // 여기서는 docker desktop 사용) 3. minikube가 설치되어 있다면 아래와 같이 cluster에 뜸 - 만약 안뜬다면 ~./user/.kube에 config 파일을 확인해 볼 것 필자는 vscode에서..

Data Engineering 2022.09.08

프로그래머스 문제 모음(Level2~4)[SQL]

- 서울에 위치한 식당목록 - Level : 4 - https://school.programmers.co.kr/learn/courses/30/lessons/131118 SELECT a.rest_id, a.rest_name, a.food_type, a.favorites, a.address, ROUND(AVG(b.review_score), 2) AS score FROM rest_info AS a INNER JOIN rest_review AS b ON a.rest_id = b.rest_id WHERE a.address LIKE "서울%" GROUP BY a.rest_id ORDER BY score DESC, a.favorites DESC - 보호소에서 중성화한 동물 - Level : 4 - https://sc..

SQL 2022.09.01

Firebase를 사용한 트위터 클론 코딩#17(Clean Code)

- 이번에는 지금까지 작성했던 자바스크립트, 리액트 코드를 정리하고, 스타일을 만들 것이다. - 태그에서 수행하는 기능은 컴포넌트를 따로 만들어 관리하는 것이 보기 좋다. 우선 Home.js의 form을 따로 관리할 TweetFactory.js를 컴포넌트 폴더에 생성했다. - 아래와 같이 Home의 코드를 옮겨 주고 // TweetFactory.js import React, {useState} from "react"; import { dbService, storageService } from "myFirebase"; import { v4 as uuidv4 } from "uuid"; import { uploadString, getDownloadURL, ref } from '@firebase/storage'..

Firebase 2022.08.28

Firebase를 사용한 트위터 클론 코딩#16(Update Profile)

- 이제 프로필에 My Profile이라고 보여지는 대신에 유저의 이름이 보이도록 변경할 것이다. - 우선 router에서 navigation에 userObj를 보내고 naviagation에서 이를 받아 이메일을 출력하도록 하자 - 아래와 같이 프로필 이름을 바꾸었다. 현재는 displayName이 null이기 때문에 's Profile와 같이 뜨지만 곧 이름을 설정할 수 있도록 할 것이다. // profile.js import { authService, dbService } from "myFirebase"; import { collection, getDocs, orderBy, query, where } from "firebase/firestore"; import React, { useEffect, us..

Firebase 2022.08.25