공부하고 기록하는, 경제학과 출신 개발자의 노트

많이 본 글

Streamlink로 유튜브 멤버십 스트리밍 영상 다운로드하기

멤버십에 가입되어 있고, 유튜브에 로그인할 수 있는 계정이 필요하다. Streamlink라는 오픈소스 프로젝트를 활용해서 유튜브의 멤버십 전용 스트리밍 영상을 다운로드받는 방법. 21.09.26 현재 streamlink 프로젝트의 latest 버전은 2.4.0이다. 우선 https://github.com/streamlink/streamlink/releases 로 들어가서 latest Version을 선택한다. Releases · streamlink/streamlink Streamlink is a CLI utility which pipes video streams from various services into a video player - streamlink/streamlink github.com Win..

FastAPI, SQLAlchemy 프로덕트에서 alembic을 쓰지 않은 이유

작은 사이드 프로젝트 중간에 투입돼서 코드 개선을 하게 되었는데, FastAPI + SQLAlchemy (postgres) + Alembic으로 구성된 기존 방식에서 Alembic을 atlas로 변경했다. Python으로 구성하는 API Server + ORM + DB migration tool 조합의 정석으로 많이 쓰이지만, 글 작성 기준 alembic 최신버전인 v1.13.1 프로덕트를 써보니 장점보다는 단점이 더 크게 느껴졌다. 당연하게도, 내가 느낀 단점이나 불편함이 alembic 프로덕트 자체의 한계는 아닐 수도 있다. 문서에서 내가 놓친 부분이 있을 수도 있다. 이런 고민을 하게 된 상황은 아래와 같은 조건에서였다. Python으로 production level의 웹 서비스를 목표로 상정하고 ..

MultiModal RAG With GPT-4 Vision and LangChain 정리

https://youtu.be/6D9mpFCPeI8?si=P45ND9OjfPKsdaUq    LLM의 기능을 강화시키는 RAG는 Something to Vector 동작이 근간을 이루고 있다.텍스트의 경우는 EmbeddingModel 써서 간단히 벡터로 변환할 수 있음.그러나 PDF의 경우... 고려할 게 많다.Text, Table, Images...등장 순서나 구성방식도 정보를 포함하고 있다. 텍스트는 ChatModel을 활용하고, 이미지는 GPT-4 Vision 모델을 활용하면, pdf에 있는 데이터를 벡터화할 수 있다pdf의 text, table, image 내용을 SummarizeRaw Document도 DocumentStore에 저장하고 값을 받아온다영상에서는 제작자가 '아직 image + te..

AI 2024.04.12 0

LangChain Meetup - R.A.G 우리가 절대 쉽게 결과물을 얻을 수 없는 이유

R.A.G 우리가 절대 쉽게 결과물을 얻을 수 없는 이유https://youtu.be/NfQrRQmDrcc?si=kWmsM0cfv02ddpak  RAG을 위한 문서 전처리 방법...Document LoadSplitEmbeddingVector StoreRetriever각각의 과정마다 선택할 수 있는 종류가 너무 많음. 이것들을 조합하면서 경험했던 내용을 공유하는 발표.Document Loader 다양한 종류의 데이터를 지원하지만 보통 csv, Excel, PDF.Langchain은 load()를 인터페이스화해서, 어떤 document loader 객체라도 파일 로드할 때 load()함수 쓰면 되도록 했음 고려해야 했던 점들데이터 원형 그대로 잘 가져오는가?한글 인코딩 / 특수문자 같은 거어떤 metadat..

AI 2024.06.17 0

CKA 자격증 합격 후기 + 준비했던 방법 정리

최종 소요 기간: 3개월. udemy 강의에 2개월 / 문제풀이 1개월. 100점 만점에 17문제, 문제당 배점은 4, 7, 13점 중 하나였음. 인터넷에서는 killer shell 문제보다는 쉽다는 평이 많은데, 체감상 그렇지 않았음. podAntiAffinity 같은 생소한 문제를 요구하지 않았을 뿐, 전체적으로는 비슷한 난이도였다. 배점이 낮은 4점 문제는 한두 가지의 명령어로 결과를 만들 수 있는 문제가 많았다. 'deployment의 pod 개수를 4로 scale 변경해라' 'taint toleration 걸려 있는 노드 제외하고, available 상태인 노드 개수를 /opt// 에 입력해라' pod 컨테이너 로그 중 특정 문자열이 있는 row만 추출해서 저장해라 7점 문제가 체감상 갯수는 제..

