분류 전체보기
-
개발자가 영어도 잘해야 하나요?Review/Book 2024. 11. 24. 02:26
사실 책 제목이 아닌 다른 제목으로 하고 싶었는데, 책 제목 자체가 이미 후킹하기에 좋은 내용으로 꾸며져있어서 그냥 그대로 책의 제목을 인용해서 이 글의 제목으로 하기로 결정했다.이 제목에 이끌려 이 글을 읽게 된 사람도 분명 있을 것이다. 나역시도 이 책을 그런 사유로 출판사에 리뷰이벤트 신청을 했고 운좋게 당첨되어서 이렇게 서평을 남기게 되었다.제목에 대한 이야기를 이어서하자면 “개발자가 영어도 잘해야 하나요?”대답에 대한 나의 개인적인 대답은 반드시 그렇지는 않다.다만 저자는 점차 원격근무가 활성화되고 초연결사회로 변화함에 따라서 글로벌화되면서 커리어 성장에 분명히 도움이 된다는 점을 강조하며 최신 개발 트렌드나 기술들은 언제나 항상 영어로 먼저 쓰여지기 때문에 영어는 개발 생산성을 향상시키는 도구..
-
나의 매일 아침을 깨우는 뉴스레터들log 2024. 10. 27. 02:15
나는 매일 아침 뉴스레터를 읽는 것으로 하루를 시작한다마치 거실에서 아버지가 아빠다리로 앉아서 신문을 정독하는 것처럼 나 또한 아침을 여는 루틴이 한가지가 있다. 매일 평일 아침에 나는 메일과 함께 omnivore를 통해 피드들을 읽는 것이다. 옴니보어는 사용자가 웹에서 읽고 싶은 컨텐츠를 저장하고 관리할 수 있도록 돕는 무료 오픈 소스 어플리케이션이다.이 프로그램으로 기사나 뉴스레터, 문서 등을 저장하고 나중에 읽을 수 있도록 정리하는 기능을 제공하는 흔히 말하는 Read–it-Lator 앱이다.웹스크래핑뿐만이 아니라 다양한 플랫폼을 지원해서 모바일이나 테블릿과 같은 다양한 환경에서 피드들을 확인할 수 있으며 옵시디언과 연동하여 스크랩한 기사나 피드들을 글에 인용하거나 스크랩하기도 편리하다.옴니보어에 ..
-
글또 10기를 참여하며 가다듬는 마음가짐 기록log 2024. 10. 12. 01:24
글또를 만나게 된 계기처음 내가 글또를 알게 된 것은 내가 구독하고 있는 daily Dev Blog라는 메일링 서비스에서 였다. 이 메일링 서비스들은 개발 블로그들을 큐레이팅해서 매일마다 해당 블로그에 피드에 글을 쓰면 자동으로 아침에 목록들을 발송해주는 서비스다. 오랫동안 해당 서비스를 구독해오면서 특정 기간동안에 글또라는 명사가 들어간 글들이 한창 많이 올라오던 때가 있었다. 그래서 궁금해서 몇 번 그런 글들을 찾아보고 글또라는 명사에 대해서 검색해보고나서야 글또가 글쓰는 또라이가 세상을 바꾼다는 슬로건으로 6개월동안 지원자들이 각기 블로그에 2주에 1회 이상 글을 의무적으로 작성하는 커뮤니티 프로젝트다.글또에 참여한 사람들은 서로 피드백도 주고받고 글을 작성하지 않아서 얻게되는 예치금 패널티를 받지..
-
데이터 오케스트레이션 dagster와 dbt에 대해서 알아보기Review 2024. 7. 9. 23:08
dagster데이터 오케스트레이션을 강조하는 스케줄러op로 파이프라인의 잡을 정의하며 op로 이어놓은 workflow들은 job으로 구현한다각각 op와 job은 데코레이터로 정의된다하나의 스크립트에 다수의 pipeline을 포함할 수 있으며 이를 통해 여러 workflow를 구현가능하다→하나의 스크립트를 repository라 정의각각의 op는 별도의 input과 output을 가질 수 있으며, op간 변수 상속이 가능하다Op: 가장 작은 단위로, 개별 작업을 수행한다.Asset: job의 결과물로 생성된 데이터 또는 자료Job: 여러 op를 결합하여 특정 작업을 수행한다. job은 op 간의 실행 순서를 정의한다op와 asset은 task 단위라는 성격은 같지만 프로세싱하는 주체의 유무와 데펜던시의 업다..
-
스파크에서 지원하는 압축 알고리즘 비교Programming 2024. 6. 26. 23:54
압축 알고리즘 비교Configuration - Spark 3.5.1 Documentation Configuration - Spark 3.5.1 DocumentationSpark Configuration Spark provides three locations to configure the system: Spark properties control most application parameters and can be set by using a SparkConf object, or through Java system properties. Environment variables can be used to set per-macspark.apache.org현재 스파크 3.5 기준 압축 알고리즘으로 snappy, g..
-
도파민과의 전쟁 회고log 2024. 6. 10. 01:33
도파민과의 전쟁을 결심하다문득 침대에 널브러져 유튜브 쇼츠를 하염없이 바라보며 시간을 축낸적이 있지 않은가? 나의 경우가 그랬다. 잠깐만 쇼츠를 보고자 마음먹어도 넘기다보면 한시간은 우습게 시간이 훌쩍 지나가 있다.쇼츠만 보면 다행이다. 남는 시간 쪼개서 틈틈이 커뮤니티를 보는 시간도 많아서 합하면 꽤 많은 시간을 도파민을 생성시키는 것들에게 투자하고 있다.문제는 이 행동에는 관성이라는 것이 있어서 내가 문득 즐겁지도 않은데 이것을 습관적으로 계속해서 다음글, 다음 숏츠를 넘기며 보고있다는 점이다.스탠포드 신경학 교수 앤드류 후버만은 “만약 당신이 즐겁지도 않은 행동을 하면서 왜 이러고 있지? 라는 생각이 든다면 도파민 중독을 의심해보십시요.”라고 말한다.사실 도파민 중독이라는 말은 없다. 정확히는 도파..
-
당신의 인덱스는 안녕하신가요?(커버링 인덱스)Programming 2024. 3. 31. 21:10
인덱스를 적용하는 이유 인덱스는 데이터베이스 내의 데이터를 빠르게 찾을 수 있도록 도와주는 데이터 구조이다. 인덱스를 사용하지 않은 상태에서 데이터를 검색하면, DBMS는 요청된 데이터를 찾기 위해 테이블의 모든 행을 순차적으로 검색해야 한다. 이러한 과정을 풀 테이블 스캔(Full Table Scan)이라고 하며, 대량의 데이터가 저장된 테이블에 풀 스캔을 할 경우에 많은 시간이 소요될 수 있다. 인덱스를 적용하면, DBMS는 인덱스를 통해 데이터의 위치를 빠르게 찾아 접근할 수 있게 되어 검색 속도가 향상된다. 대부분 인덱스를 설명할 때 책의 목차에 비유하는 이유도 이 때문이다. 인덱스는 검색 시간과 쿼리 실행 시간을 단축시킴과 동시에 테이블 전체가 아닌 인덱스 내에서 스캔하기 때문에 DB에 부하도 ..
-
SparkSQL에서 증분 테이블 처리하기Programming 2024. 2. 25. 21:49
배경ETL처리시 Spark를 통해 Trasfroming을 하는데 1000만 로우가 넘는 테이블을 이관하며 기존 Overwrite하는 방식이 아닌 증분되는 양만큼만 반영하기로 함updated_at 컬럼으로 증분되는 양만 읽어서 기존 테이블에 upsert를 하는 방식현재 운영하는 데이터웨어하우스는 일반적인 RDB가 아닌 HDFS기반이므로 불변성을 위해서 upsert를 할 수 없음옵션Hudi or Delta Lake or Iceberg와 같은 동시성이 제공되는 오픈소스를 사용한다현재 실시간 테이블을 위해서 Delta Lake를 사용되고 있지만 이관을 위해서는 따로 사용하고 있지 않으므로 다른 테이블과 사용성 및 통합을 위해서 해당 옵션은 보류SQL 윈도우 함수를 통해서 증분된 만큼 처리하고 기존 값과 UNIO..