분류 전체보기 1187

[Istio] 다운로드 및 설치

개요 2024.02.29 - [Service Mesh] Istio 란에서 Istio에 대한 개념 정도만 간단히 살펴보았는데, 이번 글에서는 공식 문서를 참조하여 Istio를 설치해보려고 한다. https://istio.io/latest/docs/setup/getting-started/ 페이지를 참조해 Istio 릴리즈를 직접 다운로드하여 진행해 본다. 테스트는 Killercoda에서 수행했고, Kubernetes 1.29 버전을 사용했다. Istio 다운로드 Istio 릴리즈를 다운로드한다. curl -L https://istio.io/downloadIstio | sh - 옵션 없이 다운로드를 수행하면 최신 버전을 다운로드한다. 만약 특정 버전을 다운로드하고 싶다면 아래와 같이 버전을 지정할 수 있다. ..

Kubernetes 2024.03.06

[Excel] 파워 쿼리 - 테이블 교차 조인 수행하기

개요 Excel을 이용해 두 개의 표에 대해 교차 조인을 수행하고 싶다. Excel에서 제공하는 파워 쿼리 기능을 사용해 두 테이블을 합쳐보자. 표 만들기 데이터 범위를 선택하고 키보드로 ctrl + t를 입력해 표로 만든다. 확인 버튼을 클릭하면 아래와 같이 표로 변환된다. 다른 테이블도 동일하게 표로 생성한다. Query 생성 표를 Power Query에서 다를 수 있도록 쿼리를 생성한다. 생성한 표를 선택한 상태에서 상단 메뉴의 데이터 > 데이터 가져오기 및 변환 > '테이블/범위에서' 버튼을 클릭한다. 쿼리를 구분할 수 있도록 적당한 이름을 지정하고 상단 메뉴에서 홈 > 닫기 및 로드 > 닫기 및 다음으로 로드 버튼을 클릭한다. 연결만 만들기를 선택하고 확인 버튼을 클릭한다. 그러면 화면 오른쪽 ..

기타 2024.03.05

[Window 10] 원격 데스크톱 포트 변경

개요 컴퓨터를 세팅할 때 원격 데스크톱 기능을 사용하되 기본 포트가 아닌 다른 포트로 사용하고자 한다. 항상 검색하면서 설정하기 때문에 방법을 적어둔다. 레지스트리 편집 원격 접속을 위한 포트 관련 설정을 수정한다. 1. 레지스트리 편집기 실행 시작 메뉴로 검색하거나 실행창에서 regedit으로 실행할 수 있다. 2. 레지스트리 편집 수정할 레지스트리는 다음과 같다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 각 경로의 PortNumber를..

Windows 2024.03.04

[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기

문제 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/250137 어떤 게임에 붕대감기라는 기술이 있다. 붕대감기 기술은 t초 동안 실행되는데 1초마다 x만큼의 체력을 회복한다. 또한 t초 연속으로 붕대를 감으면 y만큼의 체력을 추가로 회복한다. 캐릭터가 붕대감기 기술을 쓰는 도중 몬스터에게 공격당하면 기술이 취소되며 체력을 회복할 수 없다. 기술이 취소되거나 기술이 끝나면 캐릭터는 즉시 붕대감기 기술을 재사용하며 연속 성공 시간이 초기화된다. 게임 캐릭터는 최대 health만큼의 체력을 가질 수 있다. 몬스터의 공격을 받으면 피해량만큼 캐릭터의 체력이 줄어들며, 현재 체력이 0 이하가 되면 죽는다. 붕대감기 기술의 시전 시간, 초당 회복량..

Algorithm 2024.03.01

[Service Mesh] Istio 란

Istio 분산 어플리케이션에 계층화되는 오픈소스 Service Mesh. Service Mesh의 개념은 2024.02.23 - 서비스 메쉬(Service Mesh) 란에서 조금 살펴봤었다. Istio는 서비스 코드 변경을 최소화하면서 로드 밸런싱이나 서비스 간 인증, 그리고 모니터링 방법을 제공한다. 또한 확장성을 고려하여 설계되어 다양한 배포 요구 사항을 처리할 수 있다. 동작 방식 Service Mesh를 구현한 만큼 Istio는 DataPlane과 ControlPlane이 존재한다. DataPlance은 서비스 간 통신으로, 서비스 메쉬가 없으면 네트워크는 트래픽을 이해하지 못한다. 또한 트래픽의 종류나 출발/목적지 기반의 어떤 결정도 수행할 수 없다. Envoy 프록시는 클러스터에서 동작할 서..

Kubernetes 2024.02.29

[Jupyter] Import한 외부 모듈 변경점이 반영되지 않는 경우

현상 Jupyter Notebook에서 다음과 같이 외부 모듈을 Import 하여 사용하고 있다. 예시 ) - test.py # test.py def test_func(): return 10 - Notebook import test test.test_func() 그리고 test 모듈에 test_func_v2라는 새로운 함수를 추가한 뒤, Notebook에서 실행하려고 했다. - test.py 수정 # test.py def test_func(): return 10 def test_func_v2(): return 20 - Notebook 수정 import test test.test_func_v2() 하지만 사진과 같이 test 모듈에 test_func_v2라는 함수가 없다는 에러가 발생했다. 원인을 확인하고..

