목록Developer (21)
새벽을 밝히는 붉은 달
글을 쓰기에 앞서, 나는 Golang을 아주 조금밖에 다루지 못하는 사람이다. Go를 정말 잘 다루는 사람들의 경우에는 책을 읽고 난 후의 감상이 다르게 다가올 수 있기 때문에 이 부분을 참고하여 리뷰를 읽어주세요. 예전부터 Go는 나에게 배우고 싶었던 언어이다. 최근 많이 쓰이는 다양한 인프라 서비스들이 Go로 작성되어 있고, 유명한 프로그래밍 언어 - C, Java, Python 등 - 의 장점 등을 모아 사용하기 쉽다고 하며, 주니어 개발자가 써도 최소한 평타(?)는 친다는, 요즘 인기 있는 언어였기 때문이다. 내 직군에서도 API 서버를 운영하는 부분은 Go를 도입하는 추세였기에 Go는 항상 잘 다루고 싶은 언어인 존재이다. 이전에 Go에 관심이 생겨서 동아리 내에서 스터디를 했던 적이 있었는데,..
출시된 이후 굉장히 읽어보고 싶었던 책이었는데, 이번에 좋은 기회로 해당 책을 읽게 되었다. 책은 총 3부로 구성되어 있으며, 1부에서는 데이터 엔지니어링 기반 구축하기, 2부에서는 데이터 엔지니어링 수명 주기 심층 분석, 3부에서는 보안, 개인정보보호 및 데이터 엔지니어링의 미래를 다루고 있다. 현재 나는 주니어 데이터 엔지니어로 일하고 있는데, 이 책을 읽으면서 조금 더 빨리 번역되어서 출간이 되었으면 좋지 않았을까 하는 생각이 가장 먼저 들었다. 데이터 엔지니어는 다른 개발 분야에 비해 늦게 등장한 직무이기 때문에 회사별로 정의하는 데이터 엔지니어의 역할과 업무들이 굉장히 다양하다. 이 책은 조직의 데이터 성숙도에 따라 데이터 엔지니어가 어떤 업무들을 하고 어떤 책임을 지게 되는지 소개하고 있는데,..
나는 테라폼에 대해서 이야기를 들어보기만 하고, 실제로 사용해보기는 커녕 테라폼을 사용하기 위해 작성된 코드조차 한 번도 봤던 적이 없던 사람이다. 테라폼이 굉장히 핫하다는건 알고있었으나 테라폼까지 사용해보기에는 다른 것들을 습득하느라 바쁘기도 했고, 프로젝트를 진행할 때도 도커, 쿠버네티스, CI/CD 등 기본적인 인프라만 구축하는데에도 버거워서 테라폼을 공부해서 적용해보는건 엄두도 내지 못했었다. 그러던 중 좋은 기회로 '테라폼으로 시작하는 IaC'라는 책을 읽게 되었는데, 읽기 전에 조금 걱정이 되긴 했다. 인프라도 아주 기초적인 것만 다룰 줄 아는 내가 과연 테라폼을 제대로 배울 수 있을까? 책이 나에게 너무 난이도가 높지는 않을까? 하는 걱정들 말이다. 그러나 책을 읽으면서 그런 걱정들이 사라졌..
데이터를 다루는 사람들이라면 데이터 품질에 대해 고민하는 순간들이 끊임없이 있을 것이다. 나 또한 데이터 품질에 대해 고민하는 순간들이 많고, 또 더 나은 데이터 품질을 위해 여러가지 작업을 진행하고 있는데, 그런 나에게 있어 작업을 진행하기 전에 봤으면 얼마나 좋았을까 하는 생각이 드는 책이었다. 책은 데이터 품질이 무엇인지부터 시작하며, 일반적으로 데이터를 다루는 사람들이라면 한번 쯤 다 들어보았을 데이터 웨어하우스와 데이터 레이크, 배치 처리와 실시간 처리, ETL과 ELT, 에어플로우와 같은 워크플로 등에서 데이터 품질을 향상시키기 위해 어떤 것들을 할 수 있는지를 예제와 함께 보여주고 있다. 예제의 경우 직접 데이터셋을 보고 SQL 쿼리를 통해 하나하나 추론해나가면서 품질을 향상해나가는 방법을 ..
는 의 후속작으로, 이전 작에 비해 더 실무적인 내용을 다룬다고 한다. 을 읽어보지는 않았지만, 분산 아키텍처에 관심이 많았기에 를 읽게 되었다. 여기서 쓰인 Hard의 의미는 어려울 뿐만 아니라, 한 번 정하면 이후에는 고치기 어려운, 단단하다는 뜻을 내포하고 있다. 실제로 책에서 어떤 상황을 가정하면서 해당 상황에 대한 분석하고, 어떤 것들을 해야하는지 잘 설명하고 있다. 단순히 줄글로 상황이 주어졌다면 이해하기 어려웠을 수도 있겠으나, 실무자들이 이야기하는 내용들로 구성되어 있어 어떤 상황인지 쉽게 파악할 수 있다. 또한 각 상황에 대해서 파악해야 하는 것들을 무엇인지, 생각할 수 있는 방안들과 각 방안들의 장단점이 무엇인지 잘 설명해주고 있다. 상황도 굉장히 다양한 상황을 예시로 들어주고 있어 아..
현재 인턴을 하고 있다. 인턴을 하게 된 회사에는 PM과 PO분이 존재한다. 어쩌다보니 PM과 PO분들을 위한 세션에 참여하게 되었는데, 그때 궁금해졌다. 과연 PM과 PO는 무슨 일을 하시는 분들일까? 내가 속한 직군은 PM과 PO분들과 직접적으로 업무적인 커뮤니케이션을 할 일이 없기 때문에 더욱 무슨 일을 하시는지 감을 잡을 수 없었다. 그래서 "프로덕트 매니저는 무슨 일을 하고 있을까" 라는 책을 읽게 되었다. 이 책은 10년차 현업 실무자가 알려주는 프로덕트 매니저 이야기로, 전반적으로 프로덕트 매니저가 프로덕트를 어떻게 관리하는지 서술되어있다. 아직 대학생인 나의 관점에서 이야기를 하자면 대학교 팀프로젝트를 할 때 애자일 방법론으로 개발하겠다며 이것저것 시도했던 것들(스프린트, 백로그 등)이 프..
파이썬 라이브러리를 활용한 데이터 분석 - 웨스 맥키니 pandas는 NumPy 기반에서 개발되어 NumPy를 사용하는 애플리케이션에서 쉽게 사용할 수 있다 Pandas에서는 Series 와 DataFramde이라는 두 가지 자료구조에 익숙해질 필요가 있다. 일련의 객체를 담을 수 있는 1차원 배열 같은 자료 구조 index라고 하는 배열의 데이터에 연관된 이름을 가지고 있다. Series 객체의 문자열 표현은 왼쪽에 색인을 보여주고 오른쪽에 해당 색인의 값을 보여준다. Boolean 배열을 사용해서 값을 걸러내거나, 산술 곱셈을 수행하거나, 수학 함수를 적용하는 등 NumPy 배열 연산을 수행해도 색인-값 연결은 유지된다 파이썬의 딕셔너리에 데이터를 저장해야 한다면, 파이썬 사전 객체로부터 Series..
파이썬 알고리즘 인터뷰 - 박상길 파이썬의 리스트는 c++의 vector나, 자바의 ArrayList처럼 동적 배열을 구현한 자료형이다. 파이썬 리스트를 사용하면 스택을 사용할지, 큐를 사용할지 고민하지 않아도 되며, 스택과 큐에서 사용 가능한 모든 연산을 함께 제공한다. 리스트에 주로 큐의 연산을 사용할 때는 시간 복잡도가 증가할 수 있음으로, 주의해야 한다. len(a) O(1) 전체 요소의 개수를 리턴 a[i] O(1) 인덱스 i의 요소를 가져온다 a[i:j] O(k) i부터 j까지 슬라이스의 길이만큼인 k개의 요소를 가져옴. 이 경우 객체 k개에 대한 조회가 필요하기 때문에 O(k)가 된다 elem in a O(n) elem 요소가 존재하는지 확인한다. 처음부터 순차 탐색하므로 n만큼 시간이 소요..