2월 06, 2025

엔비디아, 스펙트럼-X를 통한 AI 스토리지 성능 혁신

엔비디아는 AI 스토리지 성능을 대폭 향상시키기 위해 스펙트럼-X(Spectrum-X) 네트워킹 플랫폼을 데이터 스토리지 패브릭으로 확장한다고 발표했습니다. 이번 확장을 통해 AI 모델 학습과 추론 속도를 가속화하고, 데이터센터의 AI 워크로드 처리 효율을 높일 계획입니다. 본 블로그 글에서는 엔비디아의 스펙트럼-X 기술과 그 영향에 대해 자세히 알아보겠습니다.


스펙트럼-X, AI 스토리지 네트워크의 혁신

AI 컴퓨팅 성능을 최대로 확대하려면 GPU 간 네트워킹뿐만 아니라 고속 스토리지 시스템도 안정적으로 작동해야 합니다. AI 학습 과정에서는 대량의 데이터를 신속하게 저장하고 필요할 때 불러오는 것이 중요합니다. 이를 위해 엔비디아는 스펙트럼-X 플랫폼을 통해 스토리지 성능을 최적화하고자 네트워크 인프라를 강화하고 있습니다.

 

엔비디아는 스펙트럼-X가 기존 네트워크 대비 스토리지 읽기 속도를 최대 48%, 쓰기 속도를 최대 41% 향상시킬 수 있다고 밝혔습니다. 이를 통해 AI 모델 훈련 과정에서 데이터 저장 및 검색 시간이 단축되어, 더 빠른 학습과 추론 작업이 가능해질 것입니다.

 

체크포인트 과정과 스펙트럼-X의 역할

AI 학습에서 모델이 일정 주기마다 현재까지의 훈련 데이터를 저장하는 '체크포인트(checkpoint)' 과정은 필수적입니다. 그러나 데이터양이 테라바이트(TB) 급일 경우 네트워크 부하가 증가하여 저장 시간이 지연되고 시스템 병목현상이 발생할 수 있습니다. 스펙트럼-X는 이러한 문제를 해결하기 위해 실시간 트래픽 분산과 네트워크 최적화 기능을 적용하여 스토리지 성능 저하를 방지합니다.

 

협력 및 적용 사례

엔비디아는 AI 스토리지 최적화를 위해 다양한 스토리지 기업들과 협력을 강화하고 있습니다. 협력 기업으로는 DDN, 바스트 데이터(VAST Data), 웨카(WEKA) 등이 있으며, 이들은 스펙트럼-X 기반 솔루션을 도입해 AI 스토리지 환경을 최적화하는 작업을 진행 중입니다.

 

이스라엘에 구축된 AI 슈퍼컴퓨터 '이스라엘-1(Israel-1)'도 스펙트럼-X의 성능을 검증하는 역할을 하고 있습니다. 엔비디아는 해당 슈퍼컴퓨터에서 GPU 클러스터가 스토리지에 접근할 때 발생하는 네트워크 트래픽을 분석한 결과, 모든 테스트 환경에서 기존보다 높은 성능을 기록했다고 밝혔습니다.

 

기술적 성과와 기능 개선

스펙트럼-X를 통해 엔비디아는 AI 스토리지 네트워크 성능을 극대화하고 있습니다. 데이터 전송 경로를 실시간으로 분석해 최적의 흐름을 제공하는 기술을 적용하여 데이터 저장과 검색 속도를 크게 개선했습니다. 또한 AI 학습 과정에서 발생하는 네트워크 병목현상을 줄이기 위해 동적 트래픽 분산 기능을 강화하였습니다. 다수의 GPU가 동시에 스토리지에 접근하는 상황에서도 일정한 속도를 유지하며 안정적인 데이터 처리가 가능하도록 설계되었습니다.

 

스펙트럼-X의 미래 전망

