개발공부 & 부트캠프/[부트캠프] 회고

[데이터 엔지니어링 부트캠프] 3주차 회고

포리셔 2023. 6. 25. 21:34

좋았던 점

  • 드디어 사용하는 구글 코랩(Colab): 파이썬 입문부터 주피터 노트북과 함께 한 골수 유저로서 파이참에서 코랩으로 넘어왔다는 건 축복 큰 호사였습니다. 감사합니다....!!!
  • 본격적으로 배우기 시작한 각종 라이브러리: 넘파이, 판다스, 맷플롯립 등 데이터 분석에서 사용되는 각종 라이브러리를 배우기 시작했습니다. 파이썬 기본 문법은 코딩 테스트 이외에 실무에서 써먹는 데 한계가 있기 때문에 진도가 빠르다는 걸 제외하면 아주 반가운 소식입니다.

아쉬웠던 점

  • 기습적인 프로젝트: 데이터 시각화까지만 하면 된다고는 하지만, 첫 팀플인데다가 이렇다 할 준비가 부족한 상태인지라 많이 긴장됩니다. 좋은 팀원들 만났으니 좋은 결과물 얻을 수 있으면 좋겠네요. 최소 1인분은 해야지.. 그렇게 마음 먹었습니다.

배운 점

NumPy 라이브러리

넘파이는 과학이나 금융 계산을 위해 만들어진 라이브러리로, 타 언어에서의 배열 등을 다룰 수 있게 해줍니다. 기본적으로 벡터와 행렬 형태의 연산을 지원하며, 이를 위해 ndarray라는 이름의 객체를 만들고 이를 베이스로 각종 메서드를 구현합니다.
배열 자료구조에 기반을 둔 만큼 한 객체에 들어가는 자료형이 모두 동일해야 하며, 그 크기(또는 길이)가 고정되어 있다는 특징이 있습니다. 또한 파이썬 기본 라이브러리인 mathrandom의 기능을 이어받아 각종 조건을 만족하는 벡터 및 행렬을 만들 수도 있습니다.
일반적인 선형대수 지식과는 다르게 넘파이에서는 크기가 다른 행렬간의 연산도 어느 정도 지원합니다. 브로드캐스팅이라는 기능에 뿌리를 두고 있으며, 이 때문에 매우 유연한 연산을 할 수 있다는 장점이 있지만, 반대로 선형대수 지식이 어느 정도 갖춰진 사용자에게는 이론적으로 알고 있는 내용과는 약간의 괴리가 있을 수 있다는 웃지 못할 단점도 존재합니다.

Pandas 라이브러리

판다스는 테이블 형태의 데이터를 분석하는 라이브러리입니다. 그 자체로도 많은 클래스와 함수를 제공하지만, 후술할 맷플롯립 등 다른 라이브러리 및 패키지의 기능도 활용하는 강력한 도구로 사용할 수 있습니다. 태생이 금융 분석에 뿌리를 둔 만큼 데이터 분석의 대표적인 툴로 자리잡았으며, 파이썬에서의 데이터 분석은 높은 확률로 이 라이브러리와 함께하게 될 겁니다.
판다스의 대표적인 클래스로 SeriesDataFrame이 있습니다. Series는 한 개의 열(column)을 분리해 놓은 것이며, 이러한 시리즈를 여러 개 묶어놓은 표 형태의 클래스가 DataFrame으로 볼 수 있습니다.
각 클래스는 해당 데이터의 전반적인 정보(info 메서드), 통계치(describe() 메서드)를 비롯해 단일 혹은 복수 열을 기준으로 데이터를 그룹화하는 GroupBy 연산, 여러 데이터를 붙여서 병합하는 merge, concat, join 등을 사용할 수 있습니다.

데이터 시각화

넘파이나 판다스를 이용해 분석한 데이터를 눈에 보이는 형태로 만드는 과정을 데이터 시각화라고 합니다. 파이썬에서는 데이터 시각화를 지원하는 라이브러리가 여러 개 존재합니다. 익숙한 라이브러리나 더 강력한 기능을 가진 라이브러리를 취사선택할 수 있다는 장점이 있겠습니다.

  • Matplotlib(맷플롯립): 파이썬 데이터 시각화의 시작점이라 볼 수 있는 라이브러리로, 파이썬에서 데이터 시각화를 다룰 때 가장 먼저 가르치는 부분입니다. 다른 시각화 라이브러리에 비해 오래 된 라이브러리이기 때문에 타 프로그램의 시각화 기능과 비교했을 때 다소 비직관적인 부분이 있지만, 오래된 만큼 제공하는 기능도 매우 다양합니다. 라인 플롯, 산점도, 파이 차트 외에 서브플롯 기능 등을 집중적으로 익히면 좋을 듯 합니다.
  • Seaborn(시본): 통칭 sns라는 이름으로 임포트하는 라이브러리로, 맷플롯립의 기능을 개선/계승해서 만들어진 라이브러리입니다. 파이 차트가 없다는 것만 빼면 앞으로 많이 써먹어봄직 한 라이브러리가 되지 않을까 싶습니다.
  • 그 외의 고등 시각화 라이브러리: AutoViz, Plotly 등의 라이브러리를 함께 사용하면 동적 차트를 만드는 등의 고등 시각화가 가능합니다. 예를 들어 차트의 특정 부분에 커서를 올리면 해당 부분의 데이터를 별도의 작은 텍스트 상자를 통해 표시해주는 등의 작업을 할 수 있습니다. 흔히 주식 차트에서 특정 날짜의 시가/종가 등의 데이터를 표시하는 것과 비슷하다고 보면 되겠습니다.

앞으로 바라는 점

자, 첫 프로젝트가 시작되었습니다. 대개 이런 팀 프로젝트가 시작되면 팀원 운이 잘 따라주기를 바라는 우려가 섞이기 마련이지만, 그보다는 이 작은 팀 프로젝트라도 웬만큼의 성과를 거두어서 오래 또 멀리 갈 수 있는 첫 시작점이 되기를 더 바랍니다.