KB국민은행 IT부문 하계 체험형 인턴십에 지원한 동기와, 인턴십을 통해 이루고자 하는 목표를 구체적으로 작성해 주시기 바랍니다.

[철저한 데이터 신뢰성으로 금융 IT의 기본을 다지다] 금융 IT의 핵심은 완벽한 데이터 신뢰성과 안정적인 시스템 구조에 있다고 생각합니다. 또한 모든 고객의 자산과 민감한 금융 정보를 다루는 KB국민은행은 가장 고도화된 백엔드 인프라와 데이터 관리 체계를 요구하는 곳이라고 생각합니다. 대학 시절 다양한 데이터를 정제하고 안정적인 서버 아키텍처를 설계하는 과정에서 데이터 구조의 최적화가 서비스 전체의 신뢰도를 결정한다는 것을 깨달았습니다. 대규모 데이터를 다루는 KB국민은행 IT부문에서 실무 시스템의 흐름을 배우고, 안정적인 금융 서비스 제공에 기여하고자 지원했습니다. [MediCheck: 타협 없는 검증과 아키텍처 개선 경험] 건강보험심사평가원에서 제공하는 공공 데이터를 활용한 병원 정보 서비스인 'MediCheck' 개발 당시, 백엔드 설계와 데이터베이스 구조화를 전담하며 데이터 신뢰성을 확보한 경험이 있습니다. 건강보험심사평가원에서 제공하는 3개의 다른 공공 API를 사용자에게 제공하는 과정에서, 외부 API의 호출 속도가 지나치게 느리고, 각 API의 형식이 달라 가져온 API가 충돌하는 문제가 발생했습니다. 대량의 데이터를 매번 실시간으로 불러오는 방식은 사용자의 앱 사용에 부정적인 영향을 줄 것이라 생각했습니다. 이러한 문제를 해결하기 위해 제3정규화를 수행한 후, DB를 일종의 '캐시 레이어처럼 활용하는 아키텍처를 사용했습니다. 실시간 호출 대신 변경 사항이 발생했을 때만 외부 API를 호출하여 동기화하도록 로직을 전환했습니다. 또한, 데이터의 무결성을 검증하기 위해 엄격한 예외 처리 로직을 구축했습니다. 그 결과 시스템 부하를 줄이면서도 데이터의 일관성을 유지할 수 있었습니다. [인턴십을 통해 이루고자 하는 목표] 이번 인턴십을 통해 두 가지 목표를 달성하겠습니다. 첫째, 교내 프로젝트 수준을 넘어 실제 금융권에서 작동하는 대용량 트래픽 처리 기법과 보안 아키텍처의 실무 표준을 습득하겠습니다. 둘째, KB국민은행의 현업 선배님들과 소통하며 비즈니스 요구사항이 어떻게 IT 아키텍처와 코드로 구현되는지 프로세스를 체득하겠습니다. '타협하지 않는 검증 태도'와 데이터 엔지니어링 역량을 바탕으로, KB국민은행 IT부문의 든든한 일원이 되겠습니다.

기존 방식에서 벗어나 새로운 시도를 통해 문제를 해결하거나 성과를 창출한 경험을 작성하고, 그 과정에서 본인이 구체적으로 어떻게 행동하였는지와 그 결과를 작성해 주시기 바랍니다.

[유학생을 위한 AI 기반 알레르기 방지 솔루션 구축] 교내 외국인 유학생들의 안전한 식생활을 위해 단순 텍스트 매칭이라는 기존 방식에서 벗어나, 대형언어모델(LLM) 기반의 맞춤형 '알레르기 식단 가이드' 시스템을 도입한 경험이 있습니다. 기존의 단순 단어 필터링 방식은 가공 식품의 복잡한 원재료명이나 비정형화된 식단 메뉴판의 텍스트 추출 오류를 완벽히 걸러내지 못해 유학생들에게 실질적인 도움을 주기 어려웠습니다. 저는 위험 요소를 하드코딩하는 대신 LLM API, 크롤러, 비전 기술을 융합한 아키텍처를 설계했습니다. 먼저 파이썬 크롤러로 학교 식단 데이터를 실시간 수집한 후, LLM이 식단 명칭과 텍스트를 분석하여 숨겨진 알레르기 유발 요소와 세부 재료를 추측하도록 프롬프트 체인을 구축했습니다. 또한, 유학생이 이름 모를 음식 사진을 업로드하면 AI Vision이 메뉴를 자동 인식하고 유학생의 알레르기 프로필과 비교·분석하는 기능을 구현했습니다. 데이터의 불확실성으로 인해 AI의 판단 신뢰도가 기준치보다 낮을 때는 무리하게 결과를 도출하는 대신, 유학생이 조리원이나 학교 관계자에게 직접 확인할 수 있도록 다국어 질문 번역문과 문의 가이드를 즉시 제공하는 예외 처리 흐름을 추가했습니다. 그 결과, 복잡한 메뉴 속 알레르기 유발 물질을 탐지하고 동시에 철저한 예외 방어 로직으로 유학생들의 식단 불안감을 해소하는 성과를 거두었습니다. 기술적 한계를 유연한 아키텍처와 사용자 중심의 기능으로 극복한 경험이었습니다.