엔비디아는 AI 모델이 대형화되고 데이터가 멀티모달(다양한 형태)로 증가함에 따라, 스토리지 네트워크 최적화가 AI 성능을 좌우하는 핵심 요소가 될 것으로 전망하고 있습니다. 이에 따라 스펙트럼-X를 기반으로 AI 인프라의 전반적인 성능을 끌어올리기에 집중할 계획입니다. 이러한 기술 혁신은 엔비디아의 AI 워크로드 처리 능력을 한층 강화하고, 나아가 AI 연구 및 개발의 새로운 기준을 제시할 것입니다.


2월 05, 2025

정부의 AI·SW 교육 강화 및 청년 구직자 지원 계획

정부는 청년 구직자들이 디지털 기술 분야에서 미래의 일자리를 찾을 수 있도록 인공지능(AI) 및 소프트웨어(SW) 교육을 확대하고 있습니다. 이를 통해 5만 명 이상의 청년들이 더 나은 기회를 얻을 수 있게 될 것입니다. 이번 블로그 글에서는 정부의 구체적인 계획과 기대 효과에 대해 자세히 살펴보겠습니다.

 

디지털 교육 강화를 위한 협약 체결

과학기술정보통신부와 고용노동부는 5일 서울 강남구 이노베이션 아카데미에서 '청년들에게 새로운 기회를 주는 디지털(AI·SW) 교육 강화'를 위한 업무협약을 체결했습니다. 이날 행사에는 두 부처 장관이 참석하여 현장간담회를 주재하며, 디지털 교육 강화 방안에 대해 논의했습니다.

 

고용노동부는 'K-디지털 트레이닝' 등의 디지털 직업훈련 교육을 확대하고, 과학기술정보통신부는 맞춤형 교육을 제공하여 실무 중심의 인재 양성 사업을 강화할 계획입니다. 이를 통해 과학기술정보통신부는 1만 명, 고용노동부는 4 5천 명 이상의 청년들에게 혜택을 제공할 것으로 예상하고 있습니다.

 

디지털 직업훈련과 심화 교육의 연계

과학기술정보통신부는 'K-디지털 트레이닝' 등 고용노동부가 운영하는 디지털 직업훈련 프로그램 수료생이 원할 경우, 과기정통부의 심화 과정에 쉽게 참여할 수 있도록 가점을 부여할 예정입니다. 이는 청년 구직자들이 더 높은 수준의 교육을 받을 수 있도록 지원하는 방식입니다.

 

또한, 두 부처는 고용노동부의 'K-디지털 트레이닝' 운영 기업을 발굴하여, 과기정통부의 교육 시설에서 훈련 공급을 확대할 계획입니다. 과기정통부의 투자로 운영되는 SW 중심 대학이 고용노동부의 'K-디지털 트레이닝' 기관에 참여할 경우, 심사 과정에서 우대 받을 수 있도록 할 예정입니다.

 

일경험 제공 및 컨설팅 지원

과기정통부와 고용노동부는 수시·경력직 중심의 채용 시장 동향에 대응하여, 일경험 제공을 희망하는 기업을 발굴하고, 컨설팅을 제공하는 데 협력할 계획입니다. 이는 청년들이 실질적인 근무 경험을 쌓을 수 있도록 지원하는 중요한 방안입니다.

 

청년 고용시장 현황과 디지털 교육의 필요성

최근 '쉬었다'고 응답하는 청년이 늘어나고 있으며, 첫 구직 기간이 길어지는 등 청년들이 체감하는 고용 시장의 어려움이 심화되고 있습니다. 이에 따라, 정부는 성장 가능성이 높은 디지털 신기술 분야에 청년들이 더 많이 진출할 수 있도록 디지털 교육을 강화하기로 했습니다.

 

과기정통부와 고용노동부는 디지털 교육 강화를 통해 청년들이 현대 사회에서 필수적인 기술을 습득하고, 미래의 일자리를 찾을 수 있도록 돕고자 합니다. 이를 통해 청년들의 일자리 기회가 확대되고, 더 나은 미래를 설계할 수 있는 기반이 마련될 것입니다.

 

