Section2 까지의 프로젝트를 진행하고 Section3 데이터 엔지니어링 파트가 시작되었다.
지금까지는 수집한 데이터를 가지고 데이터분석과 머신러닝 모델을 만들어 예측을 수행했다면, Section3에서는 데이터를 수집하고, 데이터베이스에 저장하는 방법에 관하여 학습한다.
조금 더 깊게 들어가면 데이터베이스를 구축, 스키마 생성하여 스키마 구조에 맞게 데이터를 적재하는 것이다.
적재한 데이터를 가지고 분석을 수행하거나, 머신러닝 모델을 만들어 내 어플리케이션에 올리는 것 까지 Section3에서 다룰 내용으로 보인다.
9주차
9주차에서는 Section3 전반에서 수행할 Git, 가상환경 그리고 이것들을 수행할 터미널(CLI)에 관하여 먼저 학습하고, 본격적으로 관계형 데이터베이스를 다루는 언어인 SQL을 학습하였다.
SQL은 SQLite, PostgreSQL을 사용하여 학습을 하게 되었는데, 파이썬에서는 이와 관련된 sqlite3, pycopg2 라이브러리를 사용하여 코드를 작성할 수 있었다.
DBeaver라는 데이터베이스 툴을 이용하여 쿼리문을 작성하고,VSC에 붙여넣어 과제를 수행하다보니, 2개의 앱을 왔다갔다 해야하는 번거로움이 생겨, VSC의 확장프로그램 SQLite, PostgreSQL을 사용하여 개발하기에 조금 더 나은 환경을 만들어 사용하게 되었다.
물론 DBeaver에서는 확장프로그램보다 스키마의 관계를 보거나 하는 더 많은 기능을 지원하고, UI또한 깔끔하지만 간단한 쿼리문 정도는 VSC를 이용해도 해결이 가능하였다.
이러한 사용자의 개발 퍼포먼스를 향상시킬 수 있는 여러 수단을 부트캠프에서 알려주었으면 좋겠다는 생각이 들기도 하였다.
10주차
10주차에는 여러가지 주제에 관하여 학습을 하였다. 파이썬 클래스, 디버깅, HTML&CSS, API, Web Scraping, NoSQL 등 여러주제에 관하여 학습을 하다보니 무엇을 집중하여 학습을 해야할지 막막함이 들기도 하였다.
전반적으로는 웹사이트에서 데이터 수집을 하거나, OpenAPI를 통하여 데이터를 수집해 내 로컬 혹은 클라우드 데이터베이스에 적재를 한 후에 필요한 데이터를 쿼리하는 과제들을 수행하였다.
9주차에서 학습한 SQL을 사용하면서, API로 수집한 json과 같은 데이터를 다시 SQL문을 사용하여 데이터베이스에 적재하는 등의 과정은 조금 흥미로웠다.
또한 관계형 데이터베이스 뿐만 아니라 NoSQL(MongoDB)를 사용하여 두가지의 데이터베이스를 사용하기도 하였는데, SQL을 사용할때는 직접 쿼리문을 작성하여 쿼리문을 sqlite3에 다시 보내줘야 하는 조금의 불편함(?)은 있었지만, MongoDB를 사용할때는 pymongo를 통하여 SQL 보다는 조금 더 깔끔하게 코드를 작성할 수 있었다.
현업에서는 2가지 혹은 3가지의 데이터베이스를 사용하기도 한다는데, 안정적으로 구동하기 위해서는 RDB를 사용하고,
비교적 자유롭게(?) 사용할 때는 NoSQL을 사용하는 것 같다.
두 가지의 데이터베이스 다 장단점이 존재하기 때문에 뭐가 좋다, 나쁘다를 비교할 수 없다.
한 스터디원분의 말씀에 따르면, 현업에서 있을 때 NoSQL, RDB를 두개를 사용하였는데 2개의 데이터베이스의 있는 데이터를 Join하기 위하여 JAVA코드로 2개의 데이터베이스의 내용을 불러와 Join을 수행을 했던 경험이 있다고 하셨다. 그러한 이유에 대하여 물어보니 데이터베이스를 설계하신분이 혼자셨는데 그 분께서 혼자 백엔드를 작업하시고 퇴사를 하셨지만 어떠한 기록도 남아있지 않다고 하셨다...
그 말씀을 들어보니 데이터베이스의 설계도 물론 중요하지만, 기록의 중요성에 대하여 다시한번 생각하게 되었고, 누구나 다 이해할 수 있는 좋은 코드를 작성해야 겠다는 다짐이 생겼다.
9,10주차를 진행하면서 개인적으로 아쉬웠던 점은 조금 더 데이터베이스의 사용법을 일찍 알았더라면,
데이터베이스의 필요성이 가장 높았던 앱과 게임개발에서 더 다양하고 재밌는 것들을 해볼 수 있지 않았을까 하는 아쉬움이 남는다.
'부트캠프 회고' 카테고리의 다른 글
코드스테이츠 AIB_13 13주차 회고 (0) | 2022.07.09 |
---|---|
코드스테이츠 AIB_13 11&12주차 회고 (0) | 2022.06.28 |
코드스테이츠 AIB_13 7&8주차 회고 (0) | 2022.05.25 |
코드스테이츠 AIB_13 5&6주차 회고 (0) | 2022.05.17 |
코드스테이츠 AIB_13 4주차 회고 (0) | 2022.04.26 |