[Infra] GPU/CPU 서버 자동 종료 시스템 구축하기
·
Backend
실무에서 AI 관련 프로젝트를 진행하다보니, 리소스 관리가 특히나 중요해졌습니다.퇴근 후에는 서버를 사용하지 않는데, 켜져있으면 낭비가 발생하죠. 그래서 퇴근 직전에 매일 서버를 직접 꺼야 했었는데요.하루종일 바쁘게 보내다 맞이한 퇴근의 기쁨에 서버 끄는 것을 잊어버리는 사태가 가끔 발생하더라구요.그래서, 차라리 이걸 자동화해버리고, 다른 업무에 집중하자! 라는 생각이 들었습니다.그렇게 시도해본GPU 서버 자동 종료 시스템 구축하기두둥탁 1️⃣ 시스템 구성 개요우리가 만들 시스템은 다음과 같은 특징을 가집니다.매일 저녁 19시에 자동으로 서버 종료특정 날짜는 제외일로 지정 가능 (야간 작업이 필요한 경우 등)모든 동작을 로그로 기록재부팅 후에도 설정 유지 2️⃣ 시스템 구현 렛츠고1단계: 제외일 관리 파..
[Java] PriorityQueue(우선순위 큐) 사용하기
·
Backend/Java
Queue vs PriorityQueueQueue(큐)1) 데이터를 가로로 쌓는 자료구조2) FIFO(First In First Out | 선입선출) : 줄을 선 순서대로 먼저 처리됨! ▼PriorityQueue(우선순위 큐)1) 데이터를 가로로 쌓는 것은 동일2) 선입선출X, 우선순위를 먼저 결정한 후 우선순위가 높은 엘리먼트부터 처리PriorityQueue 특징우선순위 큐에 넣을 객체는 필수적으로 Comparable Interface를 구현해야 함 (우선순위 조건 만드는 것!)PriorityQueue가 자동으로 높은 우선순위 요소를 먼저 꺼내어 처리힙을 이용하여 구현되어 이진트리 구조로 이루어짐힙으로 구성되어 시간 복잡도는 O(NLogN)우선순위를 중요시해야 하는 상황에서 사용됨 (ex. 응급실)Pr..
[Java] 의존성 주입(DI) 장점, 방법, 비교
·
Backend/Java
의존성 주입(DI)이란?객체가 사용(의존)할 파라미터를 외부에서 선언하고, 이를 주입받아서 사용하는 방법!의존성 주입의 장점응집도를 높이고, 결합도를 낮출 수 있다.1. 유지보수가 용이하다.2. 재사용성이 높은 코드가 된다.3. 기능이 분리되어 가독성이 높아진다.의존성 주입 종류Constructor (생성자)Setter (수정자)Field (필드)1. Constructor (생성자)public class User { private String email; private String password; @Autowired public User(String email, String password){ this.email = email; this.password = p..
[Java] Char 문자를 숫자로 변환하는 방법 (CHAR - '0' 이 뭘까?)
·
Backend/Java
알고리즘 문제를 풀다가 난관에 봉착했다.54321 을 입력했을 때,500004000300201이렇게 출력되기를 원했는데, 자꾸 전혀 모르는 숫자가 생기는 것...그래서 도대체 어디서 꼬인걸까 봤는데,바로 아스키코드(ASCII code-2진수)로 표현되었던 것이었다..!아스키코드로 문자 1은 49임!char 문자를 숫자로 변환하는 방법은 바로 - '0' 을 넣어주는 것이다!문자 0은 아스키코드로 48이기 때문에 빼주면 숫자로 변환 완료되는 거!예를 들어,char로 된 배열 arr[1] = 1;arr[1] = (10진수로 표현 시) 1, (2진수로 표현 시) 49;arr[1] - '0' = 49 - 48 = 1;내가 원하는 10진수로 정상적으로 출력되는 것 확인:-D
[Python] 문자열 대/소문자 변환하기
·
Backend/Python
Python 은 대·소문자를 구분하는 언어이다. 즉, 'example' 과 'EXAMPLE'을 다른 문자열로 구분한다. 따라서, 문자열을 비교해야 할 경우, 한쪽으로 통일 시켜준 후에 비교해야 한다! 문자열의 대/소문자를 변환할 수 있는 함수를 정리해보았다. 1. upper() : 문자열 전체 대문자로 변환하기 str = "example" print(str.upper()) upper 함수가 적용된 모든 문자를 대문자로 변환한다. 2. lower() : 문자열 전체 소문자로 변환하기 str = "EXAMPLE" print(str.lower()) lower 함수가 적용된 모든 문자를 소문자로 변환한다. 3. Capitalize() : 가장 첫 글자만 대문자로 변환하기 str = "this is example..