정부의 이번 AI·SW 교육 강화 정책은 청년 구직자들에게 새로운 기회를 제공하고, 디지털 기술 분야에서 경쟁력을 갖추도록 돕는 중요한 방안입니다. 과기정통부와 고용노동부의 협력을 통해 다양한 교육 프로그램이 제공될 예정이며, 이를 통해 수많은 청년들이 혜택을 받을 것으로 기대됩니다.

 

정부는 이와 같은 디지털 교육 강화 정책을 통해 청년들이 현대 사회에서 필수적인 기술을 습득하고, 미래의 일자리 시장에서 경쟁력을 갖출 수 있도록 지원할 것입니다. 앞으로도 이러한 정책이 지속적으로 추진되어, 청년들이 더 나은 미래를 설계할 수 있기를 기대합니다.


2월 05, 2025

중국발 '딥시크 쇼크'와 국내 IT 기업의 AI 고도화 전략

최근 중국발 '딥시크 쇼크'가 국내 IT 기업들에게 큰 파장을 일으키고 있습니다. 네이버와 카카오는 AI 기술을 고도화하고 경쟁력 강화를 위해 발 빠르게 대응하고 있습니다. 딥시크의 AI 추론 모델 '딥시크-R1'의 등장과 오픈AI와의 협력은 이들 기업에게 새로운 기회와 도전을 동시에 제공합니다. 이번 블로그 글에서는 이와 관련된 구체적인 내용과 향후 전망을 살펴보겠습니다.

 

딥시크의 등장과 국내 후발주자들의 기회

딥시크의 AI 추론 모델 '딥시크-R1'은 오픈소스로 공개되어 누구나 무료로 기술을 벤치마킹할 수 있게 되었습니다. 이는 그동안 제한된 그래픽처리장치(GPU)와 막대한 투자 비용으로 인해 AI 개발에 어려움을 겪던 국내 기업들에게 호재로 작용하고 있습니다.

 

5 IT 업계에 따르면, 딥시크가 개발에 투입한 엔비디아의 'H800 GPU' 2048개는 한국 기업들도 비용 면에서 충분히 감당할 수 있는 수준으로 알려졌습니다. 이는 국내 기업들이 AI 개발에 더 많은 자원을 투입할 수 있게 할 뿐만 아니라, 기술 격차를 줄이는 데에도 기여할 것으로 예상됩니다.

 

카카오의 AI 전략과 오픈AI와의 협력

카카오는 국내 기업 중 처음으로 오픈AI와 손을 잡고 AI 서비스 개발에 나섰습니다. 딥시크의 저비용·고효율 AI 모델을 바탕으로, 카카오는 오픈AI와의 동맹을 통해 AI 시장에서의 경쟁력을 높이고 있습니다. 오픈AI CEO인 샘 올트먼은 서울 더플라자호텔에서 열린 카카오 미디어데이에서 "개발 비용이 지난해 대비 올해 10배가량 줄었다"고 말하며, 범용 인공지능(AGI)의 장점을 모두에게 제공하기 위한 미션을 강조했습니다.

 

오픈AI는 카카오가 5000만 사용자를 확보한 다양한 서비스들을 보유하고 있다는 점을 매력적으로 판단했습니다. 카카오는 AI 챗봇, 검색, 모빌리티, 금융, 커머스 등 여러 분야에서 AI 기반 서비스를 발전시킬 계획입니다. GPT 등 최신 AI API를 활용하여 카나나 서비스와 같은 다양한 AI 프로젝트를 출시할 예정입니다. 양사는 기술 협력뿐만 아니라 공동 상품 개발에도 나서기로 했습니다.

 

정신아 카카오 대표는 "비용 부담을 줄이면서도 한국에 다양한 AI 서비스를 출시할 것"이라고 밝혔습니다. 카카오는 AI 기술을 통해 B2C 분야에서 경쟁력을 강화하고, 사용자 경험을 개선하며 다양한 혁신적인 서비스를 제공할 계획입니다.

 

네이버의 AI 전략과 글로벌 진출

