no image
[MySQL] Trigger 생성과 Metadata Lock 문제
문제 상황Trigger 생성 과정에서 오랜 시간동안 쿼리가 실행이 되지 않더니, 이내 갑자기 DB가 멈추는 상황이 발생했다. 디버깅을 위해서 DB 재시작 후, 동일한 문제 상황을 재현했다. 문제가 되는 쿼리를 다시 실행한 결과, DB에 연결된 thread의 수가 지속적으로 상승하고 있음을 확인할 수 있었다.SHOW STATUS LIKE 'Threads_connected'; 이후 스레드 정보를 정확하게 확인하기 위해서 아래 명령어를 입력해보니, 다음과 같은 에러 상황이 발생하고 있었다. SHOW PROCESSLIST;IdUserHostdbCommandTimeStateInfo25800rootlocalhost:51282mydbSleep630Waiting for table metadata lockselect i..
2024.12.07
no image
MacOS + Poetry 환경에서 Prophet 실행하기
해결 방법Poetry를 사용해서 Prophet 패키지 다운로드poetry add prophetProphet의 stan model 바이너리 폴더로 이동cd .venv/lib/python3.9/site_packages/prophet/stan_model런타임 라이브러리 경로를 추가하여 MacOS 환경에서도 동작할 수 있도록 수정install_name_tool -add_rpath @executable_path/cmdstan-2.31.0/stan/lib/stan_math/lib/tbb prophet_model.bin참고 [Python] Error when running fit(): Library not loaded: '@rpath/libtbb.dylib' · Issue #2250 · facebook/prophet..
2024.12.01
no image
[Python] 프로그래머스 최댓값과 최솟값 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 나의 풀이def solution(s): numbers = list(map(int ,s.split(' '))) answer = f"{min(numbers)} {max(numbers)}" return answer
2024.08.18
no image
[Python] 프로그래머스 최솟값 만들기 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   나의 풀이두 배열을 곱해서 최소가 되려면, 각 배열의 최댓값과 최솟값이 곱해지면 된다.def solution(A,B): A.sort() B.sort(reverse = True) cum_sum = 0 for a, b in zip(A, B): cum_sum += a * b return cum_sum
2024.08.18
no image
[Python] 프로그래머스 피보나치 수 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 나의 풀이재귀 함수는 실행 횟수 제한이 있기 때문에, 런타임 에러 또는 시간 초과가 발생할 수 있으니 주의하자.  def solution(n): fibo_nums = [0] * (10**5 + 1) fibo_nums[1] = 1 for i in range(2, 10**5 + 1): fibo_nums[i] = fibo_nums[i - 1] + fibo_nums[i - 2] return fibo_nums[n] % 1234567
2024.08.18
no image
[Python] 프로그래머스 짝지어 제거하기 풀이
문제 확인 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  나의 풀이이전-현재 데이터가 동일한지 확인하기 위해서 stack을 활용했다.  def solution(s): stack = [] for char in s: # 제거할 수 있는 경우 if stack and stack[-1] == char: stack.pop() continue stack.append(char) return 1 if not stack else 0
2024.08.18
no image
[Python] 백준 11403번 경로 찾기 풀이
문제 확인하기 11403번: 경로 찾기가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.www.acmicpc.net 나의 풀이입력된 그래프를 바탕으로 노드-엣지 사이 연결 관계를 구성했다. 연결 관계를 Queue에 넣어 순차적으로 조회하여, 최종 도달 여부를 확인했다. 다시 돌아오는 경로도 확인해야 하기 때문에, 최초 시작 지점을 visited에 포함하진 않았다.from collections import dequeimport sysdef bfs(node_edge, start, visited): queue = deque([start]) # 큐가 빌 때까지 반복 while queue..
2024.08.18
no image
[Python] 백준 3184번 양 풀이
나의 풀이마당을 탐색하면서 양, 늑대의 개수를 파악해야 한다. 탐색할 때 연결된 곳을 한번에 방문해야하기 때문에 BFS를 사용했다.방문 중 만나는 양, 늑대의 수를 따로 변수에 저장해서 관리했다!from collections import dequeimport sys# BFS 및 방문 처리# 늑대 vs 양 개수 파악def bfs(graph, start, visited): # 방문할 곳 등록 queue = deque([start]) x, y = start visited[x][y] = True # 늑대, 양 개수 확인 wolf = 1 if graph[x][y] == "v" else 0 sheep = 1 if graph[x][y] == "o" else 0 dx = [..
2024.08.18
no image
[MySQL] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 풀이
문제 확인 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 나의 풀이방법 1SELECT category, MAX(price) AS 'max_price', product_nameFROM food_productGROUP BY categoryHAVING category IN ('과자', '국', '김치', '식용유')ORDER BY 'MAX_PRICE' DESC; 방법2SELECT category, price AS 'max_price', product_nameFROM food_productWHERE (category, price) IN (SELECT category, MAX(pri..
2024.04.23
no image
[QWIKLABS] GKE 사용해보기
Kubernetes? 컨테이너 클러스터(대규모)에서의 어플리케이션을 손쉽게 배포, 관리할 수 있도록 도와줌 GKE(Google Kubernetes Engine) 구글의 인프라를 활용해 추가 기능 제공 Load balancing : 인스턴스 그룹에 대한 부하 분산 및 자동 확장 기능 제공하여 다음과 같은 이점 제공 앱 확장 높은 트래픽 지원 비정상적인 VM 인스턴스 자동으로 삭제/추가 트래픽을 가장 가까운 가장 머신으로 라우팅 Node pools : 클러스터 내 구성이 모두 동일한 노드 그룹으로 노드 풀 마다 독립적으로 작업 가능 Automatic scaling : 클러스터의 노드 풀 크기를 수요에 따라 자동으로 조절하여 가용성을 높이고 비용을 통제 가능 Automatic upgrades : 클러스터가 업..
2024.03.04
no image
[머신러닝 시스템 설계 정리] Chapter2 : 머신러닝 시스템 설계 소개
머신러닝 시스템 설계 : MLOps MLOps 구성 요소 비즈니스 요구 사항 구현 데이터 스택 관리 인프라 구축 배포 및 모니터링 MLOps 구축 과정 ‘목적’, ‘요구사항’, ‘프로세스’를 설계하고 구축해야 함 ‘왜 필요한 지’ → ‘신뢰성, 확장성, 유지보수성, 적응성을 만족하는 지’ 개선 작업이 반복적으로 발생함 풀고자 하는 문제를 ML로 해결 가능한 형태로 구조화해야 함 동일한 문제더라도 구조화 방식에 따라 난이도는 천차만별 2.1 비즈니스와 머신러닝의 목적 ML 프로젝트 목적 고민 필요 ML 지표 vs 비즈니스 지표 연구가 아니라면 비즈니스 지표를 ML 프로젝트로 끌어올릴 방법을 찾아야 함 비즈니스의 핵심은 이익 극대화 → ML 프로젝트로 어떤 ‘성과 지표’에 영향을 줄 수 있는지 설명할 수 있..
2024.02.26
[머신러닝 시스템 설계 정리] Chapter1 : 머신러닝 시스템 개요
ML 프로젝트 구성 개요 비즈니스 요구 사항 구현 사용자/개발자 상호 작용 고려 데이터 및 모델 관리 인프라(모니터링 및 업데이트) 구성 ML 알고리즘 구성 1.1 머신러닝을 사용해야 하는 경우 💡 머신러닝 : 기존 데이터로부터 복잡한 패턴을 학습하고 이를 통해 본 적 없는 데이터에 대해 예측을 수행하는 접근법 1. 시스템이 학습에 적합한 경우 학습할 대상인 데이터가 있고 이를 통해 문제를 해결할 수 있어야 함 숙소 임대료 예측? → 넓이, 방, 개수, 지역, 편의 시설, 평점 등이 있는 Airbnb에서 가능 2. 학습할 복잡한 패턴이 존재하는 경우 무작위가 아닌 패턴이 존재 해야 함 너무 단순한 문제가 아니여야 함 최종적으로 시스템 스스로 복잡한 패턴 학습 → 소프트웨어 2.0 3. 사용 가능한 데이터..
2024.02.19