| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 데이터사이언티스트
- 모두의연구소
- 아나콘다3
- anaconda3
- MongoDB
- 데이터사이언티스트 #데이터 #모두의연구소 #데이터분석부트캠프
- python
- 데이터분석
- 데이터분석환경
- jupyter
- 데이터사시언티스트 #데이터 #모두의연구소
- 아나콘다설치
- nosql
- GCP
- 데이터전처리
- 데이터싸이언티스트
- 데이터분석부트캠프
- 아이펠톤
- 가상환경설정
- 가상환경만들기
- 커널
- 데이터
- Today
- Total
EH_dream
처음 만난 GCP, 처음 다뤄본 MongoDB_25.07.28 본문
이번 모두의연구소에서 진행된 아이펠톤 프로젝트는 나에게 여러모로 도전이자 배움의 시간이었다. 무엇보다 열심히 해보고 싶었던 이유는, 단순히 데이터 분석이 아니라 실제 데이터를 수집하고 저장하고 불러오고 정제하는 전 과정을 직접 다뤄본다는 점 때문이었다. 그중에서도 가장 낯설었던 기술이 바로 GCP 환경과 MongoDB였다. 평소에는 로컬 환경에서 파이썬만 다뤄왔던 나로선, GCP 위에서 데이터를 저장하고 필터링하고 전처리하는 일련의 과정은 굉장히 낯설고 두려우면서도, 동시에 꼭 한 번은 경험해보고 싶었던 분야였다.
이번 프로젝트는 뉴스 데이터를 활용해 북한 관련 이슈를 탐지하고 요약하는 것이 핵심 주제이다. 전체 데이터는 약 360만 건에 달하는 뉴스 기사였고, 이 중에서 우리가 주목한 것은 북한 관련 뉴스였다. 이 데이터는 MongoDB라는 NoSQL 데이터베이스에 저장되어 있었고, 나는 처음으로 이 환경에서 데이터를 조회하고 정제해보는 작업에 참여하게 되었다.
GCP, 그리고 MongoDB 환경 학습
프로젝트는 GCP(Google Cloud Platform)에서 진행되었고, VM 인스턴스에 MongoDB가 설치된 상태였다.
MongoDB 설치와 데이터 업로드는 팀원분이 이미 잘 구성해두었고, 나는 해당 환경에 접속해서 직접 데이터를 확인하고, 전처리 코드를 실행해보는 역할을 맡았다.
처음 접한 mongosh 명령어는 매우 낯설었지만, 다음과 같은 기본적인 명령어부터 하나하나 익혀갔다.
- show dbs → 데이터베이스 목록 보기
- use polaris → 우리가 사용하는 DB로 이동
- show collections → 컬렉션(테이블과 유사한 개념) 목록 확인
- db.yna.findOne() → 문서 하나 출력해서 내용 확인
- db.yna.countDocuments() → 전체 문서 수 확인
이런 기초 명령어를 통해 데이터의 구조와 크기, 내용이 어떤지 확인하는 작업부터 시작했다.
우리가 수행한 실제 전처리 작업은 '북한 관련 뉴스만 선별해서 새로운 컬렉션으로 복사' 하는 것이었다.
전처리 스크립트는 팀원분이 작성한 1st_process.py라는 파일을 활용했고, 그 내용을 이해하고 실행하며 전체 로직을 파악했다.
핵심 전처리 흐름은 다음과 같았다:
- MongoDB 연결 설정
- 데이터베이스 이름: polaris
- 원본 컬렉션: yna
- 새로운 컬렉션: yna_preprocessed_v1
- 전처리 기준 키워드 정의
- 북한, 김정은, 김여정, 로동신문, ICBM, 조선중앙통신, 비무장지대, 나진항, 금강산, 개성공단 등 총 80여 개의 관련 키워드가 입력됨
- 카테고리가 '북한'으로 지정된 문서도 포함
- 필터링 조건 구성
- 뉴스 제목(title) 또는 본문(content)에 위 키워드 중 하나라도 포함되면 필터링 대상
- 조건은 MongoDB의 정규표현식 기반 $regex 검색으로 구성됨
- 조건 전체는 $or 조건으로 연결됨
- 전처리 함수 처리
- 기존 문서의 _id 필드를 제거하여 새로운 컬렉션에 중복 없이 삽입할 수 있도록 처리
- 그 외 내용은 가공하지 않음 (필요시 향후 추가 가능)
- 결과 저장
- 필터링된 문서는 새로운 컬렉션인 yna_preprocessed_v1에 저장
- 약 1,000개 단위로 나눠서 MongoDB에 삽입하며 진행 상황 출력
처음 해본 MongoDB, 어렵지만 익숙한 부분도 있었다.
물론 처음에는 MongoDB? 그게 뭔데? SQL이랑 뭐가 달라? 같은 상태였다.
그런데 하나하나 실행해보며 컬렉션, 문서, 쿼리, 정규식, 배치 처리 개념을 접하니 어느새 나도 데이터베이스에 데이터를 넣고 꺼낼 줄은 아는 사람이 되어 있었다. 아직도 MongoDB를 '잘 안다'고 말하긴 어렵지만, 이젠 적어도 아예 모르지는 않고 이해할 수 있다는 것이 좋다.
지금 나는 MongoDB에 익숙해졌다고 할 수는 없지만, 적어도 “나는 MongoDB에서 데이터를 추출해볼 줄 알아요” 라고 말할 수 있게 되었다. 그리고 이 경험은 앞으로 어떤 프로젝트를 하든 분명 든든한 발판이 될 것이라 믿는다.
'기본 이론' 카테고리의 다른 글
| 분석TIP : 데이터 확인하기 (0) | 2025.11.25 |
|---|---|
| Sine, Cosine, Tangent – 삼각함수 다시 이해해보기 (1) | 2025.05.22 |
| PCA_주성분_분석_학습_25.04.16 (0) | 2025.04.16 |
| Z-Score_학습_25.04.14 (0) | 2025.04.14 |
| 다중공선성_피처스케일링_학습_25.04.08 (0) | 2025.04.09 |