네이버 역시 AI 기술 개발에 집중하고 있습니다. 네이버의 창업자 겸 글로벌투자책임자(GIO)인 이해진은 경영에 복귀하여 AI 개발을 지휘할 계획입니다. 네이버는 한국형 생성형 AI 모델인 '하이퍼클로바X'를 내놓았지만, GPT나 딥시크-R1 등과 비교해 경쟁력이 떨어진다는 평가를 받았습니다.

 

이해진의 경영 복귀는 네이버의 글로벌 진출과 AI 경쟁력 강화를 위해 중요한 발걸음입니다. 네이버는 소버린 AI 생태계를 구축하기 위해 글로벌 빅테크와 협력하고, AI를 기존 사업 부문인 검색과 쇼핑에 접목하는 데 집중할 것입니다. 네이버의 이사회는 이해진의 사내 이사 복귀 안건을 주주총회에 올릴 예정이며, 이는 네이버의 AI 경쟁력 강화와 글로벌 진출에 중요한 역할을 할 것입니다.

 

네이버 관계자는 "확인할 수 있는 내용이 없다"고 밝히며 세부적인 내용에 대해서는 말을 아꼈습니다. 그러나 네이버가 AI 기술 개발에 더욱 집중할 가능성은 매우 높습니다.

 

네이버와 카카오의 AI 기술을 고도화 전략 및 전망

중국발 '딥시크 쇼크'는 국내 IT 기업들에게 도전과 기회를 동시에 제공하고 있습니다. 네이버와 카카오는 AI 기술을 고도화하고 경쟁력을 강화하기 위해 발 빠르게 대응하고 있습니다. 카카오는 오픈AI와의 협력을 통해 AI 시장에서의 입지를 다지고 있으며, 네이버는 글로벌 진출과 AI 생태계 구축을 위해 이해진 창업자의 경영 복귀를 준비하고 있습니다.

 

앞으로의 전망은 밝습니다. 국내 IT 기업들이 AI 기술을 활용하여 글로벌 시장에서 경쟁력을 확보하고, 사용자들에게 더욱 혁신적인 서비스를 제공할 수 있을 것으로 기대됩니다. AI 기술 개발에 대한 지속적인 투자와 협력은 국내 기업들이 글로벌 무대에서 성공할 수 있는 중요한 요소가 될 것입니다.


2월 05, 2025

카카오, 오픈AI와 전략적 제휴로 AI 사업 강화

카카오가 인공지능(AI) 분야에서 새로운 전환점을 맞이했습니다. 카카오는 글로벌 AI 시장에서 중요한 위치를 차지하고 있는 오픈AI와의 협력을 통해 본격적인 AI 사업을 시작하며 주목받고 있습니다. 이번 블로그 글에서는 카카오의 AI 사업 전략과 오픈AI와의 협력 내용, 그리고 이로 인한 기대 효과에 대해 자세히 살펴보겠습니다.

 

카카오와 오픈AI의 전략적 제휴

카카오는 5일 인공지능 분야에서 세계적으로 유명한 오픈AI와의 전략적 제휴를 발표했습니다. 오픈AI가 한국 기업과 제휴를 맺은 것은 이번이 처음으로, 카카오는 이를 통해 AI 기술 역량 강화와 함께 시장의 기대감을 높였습니다. 카카오의 정신아 대표는 "오픈AI의 최신 기술을 카카오의 다양한 AI 프로젝트에 활용할 것"이라고 밝혔습니다.

 

협업의 구체적인 내용

카카오와 오픈AI 간의 협업은 두 가지 주요 축으로 이루어집니다.

 

우선, AI를 통한 주요 서비스 고도화입니다. 카카오는 오픈AI의 챗GPT 등 최신 기술을 활용하여 자사의 주요 서비스를 한층 더 발전시킬 계획입니다.

다음은 공동 제품 개발입니다. 양사는 공동으로 새로운 AI 기반 제품을 개발할 예정입니다. 이는 카카오가 기존에 공개한 'AI 오케스트레이션' 전략의 연장선으로, 여러 AI 모델을 조화롭게 운영하여 생산성을 높이고 비용을 절감하는 것입니다.

