분류 전체보기 70

프로그래머스 Lv.3 | Python | 순위

1. 문제 정보 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr난이도: Lv.22. 문제 설명n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다.선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제..

미니 PC 서버 Kubernetes 배포 (2) - Airflow 기반 데이터 파이프라인 동작 검증

1. 문제 배경Kafka, Redis, MySQL, Spark Streaming을 포함한 기반 서비스 구성을 완료했지만, 각 구성 요소가 개별적으로 실행되는 상태만으로는 실제 데이터 흐름이 정상 동작하는지 확인하기 어려웠다.특히 이번 구조에서는 다음 흐름이 실제로 연결되어 동작해야 했다.Airflow→ Kafka→ Spark Streaming→ Redis→ MySQL, S3 즉, 단순 Pod 실행 여부가 아니라 실제 데이터가 생성되고 처리되는 흐름 자체를 검증할 필요가 있었다.이번 단계에서는 Airflow DAG 실행을 통해 데이터가 생성된 이후, Kafka, Spark, Redis, MySQL, S3 로 이어지는 흐름이 정상적으로 연결되는지를 확인해야한다.2. 목표Airflow DAG 실행을 통한 데이..

미니 PC 서버 Kubernetes 배포 (1) - Kafka · Redis · MySQL 기반 서비스 배포

1. 문제 배경사전 준비 단계에서 이미지, 설정, 권한, 저장소를 분리했지만 실제 서비스는 아직 실행되지 않은 상태였다.Kubernetes에서는 서비스를 단순히 실행하는 것이 아니라, 각 서비스의 역할과 성격에 맞게 리소스를 나눠서 배포해야 한다.특히 이번 구조에서는 다음 기준이 중요했다.상태 저장 여부다른 서비스의 접근 필요 여부지속적으로 실행되어야 하는지 여부후속 처리 서비스가 의존하는 리소스가 먼저 준비되어 있는지 여부이번 단계에서는 Kafka, Redis, PostgreSQL과 같은 기반 서비스를 먼저 배포하고, 이후 Spark Streaming 서비스가 안정적으로 구독할 수 있도록 Kafka topic도 초기화 단계에서 함께 준비했다.2. 목표NaviSafe 주요 서비스를 Kubernetes 리..

미니 PC 서버 Kubernetes 배포 준비 - Namespace · Secret · Spark Operator 구성

1. 문제 배경k3s 기반 Kubernetes 클러스터 구성을 완료한 이후 바로 서비스를 배포하려 했지만, Kubernetes는 단순히 컨테이너를 실행하는 구조가 아니라 이미지, 설정, 권한, 저장소가 분리된 상태에서 동작한다.이 상태에서 바로 서비스를 배포할 경우 다음과 같은 문제가 발생할 수 있었다.클러스터에서 이미지를 가져오지 못하는 문제환경 변수와 설정이 코드에 종속되는 구조Pod가 외부 리소스에 접근하지 못하는 문제Pod 재시작 시 데이터가 유실되는 문제서비스 간 리소스 충돌 문제따라서 실제 NaviSafe 서비스를 배포하기 전에, Kubernetes 실행에 필요한 공통 구성 요소를 먼저 준비했다.2. 목표Kubernetes 실행에 필요한 공통 리소스 구성설정과 코드 분리서비스별 namespac..

미니 PC 서버에 k3s 기반 Kubernetes 운영 환경 구성

1. 문제 배경로컬 Kubernetes 환경(kind)에서 데이터 파이프라인과 공간 데이터 처리 기능 검증을 완료한 이후, 이제 실제 서버 환경에서 장시간 실행 가능한 구조로 전환할 필요가 있었다.로컬 환경에서는 다음과 같은 한계가 있었다.PC 종료 시 서비스 중단외부 네트워크 접근 제한장시간 스트리밍 처리 운영 어려움실제 서비스 환경과 차이 존재따라서 항상 실행 가능한 미니 PC 서버에 SSH로 접속해 NaviSafe 서비스를 직접 배포하고 운영 환경을 구성하기로 했다. 또한 이후 AWS 기반 클라우드 환경으로 확장하기 전에, 우선 미니 PC 서버에서 실제 배포 및 운영 과정을 먼저 검증할 예정이다.이를 통해Kubernetes 기반 서비스 운영장시간 스트리밍 처리 안정성 확인네트워크 및 서비스 연결 검..

프로그래머스 Lv.2 | Python | 배달

1. 문제 정보 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr난이도: Lv.22. 문제 설명N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3..

프로그래머스 Lv.2 | Python | 게임 맵 최단거리

1. 문제 정보 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 난이도: Lv.22. 문제 설명(요약)게임 맵은 0과 1로 이루어진 2차원 배열이다.1은 이동할 수 있는 칸0은 벽이라 이동할 수 없는 칸캐릭터는 왼쪽 위 (0, 0)에서 출발하고, 상대 팀 진영인 오른쪽 아래까지 이동해야 한다.이때 상대 팀 진영까지 도착하는 최단 거리를 구하는 문제다. 도착할 수 없다면 -1을 반환한다.3. 접근 기준이 문제는 2차원 격자에서 최단 거리를 구하는 문제다.각 칸에서 이동할 수 있는 방향은 다음 4가지다.상, 하, 좌, 우 모든 이동 비용이 1로 동일하므로, 최단 거리는 BFS로 구하는 것이 적합하다.DFS를 사용하면..

프로그래머스 Lv.2 | Python | [1차] 뉴스 클러스터링

1. 문제 정보 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 난이도: Lv.22. 문제 설명여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다.개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다.카카오 첫 공채..'블라인드' 방식 채용카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용카카오, 블라인드 전형으로 신입 개발자 공채카..

카테고리 없음 2026.05.08

프로그래머스 Lv.2 | Python | 전화번호 목록

1. 문제 정보 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr난이도: Lv.22. 문제 설명전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.제한 조건phone_bo..

Kubernetes Secret 생성과 Pod에서 사용하는 방법

1. Secret이란?Secret은 민감한 정보를 저장하는 Kubernetes 리소스다.DB 비밀번호API KeyAccess Token인증 정보Kubernetes에서 Secret과 ConfigMap이 Pod에 연결되고, 이후 Kubernetes API Server를 통해 ETCD에 저장되는 흐름을 나타낸다. 먼저 사용자는 Secret 또는 ConfigMap 리소스를 생성한다.Secret→ 비밀번호, API Key 같은 민감 정보 저장ConfigMap→ 일반 설정 값 저장이후 Pod는 필요한 Secret이나 ConfigMap을 참조하여 값을 사용하게 된다.그리고 Kubernetes 내부에서는:Pod → API Server → ETCD 구조로 리소스 정보가 저장·관리된다.여기서:API Server→ Kube..