전체 글23 개인주의자 선언 (문유석) 서점 주인의 저마다 취향이 반영되는 독립서점을 돌아보는 시간을 좋아한다. 이 책도 한옥으로 꾸며진 수원의 작은 독립서점에서 만났다. 이 책을 고를 때는 IT 서적과 스터디를 읽다보니 사람사는 세상에 대한 이야기가 궁금했었고, 이 책의 표제는 나와 비슷하지만 이 험한 세상 속을 잘 적응한 사람의 이야기를 담고 있는 듯했다. 읽으면 읽을수록 나와는 다른 사람임은 인지하게 되었지만, 법이 얼마나 사회와 가까운 영역에서 일이 진행되는지 알 수 있었으며 단지 눈 앞의 결과를 위해 업무를 진행하는 것이 아닌 내가 속한 사회 구성원으로서 사회를 희망적으로 만드는 사람의 이야기가 아닌가 싶었다. 인간혐오 내가 옳다고 생각하는 것들은 내 생각일 뿐 다른 별에서 온 사람들에게 강요할 수 있는 것이 못 된다. 그저 저 별에.. 2023. 6. 11. 데미안 (헤르만 허세) 나에게 데미안은 오랫동안 이름만 알고있던 책이였다. 몇 년전 런닝맨에서 퀴즈로 나왔었고, 환승연애2를 보다가 출연진들이 자신의 인생책이라고 표현하는 책이였기에 머리 속에 작은 공간에 고히 있다가 시간이 날때 한번 읽게 되었다. 서문 만약 우리가 이제 더 이상 단 한번 살 수 있을 뿐인 소중한 목숨이 아니라면, 우리 하나하나를 총알 하나로 정말로 완전히 세상에서 없애 버릴 수 있다면 이런저런 이야기를 쓰는 것도 아무런 의미가 없으리라. 그러나 한사람 한 사람은 그저 그 자신일 뿐만 아니라 일회적이고, 아주 특별하고, 어떤 경우에도 중요하며, 주목할 만한 존재이다. "인생은 한번이기에 중요하다." 를 천천히 읽어볼 수 있게 만들어 감탄한 문장이다. 이 문장에서 문학의 힘을 새삼 느꼈다. 짧고 명료한 문장은 .. 2023. 5. 7. 데이터 드리븐 디자인씽킹 (에이블런) 데이터 엔지니어라는 데이터 직군에 있으면서, 내가 아는 부분에 대해서 알아가는 것 이외에 다가 속한 영역에 대한 궁금증이 커져갔다. 잡힌 업무를 빠르고 전문적으로 진행하는 것도 좋지만 어떤 배경으로 업무가 진행되는지와 내가 하는 일들이 어떤 프로세스에 속해있는지 궁금하던 찰나 이 책을 알게 되었다. 이 책은 특별한 통계적인 지식도, 데이터 엔지니어링도, 데이터 분석에 대한 내용을 잘 모르더라도 데이터 기반의 의사결정 과정을 한번 구경해볼 수 있는 책이다. 장점은 그런 프로세스를 한번 살펴보기에 책의 구성과 문장들이 참 쉽게 잘쓰여있는 것이며, 단점이라고 할건 없지만 책의 타겟팅이 깊이 있는 걸 찾으려는 독자를 위한 책은 아니다. 글을 쓰다가 날라갔다 .. 그래서 요약 중심으로 다시 쓴다... 이 책을 읽.. 2023. 3. 21. INK ON BODY (김현경, 송재은) 문신은 받는 사람 저마다 모두 다른 이유가 있는 것 같습니다. 어떤 사람에게는 보여주고 싶은 이유일 수 있고, 어떤 사람은 보여주고 싶지 않은 이유일 것입니다. 저는 보여주고 싶지 않은 이유에 속합니다. 그 이유가 부정적인 것보단 그 이유를 소중히 나만 가지고 있고 싶기 때문입니다. 이 책은 그런 마음에서 끌렸습니다. 저의 소중한 이유가 있든 다른 사람에게도 저마다의 이유가 있을거라고 생각했습니다. 함께 쪼글쪼글해질 것을 새겼다. 해변에서 바다를 향해 선 할머니의 뒷허리에 새겨진 모습을 보고, 현재 내가 결정한 무언가가 쪼글쪼글한 나이까지 내 몸에 남는게 멋지다는 생각이 들었다. ... 그보다 더 좋아하는 건 "혹시 타투 뜻 여쭤보는 거 실례인가요? 제가 타투가 없다 보니까 뭐가 매너인지 잘 몰라서요.".. 2023. 3. 21. MySQL [Stored Procedure & EVENT Scheduler] "데이터베이스 내부에 여러 테이블 생성과 트랜잭션 실행 등 작업을 매일 배치성으로 진행할 수 없을까?" 라는 고민에서 해당 작업을 시작하였다. 1. Cron과 Airflow 를 통해 SQL 을 배치성으로 수행하기 2. 데이터베이스가 제공하는 배치 기능을 통해 배치성으로 수행하기 여기서 2번을 선택하였다. 이유는 데이터베이스 내부의 테이블 생성, 변경, 삭제 등의 작업은 데이터베이스 자체적으로 관리하려했기 때문이다. 1번처럼 다른 도구의 스케줄링과 SQL 을 연결할 수 있지만 관리가 점점 어려워지고 있음을 느꼈다. 그래서 여러 스케줄링 작업이 있다고 해도, 각 목적에 맞는 프로그램을 사용하는게 관리하기 더 용이하다고 생각한다. - 젠킨스 : CI/CD 등 인프라 작업 - AIrflow : 데이터 E,T,L.. 2022. 12. 29. [Python] requests text 와 content 차이 Python 에서 크롤링을 진행할 때는 requests 라는 라이브러리를 줄곳 이용하곤 한다. http API 가 표현해야하는 url, param, header 등 관련 속성을 다양하게 표현할 수 있기 때문에 편리하다. HTML 언어로 작성되어 있는 웹 페이지 혹은 API 의 결과값을 받을 때 requests 객체 안에 text 와 content 를 사용합니다. 두 반환 값을 언제 다르게 사용하는지 궁금하여 찾아보았습니다. https://requests.readthedocs.io/en/latest/user/quickstart/#response-content text : 문자열 인코딩이 적용된 문자열이다. 이는 http 헤더를 기반으로 응답한 객체의 인코딩 정보를 추측(guesses)해서 인코딩합니다. -.. 2022. 12. 28. AWS CloudWatch 를 통한 서버 메트릭, 로그 관리 하기 (기초) AWS 에는 다양한 서비스들이 제공되고 있습니다. EC2, ECB, Lambda 처럼 컴퓨팅 서비스가 있고, SQS, S3 처럼 저장소와 관련된 서비스가 있습니다. 서비스가 정상적으로 작동하고 있는지, 어느 정도의 성능을 내고 있는지를 확인하기 위해서 각 서비스가 제공하고 있는 모니터링 기능을 이용할 수 있지만 AWS 의 CloudWatch 를 이용하면 간단하게 여러 서비스들을 하나의 로그가 나오도록 묶을 수도 있습니다. 우선 모니터링을 할땐 어떤 요소들을 고려해야할까요? 단순히 모니터링을 진행하려고한다면 갑자기 헷갈릴 수 있습니다. 서비스에서 제공하는 로그들을 보는건지, 아니면 시스템의 메모리 혹은 CPU 사용량을 봐야하는지 헷갈릴 수 있습니다. 모니터링을 시작할 때 아래의 4 가지를 기준으로 어떤 부.. 2022. 11. 23. 따라하며 배우는 AWS 네트워크 입문(김원일, 서종호) - 1장, 2장 VPC 구축 AWS 네트워크에 대해 하나씩 알아가고자 선택한 책입니다. 책에는 실습들이 스크린샷과 함께 제공되어 있어 실습을 진행하지 못하는 상황에 있더라도 전반적인 과정을 파악할 수 있었습니다 1장. AWS 소개 1장은 책이 앞으로 소개할 내용, AWS 용어 설명에 대한 장이였습니다. 매번 봐도 헷갈리는 내용들이 있어 같이 정리합니다. 클라우드 서비스 종류 IaaS (Infrastucture as a Service) : '서버, 네트워크, 스토리지' 자원을 클라우드 사업자가 제공하고 운영 및 관리함 AWS 서비스 : EC2(컴퓨팅), VPC(네트워크), EBS(스토리지) PssS (Platform as a Service) : 어플리케이션 이전 미들웨어와 런타임까지 클라우드 사업자가 관리하고, 어플리케이션에 대한 작.. 2022. 11. 21. AWS 와 GCP 에서 Docker 기반 인스턴스의 네트워크 차이(Compute Engine / EC2 ) - 포트포워딩 클라우드에서 제공하는 다양한 컴퓨팅 서비스들 중 가장 기본적인 서비스를 고르자면 GCP 의 VM 과 AWS EC2 가 있습니다. 두 서비스 모두 Docker 기반으로 인스턴스를 생성하는 서비스를 제공하고 있는데, 외부에서 접근하려고 할 때 포트를 어떻게 개방해야하는지 알아보았습니다. GCP Compute Engine / VM 참고 : https://cloud.google.com/compute/docs/containers/configuring-options-to-run-containers?hl=ko#publishing_container_ports GCP 간단합니다. Docker Container 에서 사용하는 네트워크 스택이 Host VM 의 네트워크 스택을 그대로 이용합니다. Docker Network .. 2022. 11. 8. 나는 단호해지기로 결심했다. ( 롤프 젤린 ) 위로 받기위해 책을 읽는 성격은 아니지만, 내가 힘들 때 나를 위로해주었던 책들이 몇 권 있다. 이 책이 그 중 하나이다. 비슷한 소재가 많이 등장하던 때의 책이지만, 이 책은 회사 생활로 많이 힘들어 하던 나에게 앞으로의 태도가 어쩌면 좋을 지 많은 조언을 해주었다. 어떤 내용으로 힘들었는지 말하기보다, 이 책의 부제를 읽으면 내가 힘들어한 느낌을 알수도 있을 것 같다. "더 이상 누구에게도 휘둘리고 싶지 않은 사람들을 위한 관계 심리학" 프롤로그 : 지금 우리에게 필요한 것은 더 인정받기 위한 노력이 아니라 안 된다고 선을 긋는 용기다. 소속 욕구와 인정 욕구는 사회 규범을 준수하게 하고 다른 사람을 배려하고 이해하는 능력을 갖게 해준다. 그러나, 그 욕구가 지나치게 커지면 자신의 생각과 감정을 희생.. 2022. 10. 11. 동자동 사람들 ( 정택진 ) 우리 주변에는 참 다양한 사람들이 많습니다. 그 중에서도 사회의 보장제도와 함께 언급되는 분들이 많이 계신데, 이 글은 쪽방촌이라고들 불리는 동자동에 사는 사람들에 대해 표현하고 있습니다. 그들은 분명히 우리 주변에 계십니다. 분명하게 그들은 절대악인처럼 숨어계셔야할 분들이 아니고, 인구 비율에 따라 보기 어려운 분들도 아니고, 엄청 일어나기 어려운 사건에 연관된 소수의 분들도 아니라고 생각합니다.. 사회에 존재하는 그분들에 대해 알고 싶어서 이 책을 읽게 되었습니다. 들어가며 오멜라스(Omelas)는 행복과 즐거움이 넘치는 도시다. ... 오멜라스의 시민은 일정한 나이가 되면 의례적으로 벽장 앞에서 아이와 마주해야한다. 일종의 통과의례다. 시민들은 오멜라스가 누리는 모든 기쁨과 행복이 벽장 안에 갇혀 .. 2022. 10. 9. 도망친 스물아홉살 공무원(여경) - 2022년 9월 18일 4번째 회사에 들어오고 업무를 하면서 가끔 드는 생각이 있습니다. "나는 도망친게 아닐까" 어딘가에 적응하지 못하고, 자꾸 피해다니는건 아닐까 라는 생각이 간혹 들곤 하는데, 이 책은 나와 비슷한 나이대에 "도망친" 이라는 단어를 쓰는 사람의 이야기가 궁금하게 되어서 읽게 되었습니다. cf. 작가분의 성함이 '여경' 이셨는데, 좋아하는 영화 '내 남자친구를 소개합니다.'의 여경, '네 멋대로 해라' 의 진경이 생각나기도 했습니다. 프롤로그 그 때 알았다. 늘 모범색으로 살며 주변의 시선에 따라 내 선택을 결정짓던 지난 날들이 모여 나를 병들게 했다는 것을. 퇴사한이후 외국 땅을 밟기도 전에 몸의 이상이 발견되었다. ... 몸은 솔직하다. 나보다 먼저 나의 상태를 인지하고 늘 신호를 보내오고 있었으니까. .. 2022. 9. 18. DataFrame을 압축하는 형태({‘snappy’, ‘gzip’, ‘brotli’ ) 알아보기 - Parquet 와는 어떻게 다를까? 틀린점이 있을 수 있습니다. 배경 ETL 작업을 진행하고 있었다. Raw 데이터는 Parquet 로 변환하는 작업을 진행 중이고, 사용하는 파이썬 라이브러리는 Pandas 이다. Pandas 에서는 DataFrame 을 Parquet 로 변환하는 to_parquet 함수를 제공한다. to_parquet 는 3가지 Compression 방식을 옵션으로 제공한다. ... Parquet 는 압축이 아닌걸까? 우선 첫 번째로 헷갈렸던 내용은 “Parquet 도 압축 방식이 아닌건가?” 였다. Parquet 에 대해서 인터넷의 글들을 읽어보면서 Parquet 가 압축방식인지 헷갈렸었다. 왜냐하면, 아래의 그림처럼 Parquet 가 CSV 보다 파일 사이즈를 많이 줄인다라는 글들이 너무 많았다. 그래서 Parque.. 2022. 6. 6. AWS 2022 Summit - 산업 내용 요즘 엔지니어링 관련돼서 다양한 summit 및 컨퍼런스가 열립니다. 여기 페이지에는 제가 다양한 컨퍼런스에 참여해서 최신 트렌드와 동향을 파악하기 위해 글을 작성합니다. 이전 포스팅이 교육에 대한 내용이였다면, 해당 내용들은 부러움과 신기함 그리고 산업에서 실제 사용되고 있는 것들에 대한 내용이다. 이것 말고도 정말 많은 회사들이 발표하는 영상들이 있고, 발표하시는 분들이 모두 멋있게 느껴졌다. 나도 언젠간 저런 영역에서 말할 수 있겠지..? 라는 작은 꿈을 가지고 해당 내용들을 보았다. AWS와 함께 달성한 일일 5억 건 이상의 광고 데이터 처리 노하우 - 버즈빌 예전부터 회사 내 문화부터 데이터까지 관심있게 보던 버즈빌의 영상이였다. 언제나 이런 영상을 볼때면 내용이 부럽다. “나도 저런 분들과 같.. 2022. 5. 19. AWS 2022 Summit - DataLake 교육 영상 후기 요즘 엔지니어링 관련돼서 다양한 summit 및 컨퍼런스가 열립니다. 여기 페이지에는 제가 다양한 컨퍼런스에 참여해서 최신 트렌드와 동향을 파악하기 위해 글을 작성합니다. 이번 2022 AWS Summit Koera 가 주최되었다. AWS 는 지금 회사에서 가장 많이 쓰기도 하고, 산업계에서도 정말 많은 회사들이 사용하고 있기 때문에 최신 트렌드는 어떤지 궁금하였다. 결론부터 먼저 말하자면 부족함을 많이 느꼈다. 내가 알수있는 문장들로 설명하는 영상의 수는 생각보다 적었고, 내가 잘 이해하지 못하는 영상들의 내용이 부러웠다. 주로 빅데이터 환경에서의 데이터 처리에 대한 내용은 내가 알수 없었다. 아마 개념도 잘 모르기도 하고, 실제 서비스 경험이 부족해서지 않을까 싶다. 부족함은 부족함대로 생각하고 앞으.. 2022. 5. 19. 같은 스키마를 가진 파일들 안에서 여러개의 Athena 테이블이 만들어질 때 문제의 배경 테이블을 만드는 방식은 Glue Crawler를 이용하였는데, Glue Cralwer 를 통해서 테이블을 생성했을 때 하나의 스키마로 인지할 줄 알았던 폴더구조가 두 개로 인지했다. 예를 들어, A라는 버켓에 아래 두개의 Parquet 파일이 있고 두개의 Parquet 파일이 동일한 스키마를 지니고 있다고 했을 때, A/2022/01/10/a.parquet A/2021/01/10/b.parquet 예상 결과 : Glue Cralwer 가 크롤링 한 후 A 라는 테이블이 생성되고, 두개의 파일이 투영되는 것을 예상하였다. 실제 결과 : 2022,2021 라는 이름의 두 개의 테이블이 계속생성되었다 문제 해결 방식(테이블 임시 생성 후 파일 이동) 1. A/2021/01/10/b.parquet .. 2022. 5. 17. 리눅스 grep 명령어 보통 두 가지 상황에서 grep 을 사용합니다. 파일 내 특정 단어를 포함한 행을 찾으려고 할 때 표준 출력에서 특정 단어를 포함한 행을 찾으려고 할때 특정 단어와 일치하는 행을 찾을 수도 있고, 정규식과 일치하는 행을 찾을 수도 있습니다. 🔔 grep 의 결과는 행을 찾는 것입니다. 예를 들어, 스트림 형태의 json은 한줄로 이루어진 형태이기 때문에 grep 으로 원하는 결과를 찾기 어려울 수 있습니다. grep 의 사용법은 다음과 같습니다. $ grep [옵션] [패턴] [파일 혹은 표준출력] 문자열과 일치하는 행을 찾는 방법 $ grep hello 파일명 는 파일에 hello 라고 표현되는 행을 찾습니다. $ grep hello 파일명1 파일명2 이렇게 두개의 파일을 대상으로 사용할 수 있습니다... 2022. 5. 4. 리눅스 SED 명령어 데이터 엔지니어링을 하다보면, 문자열 파싱을 이용해야할 때가 많다. Java 나 Python 을 이용할 수도 있지만 해당 언어가 설치되지 않은 인스턴스일 수 있다. 리눅스 기반의 인스턴스를 많이 이용하다보니 쉘 명령어로 작동하는 sed 라는 프로그램을 이용하면 텍스트 파일의 문자를 변경하는데 많은 도움을 준다. SED 란? (Streamlined EDitor) sed 도 프로그램이다. 문자열을 다루는 프로그램이다. 문자열을 찾거나, 치환하기 위해 사용한다. 텍스트 에디터를 사용해도 되지만 sed 도구를 통해 쉘 스크립트나 명령을 통해 문자열 작업을 진행할 수 있다. SED 작동방식 (1) input 파일을 한 라인당 한번에 읽습니다. (2) 각 라인은 패턴 스페이스(Pattern Space)라는 버퍼에 .. 2022. 5. 4. 아테나(Athena)의 데이터베이스와 Glue Data Catalog 데이터베이스의 차이 AWS 기반 데이터 파이프라인을 진행한다면 제일 많이 보는 것이 S3 에 데이터를 저장하고 Ahtena 로 검색을 진행하는 것이다. 그 중에서도 이 글은 Glue Data Catalog 와 Athena 데이터베이스의 차이에 대해 설명하고자 작성하는 글이다. 왜냐하면 나도 헷갈렸기 때문이다... 좀 더 자세하게 말하자면 아래의 의문에서 해당 포스팅을 시작하였다. “Glue 에도 Data Catalog 가 있고, Data Catalog 에 Database 가 있는데 Ahtena 에서 선택하는 Database 와 같은건가..? 이 의문을 해결하기 위해 아래의 순서로 공부하였다. 1. Ahtena 는 무엇인가? 1.1 Ahtena 는 언제 필요할까 2. AWS Glue 에서 하는 일은 무엇일까 2.1 AWS G.. 2022. 5. 4. 파일 시스템 알아보기 파일 시스템을 왜 알아보려고 했을까요? MySQL 아키텍처를 보면 하단에 File system(파일 시스템) 으로 표현된 부분이 있습니다. 옆에 있는 Files & Logs 와 연결해서 생각해보면, 아래와 같이 해석이 가능합니다. 데이터베이스를 사용할 때 저장되는 데이터는 파일과 로그(Files & Logs) 가 있다. 파일을 저장할 때 사용하는 파일 시스템은 NTFS, ufs, ext12/3, NFS, SAN, NAS 등을 사용할 수 있다. 여기서 파일 시스템은 무엇일까요? 단순하게 "파일을 저장하는 방식이 나누어져 있다."로만 생각했었는데 이 포스팅을 통해서 조금만 더 자세하게 생각해보려합니다. 해당 포스팅은 "파일시스템1 파일시스템의 이해" 라는 글과 위키 백과의 파일 시스템을 읽으면서 작성하였습니.. 2022. 4. 15. Python class 변수 , 인스턴스 변수 class 변수 , 인스턴스 변수 참고 : http://pythonstudy.xyz/python/article/19-%ED%81%B4%EB%9E%98%EC%8A%A4 class Rectangle: count = 0 # 클래스 변수 # 초기자(initializer) def __init__(self, width, height): # self.* : 인스턴스변수 self.width = width self.height = height Rectangle.count += 1 # 메서드 def calcArea(self): area = self.width * self.height return area 클래스 변수 : 클래스 하나가 공통으로 사용하는 변수 인스턴스 변수 : 각 인스턴스가 개별적으로 생성해서 사용하는 변수 2022. 4. 5. ORM 간단하게 알아보기 ORM (Object_Relational Mapper) 장점 현재 사용하고 있는 언어만 사용해도 됨 데이터베이스 시스템으로부터 분리가 됨 직접 작성하는 SQL 쿼리문이 없고 더 높은 성능의 SQL 쿼리문을 작성할 수 있습니다. 단점 데이터베이스와 바로 연결하는 것보다 초기설정이 더 많아지거나 복잡해질 수 있습니다. 내부 작동에 대한 충분한 이해가 없는 경우 해결이 힘들 수 있습니다. 데이터베이스에 직접 쿼리문을 보내는 것이 아니기 떄문에 성능 저하가 발생합니다. SQLAlchemy (ORM 의 기능을 제공하는 Python 라이브러리) Core 데이터베이스와 상호작용 엔진 from sqlalchemy import create_engine engine = create_engine("데이터베이스 주소") #e.. 2022. 4. 5. google Sheet에 Github Repo 정보 가져오기 google Sheet에 Github Repo 정보 가져오기 Import GitHub Data to Google Sheets 의 글을 따라 시도해보았습니다. Import GitHub Data to Google Sheets 따라하기 예제는 https://github.com/octocat/Hello-World/ 의 데이터를 사용 업무에서 사용하는 레포지토리와 다른 점 업무에서 활용하는 레포지토리는 Private로 되어 있음 Priavte 는 권한작업을 해줘야 할 것임 세 가지 정보를 수집해보겠음 Repository Pull Request Commit Messages in Pull Request Raw Data related with Commit Step 1) 빈 구글 시트 생성 Step 2) Google S.. 2022. 4. 5. 이전 1 다음