정신아 대표는 사용자 일상에 스며들 수 있는 다양한 AI 서비스를 연내 출시할 계획임을 밝혔습니다.

 

시장의 긍정적 평가

카카오의 이번 AI 전략은 시장에서 긍정적으로 평가되고 있습니다. 하나증권 이준호 연구원은 "적극적으로 외부 AI 모델을 활용하여 기존 서비스를 개선하고 새로운 서비스를 출시하는 방향은 긍정적"이라고 분석했습니다. 또한, AI 모델 비용이 감소하는 현시점에서 상용화 이후 비용 우려도 제한적일 것으로 전망했습니다.

 

키움증권의 김준구 연구원은 "글로벌 빅테크와의 협력을 통해 관련 생태계에 진입함으로써 경쟁사 대비 우위를 차지할 수 있다"고 평가했습니다.

 

오픈AI와 협업의 첫 결과물, '카나나'

카카오와 오픈AI의 협업의 결과물 중 하나로 예상되는 '카나나'는 이용자와 상호작용하는 AI 메이트를 표방하는 에이전트 서비스입니다. 카카오의 대표 AI 서비스로 자리 잡을 가능성이 높으며, 이미 한 차례 사내 비공개 테스트를 거쳐 현재 일반인 대상 베타 테스트를 위한 고도화 작업 중입니다.

 

정신아 대표는 "카카오톡 등 높은 수준의 서비스를 제공하기 위해 (테스트에서) 발견된 개선점을 반영하고 있으며, 올해 안으로 정식 출시할 계획"이라고 밝혔습니다. 또한, 사용자 만족도를 기준으로 필요한 경우 전략을 수정해 나갈 것이라고 덧붙였습니다.

 

글로벌 AI 기술 경쟁에서의 카카오의 위치

전 세계적으로 AI 기술 경쟁이 심화되는 가운데, 카카오는 오픈AI와의 협력을 통해 보다 경쟁 우위를 확보할 수 있을 것으로 기대됩니다. 카카오는 엔터테인먼트와 게임즈 등 콘텐츠 사업에서의 부진을 겪고 있어 AI 사업이 새로운 돌파구가 될 수 있습니다.

 

정신아 대표는 "오픈AI와의 협업은 카카오가 국내에서 가장 앞선 AI 서비스를 제공할 수 있는 환경을 확보했음을 의미하며, 한국을 이해하는 카카오와 글로벌 경험을 가진 오픈AI의 협력으로 큰 시너지를 창출할 수 있을 것"이라고 전망했습니다.

 

오픈AI의 파트너십을 통한 카카오 AI 사업의 새로운 전환점

카카오와 오픈AI의 전략적 제휴는 카카오의 AI 사업에 새로운 활력을 불어넣고 있습니다. 카카오는 오픈AI의 고성능 AI 모델을 활용하여 서비스를 고도화하고, 공동 제품 개발을 통해 새로운 AI 기반 서비스를 선보일 계획입니다. 이번 협력이 카카오의 실적과 주가 반등에 긍정적인 영향을 미칠 것으로 기대되며, 앞으로의 성과를 주목할 필요가 있습니다.


1월 17, 2025

Oz Report Null Dataset일 경우에도 출력되도록 데이터밴드 설정 (데이터밴드 반복횟수)

1. Oz Report Databand의 데이터셋


Oz Report의 데이터밴드에는 데이터셋을 등록해야 하는데, 만약 해당 데이터셋이 없다면 아예 데이터밴드 전체의 값이 나오지 않는 현상이 발생한다. 

2. 해결법

이를 위해서는 반복횟수를 1로 설정해두면 된다. 

데이터밴드의 반복 횟수는 데이터 건수보다 작은 값으로 설정하면 원래 데이터 건수만큼 출력하고, 데이터 건수보다 많은 값으로 설정하면 빈 라벨이 출력된다. 

따라서 데이터가 null인 경우 데이터 건수가 0이니 그보다 큰 1로 데이터 반복 횟수를 설정하면 아예 데이터밴드가 나오지 않는 현상을 방지할 수 있다. 


