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

많이 본 글

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의 웹 서비스를 목표로 상정하고 ..

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

NHN Forward 22 - 벡터 검색 엔진에 ANN HNSW 알고리즘 도입기

https://youtu.be/hCqF4tDPNBw?si=wYvWqiYFzX5UDr6R 대충? 거의 정확하다! 벡터 검색 엔진에 ANN HNSW 알고리즘 도입기 NHN Cloud 로그플랫폼개발팀 권성재. 벡터 검색엔진 운영하면서 새로운 알고리즘 도입하기까지. 기존 방식의 문제점, 해결책, C++ 구현체 말고 Golang에 적용하기까지. 헷갈릴 수 있어서 용어 정리하자면 ML 기술 결과물로 나온 Vector 값의 검색 관련 내용임. ML이나 AI 기술 자체에 관련된 건 아니다. HNSW 도입 배경 기존 방식인 KNN: 점 두개의 L2 Distance 계산. 검색 대상으로 들어온 Vector가 있으면 기존 DB에 있던 모든 Vector 간 거리를 일일이 계산 -> 가장 거리가 가까운 K개 응답. 따라서, 데..

AI 2024.01.01 1

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

세줄요약독서

more

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

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

세줄요약 독서 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

한국요약금지

한국인과 혼인하고, 한국에 10년 거주중인 미국 컬럼니스트의 짧은 투고본 모음.이방인 시점에서 한국의 다양한 면모를 관찰하고 소감을 기록했다.영화, 소설 등 문화콘텐츠 위주의 소재가 많고, 주도적이고 독창적인 모습을 높게 평가하는 반면 본질을 잃거나 모방에 그치는 모습을 안타까워한다.김치의 나라, 삼성의 나라, 자살의 나라, BTS의 나라… 한 나라를 한두 마디의 말로 줄여서 부르면, 그 나라의 단편적인 일부분만을 전부인 양 이해하게 된다. 이 책은 ‘한류' 라는 단어도 없던 1990년대에 한식과 K팝으로 한국을 처음 접하고, 컬럼니스트로 한국에서 10년째 살아가며 한국과 미국에 투고했던 글을 모았다. 특정한 면만 보고 한국이라는 나라를 전부 이해했다는 듯 요약하지 말라는 뜻에서 책 제목도 ‘한국요약금지..

세줄요약 독서 2024.06.06 1

학습일지

more

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

KubeCon2023 - Building Better Controllers

https://youtu.be/GKPBQDJ2Hjk?si=DMB5DbmgD64ohT6I 발표자: John Howardworking on istio for about 5 years, mostly on control plane.istio라는 big Control plane 개발하고 관리하면서 겪었던 controller 이슈를 어떤 식으로 해결했는지 소개.What is Controller? Controller를 거칠게 정의하면 'input을 넣었을 때, 대응되는 output을 내뱉는 것'Deployment yaml을 배포하면, Replicaset이 만들어진다.Replicaset이 배포되면, pod가 만들어진다.pod가 만들어지면, service에서 pod 생성이벤트 감지하고 적절한 endpoint를 배포한다...

kubernetes 2024.08.11 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