본문 바로가기

회고

AI 부트캠프 10주차 회고 : 코딩알못 PM이 MongoDB를 배웠습니다!

 

10주 차부터는 Git, 가상 환경, SQL, 도커, 클라우드 데이터베이스 등 환경과 데이터베이스를 배운다.

 

먼저 이번 섹션은 작년에 진행한 프로젝트에서 뼈저리게 느꼈던 아쉬움을 해결할 수 있는 열쇠가 되어서 배우면서 굉장히 즐거웠고, 이걸로 뭘 할 수 있을까 상상하고, 얼른 적용해보고 싶어 손이 간질거렸다.

 


회고에 앞서, 과거의 이야기를 잠깐 하고 싶다.

 

작년에 '코로나19로 입국 가능한 국가를 조회'하는 사이트 코로나스캔을 기획하고,
사이트를 만들어 배포하는 프로젝트를 진행했었다.

당시 나는 파이썬을 진짜 'hello world' 말고는 아무것도 할 수 없었는데,

5년 차 개발자이던 친구와 '우리 사이드 프로젝트해보자'

'근데 뭐하지? 실생활에서 불편한 게 뭐가 있지?' 하고 생각해 보다가

코로나가 막 퍼지기 시작한 2020년 2월,

'내가 끊어놓은 여행 티켓이 코로나 때문에 언제 입국이 안 될지 모른다.
맨날 조회하는 것도 불편하다. 외교부 공지 왜 이렇게 하냐'며 

외교부는 매일 pdf 파일로 공지를 한다 ^^ 지도좀 만들어줘...

쉽게 코로나 19 관련, 입국 가능 / 금지 / 제한 국가를 조회할 수 있는 사이트를 기획했었다.

사이트 설계는 친구가 도와줘서 대충 PPT로 만들고...

프론트엔드 2명, 백엔드 2명, 친구는 5년차 짬밥으로 총괄을 맡아주기로 하고 나는 PM으로 참여해서

2주간 으쌰으쌰 달려 사이트를 만들어보기로 했다.

이 과정에 대한 이야기는 풀자면 따로 글을 파는 게 나을 것 같고...

 

내가 이 프로젝트를 진행하며 스스로에게 느꼈던 아쉬움으로는

- 개발을 1도 몰라 데이터를 어떤 형식으로 받아와, 어떤 데이터베이스를 쓸지 사전 지식이 없었다.
  (데이터가 엑셀 파일이 아닌 csv 형식이어야 한다는 것도 몰랐다.)

- 애초에 구현하기 쉽지 않은 설계와 아이디어로 기능 구현& 설계를 한번 갈아엎었다.

- 외교부에서 데이터를 pdf 파일로 제공하기에 새 글이나 파일이 올라올 시,
  이를 탐지해서 자동으로 데이터베이스에 올리게 하고 싶었지만 구현하는 방법을 몰랐다.

(기능을 설계해서 아이디어를 내고, 구현을 분배할 때에도
어떤 툴을 어떤 형식으로 써서 해야 할지 제시해줄 수가 없었다.)

- 외교부에서 올리는 pdf 파일에 따라서 매번 데이터를 처리 후 수동으로 넣어주어야 했다.
  파이썬으로 데이터 전처리 후 mongo db에 올렸었는데, 당시에는 둘 다 내가 다룰 수 없었기에
  매번 백엔드 개발자에게 데이터를 올리는 과정을 부탁했어야 했다.
  백엔드 개발자가 바빠지면 부탁을 할 수 없었고, 멤버들이 바빠지면서 데이터 갱신을 할 수 없었다.

이에 내가 직접 해보자! 싶어도 깃허브를에서 파일을 어떻게 받아와서 쓸 수 있는지도 몰랐고,

주피터 노트북이나 mongo db를 켜놓고 쳐다보고 있노라면 어떻게 다뤄야 할지 감이 1도 안 잡혔다.

벽은 너무나 높아 보여서 매번 좌절하기 일쑤였는데,

 

지금 생각해보면 필요한 정보를 얻기 위해 구글링을 해서 사용법을 얻을 줄도 몰랐던 것도 한몫했다.

(필요한 정보를 얻기 위해 구글링 잘하는 법은 코드 스테이츠에서 톡톡히 배우고 있다.)

 

무튼 그런 나였기에, 이번 섹션에서 배우는 Git, 데이터베이스, SQL, 몽! 고! 디! 비! 가 너무나 반가웠다.

기존에 내가 할 수 없어서 좌절해주는 것을 해결할 수 있는 열쇠였기 때문이다.

이전 섹션에서 코랩으로 파이썬으로 csv, json도 다뤄보고, 데이터를 merge도 해보고,
데이터 분석도 해본 다음에 배운 것이다 보니

차근차근 이번 섹션에서 배우는 것도 어떻게 사용하는지 배울 수 있었다.

 


 