데이터밴드의 반복횟수를 설정하여 곤란한 상황에 대비할 수 있으니 유용하게 활용하면 좋다. 나는 가장 첫 페이지 느낌으로 데이터가 없는 경우에도 항상 첫 페이지는 나와야 하는 상황에 유용하게 활용한 속성이다. 

12월 19, 2024

Red-Black Tree 속성/검색/삽입/삭제, 시간복잡도

1. Red-Black Tree


 이진트리 중 Binary Search Tree인 경우에는 한쪽에만 노드들이 치우쳐 있어 균형잡힌 트리가 만들어지지 않을 수 있다. 그렇다면 탐색을 하기 위한 시간이 늘어나게 되는 단점이 있는데, 이를 보완하여 균형잡힌 트리를 만들고자 만들어진 자료구조가 Red-Black Tree라는 것이다.

2. Red-Black Tree 정보

Red-Black Tree는 각 노드의 색깔을 red, black 중에 선택하여, 주어진 조건을 만족시켰을 때 성립하는 Tree이다.
Red-Black Tree의 성립조건은 다음과 같다.
 
  1. 루트 노드는 언제나 Black이다.
  1. Leaf 노드 (말단 노드) 또한 언제나 Black이다.
  1. 만약 노드가 Red라면, 그 노드의 자식들은 언제나 Black이다. 즉, red node가 연속으로 올 수 없다.
  1. 루트에서 말단 노드까지의 Black node의 개수는 언제나 동일하다. 
 Red-Black Tree의 예시, 출처: wikipedia
위 그림이 Red-Black tree의 예시라고 할 수 있다. 여기서 NIL은 말단 노드를 뜻하고 위의 그림을 보면 red black tree의 property를 모두 만족시켰다는 것을 잘 알 수 있다. 그러면 이제 Red-Black Tree에서의 검색, 삽입, 삭제를 어떻게 구현하는지 살펴보자. 


1. 검색

Red-Black Tree에서의 검색은 일반 Binary Search Tree에서의 검색과 동일하다. 만약 parent node보다 찾으려는 숫자가 작다면 왼쪽 child node로 이동해주고, 숫자가 크다면 오른쪽 child node로 이동해주면 된다. 
검색의 경우는 Red-Black Property가 존재한다고 해서 달라지는 부분이 없기 때문에 삽입과 삭제에 집중해보자.

2. 삽입 (Insertion) 

먼저 노드를 삽입하려고 하면 그 노드의 색깔을 정해주어야 한다. 우리는 Red-Black Tree에서 삽입할 노드는 무조건 Red라고 가정하고 시작한다. 
여기서 아무 문제없이 삽입이 잘 되는 경우는 삽입하려고 하는 노드의 부모 노드의 색깔이 black일 경우이다. 왜냐하면 Red-Black property 3번에 의해 Red 위에 Red가 나올 수 없기 때문에 Red 위의 부모 노드가 Black일 경우에는 아무런 추가 조치 없이 삽입이 가능해진다. 
 
삽입에서 문제가 없는 경우
즉 위와 같은 그림에서는 전혀 문제가 되지 않는다. 여기서 하얀색으로 표현한 것은 상황에 따라 Red/Black이 되는 경우인데 Red/Black으로 칠해진 노드만 집중해서 보기 위해서 다른 노드는 하얀색으로 표현해놓았다.
 
하지만 문제가 되는 경우는 삽입하려는 부모의 노드가 빨간색일 경우이다. 
삽입에서 문제가 되는 경우
위 그림처럼 Red node가 연속으로 오게 된다면 Red-Black Property 3번을 충족시키지 못한다. 따라서 이 경우에는 추가적인 조치가 필요하다. 
 
이를 위해 우리는 경우를 몇 가지로 나누어볼 수 있다. 
기본골격
위와 같은 기본 구조에서 p와 대칭점에 있는 노드를 우리는 s라고 부를 것이다. sibiling, 형제노드의 약자이다. s 노드가 Red냐 Black이냐에 따라서 삽입의 조정 방법이 달라진다. 
 

