개발 일지(7)
-
Minikube (k8s 1.28.2) + Kubeflow 1.8 설치하기
[1단계] Minikube 로 K8S 세팅하기이번 글에서는 Minikube로 Kubernetes 버전 1.28.2버전을 설치하고, 현재 기준 최신 버전인 kubeflow 1.8을 설치할 거에요먼저 k3s, kubespray, kubeadm등 다양한 방식으로 설치해볼 수 있지만,Kubeflow를 설치하고 파이프라인을 작성해보는 것이 목적이라면 Minikube로도 충분합니다. sudo minikube start --driver=none \\ --kubernetes-version=v1.28.2 \\ --extra-config=apiserver.service-account-signing-key-file=/var/lib/minikube/certs/sa.key \\ --extra-config=apiserver..
2024.07.09 -
Ubuntu에서 nvidia-smi 실행시 Failed to initialize NVML: Driver/library version mismatch 오류 해결하기
Pytorch를 사용할 때, torch.cuda.is_available()가 False 가 나오면, GPU 연결에 문제가 생겼을 가능성이 높다. import torch import torch.nn.functional as F if torch.cuda.is_available(): device = 'cuda' else: device = 'cpu' 터미널에 nvidia-smi 를 쳐서 확인해보자. $ nvidia-smi Failed to initialize NVML: Driver/library version mismatch 확인해보니, Failed to initialize NVML: Driver/library version mismatch 오류가 발생했다. 재부팅하는 방법도 있지만, 재부팅을 하지 않고서 해결..
2023.07.30 -
setTimeout(callback, 0)은 무엇을 의미할까?
1. setTimeout 함수 자바스크립트는 비동기 프로그래밍을 지원하여 웹 애플리케이션에서 스레드를 차단하지 않고 작업을 실행할 수 있게 합니다. 이러한 비동기성을 활용할 수 있는 함수로 setTimeout이 있습니다. setTimeout 함수는 일정 시간이 지난 후에 함수를 실행하거나 코드 블록을 실행하는 데 사용됩니다. 보통 setTimeout 함수의 첫 번째 인자로는 실행하고자 하는 함수를, 두 번째 인자로는 지연 시간(ms 단위)을 전달합니다. // setTimeout 함수 사용법 setTimeout(() => { callback(); // 1초 지연 시간 뒤 호출 }, 1000); // ms 단위로 지연 시간 설정 2. 0ms 지연시간이 가지는 의미 // 왜 setTimeout 함수에 지연 시..
2023.07.28 -
CORS (Cross-Origin Resource Sharing) 오류는 왜 뜨는걸까?
CORS (Cross-Origin Resource Sharing) 1. CORS 개요 CORS (교차 출처 자원 공유)는 보안 상의 이유로, JavaScript에서 보내는 교차 출처 (자신과 다른 출처) HTTP 요청을 제한하기 위한 정책입니다. 대다수 브라우저에는 CORS가 적용되어 있는데, 이는 자신의 출처와 동일한 리소스만 불러올 수 있도록 하여, 악의적인 자원 접근과 탈취를 막기 위함입니다. CORS에 대해 자세하게 알아봅시다! 2. CORS 에러 프론트엔드를 개발하면서 아래와 같은 에러 메시지를 한 번쯤 보셨을 것 같습니다. CORS 에러가 발생하는 이유는 [CORS 개요]에서 소개했듯이, JavaScript 코드 상에서 동일한 출처가 아닌 곳에서 요청을 하였기 때문입니다. 아래의 에러 내용을 ..
2023.07.21 -
SQL 인젝션 공격이란?
SQL 인젝션은 웹 애플리케이션의 보안 취약점을 이용한 공격 방식으로, 악의적인 사용자가 SQL 쿼리를 조작하여 데이터베이스를 비정상적으로 조작하는 행위입니다. 특히 웹 애플리케이션에서 사용자의 입력을 적절하게 검증하거나 필터링하지 않을 때 발생할 수 있습니다. 인젝션 공격의 목적은 다양하며, 공격자는 아래와 같은 행위를 수행할 수 있습니다. 데이터 추출: 공격자는 민감한 데이터를 추출하기 위해 SQL 쿼리를 조작할 수 있습니다. 예를 들어, 사용자 이름과 비밀번호, 신용 카드 정보, 개인 식별 정보 등을 데이터베이스에서 추출할 수 있습니다. 데이터 조작: 공격자는 데이터를 수정하거나 삭제하기 위해 SQL 쿼리를 조작할 수 있습니다. 예를 들어, 다른 사용자의 정보를 변경하거나 삭제할 수 있습니다. 인증..
2023.07.17 -
API에서 URL의 작성 관례
백엔드 개발을 하다 보면, URL을 작성하게 됩니다. 그런데 내 맘대로 작성하게 되면 팀원들끼리 URL에 오타가 나거나 헷갈려 url 을 까먹고 다시 찾아보다가 생산성이 느려질 수 있는데요 API의 URL은 일반적으로 몇 가지 기본 규칙과 관례를 따르며 작성됩니다. 그러나 모든 조직이나 개발팀이 동일한 규칙을 따르지는 않기 때문에, 특정 API의 URL 패턴은 해당 API를 개발한 조직의 스타일 가이드와 정책에 따라 달라질 수 있습니다. 일반적으로 API URL은 아래와 같은 패턴을 따릅니다. API의 버전 : 이는 /v1/, /v2/ 등의 형태로 나타내며, API가 버전 Up할 때 이전 API를 사용하는 서비스가 계속 작동하도록 보장하기 위해 중요합니다. https://api.eduenv.com/v1/..
2023.07.16 -
여기서는 다양한 개발 관련 지식을 포스팅합니다.
안녕하세요! 돌핀 코딩입니다. 서비스를 개발하면서 발생하는 다양한 문제들과 관련 개발 지식들을 공유하려고 합니다. 잘 부탁드려요!
2023.07.07