분류 전체보기 27

windows에서 백그라운드로 타입스크립트 실행시키는 법

# window에서 백그라운드로 프로그램을 실행시켜보자.어쩌다 windows에서 백그라운드로 typescript 기반 코드를 실행시켜놓을 일이 생겼다. 보통 리눅스를 쓰기 때문에 윈도우는 크게 다른가 싶었는데 똑같이 pm2를 활용할 수 있다. Service를 통해 등록하는 방법도 있지만 가장 편한 방법이 pm2를 통한 방법이라고 생각된다. # bun설치 오류가 뜬다.windows에서 pm2를 통해 ts파일을 실행시키려고 하면 보통 bun이 미설치 되었다고 뜰 것이다. 이는 .cmd 파일을 잘못 인식해서 node가 아닌, js의 runtime으로 실행시키려는 특성 때문이다. 파일에 명시해줌으로써 node를 runtime으로 인식할 수 있도록 해주자 ecosystem.config.jsmodule.export..

Daily 2025.07.28

맥미니 홈서버 만들기 2. DHCP 설정 고정, 포트포워딩 설정해주자

지난번에 이어서 맥미니 홈서버로 만들기서브 2탄이다. 일단 서버를 직접 만들려면외부에서 접속이 가능해야 한다.카페에서든 어디서든 언제든지 접속할 수 있는환경이 되어야한다. 집에서만 접속이 가능하면 안되니까. 그러려면 대중적으로 선택할 수 있는것은 내부 주소를고정하고 외부 특정 포트를 포트포워딩해서 접속하는방법이다. 외부에서의 요청 -> 공유기가 포트별로 판단 -> 맥미니로 요청대략 이런 경로라고 보면 된다. DHCP가 뭘까DHCP 설정부터 고정해보자DHCP는 Dynamic Host Configuration Protocol을 약어로쉽게 생각하면 내부 주소 할당을 어떻게 해줄지 결정하는 규칙이다. 예를 들어 우리집에 2개의 pc가 있다고 하면 이는 하나의 외부 IP를가지더라도 내부적으로 내부 IP는 2개..

홈서버 2025.07.20

맥미니를 홈서버로 만들어볼까..? ssh 접속하기

뜨문뜨문 하고 있던 프로젝트를 방학기간에다시 한 번 좀 해볼까 생각이 들었다. aws가 재작년인가부터 프리티어에도ip 금액을 부과하고 있어서 이 참에 그냥홈서버를 한번 구축 해보고자한다. 왜 굳이 맥미니를 샀을까그러게 왜 굳이 맥을 쓸까. 일단 idle상태에서전력소모가 굉장히 낮다고 한다.aws를 안쓰는것도 비용을 아끼면서 하는건데전기세가 더 나오면 안되니까. 대학원 다니는 김에 학생할인을 받아서m4기본 스펙을 84만원 정도에 살 수 있어서그걸 살까 하다가 필요스펙 이상일 것 같아서 중고로 맥미니 m1 기본스펙(메모리8기가)30만원에 구입했고 홈서버로 두는데 스펙은문제 없을 것 같았다. 인텔버전 맥미니나 라즈베리파이의 선택지도있었지만 전력도 그렇고 윈도우보다는 맥을한 번 경험해보고 싶달까..? 왜 이..

홈서버 2025.07.20

AI 개발자, 데이터 엔지니어가 뭘까

대학원을 다닌지 1학기 정도가 되었고 그 동안 대화를 어느정도 해본 사람들은 30명 약간 넘는 것 같다. 일단 대학원에 사람이 꽤 많다는 것도 놀랐고 생각보다 다양한 직무가 있다는 걸 느낀다. 대부분 본인의 직무에 대해서 매우매우 쉽게 표현해주지는 않기 때문에 대략 알고 있어야 서로 대화가 편한 부분이 있다. 그래서 두루뭉술하게 AI 개발자, 데이터 엔지니어라고 알고 있던 것들을 정리하려고 한다.백엔드 개발자주요 업무API 설계 및 개발(REST, GraphQL)DB 설계 및 최적화서버 아키텍쳐 설계 및 구현마이크로서비스 아키텍처 구현캐싱 시스템 구축(Redis, Memcached)메시징 시스템 연동(Kafka, RabiitMQ)보안 및 인증/인가 시스템 구현성능 최적화 및 모니터링CI/CD 파이프라인 ..

Daily 2025.06.30

맨날까먹는 쿠버네티스 마스터-nfs-worker 설정 순서