s가 Red일 경우 

  • 먼저 s가 Red일 경우부터 살펴보겠다.


s가 Red일 경우


위 그림처럼 생각해볼 수 있는데 이 경우에는 아래처럼 바꾸어주면 된다.

 



즉 p와 s 노드를 둘 다 Black으로 바꾸어 주고 P의 parent node를 red로 바꾸어주는 것이다. 하지만 만약 p^2의 parent node 또한 red 였다면 추가적으로 문제가 생긴다. 이 경우에는 p^2 노드를 recursive하게 하여 추가적인 조정을 해주어야 한다. 

 

  • 다음으로 만약 s 노드는 Black이고 추가하려는 x 노드가 p의 left child일 경우를 살펴보자



즉, 위와 같은 경우라고 볼 수 있다. 이런 경우에는 아래의 그림처럼 조정해주면 된다. 



즉 p 노드를 중심으로 right rotate를 시키고 p 노드의 색깔을 red 에서 black으로 바꾸어주면 되는 것이다. 

 

  • 마지막으로 s 노드가 black이면서 x는 p의 right child인 경우를 살펴보자



위 그림과 같은 경우를 의미한다. 이 경우에는 아래와 같이 변경해주면 된다.



하지만 이런 식으로 변경해도 x과 p가 연속적으로 red가 나타났기 때문에 문제가 된다. 하지만 이 경우는 위에서 s 노드가 black이고 새로운 노드가 left child 인 경우에 해당되기 때문에 두번째 경우로 이동해서 추가적으로 처리해주면 된다. 

 


3. 삭제

다음으로는 조금 더 까다로운 Red-Black Tree에서의 삭제를 알아보겠다. 

만약 삭제하려는 노드가 Red면 그 노드만 삭제해주면 되고, Black이더라도 child node가 Red라면 해당 노드를 삭제해주고 child의 색깔을 Black으로 바꿔주면 아무 문제가 없다. 

 

문제가 되는 경우는 삭제하려는 노드와 그 자식 노드의 색깔이 모두 다 Black일 경우이다. 왜냐하면 Red-Black tree property 4번에 의해 leaf 노드까지의 black node의 개수는 모두 일정해야 하기 때문이다. 하지만 Black 노드를 하나 삭제해 버린다면 그러한 property가 깨지기 때문에 문제가 생기는 것이다. 그래서 삭제의 경우에도 몇 가지 경우를 나누어보겠다. 

 

아래 그림에서 x 노드는 Black인 노드 m을 삭제하고 난 이후의 child node를 의미하게 된다. 하지만 Black node의 개수가 하나 모자라기 때문에 옆에 -1로 표시하겠다. 

 

Case 1.



삭제한 이후의 검정색 노드가 하나 모자라는 노드를 x로 표시했을 때 위와 같은 그림이 case 1이다. s 는 Black이고 s의 left child와 right child 노드가 모두 Black인 경우다. 이 경우는 가장 간단한 경우로 아래와 같이 조정해주면 된다.

 



위와 같이 조정해주면 p 노드가 Black으로 바뀌면서 x 노드까지의 경로에 모자랐던 black 노드의 개수를 하나 늘려줌으로써 문제가 해결된다. 

 

case 2.



case1과 유사하지만 이번에는 p 노드까지 모두 다 Black이다. 



이번에도 s 노드를 Red로 바꾸어주지만 Black 노드가 하나 부족한 것이 p node로 전이되었다고 할 수 있다. 그러므로 여기서는 p 노드를 문제 노드로 놓고 재귀적으로 또 문제를 해결해주어야 한다. 

 

case 3. 



s 노드는 black이고 r node가 red인 경우를 뜻한다. 여기서도 마찬가지로 하얀색 노드는 red/black이 와도 괜찮다는 뜻이며 red/black 각각의 경우에 대해 대입해보면 된다. 여기서는 묶어서 한 가지 상황으로 처리한 것이다. 이 경우에는 아래의 그림과 같이 left rotate를 시켜주면 된다. 

 