일상 속 생각 2022.05.23 5

세줄요약독서

more

커넥팅

커리어를 논리적이고 체계적으로 설계하는 법을 안내하는 토막글 모음.커리어에서 원하는 목적과 목표를 분명히 하고, 자신의 자격 / 학습 경험, 직무 경험, 외부 경험을 조합해서 할 수 있는 역할을 정의한다.글쓰기, 발표능력, 우선순위 결정 능력과 같은 기반 역량, 성실하고 근면한 태도는 귀해졌기에 가치가 높아지고 있다.  소제목 하나하나의 길이는 책의 한 두 장 정도로 짧지만, ‘커리어 이해하기’ / ‘커리어 포트폴리오 구성하기’ / ‘커리어 포트폴리오 강화를 위한 역량과 태도 함양하기’ 라는 세 가지 키워드에 유기적으로 묶여 있다. 페이스북이나 링크드인 같은 곳에 비슷한 주제로 썼던 토막글을 잘 엮어냈다는 느낌. 커리어 이해하기 연봉의 규모는 산업과 직무에서 거의 대부분이 결정된다. 시장규모가 크고, 가..

세줄요약 독서 2024.11.17 15

만일 내가 그때 내 말을 들어줬더라면

한국에서 대접받는, 성공한 직업군인 의사이자 교수가 겪었던 우울증, 불안장애 고백 정서적 아픔을 공개하지 못하고, 내 탓이라며 삭히는 사람들에게 ‘네 탓이 아니야’ 라며 위로 / 공감하는 글 객관화 불가능한 개인의 고통을, 타인의 고통과 비교할 필요가 없다. 스스로에게도 건강한 위로가 되지 못하며, 타인에게 위로를 전하는 적절한 방식이 아니다. 약간의 사회분석 요소가 가미된 에세이 형식의 글. 한국에서 사회적으로 성공한 직업으로 인정받는 ‘의사’와 ‘교수’라는 직업을 가진 사람이 자신의 나약함, 취약함을 털어놓는 글이다. 정신과 의사로 많은 환자들을 대하며 ‘자신의 나약하고 취약한 모습을 드러내는 것이, 자신과 타인을 더 잘 이해하고 공감하기 위한 첫걸음' 이라는 점을 알리고 싶었다고. 그러나 ‘약점을 ..

세줄요약 독서 2024.10.27 3

인스파이어드 inspired

2010년 초반까지는 나름 신선했을 내용이지만, 2020년대에 읽기에는 진부하고 뒤떨어진 내용. 수많은 용어와 기법 이름을 나열할 뿐, 제대로 된 설명은 하나도 없다.기술 기업을 운영하는 리더에게 어떤 형태로 업무 방식이나 문화를 정착시킬지 안내하는 용도로는 쓸만하다.  IT기업에서 새로운 제품을 어떻게 기획, 출시, 운영해야 하는지 포괄적인 가이드라인을 제시한다. 대략 아래와 같은 내용이다. ‘고객에게 가치를 전달할 수 있는 아이디어'가 필요하다.‘비즈니스 가치를 창출할 때까지는 몇 차례의 반복 개선이 필요하다.'조직의 목표를 정하고, 조직 목표를 달성하기 위한 방법으로서 개별 프로덕트의 목표를 설정해야 한다.프로덕트가 많아지면 목표 간 충돌이나 간섭이 생길 수 있는데, 이걸 조율하는 리더의 역량이 중..

세줄요약 독서 2024.10.20 3

함께 자라기

