전체 글
-
[Kubernetes] 쿠버네티스 컴포넌트공부/쿠버네티스&헬름 2023. 3. 1. 23:38
쿠버네티스 컴포넌트 쿠버네티스를 배포하면 클러스터가 생깁니다. 클러스터는 컨테이너화된 애플리케이션을 실행하는 워커 노드의 집합입니다. 워커 노드는 애플리케이션의 구성요소인 파드를 호스트하며, 컨트롤 플레인은 워커 노드와 클러스터 내 파드를 관리합니다. 프로덕션 환경에서는 일반적으로 컨트롤 플레인은 여러 컴퓨터에 걸쳐 실행되며, 클러스터는 여러 노드를 실행하여 내결함성과 고가용성을 제공합니다. 쿠버네티스 클러스터를 구성하는 다양한 컴포넌트 컨트롤 플레인 컴포넌트 💡 컨테이너의 라이프사이클을 정의, 배포, 관리하기 위한 API와 인터페이스들을 노출하는 컨테이너 오케스트레이션 레이어. 컨트롤 플레인 컴포넌트는 클러스터의 스케줄링과 같은 결정을 내리며, 클러스터 이벤트를 감지하고 반응합니다. 예를 들어, 디플로..
-
[Kubernetes] 쿠버네티스란공부/쿠버네티스&헬름 2023. 3. 1. 22:50
쿠버네티스란 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼입니다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해줍니다. 쿠버네티스는 k8s라고도 표기합니다. k와 s 사이에 있는 8글자를 나타내는 약식 표기 쿠버네티스가 왜 유용한가 쿠버네티스의 유용함은 배포가 어떻게 변경되었는지를 설명을 하면 쉽게 와닿습니다. 배포 역사 전통적인 배포 초기 조직은 애플리케이션을 물리 서버에서 실행했습니다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생했습니다. 예를 들어 물리 서버 하나에서 여러 애플리케이션을 실행하면 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있어서 다른 애플리케이션의 성..
-
[Linux] .bashrc, .bash_profile, .profile 차이서버 2023. 2. 19. 15:44
alias를 사용자가 정의하고 매번 등록하지 않고 사용하도록 할 때 .bashrc나 .bash_profile에 등록하라고 하는데 이 두 파일의 차이에 대해서 애매해서 정리를 진행합니다. .bashrc VS .bash_profile VS .profile .bashrc는 non-login shell일 때, 수행되고 .bash_profile, .profile은 login shell에서 수행됩니다. .profile은 bash가 아니더라도 로그인 시, 로드가 됩니다. .profile은 보통 PATH와 같이 bash와 관련없은 것들을 저장합니다. 맥에서는 모든 터미널을 login shell로 실행하므로 .bash_profile이 로드됩니다. non-login shell 로그인 없이 실행하는 shell을 의미합니다...
-
[Python] pandas 누락된 데이터 처리 (NA, NaN, None)언어/파이썬 & 장고 2022. 8. 22. 01:31
용어 NA: Not Available의 약자로 누락된 데이터 = 결측값을 의미. 여기에는 NaN, None이 모두 포함된 개념 NaN: Not a Number의 약자로 숫자 형태의 누락된 데이터 = 결측값을 표현 None: 파이썬에서 누락된 데이터 = 결측값을 표현 inf: infinite의 약자로 무한대를 의미. https://brownbears.tistory.com/549 에서 설명되어 있음 null: NA와 동일하게 누락된 데이터를 의미. pandas에서는 해당 개념이 isnull(), notnull() 같은 함수 형태로만 나옴 누락된 데이터 처리 방식의 트레이드오프 표나 DataFrame의 누락된 데이터 존재를 나타내기 위해 여러가지 방식이 개발됐는데 일반적으로 누락된 값을 전체적으로 가리키는 마..
-
[Python] pandas 슬라이싱과 인덱싱언어/파이썬 & 장고 2022. 8. 22. 00:24
import pandas as pd data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) # 명시적인 인덱스로 슬라이싱 print(data['a':'c']) # a 0.25 # b 0.50 # c 0.75 # dtype: float64 # 암묵적 정수 인덱스로 슬라이싱 print(data[0:2]) # a 0.25 # b 0.50 # dtype: float64 pandas에서 슬라이싱이 많이 혼동을 일으킬 수 있습니다. 명시적인 정수 인덱스를 가지고 있다면 data[1]과 같은 인덱싱 연산은 명시적인 인덱스를 사용하겠지만, data[1:3] 같은 슬라이싱 연산은 파이썬 스타일의 암묵적 인덱스를 사용할 것입니다. import pandas..
-
[Python] pandas란 (series, dataframe, index 설명)언어/파이썬 & 장고 2022. 8. 21. 03:33
pandas는 numpy를 기반으로 만들어진 새로운 패키지로 DataFrame이라는 효율적인 자료구조를 제공합니다. DataFrame은 행과 열 레이블이 부착된 다차원 배열로 여러가지 타입의 데이터를 가질 수 있고 데이터 누락도 허용하고 있습니다. pandas는 편리한 스토리지 인터페이스와 데이터베이스 프레임워크, 스프레드시트 프로그램 사용자에게 익숙한 데이터 연산을 구현합니다. 데이터에 레이블을 붙이거나 누락딘 데이터로 작업하는 것과 같이 유연성이 필요한 작업과 요소 단위의 브로드캐스팅에 잘 매핑되지 않은 연산(그룹화, 피벗 등)을 하고자 하는 경우에는 numpy의 ndarray에서는 한계가 있습니다. pandas는 Series와 DataFrame 객체는 numpy 배열 구조를 기반으로 데이터 먼징(데..
-
[Python] numpy의 구조화된 배열언어/파이썬 & 장고 2022. 8. 15. 21:15
여러 사람에 대한 다양한 데이터(이름, 몸무게, 나이 등등)이 있고 이러한 데이터를 저장하는 방법은 다음처럼 각각의 배열로 저장할 수 있습니다. name = ['kim', 'lee', 'park'] age = [20, 30, 35] weight = [55.5, 70.0, 65.7] 3개의 리스트의 연관성이 없어서 단일 구조의 데이터로 저장한다면 더 자연스럽게 사용할 수 있습니다. 일반적으로는 dictionary 타입으로 생성해 사용하지만 좀 더 효율적인 사용법이나 연산을 위해 numpy로 생성해 보도록 합니다. name = ['kim', 'lee', 'park'] age = [20, 30, 35] weight = [55.5, 70.0, 65.7] import numpy as np data = np.zer..
-
[Python] python sort vs numpy sort언어/파이썬 & 장고 2022. 8. 15. 20:44
파이썬에서 리스트를 정렬하는 방법은 크게 내장 함수인 sort를 사용하는 것과 numpy 모듈의 sort를 사용해 진행할 수 있습니다. 방법은 다르지만 결과는 동일하게 정렬된 리스트를 받을 수 있는데 여기서 각 sort 함수의 이점을 설명해 봅니다. 일반적으로는 numpy의 sort 함수가 내장 sort 함수보다 효율적으로 동작합니다. numpy의 sort는 기본적으로 quick sort 알고리즘을 사용하지만 merge sort와 heap sort도 사용할 수 있습니다. 그렇다면 다음과 같은 조건으로 실제 테스트를 진행하여 속도 차이가 나는지 확인해보도록 합니다. import timeit import random import numpy as np TEST_SIZE = 1000000 array_ = [ra..
-
[Python] numpy 범용함수 (universal functions, ufunc)언어/파이썬 & 장고 2022. 8. 14. 22:19
numpy 배열의 연산은 빠르거나 느릴 수 있는데 연산을 빠르게 만드는 핵심은 벡터화(vectorized) 연산을 사용하는 것인데, 일반적으로 numby의 유니버설 함수 (universal functions, ufunc)를 통해 구현됩니다. 파이썬 루프는 느리다 파이썬은 타입이 유연하므로 수많은 작은 연산이 반복되는 상황에서 느립니다. 배열을 반복해서 각 요소를 조작하는 것을 예로 들면 느린 것을 볼 수 있습니다. import numpy as np # 난수 번호 고정 np.random.seed(0) def test(values): size = len(values) output = np.empty(size) for i, value in enumerate(values): output[i] = 1.0 / va..
-
[Python] list, array, numpy array 비교언어/파이썬 & 장고 2022. 8. 14. 21:42
파이썬에서 데이터를 담는 컨테이너 타입 중, list의 경우엔 선언을 크게 위 3가지로 나눌 수 있습니다. 각각의 형태와 장단점을 설명해 봅니다. list 기본적으로 사용할 수 있는 리스트는 동적 타이핑 덕분에 서로 다른 데이터 타입의 요소를 담을 수 있습니다. _list = [True, 3, "3", 3.3] [type(i) for i in _list] # [bool, int, str, float] 이러한 유연성에는 비용이 따르는데 리스트의 각 항목에 타입 정보와 참조 횟수, 기타 정보가 들어가야 합니다. 즉, 각 항목이 완전한 파이썬 객체인 것입니다. 모든 변수가 같은 타입인 경우 이 정보가 대부분 불필요하게 중복되므로 고정 타입 배열에 데이터를 저장하는 것이 더 효율적일 수 있습니다. array 데..