본인의 실수나 부족함을 인지한 이후 대처한 경험을 구체적으로 작성하고, 그 과정에서 얻은 교훈도 함께 작성해 주시기 바랍니다.

[과도한 신뢰를 경계하고 데이터 검증의 기준을 세우다] 라즈베리파이와 Tensorflow를 사용한 이미지 기반 '자동 쓰레기 분류 시스템'을 개발할 당시, 모델의 성능 지표에만 매몰되어 실체화 단계에서의 예외 상황을 간과하는 실수를 범한 적이 있습니다. 초기에 인공지능 모델을 학습시킨 후, 테스트 데이터셋에서 95%라는 높은 정확도가 도출되자 개발이 순조롭게 완료되었다고 생각했습니다. 그러나, 정식 테스트를 위해 통제되지 않은 환경에서 촬영된 새로운 쓰레기 이미지를 입력하자, 학습 데이터와 조금만 구도가 다르거나 쓰레기에 오염물이 존재한다면 오분류율이 급격히 증가하는 치명적인 문제가 발생했습니다. 원인을 분석한 결과, 특정 배경이나 정형화된 각도에 모델이 과적합 되어 있었다는 문제점을 발견했습니다. 문제를 인지한 즉시 대처에 나섰습니다. 기존 데이터를 전면 재검토하고, 이미지 증강 기법을 도입하여 회전, 반전, 명도 변화 등 다양한 환경을 모사한 데이터를 추가 구축했습니다. 또한, 교차 검증 프로세스를 엄격하게 도입하여 특정 데이터셋에 모델이 종속되지 않도록 학습 과정을 전면 수정했습니다. 이 과정을 통해 최종적으로 변칙적인 환경에서도 안정적인 분류 성능을 확보할 수 있었습니다. 지표의 화려함보다 실제 작동 환경에서의 견고함이 훨씬 중요하다는 교훈을 얻었으며, 이후 어떤 시스템을 설계하든 철저한 예외 케이스 검증을 우선시하는 습관을 지니게 되었습니다.

다양한 배경이나 의견을 가진 사람들과 협업하는 과정에서 갈등을 극복하거나 시너지를 창출한 경험을 작성해주시기 바랍니다.

[데이터 무결성을 위한 아키텍처 설득과 협업] 교내 학생들을 대상으로 한 '실시간 위치 기반 중고마켓' 플랫폼을 개발하며, 데이터 무결성을 확보하는 방식을 두고 프론트엔드 팀원과 겪은 갈등을 논리적인 소통으로 해결한 경험이 있습니다. 당시 중고 상품의 상태(판매중/예약중/판매완료)가 변경되는 기능을 구현해야 했습니다. 프론트엔드 측은 구현이 비교적 단순하고 개발이 쉬운 '수동 새로고침 기반 동기화' 방식을 제안했습니다. 반면 백엔드를 전담한 저는 금융 서비스처럼 데이터의 정확성이 핵심이라고 판단했습니다. 동일한 상품에 다수의 사용자가 동시에 구매 및 예약 요청을 보낼 때 발생할 수 있는 데이터 충돌과 동시성 제어 문제를 방지하려면, 서버 단에서 상태 검증을 실시간으로 처리하는 아키텍처가 필수적이라고 생각하여 갈등이 발생했습니다. 저는 제 주장만을 고집하기보다 객관적인 지표와 데이터로 접근했습니다. 다수의 예약 요청이 동시에 몰리는 한계 상황을 가정한 시나리오 테스트를 수행하고 그 결과를 시각화하여 팀원들과 공유했습니다. 이를 통해 동기화 지연이 발생할 경우 사용자가 겪을 불편과 서비스 신뢰도 저하 문제를 논리적으로 설득해 공감을 이끌어냈습니다. 이후 프론트엔드 팀원의 구현 부담을 덜어주기 위해 협업 환경을 주도적으로 개선했습니다. 상태 변화와 예외 상황에 따른 응답 코드를 세분화하여 Swagger UI를 통해 API 명세를 상세히 기록했고, 실시간 상태 변화를 간편하게 감지할 수 있도록 경량화된 데이터 전송 구조를 설계해 지원했습니다.