사실 이번 주의 수업 내용과 과제는 결코 쉽지 않았는데, 

참 쉽죠?

오늘 회고 시간에 나온 표현을 빌리자면 "설계도를 줬으니 집을 지어봐라" 수준이었다.

 

그래도 이전 주차에 몸으로 배운 구글링으로 필요한 정보를 어떻게 검색해야 하는지,

그리고 내가 필요한 것에 어떻게 적용해야 할지 어렵지 않게 따라 할 수 있었다.

 

작년의 무기력함을 타파할 실마리를 잡은 듯했다.

이번 섹션의, 그리고 앞으로의 프로젝트에서 어떤 주제를 할지,
사용되는 데이터가 어떤 형식이면 어떤 데이터베이스를 써야 할지 상상해보는 과정은 즐거웠다. 

가상 환경을 만들면 팀원들의 삽질이 줄겠다 싶은 생각도 들었다.
작년 프로젝트 진행 시, PaaS-TA에서 제공한 서버와 클라우드 사용 방법에
리눅스를 깔아야 하냐며 설치 자체도 힘들어하던 팀원이 생각나며.. ㅠ

(결국 AWS에서 프리 티어 외에 무료 버킷을 얻어 AWS로 배포했다.
PaaS-TA는 도커 제공을 안 했니...?)

 



이번 주차에서는 SQLite를 배웠다.

파이썬을 배울 때는 Python for everybody 강의를 수강했는데,
테스트가 있었지만 사실 대부분 구글링이나 앞에서 배운 내용을 옮겨 적어서 과제를 해결하다 보니
제대로 머리에 남지 않았다.

하지만 SQL은 연습하는 사이트로 미리 문법을 익힌 덕에

쿼리를 짜야하는 과제를 하면서 대부분 구글링 없이 머릿속에 있는 문법을 적용하며 풀 수 있었다.

연습 사이트도 그렇고, 내가 알고 있는 지식을 응용해가며
문제를 맞히는 식의 학습 방법이 나한테는 성취감이 느껴지고 뿌듯해서 재밌고 좋았다.

(SQL 연습 사이트는 sqlbolt를 추천한다.
나름 반응형이라 재미있게 연습할 수 있고, 여러 단계의 문제가 다양하게 있다.)


작년에 한창 '노트북으로 월급 2배 불리는 AI 주식 자동투자 봇 만들기' 강의를 들었는데,

이 강의에서는 파이썬 + 증권 데이터 크롤링 + 키움증권 API로 데이터베이스 받아오기 + SQL로 쿼리 실행

+ 텐서 플로로 머신러닝 하는 법을 다룬다. (머신러닝 파트는 아직 안 들었다)

천명 가까이 있는 수강생 오픈 카톡방을 보면
다들 파이썬과 SQL 문법을 몰라 코드를 어떻게 고쳐야 하는지 엄두도 못 냈고,

공부한 매매 기법에 따라 데이터베이스를 바꾸는 사람이 있으면 '고수시네요' 하며
나도 할 수 있을 거란 생각은 못 했다.

10주간 배우고 나니, 이제는 내가 선택한 매매 기법에 따라 

- 애초에 필요한 데이터 항목 선별

- 필요한 데이터가 있다면 SQL 쿼리로 만들기

- 매매기법을 조건문으로 상세하게 구현하기

- API에 없는 데이터도 합쳐 데이터베이스 구성하기

- 여러 머신러닝 모델을 적용하여 주식 모의투자 수익 비교

를 할 수 있을 것이다.

무언가를 배움으로써, 내가 할 수 있는 것 자체가 늘었고

그간 아쉽고, '나는 못하겠다' 싶었던 것들에 대해 접근할 수 있게 되었다.

 

이번 주에 배운 내용을 통해 그간 깜깜하던 길에 등불 하나를 손에 넣은 느낌이다.

배우는 게 이렇게, 무지의 암흑을 밝힐 수 있는 거였구나 싶다. 

 

그리고 이제는, 계속 아쉬움이 남았던 예전 프로젝트의 오래된 데이터베이스를 수정화하고,
자동화하는 방법을 찾아보려고 한다.

pdf -> 엑셀로 변환해서
이걸 코랩으로 열어보니 이렇게 보인다... 말잇못...

 

지금 다시 데이터베이스를 구성한다면

- 애초에 데이터 소스인 외교부에서 제공하는 pdf를 바로 활용하는 방식을 생각해볼 것이고,

- 전처리 과정에서 변동이 있을 때 오류가 최소화되도록 전처리 문법을 잘 짜고 싶다.

- 이렇게 지도에 국가별로 입국 제한 조치를 띄우는 기능을 실현하느랴 꽤나 애먹었는데,

국가별 정보, 위치정보를 지도에 구현하는 것도 열심히 잘 해볼 수 있을 것 같다.

무튼 앞날이 기대된다!