불확실한 상황에서 문제를 해결하기 위한 개인의 성장법, 조직의 대응법을 소개한다.개인은 적극적으로 학습하고, 빠르게 피드백 받고, 적절한 난이도의 문제를 해결해가며 성장한다.조직은 구성원이 서로 신뢰할 수 있도록, 같은 문제를 조직원이 협업으로 해결할 수 있도록 환경을 만들어줘야 한다.애자일의 철학은 훌륭하지만, 방법론으로서는 가치가 높지 않아 보인다. 범인들을 데리고도 효과를 낼 수 있어야 방법론 - 프레임워크 - 의 효능을 증명할 수 있는데, 애자일은 조직장의 수준높은 의사소통 역량이 필수다. 조직장의 의사소통 능력이 뛰어나다면, 애자일 말고 다른 방법론을 적용해도 효과가 있을 텐데?  개발 업계에서 자주 등장하는 단어 중 하나가 애자일이다. 빠르고 유연한 소프트웨어 개발, 주기적인 피드백, 개인의 ..

세줄요약 독서 2024.08.16 0

나는 읽고 쓰고 버린다

독서 30년, 독서노트 15년으로 다져진 ‘인간 손웅정'의 면모를 볼 수 있는 책책 많이 읽으며 스스로 생각하기, 매사 겸손한 태도와 역지사지의 자세 함양하기.‘추구하는 가치가 명확하며, 주체적으로 생각하고 살아가는 어른'의 표상을 볼 수 있다.2010년부터 써 온 독서노트 중 여섯 권의 내용을 기반으로, 1년에 걸쳐 여러 차례 인터뷰한 내용이 기록된 책이다. 편집부의 문체 수정조차 거의 없이, 인터뷰 대화가 거의 그대로 수록된 것처럼 보인다. 대담은 가정, 노후, 품격, 운동, 사색, 리더, 코치, 부모 등 다양한 키워드로 분화되어 있다. 유소년축구 지도자라는 직업과 걸출한 운동선수 손흥민의 아버지라는 점 때문인지 부모 / 코치 관련 내용이 많은 편이다.부모 부모는 부모, 자식은 자식이다. 자식이 한두..

세줄요약 독서 2024.07.28 1

버크셔 해서웨이의 재탄생

섬유공장을 워렌 버핏이 인수한 뒤, 섬유산업에 투자하던 자본을 어떤 식으로 재배치하여 지금의 복리 기계에 이르게 되었는지를 1955년 ~ 1985년의 주주서한과 재무제표로 되짚어보는 책.재무제표의 용어나 표현에 익숙한 사람이라면, 버크셔가 어떤 시점에 무엇을 보고 어떤 기업에 자본을 투자했는지 톺아볼 수 있다.경제적 해자, 플로트(float), 자본 배분이라는 키워드가 어떻게 적용되었는지를 숫자로 볼 수 있는 참고서. 초보자를 위한 해설서는 아니다.워렌 버핏이나 버크셔 해서웨이를 자세히 모르는 상황에서 이 책을 읽었다는 점을 감안했으면 한다. 이 책은 워렌 버핏의 투자철학을 잘 알고 있는 사람에게, 버크셔가 복리 기계로 전환되기까지 어떤 선택을 거쳐왔는지 주주서한과 재무제표를 곁들여 설명하는 참고서로 봐..

세줄요약 독서 2024.07.20 0

학습일지

more

KakaoTechMeet - 신뢰성 있는 kafka application을 만드는 3가지 방법

https://youtu.be/7_VdIFH6M6Q?si=elt0JfJEcTO9i3tj   Event Driven Architecture / Stream Data pipeline 이벤트 또는 메시지 기반 메시지 전달의 신뢰성 확보하기.Exactly Once: 이벤트 발행 / 처리를 1회만 수행.At least Once: 장애 데이터가 중복으로 적재 / 처리될 수 있음.At most Once: 장애 등으로 데이터가 유실될 수 있으나, 중복은 발생하지 않음. kafka 구조 간단 소개Producer: kafka 최소단위인 Record를 Broker로 전달데이터가 제대로 전달되었는지 ACK로 확인Consumer: broker에 저장된 Record를 가져감.데이터를 정상적으로 받았는지 Offset commit으..

architecture 2024.11.21 0

KubeCon2024 - Scaling New Heights with KEDA: Performance, Extensions, and Beyond

