[Bye 2025] 2025년을 돌아보며..
·
일상&인턴
25년도 마무리되었고 벌써 26년이 다가왔다. 23년도부터 매해 마무리 하면서 회고록을 작성하며 느끼는 것이 있다. 한 해 과정들을 정리하면서 스스로 성장한 부분과 pain 포인트를 것이 그 이상으로 중요하다는 것이다. 그러므로 2025년도 이어서 1년간 나의 여정들을 기록해보고자 한다. 학부 졸업과 면접들올해 초는 유독 더 춥게 느껴졌던 겨울이었다.늦은 밤까지 면접 스터디를 하며 최선을 다해 준비했던 몇몇 기업의 면접에서 연이어 최종 면접 탈락을 경험하며, 그 아쉬움을 쉽게 털어내지 못한 채 연초를 보냈다. 그러나 면접 과정을 거치며 조금씩 나만의 노하우가 쌓였고, 쓰디쓴 실패를 받아들이는 방법도 배울 수 있었다. 그 과정 자체가 지금 돌이켜보면 참으로 뜻깊은 경험이었다. 제3자의 시선에서 나의 이력서..
[K8s] RTSP 수신 Pods 환경에서 발생하는 Session Not Found 오류의 원인 분석 및 해결 방안
·
Kubernetes_쿠버네티스
최근 MLOps 팀에 신입으로 합류한 이후, 업무를 수행하는 과정에서 갑작스런 기술적인 이슈를 마주하게 되었다. 해당 문제를 디버깅하고 해결해 나가는 과정을 통해 많은 인사이트를 얻을 수 있었다. 이번 글에서는 그 과정과 해결 방안을 정리하여 공유하고자 한다. 서론영상 기반 AI 시스템에서는 IP 카메라로부터 RTSP(Real-Time Streaming Protocol) 기반의 실시간 스트림의 영상을 수신하여 이미지 단위로 저장하여 처리하는 방식이 널리 활용되어 왔다. 특히 Python 환경에서는 OpenCV와 FFmpeg의 조합을 통해 RTSP 스트리밍을 비교적 간단하게 구현할 수 있어, 학부 시절부터 나는 개인 프로젝트나 실습에서 손쉽게 활용된 경험이 있었다. 실무 프로젝트에서도 동일한 기술 스택이 ..
[AWS] AWS 기반 클라우드 인프라 구축: 고가용성 웹 서비스 환경 설계기
·
Public Cloud
개요이번 팀 프로젝트에서는 AWS의 주요 네트워크 및 컴퓨팅 서비스를 활용하여, 고가용성(High Availability)과 보안성(Security)을 모두 고려한 웹 서비스 인프라를 직접 설계하고 구현하는 것을 목표로 하였다. 팀장 역할을 수행하였고 5명의 팀원과 함께 구축을 위한 설계와 구축을 진행하고 기술도입 타당성을 소통하여 협력하였다 단순한 웹 애플리케이션 배포를 넘어, 실제 운영 환경을 기준으로 한 네트워크 아키텍처 구성에 중점을 두었다. 설계 초기부터 세 개의 가용 영역(Availability Zone)을 활용하여 퍼블릭 서브넷과 프라이빗 서브넷을 분리하였고, 이를 기반으로 VPC, 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이를 체계적으로 연결하여 신뢰성과 확장성을 갖춘 네트워크 인..
통신 3사 셋톱박스 설명서 기반 RAG 챗봇 구축기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
개요 본 프로젝트는 KT, SK브로드밴드, LG U+ 등 국내 주요 통신 3사의 셋톱박스 설명서를 기반으로, 사용자의 자연어 질문에 실시간으로 LLM을 통해 응답하는 RAG기반 기술지원 챗봇을 구축하는 것을 목표로 하였다. 이전 실습을 바탕으로 실무에 적용할 수 있는 주제를 통해 나의 기술 확장성을 키우고자 진행하였다. 기획 배경기존의 GPT 기반 응답은 인터넷 검색 결과에 의존하여 부정확하거나 일반적인 수준의 답변을 제공하는 한계가 있었다. 이에 따라, 실제 제품 설명서를 벡터 데이터베이스에 구축함으로써, 보다 신뢰도 높은 문서 기반 응답이 가능한 시스템을 구현하고자 하였다.개발 프로세스주제 선정 및 자료 수집각 통신사 공식 웹사이트 및 고객지원 채널을 통해 셋톱박스 관련 매뉴얼과 설명서를 수집하였다...
LangChain으로 구현한 KT 에이블스쿨 QnA RAG 챗봇 개발기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
이번 실습에서는 미래의 KT 에이블러를 위한 FAQ 챗봇을 직접 구축을 진행하였다. (해당 프로젝트는 openai의 api가 필요하다) 핵심 목표는 LangChain 프레임워크, OpenAI의 GPT-4o-mini 그리고 VectorDB중 하나인 FAISS 를 활용해 RAG(Retrieval-Augmented Generation) 기반의 파이프라인을 구현하는 것이었다.해당 실습를 통해 다양한 컴포넌트를 직접 설계하고 연동해보면서, RAG 구조의 흐름과 구성 요소 간의 상호작용에 대한 깊은 이해를 얻을 수 있었다. 이 글에서는 구축 과정에서 마주한 시행착오와 함께, 얻은 인사이트를 정리하고자한다.LangChain이란 무엇일까?LangChain은 LLM을 기반으로 한 애플리케이션을 효율적으로 구성할 수 있..
[DL] 스마트폰 센서 기반 인간 행동 분류 모델 구현 및 성능 평가
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
이번 포스팅에서는 인간 행동 인식(HAR: Human Activity Recognition) 기술 프로젝트를 진행하며 센서 데이터를 활용한 이진 및 다중 분류 모델을 설계하고 학습시키는 과정, 그리고 성능 평가를 진행한다.그 과정에서 겪었던 시행착오와 인사이트를 공유하고자 한다.데이터 설명 및 이해 활용한 데이터셋은 UCI Machine Learning Repository의 Human Activity Recognition Using Smartphones이다. UCI Machine Learning RepositoryThis dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This al..
SK텔레콤 유심 정보 유출 사고 : 오픈소스 BPF 백도어 공격 의심 사례
·
Kubernetes_쿠버네티스
2025년 4월, 대한민국 최대 고객이 사용하는 통신사인 SK텔레콤이 대규모 유심(USIM) 정보 유출 사고를 겪으며 소비자와 국내외 보안 업계에 큰 충격을 주었다. 이번 사고는 약 2,300만 명의 고객에게 영향을 미쳤으며, 특히 오픈소스로 공개된 BPF (Berkeley Packet Filter) 기반 백도어 공격 가능성이 제기되며 오픈소스 공격 기법에도 취약하다는 비판을 받고 있다. 이 글에서는 사건의 구체적인 흐름을 살펴보고, 인프라 보안 측면에서 BPF 백도어 공격의 원리를 분석해보고자 한다.사건 개요SK텔레콤 유심 데이터 유출 발생 일시: 2025년 4월 18일 밤유출 정보:가입자 식별번호 (IMSI)전화번호 (MSISDN)인증 키 (Ki 등 USIM 저장 정보)피해 규모: 약 2,400만 명..
실시간 객체탐지 YOLO란?
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
학부 시절, 나는 인공지능 분야에 입문하면서 객체 탐지(Object Detection) 알고리즘을 처음 접하게 되었다. 특히, 동영상 속에서 실시간으로 바운딩 박스를 그려 대상의 위치와 종류를 알려주는 기술은 내게 큰 충격과 흥미를 주었다. 최근에는 KT 부트캠프를 통해 기초 개념을 재정립할 기회를 얻었고, 그동안 잊고 지냈던 이론적 기반을 다시 학습하며 체계를 다지게 되었다. 특히, 인턴십 당시 YOLOv7을 실무에서 직접 다루었던 경험이 있어, 이번 글을 통해 YOLO의 원리를 정리하고, 객체 탐지에 대한 이해를 보다 깊이 있게 체득하고자 한다. (벌써 yolov12가 나왔다고 한다..) 컴퓨터 비전 분야에서 객체 검출 기술은 인공지능에게 "세상을 인식하는 눈" 같은 역할을 한다. 이미지나 영상 ..
RAG(Retrieval-Augmented Generation)와 Vector DB 란?
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
KT 에이블스쿨을 통해 다양한 기술 주제를 학습하던 중, 오랫동안 관심을 가져온 분야와 맞닿아 있는 한 가지 주제에 대해 깊이 있는 리서치를 진행하고자 한다. 이 주제는 과거 SK AI Summit에서 SKT의 발표를 통해 처음 접하게 되었고, 이후 여러 기업의 합격했던 실무 면접에서도 내가 프레젠테이션 과제로 다룰 만큼 개인적으로도 의미 있는 분야이다. 오늘날 대부분의 기업은 방대한 양의 정보를 PDF나 워드 문서와 같은 파일 형태로 관리하고 있다. 인사 기록, 시설 보안 자료, 운영 매뉴얼, 고객 응대 이력, 그리고 제품 설명서나 수리 매뉴얼까지 이 모든 문서들은 잘 정리되어 축적되어 있지만, 실제 업무에서는 검색과 접근이 어렵고, 결과적으로 '죽은 데이터'로 남는 경우가 많다. 예를 들어, 제품 ..
[ML] 분류(Classification)와 회귀(Regression)의 차이
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
데이터 분석 또는 머신러닝을 공부하면서 가장 처음 접하게 되는 개념 중 하나가 바로 "분류"와 "회귀"이다. 둘 다 입력 데이터로부터 결과를 예측한다는 공통점이 있지만, 예측하려는 값이 ‘카테고리’냐, ‘숫자’냐에 따라 적용되는 방식과 모델이 완전히 달라진다. 이 글에서는 직접 학습하면서 두 개념의 차이와 예시를 이해한만큼 설명하려고 한다.분류 (Classification)개념 : 분류는 데이터를 사전에 정의된 그룹(클래스) 중 하나로 나누는 작업이다.결국에 "이 데이터는 어떤 범주에 속하나요?"라는 질문에 답하는 문제이다. 예시는 다음과 같다이메일 분류스팸/일반0 또는 1동물 이미지 분류고양이/개/토끼고양이고객 이탈 예측이탈/유지이탈질병 진단질병A / 질병B / 정상질병B대부분의 의사결정, 위험탐지,..
Sequential vs Class: PyTorch 모델 정의 방법과 비교
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
PyTorch를 사용해 딥러닝 모델을 구성할 때 모델 선언 방식에는 크게 두 가지가 있다. 하나는 nn.Sequential을 이용하는 방법이고, 다른 하나는 nn.Module을 상속한 클래스로 모델을 직접 구현하는 방법이다. 이번 블로그에서는 각자 모델 선언하는 방법을 적어보고자 한다.   nn.Sequential 은 마치 자동조립 라인과 같고 nn.Module 은 맞춤 제작 공방 같은 느낌이라고 비유할 수 있다. nn.Sequentialnn.Sequential은 미리 정의된 레이어들을 순차적으로 쌓아 올리는 방식이다. 이 방법은 레고 조립설명서를 참조하여 부품을 순서대로 조립하는 것과 비슷하다. 선언하며 정해진 순서대로 레이어가 연결되며, 복잡한 로직 없이 단순하게 모델을 구성할 수 있다.  장점간결함..
데이터 분석의 첫걸음, CRISP-DM 제대로 알기
·
Computer Science (CS)
CRISP-DM(Cross Industry Standard Process for Data Mining)은 데이터 마이닝 및 분석 프로젝트를 수행할 때 널리 사용되는 표준 프로세스 모델이다. 다양한 산업 분야에서 활용할 수 있도록 설계된 이 모델은 비즈니스 목표 설정부터 모델 배포까지 전 과정을 체계적으로 구조화한다. CRISP-DM은 반복적인 프로세스이고, 특정 단계에서 문제가 발생하면 이전 단계로 돌아가 다시 조정할 수 있도록 구성되어 있다. 즉, 단순한 일방향 프로세스가 아니라, 지속적인 개선과 피드백을 반영하는 방식이다. 이번 글에서는 CRISP-DM의 6단계를 설명하고, 실제 프로젝트에서 이를 어떻게 적용할 수 있는지 예시를 들어 살펴본다. 🔹 CRISP-DM의 6단계 비즈니스 이해 (Busin..