cloud 플랫폼을 옮겨가면 하는데매번 까먹어서 기억하기 위해서 순서 기록. 1. master, worker용 이미지 준비하기nfs는 이미지를 쓰지 않기 때문에 상관없지만master, worker는 도커, 쿠버네티스가 깔린이미지를 만들어놓고 그 이미지로 인스턴스를만들어가는게 편하기 때문에 준비해놓아야한다. -> 도커, 쿠버네티스 설치-> nfs 마운트를 위해서 nfs-utils깔기-> 이미지 만들고 인스턴스 생성(nfs는 이미지 안씀) 2. 마스터 설정하기기본적인건 깔아놓았으니 없는거만 추가하자 -> CNI 구성(특별히 커스텀할거 없으면 flannel)(서버에 따라서 init ip 대역 겹치는거 확인은 해야됨)-> nfs 마운트해주기-> nfs pv, pvc 잡아주기-> 도커 시크릿 추가해주기(안그러면 ..

Daily 2025.06.05

기록을 해야하는 이유

어느덧 개발자로 일한지 거의 만 3년이 되어간다. 개발을 일로 시작해보기 위해서 동기부여도 되고나를 보여줄 수 있는 수단도 된다는 나름의 의미를 가지고블로그를 시작했던 것 같다. 초반에 가장 먼저 블로그를 써야겠다고 생각한건똑같이 국비로 시작해 어느덧 CTO가 되어있던 이동욱이라는 사람의블로그를 보고 "나도 블로그로 기록을 해봐야겠다" 였었다. 그래서 어떤 방향으로 블로그를 써볼까 네이버 블로그를 할까티스토리를 할까 많은 심사숙고를 거쳐 꾸준히 쓰는걸 목표로공부한 것들, 생각나는 것들을 최대한 올려적었다. 어떤 때는 공부한걸 올리다가 조회수 욕심이나서어떤 때는 최대한 사람들이 보겠다 싶은걸 올리고 하면서하루 조회수 1천도 나름대로 넘겨봤다. 그러다가 국비로 시작한 개발자 준비생이 개발자가 되었고그 뒤부터..

Daily 2025.06.05

백준 21314번 민겸 수 풀이 및 정답(python)

[백준 21314번 민겸 수] 문제 설명 및 풀이정해진 규칙대로 최댓값과 최솟값을 구해줘야합니다. 저의 경우 조금 더 계산하기 편한 최솟값부터 구했습니다. 최솟값을 구해보자1. M과 K가 만났을 경우=> M과 K를 각각 분리해줍니다. 합치면서 계산하면 큰 숫자가 됩니다.앞에 M이 몇개든 결합하지 않고 K는 무조건 5로 출력합니다.2. M끼리는 결합해주자=> MM을 따로따로 11로 계산할수도 있지만 결합해주면 10으로 오히려 작은 숫자가 되기 때문에 결합해줍니다. 최댓값을 구해보자1. M과 K를 결합해줍니다.=> M과 K가 만나면 큰 숫자가 됩니다. MK = 50, MMK = 500등등. m의 개수를 파악해두고 K가 나온다면 결합해주는것이 좋습니다.2. K가 안나오면?=> K를 만나지 못한 m들은 각각 따..

CodingTest/Content 2025.03.30

백준 1541번 잃어버린 괄호 풀이 및 정답(python)

문제 설명 및 풀이주어진 식에서 적절히 괄호를 쳐서 가장 작은 값을 찾아야 합니다.가장 작은 값을 찾기위해서는 마이너스를 기준으로다음 마이너스가 나올때 까지 값을 하나로 묶어주면 됩니다. 예시) 15-30+40 -> 15-(30+40)정답 예시 코드import sysinput = sys.stdin.readlinegiven_str = input()# 마이너스 기준으로 splitsplit_str = given_str.split("-")min_number = 0idx = 0for str in split_str: a = 0 for x in str.split("+"): a += int(x) if idx == 0: min_number += a else: m..

CodingTest/Content 2025.03.25

백준 20300번 서강근육맨 풀이 및 정답(python)

문제 설명 및 풀이한번에 2개의 기구씩 쓸 수 있으며 각 기구의 근손실 정도가 주어집니다.근손실 수치의 2개의 기구를 이용하는 경우 2개의 합,1개의 기구를 이용하는 경우 해당 기구의 근손실 정도입니다.최소 근손실 수치가 목적이기 때문에 짝수개의 기구가 주어지는 경우,홀수개의 기구가 주어지는 경우를 구분합니다. => 오름차순으로 기구를 정렬합니다.=> 가장 작은값과 가장 큰 값을 더해 가장 크게 나오는 수를 찾습니다.=> 홀수면 기구가 하나 남기에 가장 큰 값 하나를 max로 먼저 잡고 시작합니다.정답 예시 코드import sysinput = sys.stdin.readlinen = int(input())loss_list = list(map(int, input().split()))# 기계가 홀수개인지 체크..

CodingTest/Content 2025.03.24

백준 11508번 2+1 세일 풀이 및 정답(python)

문제 설명 및 풀이2개를 사면 1개를 공짜로 주기 때문에가장 비싼 것부터 정렬하면 가장 이득을 볼 수 있습니다. => 내림차순으로 정렬=> 3번째 아이템마다 가격계산 안하고 점프정답 예시 코드import sysinput = sys.stdin.readlinen = int(input())price_list = [int(input()) for _ in range(n)]price_list.sort(reverse=True)total_price = 0count = 0for price in price_list: count += 1 if count % 3 == 0: count = 0 continue total_price += priceprint(total_price)

CodingTest/Content 2025.03.24