여기서 하얀색 노드는 이전의 색깔을 그대로 따라간다는 의미이다. 

 

case 4. 



이번에는 위와 반대로 r이 Black이고 L이 red인 경우이다. 이 경우에는 아래와 같이 rotate를 시켜준다. (s를 기준으로 하고 rotate를 시켜주는 것임)

하지만 위와 같이 변경하여도 x에 여전히 -1이 있는 것을 볼 수 있을 것이다. 하지만 이 경우에는 이제 rotate를 시켰으므로 case 3으로 이동할 수 있다는 것을 알 수 있다. case 3으로 가서 똑같이 한번 더 조정을 해주어야 한다.

 

case 5.



마지막 케이스다. 마지막 케이스는 s node가 red 인 경우이다. 이 경우에는 아래와 같이 조정하며 위의 케이스들 중의 하나로 다시 이동하게 된다. 

 




3. Red-Black Tree 시간복잡도

검색의 시간복잡도: O(logn) 균형잡힌 트리이기 때문

삽입의 시간복잡도: O(logn) 계속 재귀적으로 호출하면서 루트까지 올라갈 수 있기 때문

삭제의 시간복잡도: O(logn) 계속 재귀적으로 호출하면서 루트까지 올라갈 수 있기 때문


12월 19, 2024

[유튜브 동영상 편집] 다빈치 리졸브 편집 기본기능 + 동영상 끌어오기

1. 다빈치 리졸브 프로그램 동영상 추가

 다빈치 리졸브 프로그램을 시작하고 동영상을 추가하는 과정까지 설명을 해보도록 하겠다.


먼저 프로그램을 실행해준다.


그러면 하단에

 

 

위와 같은 버튼 세개가 있을텐데 이중에서 New Project를 클릭해서 새로운 프로젝트 파일을 생성해준다.

 

프로젝트 이름 생성

위와 같이 그러면 Create New Project라는 새로운 창이 뜰텐데 여기에 파일 제목을 생성하고 Create 버튼을 눌러준다. 참고로 여기 파일 제목은 유튜브 제목과는 무관하니 편한대로 설정해주면 된다.

 




동영상 가져오기 루트

다음으로는 동영상을 가져와야 한다. File -->  Import File --> Import Media를 눌러주면 내 기기에 있는 동영상 파일을 가져올 수 있다. 나는 구글드라이브에 업로드해서 가져오고 있다.


 

그렇게 해서 원하는 파일을 클릭하게 되면,

frame rate

 

위와 같이 새로운 창이 뜰때가 있는데 프레임 속도를 맞춰주겠다는 것이므로 change를 클릭해주면 된다. 

 

그러면

 

Media Pool 예시

위와 같이 Media Pool이라는 부분 아래 원하는 동영상이 들어간 것을 알 수 있다. 

 


다음으로 동영상을 원하는 트랙에 가져다 넣어야 하는데,

cut -> edit

 

그러기 위해서 다빈치 리졸브 하단부에 보면 위 그림처럼 버튼을 볼 수 있다. 여기서 편집을 위해서는 Cut 탭에서 Edit 탭으로 바꾸어주자. Edit 탭을 클릭해주면 된다.


다음으로 Edit 페이지가 나왔다면

동영상 끌어오기 예시

위와 같이 동영상을 타임라인 부분에다가 끌어다가 가져오자. 

그러면 위와 같이 video, audio 트랙이 생길 것이다. 

만약 audio 가 없는 영상이라면 audio 트랙에는 아무것도 들어가지 않을 것이다.


만약 추가로 음악을 넣고 싶다면 audio 트랙에 음악 파일을 끌어다가 넣어주면 된다. audio 파일도 동영상을 가져온 것처럼 똑같이 File -> Import File-> Import Media에 들어가서 가져와 주면 Media Pool에 등록된 것을 볼 수 있을 것이다.


자막을 넣고 동영상을 자르는 것은 다음 포스팅에서 다루어보도록 하겠다.