
월요일에는 통계 수업을 진행했다. 강사님께서 수업과 함께 취업을 준비하면서는 데이터 개발자와 데이터 분석가를 나누어 각자 집중하여 공부해야 하는 부분이 다르다고 말씀해주셨다.
처음 데이터 쪽의 직무를 희망할 때 막연하게 '데이터를 다룬다'만 생각햇었는데, 강사님께서는 수업과 함께 데이터 엔지니어와 데이터 분석가가 공부해야 되는 부분이 다르다 하시며 각 분야가 더 집중해야 되는 부분을 알려주셨다.
데이터 엔지니어는 주로 데이터를 수집·처리·저장하는 파이프라인을 구축하고 효율적인 데이터 인프라를 설계하는 데 집중하는 반면에, 데이터 분석가는 그 데이터를 기반으로 의미 있는 인사이트를 도출하고 비즈니스 의사결정을 지원하는 역할을 한다. 이처럼 직무에 따라 학습의 방향성과 우선순위가 달라지기 때문에, 나에게 맞는 진로를 선택하고 그에 맞는 공부를 체계적으로 해나가는 것이 중요하다는 생각이 들었다.
나에게 맞는 진로는 무엇일까..?
데이터를 효율적으로 처리하고, 저장하며, 시스템을 최적화하는 과정에서 발생하는 다양한 문제를 해결하는 데에 흥미가 생겼고, 엔지니어 쪽에 더 쏠리는 것 같다. 현재는 공부를 통해 필요한 기술과 지식을 쌓는 것이 중요하고, 이 과정에서 진로를 확실시 하여 내 역량을 발휘할 수 있도록 준비할 것이다.
2차원 배열을 특정 인덱스(n)를 기준으로 정렬하기
알고리즘 문제를 풀다가 2차원 배열을 특정 인덱스를 기준으로 정렬해야 하는 상황이 있었다.
여러 가지 방법을 시도해보던 중, sort()와 sorted() 함수에 key 인자로 람다식을 사용하면 원하는 인덱스를 기준으로 정렬할 수 있다는 것을 알게 되었다.
>>> sorted_arr = sorted(arr, key = lambda x : x[n])
>>> arr.sort(key = lambda x : x[n])
또한, key=lambda x: (x[0], x[1])와 같이 튜플을 넘겨 다중 정렬 기준도 지정할 수 있다는 점이 인상 깊었다. 예를 들어, SQL의 ORDER BY A.COL ASC, B.COL DESC와 같이 첫번째 원소는 오름차순, 두 번째 원소는 내림차순으로 정렬하는 것도 가능하다.
sorted_arr = sorted(arr, key = lambda x: (x[0], -x[1]))
이 정렬 방식을 사용하면 다양한 데이터 처리에 유용하게 사용할 수 있을 것 같다.
👉 [velog] [Linux]Linux 기초 명령어 한번에 보기
Pandas 라이브러리의 사용 경험이 부족한지라 아직 데이터를 처리하고 시각화 하는데에는 다소 익숙하지 않은 상태이다. 특히 컬럼 간의 연관성을 분석학고 이를 기반으로 데이터를 전처리 하는 과정에서 어려움을 느꼈다. 데이터 프레임을 다루는 방법뿐만 아니라, 복잡한 데이터 구조를 효율적으로 가공하고 분석하는 능력을 기르는 것이 앞으로의 과제라고 생각한다.
현재는 파이썬 언어를 중심으로 집중적으로 공부하고 있지만, 여전히 아직 부족한 부분이 많다고 느낀다. 기본 문법과 알고리즘 문제 풀이를 통해 실전 감각과 문제 해결능력을 키워나갈 예정이다.
다음 주에는 Docker에 대해 더 자세히 배우게 된다.
학부 시절 VirtualBox를 활용해 리눅스 기반 Fedora 가상 환경을 구성해본 경험은 있지만, 가상 환경과 로컬 환경 간의 연동, 네트워크 설정, 포트 포워딩 등과 같은 실제 운영 환경에서 필요한 요소들은 깊이 있게 다뤄보지 못했다.
데이터 엔지니어 직무 특성상 리눅스 환경에 대한 이해와 활용 능력은 필수적인 역량이기 때문에 수업 중에 Docker와 컨테이너 기술에 대해 익히고, 별도의 스터디를 통해 리눅스와 가상 환경 운영에 대한 이해도를 높여야 된다.