https://youtu.be/_5_njiPr5vg?si=W0MJDjYMbLMRYPU5 발표자Jorge Turrado: SCRM에서 SRE 담당. KEDA maintainerZbynek Roubalik: Kedify CTO, Knative TOC, KEDA maintainerEnterprise Autoscaling platform for our customers. Data Processing 관점에서, 한번에 데이터 처리가 많이 필요한 경우 / 그렇지 않은 경우가 있다. 리소스 효율화를 위해서라도, 필요한 순간에만 애플리케이션이 실행되면 좋을 것 같다.HPA: target workload의 CPU / Memory 확인해서 autoscale. 단, 리소스 사용량과 Actual Need이 다른 경우 사용하기..

Autoscale 2024.10.30 0

[AIFactory 세미나] FineTune or Not FineTune

https://www.youtube.com/live/Zpevs-4hj68?si=asOQuIEyWD3JE-4e    LLM앞으로는 오픈 모델을 좋건싫건 하나씩은 가지고 있지 않을까. fine tuning한 것들.킬러 앱이 나온 건 없지만, 도구로서는 훌륭한 사례들이 나오고 있음.학습된 데이터에 민감. 각각의 데이터별로 특성이 다르다.pretrained datasetsupervised Fine-Tuning datasetpreference alignment dataset그렇다보니'어떤 데이터로 학습했느냐'라는 정보가 LLM에서 원하는 결과를 얻기 위한 중요 방법인데공개된 LLM 모델은 일반 사용자가 이걸 알 방법이 없으니 Prompt Engineering이라는 이름으로 사례들이 공유됨다만, 모델마다 Overf..

AI 2024.09.10 0

DevOpsDay 2018 - Implementing SRE practices: SLI/SLO deep dive

https://youtu.be/dplGoewF4DA?si=C8n-a4KMDFDa8QVh 발표자David Blank Edelman: Microsoft CloudOps Advocate - SRESite Reliability Engineering Site Reliability Engineering조직에서 운영하는 프로덕트, 비즈니스, 시스템이적절한 수준의 안정성을지속적으로 유지할 수 있도록 하는 Engineering Discipline.SRE라는 정의에서 필요한 핵심 키워드reliability: 암만 열심히 앱 만들어도, 앱이 떠 있지 않으면 쓸모가 없다. 안정적으로 앱이 떠서 서비스 유지될 수 있도록 하는 것.Appropriate: goal로 100% 설정하는 건 불가능하다. '적절한 수준'Sustainab..

클라우드 2024.09.02 3

KubeCon2024 - Comparing Sidecar-Less Service Mesh from Cilium and Istio

https://youtu.be/91oylZSoYzM?si=HPMFGBtma5rbIUrI   발표자: Christiansolo.io의 Global Field CTO. service mesh 쪽 오픈소스 2017년부터 참여 중. cloud native 환경의 Networking infra 역할.Security, Compilance, Zero Trust, Mandates, Multi Cloud...mTLS나 Observability, traffic control 등의 기능Architecture history: Shared Node or Sidecar구현을 위한 architectural tradeoff를 설명하려면, service Mesh 진영의 역사가 조금 필요하다. Linkerd: first & modern..

Service Mesh 2024.08.22 0

코딩테스트 문제풀이

more

[Python] 프로그래머스. 타겟 넘버 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 만들 수 있는 모든 조건을 순회하면서 조건에 맞는 정답 개수를 찾도록 만들면 된다. dfs, bfs를 사용할 수도 있지만, 이 방식이 좀더 직관적이었다.

[Python] 프로그래머스. 2021 카카오 인턴 - 표 편집 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 백준의 '키로거' 문제에서 영감을 얻어 풀 수 있었던 문제. 선택 위치를 기준으로 왼쪽을 Left, 오른쪽을 right으로 두고 left의 최댓값 < right이 최솟값이 되도록 양쪽을 heap 자료구조로 저장하면 되는 문제. 순서를 기억하기 쉽도록 배열의 index를 사용한다. https://inspirit94..

[Python] 프로그래머스. 2021 카카오 인턴 - 거리두기 확인하기 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 간단한 그래프 문제. 5 * 5 배열 조건이라서 연산량이 그렇게 많지는 않다. dfs / ..

[Python] 프로그래머스. 2021 카카오 인턴 - 숫자 문자열과 영단어 (Level 1)

https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr