[패스트 캠퍼스] 데이터 분석 부트캠프 파이널 프로젝트
네 안녕하세요 주인장입니다 ㅎㅎ 끝을 향해 달려가는 패스트캠퍼스 이야기~!! 오늘은 이번 패스트캠퍼스 이야기의 마지막!!(물론 찐찐찐후기도 기대해주세요 :) ) '파이널 프로젝트'에 대해서 다뤄볼려고 합니다~!! 이번 부트캠프 시리즈의 마지막 이야기!! 어떻게 진행되는지 저와 함께 알아보겠습니다~!! 이번에도 음슴체인점 양해 부탁드려용~!! 😉😉 참고로 전에 쓴 글인 '중간 회고', '미니 프로젝트'도 참고하시면 좋습니다 :)
1. 파이널 프로젝트의 시작
아기다리고기다리던 파이널 프로젝트의 시작!!!! 드디어 시작한 파이널... 부트캠프의 마지막을 담당할 프로젝트의 마지막을 달리고 있다.. 지금까지 배워왔던 내용들을 모두 활용할 수 있는 대망의 파이널 프로젝트이다. 부트캠프 내외에서 확실히 패스트캠퍼스에게 가장 기대되는 부분 역시 파이널 프로젝트일정도로, 파이널 프로젝트에 대한 기대감(?)도 상당히 크다. 왜냐하면 실제 기업 내부 데이터를 받아서 분석해볼 수 있는 거의 유일한(?) 정말 희귀한 기회이기 때문!! 생각보다 현업자급의 실력자들, 고스펙자들도 4달 정도나 되는 부트캠프를 수강하는 이유가 바로 이 '파이널 프로젝트'의 기업 내부의 데이터를 사용해서 분석해볼 수 있는 기회 때문이다.
이 기회만을 기다렸다!! 싶어서 진짜 배운 것을 모두 녹여버리겠어!! 😎😎
라는 마음으로 호기롭게, 열정을 가지고 두근두근하면서 파이널 프로젝트만 기다렸다.
하지만, 신은 그렇게 호락호락하게 우리에게 축복(기업 데이터...ㅎ)를 내려주지는 않으셨다. 많은 고난과 번뇌와 시련과... 그 긴거...etc 아무튼 이번 BDA 9기 파이널 프로젝트를 위해서 '파인더갭'이라는 버그바운티 회사에서 데이터를 제공해주셨다^^
2. 그쪽도 '버그바운티'를 아세요~?
요새 밈으로 유명한 '그쪽도 홍박사님을 아세요~?'를 패러디 해봤다. 버그바운티? 그게 뭐지? 버그? 말로만 듣던 버그를 직접적으로 검색해보는 신기한 시간이였다.
파인더갭은 2019년 12월 삼성SDS의 사내 부서로 시작해 2022년 독립 법인을 설립하여 현재는 약 2,700 명의 화이트 해커가 활동하고 있는 한국의 최대 버그바운티 플랫폼이다. 보안 점검을 위한 기존의 모의해킹 점검의 단점을 보완해, 버그바운티 서비스를 제공한다. 버그바운티란 ‘취약점 보상 제도(VRP-Vulnerability Reward Program)’를 뜻한다. 기업은 버그바운티 운영을 통해 다양한 윤리적 해커로부터 취약점을 제보받고 보상함으로써 가장 효율적인 비용으로 높은 효과의 취약점 점검을 받을 수 있는 것이다.
생각보다 사회가 고도화되고, 많은 플랫폼 기업들이 인터넷 및 개인 정보들을 이용해서 비즈니스를 하는 시대인만큼 웹/해킹/보안 파트는 굉장히 중요한 경우하다. 우리가 디지털 세상과 해킹/보안의 세상을 잘 몰라서 그렇지 이런 분야를 한번 찾아보니 생각보다 매우 쉽게, 매우 심각한 이슈들이 심심치 않게 일어난다. 최근 '사이버 예비군'을 창설하기 위해서 대통령 주관 화이트해커 초빙 행사를 열기를 하기도 하고, 선관위가 해킹을 당하고, 북한의 해커그룹이 암호화폐를 해킹하는 등의 생각보다 복잡하기도, 단순하기도 한 사건들이 꽤나 많이 일어나고 있었다.우리가 모르고 있었을 뿐 ㅎㅎ 우리가 몰랐을 뿐이지 생각보다 보안 관련 문제는 개인 → 기업 → 국가 순서로 빠르게 진화하고 있었다. 그러한 점에서 이런 보안 점검 및 버그바운티와 같이 미리 보안에 있어서 취약점을 찾는 프로그램은 외국에서는 빠르게 진행되고 있었다. 우리나라는 아직 이런 버그바운티에 보수적이라서 아직은 관련 분야 산업이 커지지 못하고 있으나, 이러한 보안 이슈에 대한 심각성에 대해서 점점 관심이 커지고 있어서 자연스럽게 관련 산업 분야도 조금씩 발전하고 있다. 그에 대한 대표적인 예가 이번 파이널 프로젝트 대상 기업인 '파인더갭'이다.
3. 파이널 프로젝트 진행
우리는 파인더갭으로부터 총 3종류의 데이터셋을 전달 받았다.
- NVD(National Vulnerability Database) : 2018~2023년도 자료(JSON 파일)
- CWE(Common Weakness Enumeration) : 699,1194,1000(CSV 파일
- findthegap_report(JSON 파일) & attackType과 CWE-ID를 mapping 한 CSV 파일
총 2가지의 큰 주제를 고를 수 있었는데,
주제 1번은 미국의 데이터(NVD)와 파인더갭 자체 데이터의 비교 분석을 진행
주제 2번은 CWE 파일 안에 있는 CWE 설명 컬럼의 키/밸류 값을 노멀라이징, 즉 정규화하는 약간 스킬적인 부분을 요구하는 주제
위의 2가지로 나누어졌고, 나는 1번 주제를 선택하였다. 팀플, 데이터 분석, Tool 다루는 것 자체도 모든게 다 새로운 나에게 이번 프로젝트와 데이터셋은 정말이지 새로운 차원의 도전이자 스트레스였다. 파이널 전까지 3번의 프로젝트를 진행했지만 이런 데이터를 본적도 다뤄본 적도 없는 도메인(정보/보안/해킹 관련)이다보니까 더더욱 그리고 지금까지도 어렵다. 특히나 어렵고 까다롭다는 말을 현업자인 담당 프로젝트 강사님/멘토님 마저 할 정도이니 여간 쉽지 않은 여정이고, 현재도 진행형이다...ㅎㅎ 그럼 도대체 뭐가 어렵고 뭐가 까다로운 것일까? JSON 파일을 CSV 하기 전까지는 몰랐지만, CSV를 추출하고 파일을 열때부터 모든 문제는 시작되었다 ㅎㅎ
1. 그래서 문제가 뭔데?
문제 1 : 도메인 = 보안 분야가 너무 어렵다!
일단은 도메인 지식이 팀원들 모두 아무도 없었다. 보통 패스트캠퍼스의 후킹에 걸려든 사람들의 대부분은 비전공자/문과 출신들인데 이런 사람들이 과연 컴퓨터/웹/보안/해킹과 관련이 있겠는가? 접점이 1도 없는 사람들끼리 모여서, 특히나 우리 팀원들은 다 문과 출신들인데 이런 분야를 처음 접하고 너무 생소하고 용어들도 너무 어려워서 프로젝트를 진행하는데 아주 난항을 겪었다. 지금 와서 돌이켜보면 데이터의 전처리 및 도메인 지식하는데 며칠을 버린 것이 아까울 정도로 초반에는 정말 처참했다. 팀원들 모두 모여서 이거 어떻게 해야죠?? 이러고 서로 멀뚱멀뚱 쳐다만 봐야만 했으니.. 패캠측에 대한 항의 및 불만 표출만 하다가 흘러가 버린 시간들이였다.
하지만 프로젝트 진행에 도움을 주시는 담당 강사님께서는 '러닝 커브(학습 곡선)' 에 대한 이야기를 해주셨다. 새로운 지식을 학습하는데 걸리는 기간에 대한 그래프였다. 데이터 분석가는 러닝 커브를 최대한 짧게 하는게 중요하며, 그렇게 해야지만 다양한 도메인과 다양한 데이터를 다룰 수 있는 최종적인 프리랜서 데이터 분석가 및 컨설턴트가 될 수 있다면서 매번 피드백마다 치얼업! 을 항상 해주셨다. 프로젝트가 거의 끝나가고 있는 강사님의 말씀이 어느정도 이해가 가긴 하는 것 같다. 러닝 커브란 확실히 사람마다 다르긴 하지만 존재하며, 최첨단&초고도화되는 사회에서 배움이란 평생 해야하는 것이며, 그 배움을 얼마나 빨리 익숙해지는 구간을 보내느냐에 따라서 나의 경쟁력이 정해질 것이다. 아직까지다 보안 관련 뉴스나 기사, 논문을 찾아봐도 어렵다. 하지만 처음 시작하는 날과 지금을 비교해보면 보안 데이터를 처음 보는 사람에게 간단하게 설명까지 가능할 정도가 되었으니, 그동안 헛공부는 한 것 같지는 아니여서 다행이다.
문제 2 : 처음 보는 파일 형식! Dog판인 데이터셋!
처음에는 데이터 및 컬럼을 이해하는데에 보안 쪽 용어를 습득과 이해를 필요로 하기 때문에 데이터 내부를 살펴볼 겨를도 거의 없었다. Null 값을 통한 데이터 파악 정도만 할 수 있었다. 그리고 당황스러운 JSON 파일 형식... 이게 뭔데!?
처음 보는 형식의 파일과, 그 안에 담겨있는 파일도 딕셔너리 형태의 JSON 파일의 형식으로 담겨져있었다. CSV로 불러오는데 한 컬럼안에 컬럼을 분리될 수 있는 것들이 총 19가지나 나왔다.... 키&밸류 값으로 나누니 정말 많은 컬럼으로 분리가 되었다. 여기까지 전처리를 진행하는데도 거의 프로젝트의 반을 차지했을 정도로 데이터의 파악과 전처리에 거의 모든 것을 쏟아 부었다...(전처리에 도움을 주신 우리 팀원분들 리스펙...) 파이썬을 잘 다루지 못하는 나는 팀원분들이 올려주신 코드를 따라가면서 같이 보고 브레인스토밍을 같이 하는 역할을 주로 맡았다. 할 수 있는게 없어서, 열심히 도메인 지식을 조사했지만 그마저도 쉽지는 않았다..
NVD 데이터는 표준 기반 취약성 관리 데이터의 미국 정부 저장소로 전달 받은 데이터로, 2018년도부터 2023년까지 수집된 취약점 정보에 대한 내용을 다루고 있다. CVSS Score가 ver3.1인 것으로 진행해달라고 하여서, 1차 전처리를 진행하며 2018년도와 2019년도 데이터가 일부 제외되었고, 2023년의 경우 아직 업데이트가 진행되고 있기에 완전하다고 할 수는 없지만, 하나의 파일 당 전부 row단위로 약 1만6천 건, column단위로는 30개의 해당하지만 각각의 컬럼 안에 딕셔너리 형식으로 방대한 양의 데이터가 포함되어 있기 때문에 전처리를 하는 과정이 유독 매우 많이 까다로웠다.
NVD 데이터와 파인더갭의 데이터를 비교를 하고 싶어도 데이터 간의 연관성 및 연결성을 거의 찾을 수 없었고, 데이터 간의 키 값, 볼륨, 컬럼 등등 비교해볼법한 주제들을 엮어내기 굉장히 어려웠다. 그리고 역시나 파인더갭 데이터는 레거시 데이터로써 원인 불명의 데이터들도 많았고, 그 일환으로 Null 값이 3분의 1 이상 차지하는 컬럼도 있었다. 컬럼은 많았지만 사실상 쓸 수 있는 컬럼은 10개도 안되었다. 저번 태블로 프로젝트에서는 10만건이 넘는 데이터를 다루다가, 파인더갭측에서 제공한 데이터셋은 약 3700건이였다. 이래서 사람들이 데이터 분석 프로젝트 할꺼면 차라리 데이터가 작은 것보다 많은 게 훨씬 낫다고 한 이유를 알 수 있는 프로젝트였다...ㅎㅎ
2. ??? : 이건 '종합예술점수'도 들어가야하는데요~
약간 뜬금없기는 하지만 내가 좋아하는 유튜버 중 한명이 노래 이상형 월드컵을 하면서 주로 하는 말이 있다. 노래를 듣고 노래를 가지고 판단해야하는데, 뮤비를 보면서 노래 + 뮤비의 디테일 + 함축적인 의미 + 가수의 비주얼 등등 여러가지를 모두 계산하고 고른다는 '종합 예술 점수'이다. 이것과 마찬가지로, 우리 팀도 종합예술을 하고 있다. 조별 노션을 가지고 아이디어 및 도메인 지식 자료 조사를 진행하여 서로 공유한다. 파이썬 코드를 통해서 CSV를 추출하여 엑셀로 1차 분석을 시작하고, 어느 정도 팀의 1차 전처리가 완성되자 Tableau를 통한 시각화를 진행했다. SQL을 사용해보지 못한 것이 아쉽지만, 충분히 이번 부트캠프 과정에서 배운 모든 것들을 활용하는 시간이였다. 이제는 최종적으로 시각화 한 것들을 서로 살펴보면서 PPT 작업만 남아있을 뿐이다.
3. 끝이 아닌 시작
그 누군가는 이런 어려운 환경에서도 누구는 긍정적인 방향을 바라보고, 그 누구는 불평불만만 해댈 것이다. 나는 이런 말도 안되는 데이터를 준 파인더갭이 밉기도 하면서도, '그럼에도 불구하고' 정신으로 열정으로 극복해내고 싶었다. 하지만 현실은 정말 녹록치 않았다^^ 강사님께서도 이런 유니크하고 현업에서 실제로 쓰는 데이터를 구할 기회는 정말 없다면서 나만의 관점과 나만의 포트폴리오를 만들 때 정말 유리할 것이라고 말씀해주셨다. 이러한 마음 가짐과 자세는 충분히 배울만 프로젝트였다고 한다. 뭐든지 긍정적이고, 해내겠다라는 열정적인 마인드셋. 살면서 가장 중요한 것이 마인드셋이라고 생각하는 나는 오랜만에 들끓는 마인드셋을 배웠던 것 같다.
물론 이런 훈훈한 결말만 있었다면 좋았겠지만 이런 환상은 보통 현실의 가혹한 피드백 또는 경험에 의해서 깨지게 된다. 담당하시던 멘토님께서 이번 주제와 우리들이 한 것을 보고는 정말 솔직하게 말씀해주셨다.
'제가 면접관이라면 이게 메인 포트폴리오라면 저는 안볼 것 같아요. 이력서 및 포폴 보는데 벌써 알아야하는게 한 두개가 아니잖아요. 너무 피곤해서 월등한 스펙이나 경력이 있는 경우가 아닌 신입급의 주니어들에게 그런 것 어차피 기대도 잘하는데 이런 식으로 읽히기 어려운 것들을 메인으로 올려두면 죄송한데 사실 잘 안봐요...'
현실은 때론 냉혹한 법.. 물론 스타트업 출신이시기 때문에 이런 얘기를 하기도 하셨지만, 이쪽 관련 분야가 아니라면 굳이 이번 프로젝트 주제도 추천하지는 않는다고 하셨다. 항상 채용자의 입장에서 생각을 하고 이력서 및 포폴을 꾸밀 것... 다시 한번 메모 하는 시간이였다.. 어쨌든 우리 팀은 전원 문과/예체능 계열 출신으로써 팀원의 장기 여행 이슈, 건강 이슈, 역량 이슈 등등 갖가지 문제들이 많았지만 우리 팀에서 나올 수 있는 역량을 최대한 발휘해서 분석을 진행했다. 근 10년만에 팀플의 팀장을 맡아본 것도 굉장히 유니크한 경험이였고, 팀원들의 업무 분배 및 역량 개발 등의 여러 간접 경험을 할 수 있는 근 2~3주였다.
이제 돌아오는 주면 드디어 파이널 프로젝트는 끝난다. 하지만 인생은 이제부터가 시작이다. 정말 이 길이 맞는걸까? 나에게도 앉아있을만한 회사가 있을까? 정말 내가 좋아하는 일은 무엇이고, 나는 무엇을 잘하는 것일까? 끝임없이 되풀이 하면서 살게될 2023년이 될 것 같다. 어느 덧 더운 여름은 온데간데 없고, 추운 나날들만 남았다. 남은 기간, 그리고 남은 인생의 기간. 추운 날은 많이 없기를 바라며, 하루하루 의미있게 보내는 삶이 되기를 :)
여러분 저는 패스트캠퍼스 부트캠프의 마지막 포스팅인 '부트캠프 Epilogue'로 돌아오겠습니다!!
찐찐찐 후기 기대해주세요!! 패캠 부트캠프 망설이시는 분들이 보면 좋을 듯 싶은 현실적이고 충격적인 내용으로만 엄선해서 가져오겠습니다 :) ✌✌ (다소 충격 주의,,, ㅎㅅㅎ)
'[교육&스터디] > [패스트 캠퍼스] 데이터 분석 부트캠프 9기' 카테고리의 다른 글
[패스트 캠퍼스] 데이터 분석 부트캠프 최종 후기(찐솔직 후기) (6) | 2023.12.07 |
---|---|
[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 9기_과정 종료 회고 (2) | 2023.10.28 |
[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 9기_ 미니 프로젝트 (0) | 2023.10.01 |
[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 9기_ 패스트캠퍼스 중간과정 회고 (2) | 2023.09.15 |
[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 9기_ 패스트캠퍼스 강사&멘토 후기 (0) | 2023.08.25 |
댓글