티스토리

검색하기내 프로필

블로그 홈

Carpe Diem

구독자
4

AI Engineer가 되는 그날까지

구독하기 방명록
신고

인기글

  • Matplotlib 시각화 요소 (Text, Color, Facet)공감수0댓글수0조회 4
  • Polar Plot, Radar Plot (극좌표계)공감수0댓글수0조회 3
  • Line plot공감수0댓글수0조회 1

주요 글 목록

  • Kubernetes Orchestrations 장점글 내용

    1. Service Discovery & Load Balancing각 Pod에 단일 DNS 이름과 IP 주소 할당트래픽이 높으면 여러 pod를 포함하는 서비스 전체에 자동으로 로드 밸런싱 수행 2. Automated rollouts and rollbacks새 pod를 출시하고 기존 pod와 교환실패된 배포는 변경 사항을 되돌릴 수 있다 3. Self-healingpod 상태 확인하고 실패한 컨테이너를 다시 시작pod에 장애 발생하면 K8s는 상태 확인이 될 때까지 해당 pod에 대한 연결 허용 안함 4. Automatic Bin-packing구성된 CPU 및 RAM 요구사항에 따라 컨테이너를 효율적으로 할당하여 리소스 활용도 최적화 5. Storage Orchestration로컬 및 네트워크 스토리지, ..

    좋아요1
    댓글0작성시간2024. 12. 18.
  • Kubernetes 기본 구조와 명령어글 내용

    쿠버네티스 기본 구조(구성 요소)클러스터(Cluster)여러 컴퓨터의 그룹. 쿠버네티스를 사용하여 관리됨클러스터 내에서 컨테이너는 Pod라는 단위로 구성되어 실행됨구성 요소마스터 노드 : 클러스터 관리, 스케줄링, Config 등구성 요소: API 서버, 스케줄러, 컨트롤러 매니저 등워커 노드 : 실제로 애플리케이션 컨테이너가 배포되고 실행되는 노드. 포트 호스팅구성 요소: Kubelet, Kube-proxy 노드 (Node)클러스터를 구성하는 개별 컴퓨터(물리/가상)쿠버네티스에 의해 관리됨. 여러 Pod 실행 환경 제공애플리케이션의 부하를 분산하고 고가용성 제공구성 요소Kubelet: 노드에서 실행되는 주요 쿠버네티스 에이전트, 마스터 노드의 지시에 따라 컨테이너 시작, 중지 및 유지 관리Kube-pr..

    좋아요0
    댓글0작성시간2024. 10. 23.
  • Kubernetes (쿠버네티스) 이론글 내용

    쿠버네티스란?컨테이너화된 workload와 서비스를 관리하기 위한 확장 가능한 오픈소스 플랫폼 도커 이미지가 많아지면서 관리해야할 컨테이너와 서버들이 많아짐컨테이너의 관리를 자동화할 도구(오케스트레이션 툴)의 필요성컨테이너를 쉽고 빠르게 배포 및 확장하고, 관리를 자동화해주는 오픈소스 플랫폼  쿠버네티스의 특징거대한 커뮤니티와 생태계 (대기업들의 지원)다양한 배포 방식여러대의 애플리케이션 띄우고 싶을 때: Deployment로그, 모니터링 등 모든 서버에 설치 필요한 경우: Daemon Set배치성 작업: Job, Cronjob  3. Namespace & LabelNamespace 기능으로 하나의 클러스터를 논리적으로 구분하여 사용 가능Label 기능으로 유연, 확장성 있게 리소스 관리 4. RBAC ..

    좋아요0
    댓글0작성시간2024. 10. 22.
    게시글 이미지
  • Docker 이미지 빌드 및 배포글 내용

    Docker 이미지 빌드내가 구축한 환경을 다른 사람도 Docker 이미지를 받아 쉽게 사용할 수 있도록 이미지 빌드예시로 나의 mmdetection 모델 구축 환경을 가져옴# 베이스 이미지로 CUDA 12.1 및 cuDNN 8이 포함된 Ubuntu 22.04 사용FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04# 필수 패키지 설치RUN apt-get update && apt-get install -y \ python3-pip \ libgl1-mesa-glx \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*# PyTorch 설치 (CUDA 12.1 지원)RUN pip install --no-cache-d..

    좋아요0
    댓글0작성시간2024. 10. 22.
    게시글 이미지
  • 도커와 컨테이너 (컨테이너 생성 및 Dockerfile 사용)글 내용

    용어의미컨테이너앱이 구동되는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 하는 격리 기술도커컨테이너를 다루는 도구 중 가장 유명한 것쿠버네티스컨테이너를 오케스트레이션 하는 도구오케스트레이션여러 서버에 컨테이너 분산 배치, 문제 생긴 컨테이너 교체 등 컨테이너 분산 배치, 상태 관리 및 컨테이너 구동환경까지 관리 리눅스에서 도커 설치도커 옛버전 삭제sudo apt-get remove docker docker-engine docker.io containerd runc  도커 설치sudo apt-get install docker-ce docker-ce-cli containerd.io 설치되었는지 확인docker--version 도커 실행sudo systemctl status dockersudo /etc/i..

    좋아요4
    댓글1작성시간2024. 9. 5.
  • [백준] LCS(최장 공통 부분 수열)글 내용

    핵심 알고리즘(dp)이중 for 문으로 모든 문자열을 비교하면서 first[i]==second[j] 이면 dp[i-1][j-1]+1→ 두 문자열에서 같은 문자가 추가 됐으므로 (이전 최장 공통 부분 수열)+1 first[i]!=second[j] 이면 max(dp[i-1][j],dp[i][j-1])→ 이전의 최대 공통 부분 수열 유지 first=input()second=input()dp=[[0]*(len(second)+1) for _ in range(len(first)+1)]for i in range(1,len(first)+1): for j in range(1,len(second)+1): if first[i-1]==second[j-1]: dp[i][j]=dp[i-1][..

    좋아요0
    댓글0작성시간2024. 7. 15.
  • [프로그래머스] PCCP 기출문제 1번 / 붕대감기글 내용

    단순 구현 쉬운 문제다def solution(bandage, health, attacks): attack_time=[] attack=[] for x,y in attacks: attack_time.append(x) attack.append(y) hp=health cnt=0 for i in range(1,max(attack_time)+1): if i not in attack_time: cnt+=1 if cnt==bandage[0]: hp+=bandage[2] cnt=0 hp+=bandage[1] if hp>h..

    좋아요0
    댓글0작성시간2024. 6. 14.
  • [프로그래머스] 물고기 종류별 대어 찾기글 내용

    SELECT A.ID, B.FISH_NAME, C.LENGTHFROM FISH_INFO A JOIN FISH_NAME_INFO B ON A.FISH_TYPE=B.FISH_TYPEJOIN (SELECT FISH_TYPE, MAX(LENGTH) AS LENGTH FROM FISH_INFO GROUP BY FISH_TYPE) CON A.LENGTH=C.LENGTH AND B.FISH_TYPE=C.FISH_TYPEORDER BY A.ID ASC Group By에서 계속 오류가 나서 찾아봤더니, MAX/MIN/SUM 등의 함수를 사용할 때 group by 에 사용된 컬럼만 select 절에 사용 가능하다는 것이다. 이 사실을 몰라서 조금 헤맸다...

    좋아요0
    댓글0작성시간2024. 6. 13.
  • OpenAI Assistants API v2 stream 오브젝트의 in/outbound글 내용

    인바운드네트워크에 들어오는 정보메시지가 클라이언트에서 서버로 향함 ex) 첨부파일을 서버에 저장(업로드)예를 들어, 웹 서버의 경우 클라이언트가 웹페이지를 요청하고, 이 요청이 웹 서버로 전송되는 경우 아웃바운드네트워크에서 나가는 정보클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 향함 ex)첨부파일 다운로드내부의 사용자가 웹 페이지를 요청하면, 요청된 데이터가 내부 시스템에서 인터넷을 통해 외부로 전송   OpenAI Assistants API v2 스트리밍 기능실시간 상호작용: Assistants API v2의 스트리밍 기능을 통해 사용자는 실시간으로 AI 어시스턴트의 응답을 받을 수 있다.다중 사용자 지원: 스트리밍 기능은 단일 스레드에서 다중 사용자 상호작용을 관리할 수 있는 기능을 제..

    좋아요0
    댓글0작성시간2024. 6. 3.
    게시글 이미지
  • 2018 KAKAO BLIND RECRUITMENT [3차] 파일명 정렬 feat. 정규표현식글 내용

    정규표현식을 잘 알고 있으면 쉽게 풀 수 있는 문제! 문자열을 숫자 기준으로 나누고 1. HEAD 기준으로 사전순 정렬 2. NUMBER 기준으로 오름차순 정렬 해주면 된다! import re def solution(files): def splitfile(file): match = re.match(r"([^\d]+)(\d+)(.*)", file) return match.group(1), int(match.group(2)) answer=sorted(files,key=lambda file: (splitfile(file)[0].lower(),splitfile(file)[1])) return answer

    좋아요0
    댓글1작성시간2024. 4. 19.
  • 기술면접 - 운영체제글 내용

    💡 프로세스와 쓰레드의 차이에 대해 설명해주세요 프로세스 - 실행 중인 프로그램, 완벽히 독립적이기 때문에 메모리 영역을 다른 프로세스와 공유하지 않는다. - 최소 1개의 쓰레드를 가지고 있다 쓰레드 - 프로세스 내에서 stack만 따로 할당 받고, 그 외의 메모리 영역을 공유하기 때문에 다른 쓰레드의 실행 결과를 즉시 확인할 수 있다. - 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용해 실행된다. 💡 멀티 프로세스와 멀티 쓰레드의 특징 멀티 프로세스 - 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않고 계속 실행됨 - 멀티 쓰레드보다 많은 메모리 공간과 CPU 차지 멀티 쓰레드 - 멀티 프로세스보다 적은 메모리 공간을 차지하고 문맥 전환이 빠름 - 하나의 프로세스가 죽으면 전체 쓰레..

    좋아요0
    댓글0작성시간2024. 3. 26.
  • 기술면접 준비 - 자료구조글 내용

    💡 Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점에 대해 설명해주세요. Array의 가장 큰 특징은 데이터를 순차적으로 저장한다는 점이다. 장점 - index를 사용해 특정 요소를 찾고 조작이 가능하다. 단점 - 요소가 삽입되거나 삭제되는 경우 그 뒤의 모든 요소를 한 칸씩 뒤로 밀거나 당겨줘야함 - 정보가 자주 바뀌는 데이터를 담기에는 적절하지 않음 💡 Stack, Queue / Tree, Heap의 구조에 대해 설명해주세요 Stack과 Queue는 선형 자료구조, Array와 LinkedList로 구현 가능 Stack: 후입선출(LIFO) Queue: 선입선출(FIFO) Tree는 비선형 자료 구조, 계층적 관계를 표현하기에 적합 Heap은 최대, 최소값을 찾아내는 연산을 쉽..

    좋아요0
    댓글1작성시간2024. 2. 28.
  • [백준] 8979. 올림픽글 내용

    순위 매기는 것 때문에 헷갈렸다 조금... n,k=map(int,input().split()) medal=[] for i in range(n): n,gold,silver,bronze=list(map(int,input().split())) medal.append([n,gold,silver,bronze]) medal.sort(key=lambda x:(-x[1],-x[2],-x[3])) //금.은.동 순서로 정렬 cnt=1 medal[0].append(1) for i in range(1,len(medal)): cnt+=1 if medal[i-1][1:4]==medal[i][1:4]: medal[i].append(medal[i-1][-1]) # 메달 수가 같으면 순위 유지 else: medal[i].append..

    좋아요0
    댓글0작성시간2024. 2. 8.
  • [백준] 10431. 줄세우기글 내용

    난이도 쉬운편. 단순 구현 p=int(input()) answer=[] for i in range(p): cnt = 0 heights = [] h=list(map(int,input().split())) heights.append(h[1]) for j in range(2,21): if h[j]h[j]: heights.insert(idx,h[j]) cnt+=len(heights)-idx-1 break else: heights.append(h[j]) answer.append((h[0],cnt)) for a,b in answer: print(a,b)

    좋아요0
    댓글0작성시간2024. 2. 8.
  • [백준] 9655. 돌게임글 내용

    DP로 푼다고 하는데 그냥 단순 구현으로 푼 것 같다... n=int(input()) # 5 = 1/1/1/1/1 # 5 = 3/1/1/ cnt=0 while n!=0: if n>=3: n-=3 else: n-=1 cnt+=1 if cnt%2==0: print("CY") else: print("SK") 3개 이상 남아있으면 3개를 가져가고 그렇지 않으면 1개를 가져가는 방식으로 구현하였다. 어짜피 어떻게 가져가던간에 마지막에 가져가는 사람은 똑같기 때문..!

    좋아요0
    댓글0작성시간2024. 2. 7.
  • [프로그래머스] 등굣길글 내용

    처음에는 조합? 확률과 통계 공식으로 풀어보려했는데 생각해보니 그렇게 복잡하게 풀 필요가 없었다. 테두리를 1로 초기화하고 puddle이 있는 좌표는 0으로 하여 dp[i][j]=dp[i-1][j]+dp[i][j-1] 을 사용해 풀면 되는 것이었다! def solution(m, n, puddles): dp=[[1]*n for _ in range(m)] for p in puddles: dp[p[0]-1][p[1]-1]=0 for i in range(1,m): for j in range(1,n): if dp[i][j]!=0: dp[i][j]=(dp[i-1][j]+dp[i][j-1])%1000000007 return dp[m-1][n-1] 처음에는 puddle 위치를 0으로 만들고 dp 적용하면 되겠다 싶었는..

    좋아요0
    댓글1작성시간2024. 2. 6.
    게시글 이미지
  • [프로그래머스] 오픈채팅방글 내용

    처음에는 노가다로 풀었는데 25번 테스트케이스부터 시간 초과가 났다... def solution(record): answer = [] id=[] for i in record: i=i.split(' ') if i[0]=='Enter': id.append(['Enter',i[1],i[2]]) for j in range(len(id)): if id[j][1]==i[1] and len(id[j])==3: id[j][2]=i[2] elif i[0]=='Leave': for j in range(len(id)): if id[j][1]==i[1]: id.append(['Leave',i[1],id[j][2]]) break elif i[0]=='Change': for j in range(len(id)): if id[j][..

    좋아요0
    댓글0작성시간2024. 2. 2.
  • [프로그래머스] 스킬트리글 내용

    문제 이해하는데 시간이 좀 걸렸다.. def solution(skill, skill_trees): cnt=0 for i in range(len(skill_trees)): tree="" for j in skill_trees[i]: if j in skill: tree+=j #skill에 있는 문자만 뽑기 flag=True if tree=="": # 아예 skill에 없는 문자만 있으면 count flag=True else: if tree[0]!=skill[0]: #가장 첫 알파벳이 선행되어야함 flag=False if tree not in skill: # 순서대로 스킬을 쌓아야함 flag=False if flag==True: cnt+=1 return cnt

    좋아요0
    댓글1작성시간2024. 1. 30.
  • [프로그래머스] 롤케이크 자르기글 내용

    처음에는 for 문으로 topping을 돌면서 set의 길이를 비교해서 같을 때 count 하면 된다고 생각했지만 시간 초과함 def solution(topping): answer = 0 for i in range(len(topping)): if len(set(topping[:i]))==len(set(topping[i:])): answer+=1 return answer 시간초과를 줄이려면 딕셔너리 두개를 활용해서 Counter(a) 한 뒤, a에 있는 숫자를 하나씩 빼서 b로 옮기면서 비교해야함. def solution(topping): answer = 0 a={} b={} for i in topping: # a에 각 숫자 몇개 있는지 다 담기 if i in a: a[i]+=1 else: a[i]=1 f..

    좋아요0
    댓글0작성시간2024. 1. 30.
  • GraphQL (1) - schema, query, response글 내용

    schema type User{ id: ID! //필수값 name: String! //필수값 } type Query{ user(id: ID!): User! } query query{ user(id: "10"){ // id 값이 10인 user 목록 조회 id name // id와 name이 반환됨 } } response { "data": { "user": { "id": "10", "name": "Simon" } } } GraphQL.js로 GraphQL의 스키마 정의하기 import { GraphQLObjectType, GraphQLSchema, GraphQLString, printSchema } from 'graphql'; const schema = new GraphQLSchema({ query: ne..

    좋아요2
    댓글1작성시간2024. 1. 19.
문의안내
  • 티스토리
  • 로그인
  • 고객센터
© Kakao Corp.