소유권이란?
·
Programing Langauge/swift
👋 들어가기 전최근 일과 사이드 프로젝트에 바쁘게 생활하고 있어, 기저 개념을 학습할 수 있는 시간과 기회가 부족했는데팀동료께서 좋은 개념을 설명해주셔서 한번 학습해보려고 한다. 주제는 바로 제목과 같이 소유권이라는 개념과 함꼐 Swift 진영에서는 어떻게 다루고 있는 지 살펴보려고한다.🏁 학습할 내용소유권은 무엇이고, 왜 필요한가?Copyable과 ~CopyableborrowingconsumeconsumingSIL 맛보기🧐 소유권은 무엇이고, 왜 필요한가? 1️⃣ 소유권아래 코드가 있을 떄, 메모리 관점에서 다음 지문들을 생각해보자.let a = Data(...)let b = aa ----+ | ↓ Data ↑ |b ----+누가 Owner인가?언제 O..
바이너리 분석하기
·
iOS/Modularization
👋 들어가기 전랭그래프 포스팅 이후, 약 3개월만의 포스팅이다..회사와 사이드에 치이다보니, 학습시간이 많이 없어 포스팅을 할께 없었다. 이번 포스팅은 최근 회사에서 바이너리를 분석하는 경험을 하게되었는데, 그 때 알게된 지식과 유용한 tool 사용버을 기록하고자한다.🏁 학습할 내용nmotool✊ nm유닉스 계열 운영체제의 object, 실행, 라이브러리등파일내에 포함된 심볼을 확인하는 도구🚀 역할컴파일/링크 오류 디버깅라이브러리 분석바이너리 분석 💬 명령어nm -[옵션 나열..] [파일]옵션설명-n (numeric-sort)주소 순서대로 정렬-u (undefined-only)정의도지 않은 심볼만 -C (Demangle)Mangling 심볼을 다시 사람이 읽기 쉬운 형태로 변환-D (dyamic)..
히스토리 관리
·
AI/LangGraph
🏁 학습할 내용히스토리 관리가 필요한 이유히스토리 관리 시작하기최적화를 위한 삭제Remove 담당 NodeHuman-in-the-loop📖 히스토리 1️⃣ 히스토리 관리가 필요한 이유중간에 장애가 발생해도 복구할 수 있음 대화 / 작업 흐름을 유지할 수 있음Human-in-the-loop: 개발자가 개입하여, 검토 및 수정을 할 수 있음디버깅 및 추적이 간편함 2️⃣ 히스토리 관리 시작하기checkpoints를 활용, Snapshot을 만듬, 우리는 간단한 MemorySaver checkpointer를 이용함checkpointer는 매 실행마다, 상태 스냅샷(checkpoint)를 thread에 누적하게 됨 💡 Thread란?checkpointer가 저장하는 checkpoint들을 묶는 고유 ID그..
tool
·
AI/LangGraph
🏁 학습할 내용랭체인 tool 활용랭그래프에서 tool 제공⛓️ LangChain tool 제공 1️⃣ tool 만들기랭체인에서 tool은 schema를 가진 함수다.@tool 데코레이설명파라미터 및 리턴 타입from langchain_core.tools import tool@tooldef add(a: int, b: int) -> int: """숫자 a와 b를 더합니다.""" return a + b@tooldef multiply(a: int, b: int) -> int: """숫자 a와 b를 곱합니다.""" return a * b 2️⃣ llm에 바인딩small_llm = AzureChatOpenAI( azure_deployment='gpt-4o-mini-2024-07-18'..
지금까지 우리가 만든건 Agent가 아니다??
·
AI/LangGraph
👋 들어가기 전 우리가 지금까지 만들었던, 그래프들을 에이전트로가 불러왔었는데, 사실 Agent가 아니였다라는충격적인 반전과 함께, 진짜 Agent는 어떤 것인지 알아보자.🏁 학습할 내용우리가 만들어왔던 Agent 복습그렇다면 우리가 만든건 뭘까?진짜 Agent란 ??🎯 이전 그래프 1️⃣ Agentic RAGLLM이 Retrieval 여부 결정문서와 관련도 판별 후, rewrite 여부 또는 END 2️⃣ Self RAG문서 관련도 측정 (RetrievalGrader)환각 점검 (Hallucination Grader)질문과 답변 관련성 점검 (Answer Grader)3️⃣Rotuer입려된 정보를 분류하여, 최적으 Node에게 보냄 4️⃣병렬아래 로직을 돌리기 위해 필요한 독립적은 노드들을 병렬로..
RunnablePassthrough
·
AI/LangGraph
⭐ 역할 🧩 역할데이터를 변환하거나 수정할 필요가 없는 경우파이프라인의 특정 단계를 건너뛰어야 하는 경우디버깅 또는 테스트 목적으로 데이터 흐름을 모니터링해야 하는 경우 🤖 예제로 흐름 파악하기tax_deduction_question가 invoke를 통해, tax_deduction_chain의 question: RunnablePassthrough로 들어감마찬가지로 tax_base_equation_question이 tax_base_retrieval_chain의 question: RunnablePassthrough로 들어감tax_base_equation_chain의 tax_base_equation_information에는 tax_base_retrieval_chain이 들어옴tax_base_retriev..