Python 2024.02.28

[Pandas] NamedAgg - 그룹 연산 시 컬럼 이름 지정

개요 Pandas에서 DataFrame에 대해 groupby로 여러 컬럼에 여러 연산을 적용하면 멀티 인덱스 컬럼 형태의 결과를 반환받을 수 있다. df.groupby('a', dropna=False).agg([list, 'count', 'size']) Pandas 공식 문서 https://pandas.pydata.org/docs/user_guide/advanced.html를 보면 멀티 인덱스 컬럼을 사용한 인덱싱 방법을 상세하게 설명하고 있지만, 아무래도 다소 복잡한 것 같아 그룹 연산한 결과를 단일 인덱스 컬럼 형태로 반환받고 싶다. 방법을 적어둔다. named aggregation Pandas에서 agg 함수를 사용할 때 컬럼에 대한 연산 출력 이름을 제어할 수 있도록 named aggregatio..

[Pandas] 여러 컬럼에 대해 NaN을 포함하는 행 찾기

개요 DataFrame에서 특정 결측값을 포함하는 행을 찾을 때는 isnull, isna 함수 등을 사용하여 아래와 같이 필터링할 수 있다. df[df['a'].isnull()] df[df['a'].isna()] 여러 컬럼에서 결측값을 포함하는 행을 찾을 때는 OR 연산자를 이용할 수 있지만, 확인해야하는 컬럼이 많으면 코드가 지저분해진다. 한 줄로 찾을 수 있는 방법을 적어둔다. any / all 2022.10.08 - [Python] any/all - 여러 요소의 참/거짓 확인에서 확인했던 Python의 all, any 함수를 Pandas에서도 제공하고 있다. Pandas에서 all과 any 함수는 Series 또는 DataFrame 축을 따라 요소가 참인지 거짓인지를 판단한다. any 함수는 값이 ..

서비스 메쉬(Service Mesh) 란

Service Mesh 서비스 메쉬(Service Mesh)란 애플리케이션의 서비스 간 통신을 처리하는 소프트웨어 계층이다. 애플리케이션의 여러 부분이 서로 데이터를 공유하는 방식을 제어하여 애플리케이션 수명주기 전반에 걸쳐 데이터의 일관성을 유지하며 통신할 수 있도록 한다. 컨테이너화된 마이크로서비스로 구성되며, 서비스 간 연결, 트래픽을 관리하고 추적 및 보안성을 강화하기 위해 모니터링, 로깅, 추적, 트래픽 제어와 같은 기능을 제공한다. 기능 트래픽 관리 트래픽 라우팅 규칙을 사용하여 서비스 간 트래픽 흐름과 API 호출을 쉽게 제어할 수 있으며, 더 나은 배포 전략을 가능하게 한다. 타임아웃, 재시도와 같은 서비스 수준 속성의 구성을 단순화할 수 있고, Canary 배포나 퍼센트 기반 트래픽 분할..

Kubernetes 2024.02.23

[Pandas] 데이터를 리스트로 그룹화

개요 데이터프레임에 대한 그룹 분석이 필요한데, 그룹 별 데이터 값 유지가 필요한 상황이다. 그래서 그룹 연산을 하면서 컬럼을 리스트 형태로 변환하려고 한다. 방법을 적어둔다. groupby.agg 2022.12.31 - [Python] Pandas - 피봇테이블과 그룹분석 2에서 살펴봤던 사용자 정의 함수로 그룹 분석을 수행하는 agg 함수를 활용하면 된다. df.groupby('a').agg(list) agg 함수에 list를 넘겨주면 아래와 같이 컬럼 별로 데이터가 리스트 형태로 변환되는 것을 확인할 수 있다. 다만 그룹화하는 기준인 a 컬럼에 결측값이 포함되어 있는데, groupby를 수행하면서 해당 데이터가 누락되는 것을 확인할 수 있다. 이런 경우에는 groupby 함수에 dropna 매개변수..