RAG 检索不准,九成的锅不在向量——不同文件,就该有不同的入库方案
掘金
RAG 检索不准,九成的锅不在向量——不同文件,就该有不同的入库方案 目录 向量检索不是"一个方案",是一条流水线 30 秒讲清 Embedding 与相似度的底层 不同文件形式,不同入库方案(核心)
Балл: 57.37Уверенность: 54%
ПодробнееЗагружаем каталог…
НАВИГАТОР ПО ВОЗМОЖНОСТЯМ ИИ
Найдите свой ИИ-инструмент. Бесплатный доступ, пробные периоды и кредиты — в одном месте.
掘金
RAG 检索不准,九成的锅不在向量——不同文件,就该有不同的入库方案 目录 向量检索不是"一个方案",是一条流水线 30 秒讲清 Embedding 与相似度的底层 不同文件形式,不同入库方案(核心)
Балл: 57.37Уверенность: 54%
ПодробнееReadhub
2026 一加游戏大会上,一加手机宣布旗下三大游戏护城河技术迎来跨越式升级,引入全球领先 185Hz 极速高刷,显示与操控速度提升,每秒多渲染 65 帧,动态清晰度与游戏操作连贯性更好。同时推出全新一代风驰游戏内核及自研电竞三芯,首次实现原生 185FPS 无限满帧,减少游戏卡顿,凭借行业独家 185FPS 零新增时延超帧技术,可让各类主流游戏包括不支持 185FPS 的手游都实现全档位满帧运行,在大幅提升帧率的同时降低超帧功耗。
Балл: 57.37Уверенность: 54%
ПодробнееReadhub
蓝十字蓝盾协会分析发现,医院使用人工智能工具提交保险理赔的两年间,医疗支出额外增加 9.42 亿美元,被记录为复杂病症的患者数量急剧上升,但编码与治疗明显脱节,无证据显示实际医疗服务有对应变化。相关方指出医患双方同时使用 AI 加剧了原有争议,有 AI 企业创始人认为 AI 既可能催生机器人互相对抗的反乌托邦局面,也有可能缓解紧张关系、降低成本,蓝十字蓝盾协会相关高管则表示这并非双方对抗,而是保险方处于完全单方面的劣势。
Балл: 57.37Уверенность: 54%
Подробнее掘金
Laya 源码级原理拆解之一:整体架构与运行入口。我第一次翻 Laya 的源码时,最意外的不是它的模型结构,而是它的包长什么样。这一篇是源码级拆解的第一篇,我把范围划在整体架构和运行入口上。
Балл: 57.36Уверенность: 54%
ПодробнееiThome 新聞
9月18日臺灣網通設備廠商D-Link發布資安公告,揭露兩個嚴重程度接近滿分的零時差漏洞。該公司先獲報路由器DIR-822A重大漏洞CVE-2026-86296,此為記體堆積緩衝區溢位類型的弱點,存在於udhcpcd元件,攻擊者不僅能遠端利用,且無須通過身分驗證,利用過程完全不需使用者互動,CVSS v3.1與v4.0嚴重程度評分皆達到滿分10分,而且,網路上已有公開的概念驗證程式碼(PoC)。
Балл: 55.75Уверенность: 54%
ПодробнееiThome 新聞
9月22日WordPress開發團隊發布7.1.2版,修補重大等級的路徑遍歷漏洞CVE-2026-87902,通報漏洞的資安研究員Robert Ressl也公布細節與概念驗證程式碼(PoC)。
Балл: 55.75Уверенность: 54%
Подробнееvelog
Predictive lead scoring is becoming an important part of enterprise B2B marketing as organizations manage larger volumes of prospects, complex buying journeys, and increasingly fragmented customer data. Traditional lead scoring relies heavily on predefined rules, such as job title, company size, website activity, email engagement, or content downloads. Predictive lead scoring uses data and machine learning to identify patterns that indicate which prospects are more likely to become qualified opportunities or customers. For enterprise marketing teams, this approach can improve how sales and marketing teams prioritize accounts, allocate resources, and coordinate their go-to-market strategies. What Is Predictive Lead Scoring? Predictive lead scoring uses historical customer and prospect data to estimate the likelihood that a lead will take a desired action, such as becoming sales qualified, entering an opportunity stage, or converting into a customer. Instead of assigning points manually, predictive models analyze multiple signals simultaneously. These can include firmographic information, behavioral activity, engagement history, CRM records, website interactions, content consumption, and previous conversion patterns. For example, a model may identify that prospects from specific industries, company sizes, technology environments, and engagement patterns are more likely to convert. Marketing teams can then use these insights to prioritize similar prospects. Why Enterprise B2B Marketers Need Predictive Scoring Enterprise B2B sales cycles often involve multiple stakeholders and extended decision-making processes. Marketing teams may generate thousands of leads, but not every lead has the same commercial potential. Predictive lead scoring helps marketers focus attention on prospects that demonstrate characteristics associated with successful conversions. This can reduce the time spent evaluating low-intent leads and help sales teams concentrate on opportunities with stronger signals. The approach can also support account-based marketing strategies. Instead of evaluating individual contacts in isolation, organizations can combine lead-level activity with account-level signals to understand broader buying activity. Key Data Used In Predictive Lead Scoring The effectiveness of a predictive scoring model depends heavily on the quality and relevance of the data available. Common inputs include: Firmographic Data: Industry, company size, revenue, location, and business model. Behavioral Signals: Website visits, product interactions, downloads, event attendance, and content engagement. CRM Data: Previous opportunities, sales activities, customer history, and deal outcomes. Engagement Data: Email interactions, campaign responses, and other marketing activities. Technographic Data: Technologies and platforms used by an organization. Account Signals: Activity from multiple contacts within the same company. Combining these signals can provide a broader picture of buying intent than relying on individual actions. Benefits For Enterprise Marketing Teams Predictive lead scoring can provide several operational benefits. First, it can improve lead prioritization by identifying prospects that resemble previously successful customers. Second, it can strengthen marketing and sales alignment. Both teams can use data-driven scoring criteria to establish clearer definitions of qualified prospects. Third, predictive models can support personalized marketing campaigns. High-scoring leads may receive more targeted content, sales outreach, product demonstrations, or account-specific campaigns. Predictive scoring can also help marketing teams measure campaign quality beyond lead volume. Instead of asking how many leads a campaign generated, teams can evaluate how many high-potential prospects it attracted. Challenges To Consider Predictive lead scoring is not a set-and-forget system. Poor-quality, incomplete, or outdated data can negatively affect model performance. Enterprise organizations also need to regularly review scoring models as markets, customer behavior, products, and buying processes change. Another challenge is transparency. Sales and marketing teams need to understand which signals contribute to a score and how the score should influence their workflows. A complex model that users do not trust may have limited practical value. The Future Of Predictive Lead Scoring As enterprise B2B marketing becomes increasingly data-driven, predictive lead scoring is likely to become more closely connected with CRM platforms, marketing automation, intent data, and AI-powered revenue workflows. The strongest implementations will not simply produce a numerical score. They will help marketers understand why a prospect appears valuable, what buying signals are changing, and what action should happen next. For enterprise B2B organizations, predictive lead scoring can therefore serve as a foundation for more intelligent lead prioritization, personalized engagement, and coordinated revenue strategies. Read More: https://theabm.info/
velog
네트워크 기본 구조 인터넷과 웹 인터넷 ≠ 웹 인터넷은 여러 네트워크를 연결한 네트워크의 네트워크 이다. 호스트 호스트는 네트워크의 가장자리에 위치하는 노드이다. 서버(Server) : 어떠한 서비스를 제공하는 호스트 클라이언트(Client) : 서버에게 서비스를 요청하고 서버의 응답을 제공받는 호스트 네트워크 장비 호스트 간에 주고받는 정보가 거치는 중간 노드이다. 대표적으로 다음과 같은 장비가 있다. 이더넷 허브 스위치 라우터 공유기 통신 매체 각 노드를 연결하는 간선(Link)이다. 유선 매체 무선 매체 메시지 통신 매체로 연결된 노드들이 서로 주고받는 정보이다. 예를 들어 웹 페이지, 파일, 메일 등이 있다. 범위에 따른 네트워크 분류 네트워크는 범위에 따라 다음과 같이 분류할 수 있다. PAN < LAN < CAN < MAN < WAN PAN PAN(Personal Area Network) 은 개인 주변의 매우 가까운 범위에서 사용하는 네트워크이다. 블루투스 등이 대표적인 예이다. LAN LAN(Local Area Network) 은 가까운 지역을 연결한 근거리 통신망 이다. 일반 가정이나 특정 회사 내부의 네트워크 등이 해당한다. 외부 네트워크를 거치지 않고 같은 네트워크 내부에서 통신하기 때문에 비교적 지연이 짧다. WAN WAN(Wide Area Network) 은 먼 지역을 연결한 광역 통신망 이다. 다른 LAN에 속한 호스트와 메시지를 주고받으려면 LAN과 LAN을 연결해야 하는데 이때 WAN이 필요하다. 인터넷도 WAN으로 분류할 수 있다. ISP ISP(Internet Service Provider) 는 사용자에게 인터넷과 같은 WAN에 연결 가능한 회선을 제공하는 등 WAN과 관련된 다양한 서비스를 제공한다. 네트워크 토폴로지 Network Topology 는 네트워크의 장치들이 어떤 형태로 연결되어 있는지를 나타낸다. Bus 하나의 케이블에 모든 장치를 연결한 형태이다. 설치가 간편함 필요한 케이블이 적어 비용이 적게 듦 문제가 발생한 위치를 찾기 어려움 유지보수가 어려움 현재는 거의 사용하지 않음 Ring 모든 장치가 원형으로 연결된 형태이다. 데이터가 하나의 방향으로 흐르며 토큰 제어 방식 을 사용할 수 있다. 토큰 제어 방식은 네트워크에 하나만 존재하는 Token 을 가진 노드에게만 매체 점유권을 부여하는 방식이다. 한 노드가 Token을 가지고 데이터를 전송하고 있다면 다른 노드는 전송 권한이 없어 대기하게 된다. 한 번에 하나의 데이터를 전송하여 충돌이 발생하지 않음 전송을 예측할 수 있음 하나의 노드에 문제가 발생하면 전체 네트워크가 멈출 수 있음 Ring Topology와 Token Ring Protocol은 같은 개념이 아니다. Token Ring Protocol에서 Ring 형태의 Topology를 사용한다. Star 중앙 장비를 기준으로 각각의 Endpoint가 연결되는 형태이다. 하나의 장치에 문제가 생겨도 다른 장치에는 영향을 주지 않음 장치 추가 및 제거가 쉬움 문제 위치 파악이 쉬움 중앙 장비에 문제가 생기면 전체 네트워크가 마비될 수 있음 Tree 최상위 장비인 Core 장비가 있고 그 아래로 장비들이 부모-자식 관계처럼 계층적으로 연결되는 구조이다. 계층별로 장비가 나뉘어 있어 구조를 파악하고 관리하기 쉽다. 상위 레벨의 장비에 문제가 발생하면 해당 장비와 연결된 하위 장비에도 문제가 생길 수 있다. 또한 특정 장비에 트래픽이 집중되면 병목 현상 이 발생할 수 있다. 병목 현상 사용할 수 있는 자원 중 처리 능력이 가장 낮은 부분 때문에 전체 시스템의 성능이나 속도가 느려지는 현상이다. Mesh 여러 노드를 서로 연결하여 통신 경로를 여러 개 확보하는 구조이다. 하나의 경로에 문제가 발생해도 다른 경로를 이용할 수 있음 구성이 복잡함 유지보수가 어려움 많은 연결이 필요하기 때문에 비용이 증가할 수 있음 메시지 교환 방식 회선 교환 방식 Circuit Switching 은 메시지를 전송하기 전에 먼저 통신에 사용할 회선을 설정하고 해당 경로를 통해 메시지를 주고받는 방식이다. 통신하는 동안 연결된 경로를 계속 점유하기 때문에 회선 이용 효율이 낮아질 수 있다. 패킷 교환 방식 Packet Switching 은 메시지를 Packet이라는 작은 단위로 나누어 전송하는 방식 이다. Packet 패킷 교환 네트워크에서 송수신되는 메시지의 단위이다. Packet Switch Packet이 수신지까지 올바르게 도달할 수 있도록 경로를 결정하거나 Packet의 송수신지를 식별하는 장비이다. 대표적으로 Router와 Switch가 있다. 중복 경로가 구성되어 있다면 특정 장비에 장애가 발생해도 다른 경로를 통해 통신을 유지할 수 있다. 패킷의 구조 Packet은 크게 Payload와 Header/Trailer 로 구성된다. Payload 실제로 전송하려는 데이터이다. Header와 Trailer 데이터 전송에 필요한 부가 정보 또는 제어 정보가 들어간다. 대표적으로 송신지와 수신지를 특정하기 위한 주소 정보가 포함된다. IP Address MAC Address 송수신지 유형별 전송 방식 Unicast 가장 일반적인 송수신 방식이다. 하나의 수신지에 메시지를 전송하는 1:1 통신 방식 이다. 목적지가 정확하게 지정되어 있어야 한다. Multicast 네트워크에서 동일한 그룹에 속한 호스트들에게 데이터를 전달하는 1:Group 방식 이다. Anycast 네트워크에서 같은 주소를 사용하는 장치 중 가까운 장치 등 적절한 하나의 장치로 데이터를 전송하는 방식이다. DNS, CDN 등에 사용될 수 있다. Broadcast LAN 내부에서 자신을 제외한 모든 호스트에게 데이터를 전달하는 방식이다. Broadcast Domain Broadcast가 전달되는 범위를 의미한다. Broadcast는 모든 장치에 데이터를 전달하기 때문에 지나치게 많이 발생하면 네트워크에 부하가 발생하고 성능이 저하될 수 있다. 대역폭 Bandwidth 는 데이터가 지나갈 수 있는 최대 용량이다. 프로토콜 Protocol 은 네트워크에서 원활하게 통신하기 위해 서로 지키기로 합의한 규칙이나 방법이다. 즉, 규칙, 약속, 규약 이라고 볼 수 있다. OSI 모델 네트워크 통신 과정을 계층별로 나눈 참조 모델이다. 물리 계층 모델의 가장 아래에 위치한다. 0 과 1 로 표현되는 Bit 신호를 주고받는 계층이다. 전선이나 케이블과 같이 물리적으로 데이터를 전송하는 부분과 관련된다. 데이터 링크 계층 네트워크 내 주변 장치 간 정보를 올바르게 주고받기 위한 계층이다. 인접한 장치 사이의 연결을 담당한다. Frame MAC Address 네트워크 계층 메시지를 다른 네트워크에 속한 수신지까지 전달하기 위한 계층이다. 어떤 경로를 이용하여 목적지까지 전달할지를 결정하는 것과 관련된다. IP Address 전송 계층 신뢰성 있고 안정적인 통신을 위해 사용하는 계층이다. TCP의 3-Way Handshake 등이 이 계층과 관련된다. 세션 계층 통신을 주고받는 호스트의 응용 프로그램 간 Session(연결 상태) 을 관리한다. 표현 계층 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나 데이터의 압축, 암호화 등을 담당한다. 응용 계층 사용자 및 사용자가 이용하는 응용 프로그램에 다양한 네트워크 서비스를 제공한다. 사용자와 직접 상호작용하는 계층이다. 통신 과정을 계층으로 나누는 이유 네트워크 구성과 설계가 용이함 네트워크 문제 진단과 해결이 용이함 캡슐화와 역캡슐화 Packet은 송신 과정에서 Encapsulation , 수신 과정에서 Decapsulation 이 이루어진다. 송신 측에서는 가장 높은 계층에서 가장 낮은 계층으로 이동하고, 수신 측에서는 가장 낮은 계층에서 가장 높은 계층으로 이동한다. Encapsulation 정보를 송신할 때 각 계층에서는 상위 계층에서 전달받은 데이터를 Payload로 사용한다. 그리고 해당 계층의 Protocol에 맞는 Header 또는 Trailer를 추가한 뒤 하위 계층으로 전달한다. 즉, 계층을 내려갈수록 Header 등의 정보가 추가된다. Decapsulation 데이터를 수신할 때 Encapsulation 과정에서 추가된 Header와 Trailer를 각 계층에서 확인하고 제거하는 과정이다. PDU PDU(Protocol Data Unit) 는 각 계층에서 데이터를 부르는 단위이다. 계층 PDU 물리 계층 Bit 데이터 링크 계층 Frame 네트워크 계층 Packet 전송 계층 - TCP Segment 전송 계층 - UDP Datagram 상위 계층 Data / Message 네트워크 성능 지표 Traffic 네트워크 내의 정보량이다. Overload 특정 노드에 Traffic이 몰려 해당 노드가 일정 시간 동안 처리해야 할 정보가 많아진 상태이다. Traffic이 많아지면 Overload가 발생할 수 있다. 처리율 시간당 네트워크를 통해 실제로 전송되는 정보량이다. Bandwidth 전송할 수 있는 최대 정보량이다. Packet Loss 송수신 과정에서 Packet이 손실되는 현상이다. 송수신되는 Packet의 양이 많거나 네트워크에 문제가 발생했을 때 발생할 수 있다. ping 을 이용하여 Packet Loss를 확인할 수 있다. Ethernet Ethernet 은 물리 계층과 데이터 링크 계층을 구성하는 대중적인 기술이다. Ethernet 관련 기술은 IEEE에서 IEEE 802.3 으로 표준화되어 있다. NIC NIC(Network Interface Controller) 는 Host와 통신 매체를 연결하는 네트워크 장비이다. Host를 LAN에 연결하기 위한 Hardware이며 NIC에는 MAC Address 가 부여된다. MAC Address MAC Address는 네트워크 장치를 식별하기 위한 주소이다. MAC Address는 크게 앞의 3Byte와 뒤의 3Byte로 구분할 수 있다. MAC 주소: 8C-17-59-AC-DD-16 |- OUI -|- NIC -| OUI OUI(Organizationally Unique Identifier) 는 MAC Address의 앞 3Byte로 제조사를 식별하는 부분이다. MAC Address의 뒤 3Byte에는 NIC에 부여된 고유한 Serial Number가 들어간다. Twisted Pair Cable 구리선을 이용하여 전기 신호를 주고받는 통신 케이블이다. 구리선으로 이루어져 있어 Noise에 민감하다. 이를 줄이기 위해 구리선 주변을 감싸는 차폐 를 사용할 수 있다. STP Braid Shield로 감싼 Cable이다. FTP Foil Shield를 이용해 Noise를 감소시킨 Cable이다. UTP 별도의 차폐 없이 구리선으로 이루어진 Cable이다. 일반적으로 많이 사용하는 LAN Cable이다. Category Twisted Pair Cable은 Category에 따라 분류할 수 있다. 보통 Cat 으로 줄여서 표현한다. Category가 높아질수록 지원 가능한 Bandwidth가 높아져 더 많은 데이터를 전송할 수 있다. 광섬유 케이블 빛을 이용하여 정보를 주고받는 Cable이다. 전기 신호를 이용하는 Cable과 비교하면 빠른 속도로 전송 가능 먼 거리까지 전송 가능 Noise의 영향을 적게 받음 등의 특징이 있다. 대륙 간 네트워크 연결 등에 사용할 수 있지만 유지보수가 어렵다는 특징도 있다. Hub Hub는 물리 계층 장비 이다. 물리 계층에는 주소 개념이 없기 때문에 Hub는 목적지를 식별할 수 없다. 따라서 특정 Port에서 데이터가 들어오면 데이터가 들어온 Port를 제외한 나머지 모든 Port로 전달한다. 각 Port에 연결된 장비가 MAC Address를 확인하고 자신의 주소라면 데이터를 받고 아니라면 버린다. Hub는 Half Duplex 방식으로 통신한다. Half Duplex 송신과 수신을 모두 할 수 있지만 동시에 할 수는 없는 통신 방식이다. 무전기 등이 대표적인 예이다. Full Duplex 송신과 수신을 동시에 양방향으로 수행할 수 있는 방식이다. Collision Domain Collision Domain 은 충돌이 발생할 수 있는 영역이다. Hub에 연결된 모든 Host는 같은 Collision Domain에 속한다. 여러 Host가 동시에 Hub로 신호를 보내면 Collision이 발생할 수 있다. Collision Domain은 작을수록 충돌 가능성이 줄어든다. CSMA/CD CSMA/CD 는 유선 네트워크에서 충돌을 감지하기 위한 방식이다. Carrier Sense 다른 장치가 데이터를 보내고 있는지, 회선을 사용하고 있는지 먼저 확인한다. Multiple Access 여러 Host가 하나의 통신 매체에 접근할 수 있다. Collision Detection Collision이 발생했는지 확인한다. Collision이 발생하면 전송을 중단하고 다른 Host에게 충돌이 발생했음을 알리는 Jam Signal 을 보낸다. 이후 임의의 시간 동안 기다렸다가 다시 전송한다. CSMA/CA CSMA/CA 는 무선 통신에서 Collision을 회피(Collision Avoidance) 하기 위한 방식이다. Repeater Cable을 따라 전송되는 거리가 멀어지면 신호가 약해지거나 왜곡될 수 있다. Repeater 는 약해진 신호를 다시 깨끗한 형태로 재생하여 더 먼 거리까지 데이터를 전달할 수 있도록 해주는 장비이다. Switch Switch는 Hub의 Collision 문제를 해결하기 위한 장비이다. MAC Address를 학습하여 특정 MAC Address를 가진 Host에게만 Frame을 전달할 수 있으며 Full Duplex 통신을 지원한다. MAC Address Table Switch가 Frame을 효율적으로 전달하기 위해 관리하는 MAC Address와 Port의 Mapping 정보 이다. MAC Address Learning Switch에 Frame이 들어오면 다음과 같이 동작한다. Frame의 Source MAC Address 를 확인한다. Source MAC Address와 Frame이 들어온 Port의 관계를 Table에 기록한다. Switch는 Source MAC Address를 학습한다. 일정 시간 동안 사용되지 않은 정보는 Table에서 삭제한다. 즉, MAC Address ↔ Port 관계를 기억하는 것이다. Switch는 Destination MAC Address가 아니라 Source MAC Address를 이용하여 학습한다. Forwarding Frame의 Destination MAC Address를 확인하고 MAC Address Table에서 해당 Port를 찾는다. 목적지가 존재하면 해당 Port로 Frame을 전달한다. Filtering 목적지가 아닌 다른 Port로는 Frame을 전달하지 않는 동작이다. Flooding Destination MAC Address를 알 수 없을 때 수신 Port를 제외한 모든 Port로 Frame을 전달하는 동작이다. 다음과 같은 경우 발생할 수 있다. Switch 부팅 직후 MAC Address Table이 비어 있는 경우 MAC Address Table에 Destination MAC Address가 없는 경우 Broadcast Frame을 수신한 경우 Aging 일정 시간 동안 사용되지 않은 MAC Address 정보는 Table에서 삭제된다. 필요한 경우 다시 학습한다. Broadcast Storm 장애에 대비하기 위해 Switch를 중복으로 연결하면 Switch 사이에 Loop 가 발생할 수 있다. 이 상태에서 Broadcast Frame이 들어오면 Switch는 수신 Port를 제외한 다른 Port로 Frame을 전달한다. Loop가 존재하면 Broadcast Frame이 여러 Switch 사이를 계속 순환하면서 복제되고 Broadcast Traffic이 급격하게 증가한다. 이를 Broadcast Storm 이라고 한다. Switch 중복 연결 -> Loop 발생 -> Broadcast Frame 전송 -> Loop를 따라 Frame이 반복적으로 순환 및 복제 -> Traffic 폭증 -> Broadcast Storm STP STP(Spanning Tree Protocol) 는 Switch를 중복으로 연결했을 때 발생할 수 있는 네트워크 Loop를 방지하기 위해 사용한다. Switch 사이에 여러 경로가 존재하면 일부 경로를 논리적으로 차단하여 Loop가 발생하지 않도록 한다. Ethernet Frame Ethernet에서 데이터를 전달할 때 사용하는 Frame이다. MAC Frame 이라고도 한다. 주요 구성 요소는 다음과 같다. 구성 요소 역할 Preamble 수신 장비가 신호의 타이밍을 맞추기 위한 동기화 SFD Frame의 시작을 알림 Destination MAC Address 목적지 MAC 주소 Source MAC Address 출발지 MAC 주소 Data 전달할 데이터 FCS 오류 확인 Preamble: 7Byte SFD: 1Byte MAC Address: 6Byte MTU MTU(Maximum Transmission Unit) 는 네트워크 인터페이스가 한 번에 전송할 수 있는 최대 데이터 크기이다. 일반적인 Ethernet 환경에서는 1500Byte 를 사용한다. Jumbo Frame 일반적인 Ethernet보다 큰 Frame을 사용하는 방식이다. 약 9000Byte 정도까지 사용할 수 있다. 내부 LAN에서 모든 장비가 Jumbo Frame을 지원한다면 사용할 수 있지만 외부 네트워크로 나갈 때 더 작은 MTU를 사용하는 구간이 존재할 수 있다. VLAN VLAN(Virtual LAN) 은 하나의 물리적인 LAN을 여러 개의 논리적인 LAN 으로 나누어 사용하는 기술이다. 같은 Switch를 사용하더라도 서로 다른 VLAN으로 분리할 수 있다. Port Based VLAN Switch의 Port를 기준으로 VLAN을 결정하는 방식이다. 특정 Port에 VLAN을 할당하고 해당 Port에 연결된 Host를 해당 VLAN에 포함시킨다. VLAN Trunking 여러 VLAN Switch를 효율적으로 연결하기 위해 사용하는 기술이다. Switch 사이의 Trunk Port 하나를 통해 여러 VLAN의 Frame을 전달할 수 있다. IEEE 802.1Q 일반 Ethernet Header에는 VLAN ID를 저장할 공간이 없다. 따라서 Frame이 어느 VLAN에 속하는지 구분하기 위해 IEEE 802.1Q 를 이용하여 VLAN ID를 추가한다. IP 물리 계층과 데이터 링크 계층만으로는 LAN을 넘어 다른 네트워크까지 데이터를 전달하기 어렵다. 다른 네트워크까지 데이터를 전달하기 위해 IP Address와 Router 를 사용한다. MAC Address → 물리 주소 IP Address → 논리 주소 IPv4 IPv4는 32bit = 4Byte 로 이루어진 주소이다. 8bit씩 네 부분으로 나누며 각각을 Octet 이라고 한다. 각 Octet은 0~255 의 10진수로 표현한다. 예를 들어 다음과 같이 표현한다. 192.168.10.10 Network ID와 Host ID IP Address는 Network 부분과 Host 부분 으로 나누어 생각할 수 있다. Network ID Host가 어느 네트워크에 속하는지를 나타낸다. Host ID 해당 네트워크 안에서 어떤 Host인지를 나타낸다. 즉, Network ID → 어느 네트워크인가 Host ID → 그 네트워크 안에서 어떤 Host인가 Subnet Mask Subnet Mask 는 IP Address에서 Network 부분과 Host 부분을 구분하기 위해 사용한다. 예를 들어 192.168.10.0/24 에서 /24 는 앞의 24bit가 Network 부분이라는 의미이다. /24 = 255.255.255.0 과 같이 표현할 수 있다. Network Address와 Broadcast Address Network Address 해당 Network 자체를 나타내는 주소이다. Host 부분을 모두 0 으로 만든 주소이다. Broadcast Address 해당 Network의 모든 Host를 대상으로 데이터를 전달할 때 사용하는 주소이다. Host 부분을 모두 1 로 만든 주소이다. Subnetting Subnetting 은 하나의 Network를 여러 개의 작은 Network로 나누는 것이다. FLSM
velog
Hair fall is a common concern affecting people of different ages and hair types. Finding extra strands on your pillow in the shower or on your hairbrush can be worrying especially when you notice your hair becoming thinner over time. However not every instance of hair shedding indicates permanent hair loss. Some shedding is a normal part of the hair growth cycle while other forms of hair loss may be associated with genetics, hormonal changes, nutritional deficiencies, medical conditions or hair-care practices. Understanding the difference is essential before choosing a hair loss treatment. A product that helps one person may not address another person's underlying condition. Whether you are researching hair fall treatment , exploring hair loss solutions or looking for ways to improve your scalp health this guide explains the common causes of hair loss available treatments and how to make informed decisions about your hair-care routine. Hair Shedding vs Hair Loss: What's the Difference? Although people often use the terms interchangeably hair shedding and hair loss are not exactly the same. Hair naturally goes through a growth cycle that includes growing, resting and shedding. According to the American Academy of Dermatology (AAD) losing approximately 50–100 hairs daily is normal. Excessive hair shedding occurs when more hairs than usual enter the shedding phase. This condition is commonly called telogen effluvium. Hair loss or alopecia is a broader term that includes conditions in which hair growth is disrupted hair follicles shrink or hair stops growing in particular areas. Some people experience both shedding and hair loss simultaneously. Hair shedding Hair loss Often involves increased daily shedding May involve progressive thinning or bald patches Can follow illness, childbirth or stress Can result from genetics autoimmune disease or other conditions Frequently temporary May be temporary or permanent May resolve after the trigger improves Some types require medical treatment Recognizing these differences can help you avoid purchasing unnecessary hair loss products. Common Causes of Hair Loss Identifying the underlying cause is one of the most important steps in choosing an appropriate treatment. Different causes require different approaches. Genetics Hereditary hair loss medically known as androgenetic alopecia, is a common cause of progressive thinning. In men it often appears as a receding hairline or thinning around the crown. In women it may present as a widening part or gradual thinning across the scalp. Genetic factors can cause hair follicles to become progressively smaller producing finer and shorter strands. Early diagnosis may help preserve existing hair through appropriate treatment. Hormonal Changes Hormonal changes can affect the hair growth cycle. Some people experience increased shedding after childbirth, while others notice changes associated with menopause or thyroid disorders. Hormonal influences may also contribute to pattern hair loss. Because different hormonal conditions require different treatments, identifying the underlying issue is more useful than automatically choosing a product marketed for hormonal hair loss. Stress Physical and emotional stress can trigger excessive hair shedding. Common triggers include major illness, surgery, significant weight loss and substantial emotional stress. Shedding may become noticeable several months after the triggering event. Fortunately, stress-related shedding often improves once the underlying trigger resolves. However persistent stress or other contributing conditions may prolong the problem. Nutritional Deficiencies Adequate nutrition supports normal hair growth. Deficiencies involving iron, protein or certain other nutrients can contribute to hair problems. However taking supplements without identifying a deficiency is not necessarily helpful. If a healthcare professional suspects a nutritional cause they may recommend appropriate testing before suggesting dietary changes or supplements. Scalp Conditions The health of your scalp can influence hair growth. Certain inflammatory conditions, infections and autoimmune disorders can contribute to shedding or hair loss. For example scalp ringworm can cause hair loss and may require medical treatment. Alopecia areata is an autoimmune condition that can produce distinct bald patches. These conditions cannot reliably be treated with ordinary cosmetic shampoos or serums alone. Hair Damage and Traction Hair-care practices can also contribute to visible thinning. Repeatedly wearing tight hairstyles may place excessive tension on hair follicles. Over time this can cause traction alopecia. Excessive heat styling, aggressive brushing and chemical processing can also damage hair strands. Although breakage is different from hair loss at the follicle both can make hair appear thinner. Reducing damaging practices is an important part of maintaining healthy-looking hair. When Should You Take Hair Loss Seriously? Occasional shedding is normal. However certain changes deserve closer attention. Consider seeking professional advice if you notice: Sudden or unusually heavy shedding. Distinct bald patches. A progressively receding hairline. A noticeably widening hair part. Persistent thinning over several months. Hair loss accompanied by scalp pain, redness, or inflammation. Hair loss involving the eyebrows or other body areas. Some conditions can lead to permanent hair loss if the follicles become damaged. Early assessment can therefore be important. Common Hair Loss Treatment Options There is no single hair loss treatment that works for everyone. Treatment depends on the underlying cause the extent of hair loss medical history and individual circumstances. Some treatments target hereditary hair loss, while others address inflammation, nutritional deficiencies or temporary shedding. The following categories explain commonly discussed approaches. Minoxidil Minoxidil is a medication used to treat certain types of hair loss particularly pattern hair loss. Topical minoxidil is available in different formulations including solutions and foams. Research has shown that it can help some people reduce further hair loss and encourage regrowth. However results vary. Some individuals experience noticeable improvement while others respond less significantly. Treatment generally requires consistent use over several months and its benefits may gradually disappear after discontinuation. Possible side effects include scalp irritation and itching. People who are pregnant, breastfeeding, have underlying medical conditions or are considering oral minoxidil should obtain individualized medical advice before use. DHT-Related Approaches Dihydrotestosterone commonly called DHT plays a role in androgenetic alopecia. In genetically susceptible individuals DHT contributes to the gradual miniaturization of certain hair follicles. Some medical treatments address this process. Finasteride for example reduces DHT production and is prescribed for certain forms of pattern hair loss. It is not suitable for everyone and can cause adverse effects including sexual side effects and mood-related symptoms. Finasteride must not be used during pregnancy. A healthcare professional should assess whether this type of treatment is appropriate. Hair Growth Serums Hair growth serums are widely available in the beauty and personal-care market. These products may contain ingredients such as caffeine, peptides, botanical extracts or conditioning agents. However their effectiveness depends on the formulation and the evidence supporting the specific product. It is important to distinguish between cosmetic serums that improve hair appearance and medically evaluated treatments intended to address particular forms of hair loss. A serum may improve softness, manageability, or the appearance of hair without necessarily stimulating new follicular growth. Consumers should therefore be cautious about products promising dramatic regrowth without credible clinical evidence. Improving Hair and Scalp Care A gentle hair-care routine can help reduce unnecessary breakage and support overall scalp comfort. Useful practices include choosing shampoo according to scalp needs, using conditioner on the hair lengths limiting excessive heat and avoiding tight hairstyles. These habits are especially helpful when hair damage contributes to visible thinning. However, ordinary shampoo and conditioner cannot reverse every underlying cause of hair loss. Comparing Hair Loss Products When exploring different treatment categories it is helpful to compare active ingredients, intended uses, directions and safety information. Consumers researching hair loss treatment options can review available product categories and compare their features before making a purchasing decision. Remember that product availability does not establish medical suitability. Persistent or unexplained hair loss should be assessed by a qualified healthcare professional. How to Choose a Hair Loss Product Choosing an appropriate product requires more than selecting the most popular brand. Start by identifying your main concern. Are you experiencing excessive shedding, gradual thinning, a receding hairline, or breakage? These problems can look similar but may require different approaches. Check the Active Ingredients Read the product label carefully. Determine whether the product contains a recognized medicinal ingredient or is primarily a cosmetic formulation. Do not assume that every product labeled as a hair regrowth treatment has undergone the same level of clinical testing. Understand the Product's Purpose Some products are designed to cleanse the scalp. Others improve the appearance of hair or contain ingredients intended to treat specific types of hair loss. A volumizing shampoo for example may temporarily make hair look fuller without changing the underlying growth process. Consider Your Scalp Condition A product
velog
선형 탐색 앞에서부터 하나씩 비교해 나가다가 같은 값을 만나면 멈추는 절차 같으면 멈추고, 다르면 다음 칸으로 넘어간다. 값을 찾으면 그 인덱스를, 없으면 -1을 반환 -1 이라는 약속 배열은 0부터 시작하므로 -1은 "없다"라는 뜻으로 쓸 수 있다. -1은 C#이 정한 규칙이 아닌 이 함수가 정한 약속 요구하지 않는 것 순서가 없어도 된다. 번호로 바로 집을 수 없어도 된다. 이진 탐색 정렬된 데이터에서는 가운데 값 하나와 비교해 남은 범위의 절반을 한 번에 버릴 수 있다. left : 남은 범위의 왼쪽 끝 인덱스 // 초기값: 0 right : 남은 범위의 오른쪽 끝 인덱스 // 초기값: valuse.Length - 1 mind : 남은 범위의 가운데 인덱스 // 초기값: (left + right) / 2 탐색 절차 가운데 값이 찾는 값과 같음 mid를 돌려줌 찾는 값이 가운데 값보다 큼 왼쪽 절반과 가운데를 버림. left = mid +1 찾는 값이 가운데 값보다 작음 오른쪽 절반과 가운데를 버림. right = mind -1 찾을 때 까지 반복 left가 right보다 커지면 없다고 판단 못 찾았을 때 돌려주는 값은 -1로 정해져 있지 않다. 못 찾았는지는 result < 0으로 검사한다. 이진 탐색이 요구하는 것 데이터가 정렬되어 있어야 한다. 가운데 칸을 번호로 바로 집을 수 있어야 한다. 이진 탐색은 선형 탐색보다 항상 나은 방법이 아니라, 정렬을 유지하는 비용을 치르고 찾기를 빠르게 하는 선택. 재귀 기반 구현 재귀의 규칙 자기를 부르지 않고 끝나는 종료 조건이 반드시 있어야 한다. 호출할 때마다 종료 조건에 가까워지는 값을 넘겨야 한다. 각 호출은 자기만의 매개변수를 따로 가지며 서로 영향을 주지 않는다. 호출 깊이 재귀 선형 탐색은 데이터 길이만큼 호출이 쌓이고, 재귀 이진 탐색은 반으로 나누는 횟수만큼 쌓인다.
Балл: 54.4Уверенность: 49%
Подробнееvelog
1. Jev란 무엇인가 Jev 는 TypeSafe AI가 만든 "System One Model" (시스템 원 모델)이라는 새로운 범주의 첫 제품이다. 기존 LLM처럼 사람이 읽을 자연어 텍스트를 생성하는 모델이 아니라, 소프트웨어가 직접 실행할 수 있는 "타입이 지정된 결정(typed decisions)"과 보정된 확률(calibrated probabilities)을 출력 하는 것을 목표로 설계됐다. 핵심 문제 인식 : TypeSafe AI 창업자 Diogo Almeida(OpenAI에서 ChatGPT의 instruction-following 방법론에 참여)는 "모델은 수년째 채팅에서 초인적인 수준인데, 왜 자동화는 이만큼 확산되지 않았는가?"라는 질문에서 출발했다고 소개돼 있다. 핵심 가치 제안 : 코드가 워크플로우의 제어권을 계속 가지고, AI는 좁고 구조화된 "판단(judgment)"만 담당하도록 분리하는 것이다. 즉 자율 에이전트(모델이 스스로 다음 행동을 정하는 방식)와 달리, "코드가 워크플로우를 소유하고 AI는 좁고 구조화된 결정만 처리한다(code owns the workflow and AI handles narrow, structured decisions)"는 설계 철학을 내세운다. (출처: https://docs.typesafe.ai/concepts/how-to-build-with-system-one ) 대상 사용자 : 사람의 개입(human co-pilot) 없이 백만 번 이상 반복 실행 가능한 자동화 소프트웨어를 만드는 개발자, 대규모 데이터 처리·분류·검증이 필요한 팀, 실시간 응답(약 70~500ms)이 필요한 애플리케이션(게임, UI 등)을 만드는 팀 등을 주요 타깃으로 명시한다. 이름의 유래 : "System One"은 대니얼 카너먼(Daniel Kahneman)의 저서 『생각에 관한 생각(Thinking, Fast and Slow)』에서 말하는 빠르고 직관적인 "시스템 1" 사고에서 따왔다. "Jev"라는 제품명은 경제학자 윌리엄 스탠리 제번스(William Stanley Jevons)에서 따온 것으로, 효율성 향상이 AI 채택의 기하급수적 성장(제번스의 역설)을 가져올 것이라는 기대를 반영한다. 회사 철학(매니페스토) : TypeSafe AI는 "AGI 달성"이라는 목표를 좇기보다, "오늘날의 모델은 이미 거대한 경제적 가치를 창출하는 데 필요한 지능 수준을 넘어섰다"고 주장하며, 진짜 병목은 지능이 아니라 "AI를 기존 소프트웨어에 통합하고 그 위에 무언가를 쌓기 어렵다는 점"이라고 설명한다. 초기 자동차가 "말 없는 마차(horseless carriage)"로 설계됐던 것처럼, 지금의 AI도 인간을 상대하는 어시스턴트로만 훈련되어 인간의 감독에 의존하게 된다는 비유를 든다. TypeSafe AI는 AI를 데이터베이스나 인터넷 프로토콜처럼 개발자가 호출할 수 있는 "원시 요소(primitive)"로 만들고자 한다. 2. 주요 기능 2.1 세 가지 "답변 원시 요소(primitives)" Jev는 자유 형식 텍스트 대신, 아래 세 가지 정해진 응답 형식(질문 유형) 중 하나로만 답한다. 유형 목적 반환 필드 사용 예 Choice 정해진 목록 중 하나(순서 없는 범주)를 선택 choice (선택된 옵션), probabilities (옵션별 확률, 합 1.0), confidence (0~1) 상담 티켓을 부서로 라우팅, 문서 유형 분류, 프로그래밍 언어 감지 Score 정해진 등급(2~10단계) 위에서 위치를 평가 score (등급 번호의 확률 가중 평균), legend (등급 설명), probabilities , confidence 버그 심각도, 고객 불만 강도, 숙련도 평가 Noul 예/아니오 명제에 대한 확률 반환 noul (0=아니오 ~ 1=예 확률, 별도 confidence 없음) 개인정보 포함 여부, 환불 요청 여부, 기술 언급 여부 판별 2.2 병렬 질문 처리 & "context-rot" 방지 하나의 API 요청에 state (평가 대상 데이터)와 여러 개의 질문( questions )을 함께 보내면, 각 질문은 서로 독립적으로 병렬 평가 된다. 한 질문의 답이 다른 질문의 숨은 컨텍스트가 되지 않으므로, 질문을 추가해도 "context-rot"(맥락 오염으로 인한 성능 저하)이 생기지 않는다고 설명한다. 질문을 늘려도 응답 시간은 거의 늘지 않고, 추가 토큰 비용만 소폭 증가한다. 2.3 보정된 확신도(Calibrated Confidence) Choice·Score 응답에는 확률 분포의 "뾰족한 정도"를 나타내는 confidence (0~1) 값이 함께 제공된다. 분포가 한 옵션에 집중되면 1.0(높은 확신), 여러 옵션에 퍼지면 낮은 값이 된다. 이를 이용해 "고확신 시 자동 실행, 저확신 시 사람에게 에스컬레이션" 같은 로직을 코드로 짤 수 있다. 2.4 구조화된 JSON 질문/기준(criteria) 지원 Choice·Score·Noul의 instructions 와 criteria 에 문자열 대신 JSON 객체를 사용할 수 있어, 스키마·택소노미·DB 로우를 그대로 넘길 수 있고, 계층형 분류(taxonomy 트리 탐색)나 복잡한 필드 추출도 가능하다. 2.5 성능·비용 주장 (마케팅 수치) LLM 대비 최대 193.6배 빠름 , 최대 444.6배 저렴 (시스템 원 작업 기준, TypeSafe 자체 "workflow evals" 벤치마크; 상한선을 나타내는 값이라고 스스로 명시) 종단 지연시간(latency) 약 70~500ms 로, 동등한 지능 수준의 프런티어 LLM보다 40~200배 빠르다고 주장 타입 안전한 구조적 출력으로 "환각(hallucination) 제거"와 "타입 오류 0건 보장"을 주장 랜딩 페이지는 입력 토큰 가격이 "Claude Fable 5.1" 대비 238배 저렴하다고 주장한다(비교 대상 모델명은 원문 그대로 인용) 2.6 코딩 에이전트용 스킬(Skill) 제공 Claude Code 등 코딩 에이전트가 Jev API를 올바르게 통합하도록 돕는 "TypeSafe agent skill"을 별도로 배포한다. (2.6절 상세는 6장 참조) 3. 설치 방법 Jev 자체는 다운로드해 로컬에서 실행하는 모델이 아니라, TypeSafe AI가 호스팅하는 API(SaaS) 로 제공된다. "설치"는 이 API를 호출하기 위한 SDK 또는 에이전트 스킬을 설치하는 것을 의미한다. 3.1 API 키 발급 https://console.typesafe.ai/ 에서 계정을 만들고 https://console.typesafe.ai/keys 에서 API 키를 발급받는다. 발급받은 키를 환경 변수 TYPESAFE_API_KEY 로 설정한다. (Python/JS SDK가 이 환경 변수를 자동으로 읽는다.) 3.2 Python SDK 설치 pip install typesafe-sdk # 또는 uv add typesafe-sdk Python 3.10 이상 필요. HTTP/2를 쓰려면 extra 옵션 설치: pip install "typesafe-sdk[http2]" 3.3 JavaScript/TypeScript SDK 설치 npm install @typesafe-ai/sdk Node.js 20 이상 필요. ESM, CommonJS, TypeScript 타입 선언을 모두 지원. 3.4 코딩 에이전트용 스킬 설치 Claude Code용: claude plugin marketplace add typesafe-ai/skills claude plugin install typesafe@typesafe-ai 기타 에이전트용 (범용 skills 설치기): npx skills add typesafe-ai/skills --skill typesafe-ai 수동 설치: GitHub 저장소( typesafe-ai/skills )의 skills/typesafe-ai 디렉터리 전체를 에이전트의 스킬 디렉터리에 복사한다. 업데이트: # Claude Code claude plugin marketplace update typesafe-ai claude plugin update typesafe@typesafe-ai # 기타 npx skills update 3.5 코드 없이 바로 테스트 설치 없이 바로 사용해보고 싶다면 플레이그라운드를 이용할 수 있다: https://console.typesafe.ai/playground (출처: https://docs.typesafe.ai/introduction/coding-agents ) 4. 사용 방법 4.1 기본 개념: state + questions 모든 요청은 평가 대상 데이터( state ) 와 하나 이상의 질문( questions ) 을 함께 보내는 구조다. (출처: https://docs.typesafe.ai/concepts/state ) state 는 세 가지 형태를 지원한다. 문자열: "My card was charged twice." 객체(가장 흔히 권장): {"message": "My card was charged twice.", "order_id": "A-104"} 배열(대화 스레드 등 순차 정보): ["Hi", "My customer number is TS1337.", "My card was charged twice."] state 는 텍스트 전용(문자열/JSON/텍스트 배열)만 지원하며, 이미지·음성·영상은 아직 지원하지 않는다. 4.2 HTTP API 직접 호출 엔드포인트: POST https://api.typesafe.ai/v1/systemone 인증: HTTP 헤더 Authorization: Bearer <API_KEY> curl -X POST https://api.typesafe.ai/v1/systemone \ -H "Authorization: Bearer $TYPESAFE_API_KEY" \ -H "Content-Type: application/json" \ -d @- <<'EOF' {"state": "...", "model": "jev-latest", "questions": {...}} EOF 요청 필드(모두 필수): state , model (예: "jev-latest" ), questions (질문 이름 → 질문 정의의 맵). 응답은 model , answers (질문 이름 → 답변 맵), usage ( input_tokens , output_tokens )로 구성된다. 4.3 Python SDK 예시 from typesafe_sdk import Choice, Noul, Score, TypeSafeClient with TypeSafeClient() as client: response = client.system_one( state={"document": "I was charged twice. Please fix this ASAP."}, questions={ "billing": Noul(instructions="Is this ticket about billing?"), "tone": Choice( instructions="What is the customer's tone?", criteria={"calm": None, "frustrated": None, "angry": None}, ), "urgency": Score( instructions="How urgent is this ticket?", criteria=["can wait", "this week", "today"], ), }, ) print(response.nouls["billing"].noul) print(response.choices["tone"].choice) print(response.scores["urgency"].score) 비동기 처리가 필요하면 AsyncTypeSafeClient (async/await)를 사용한다. SDK는 기본 재시도 정책으로 재시도를 자동 처리한다. 4.4 설계 원칙 (공식 가이드) 공식 문서는 System One 기반 앱을 만들 때 지켜야 할 5가지 원칙을 제시한다. (출처: https://docs.typesafe.ai/concepts/how-to-build-with-system-one ) 코드에 제어권 유지 : 결정론적 로직·부수효과는 코드에 남기고, 상식적 판단이 필요한 부분에만 AI를 사용한다. 입력을 전략적으로 분해 : 현재 질문과 무관한 컨텍스트는 넣지 않는다(맥락 오염 방지). 원자적 질문 던지기 : (가이드가 "가장 중요한 개념"이라고 강조) 복잡한 판단을 좁고 명확한 개별 질문으로 쪼갠다. 병렬성 활용 : 독립적인 질문을 한 요청에 여러 개 넣어 왕복 횟수를 줄인다. 출력을 코드에서 결정론적으로 조합 : 가중합·임계값·전통적 ML 모델 등으로 답변들을 코드에서 합성하고, 확신도 기반으로 라우팅한다. 4.5 아키텍처 패턴 (Patterns) 문서는 실전에서 자주 쓰는 4가지 패턴을 소개한다. (출처: https://docs.typesafe.ai/patterns ) 패턴 설명 Speculative Fan-Out 관련 있을 수도 있는 질문까지 한 번에 모두 보내고, 코드에서 필요한 답만 골라 쓴다 (비용/속도 이점) Confidence-Gated Routing 답변 값 + confidence를 함께 봐서, 확신도가 낮으면 사람에게 넘기고 높으면 자동 실행한다 Composite Scoring 여러 차원의 평가를 코드에서 하나의 점수로 합성한다 Intent Routing 사용자 요청의 의도를 분류해 적절한 처리 경로로 라우팅한다 Confidence-Gated Routing 예시(은행 음성 명령 처리): if action.confidence < 0.6: route_to_support_agent() elif action.choice == "check_balance": show_balance() elif action.choice == "approve_transfer": if action.confidence > 0.85: approve_transfer() else: ask_user_to_confirm() (출처: https://docs.typesafe.ai/patterns/confidence-routing ) 4.6 쿡북(Cookbooks) "몇 개의 질문부터 전체 파이프라인까지" 실전 예제를 모아둔 쿡북 섹션이 있으며, 총 23개 레시피가 5개 카테고리(자기 일관성/자가검증, 배치 처리, 검색·재랭킹·함수 호출 등 how-to, 추출, 분류)로 구성돼 있다. 예: 병렬 질문 배치 처리, BM25 재랭킹, 시맨틱 검색, 텍스트 구조 복원, 함수 호출 매핑, 지식 그래프 엔티티 정합, RAG 패시지 스코어링, 인용 검증, LLM 가드레일, 구조화 데이터 추출 캐스케이드, 날짜 추출, 계층형 분류 등. (출처: https://docs.typesafe.ai/cookbooks ) 5. 아키텍처 / 동작 원리 5.1 "System One" 이라는 모델 범주 System One 모델은 전통적 LLM과 달리 자유 형식 텍스트를 생성하지 않고, "타입이 있고 제약된 출력(typed, constrained outputs)"을 반환하도록 만들어졌다. 이 모델들은 답장을 작성하거나, 코드를 생성하거나, 자신의 추론 과정을 설명하지 않는다. 입력은 현재 텍스트 전용(문자열/JSON 객체/텍스트 배열)만 지원된다. (출처: https://docs.typesafe.ai/concepts/system-one ) 5.2 훈련 방법론: RLCD 공식 "머신러닝 프라이머" 문서는 사후 훈련(post-training) 기법을 3가지로 구분한다. (출처: https://docs.typesafe.ai/introduction/machine-learning-primer ) RLHF (인간 피드백 기반 강화학습): 인간의 선호에 최적화 — ChatGPT류 챗봇의 기반. 문서는 이 방식이 "그럴듯하게 들리는 것"과 "신뢰할 수 있는 자동화"를 혼동시켜 사이코판시(아첨)와 환각 , 그리고 선호 출력 쪽으로 분포가 좁아지는 모드 드로핑 문제를 낳는다고 지적한다. RLVR (검증 가능한 보상 기반 강화학습): 수학 등 복잡한 추론 능력 강화(계산 비용이 큼). RLCD (보정된 결정을 위한 강화학습, Reinforcement Learning for Calibrated Decisions): TypeSafe만의 독자적 접근으로, 텍스트가 아니라 확률 추정치가 포함된 구조화된 결정을 만들도록 훈련한다. 잘 보정된 모델은 0.8 확률을 부여한 예측이 실제로도 약 80% 맞아야 한다. 5.3 요청-응답 동작 원리 사용자는 state (평가 대상)와 하나 이상의 questions 를 한 번의 요청으로 제출한다. 모델은 "각 질문을 상태에 대해 병렬로 평가"하여, 타입이 있는 답과 확률·확신도를 한 응답에 담아 반환한다. 질문들은 서로 독립적으로 평가되므로 질문을 늘려도 맥락 오염(context-rot)이 생기지 않는다. (출처: https://docs.typesafe.ai/introduction ) 5.4 3대 응답 원시 요소(Choice/Score/Noul)와 조합 Choice, Score, Noul은 한 번의 API 호출 안에서 자유롭게 조합할 수 있으며, 지연시간에 큰 영향을 주지 않는다. 이 세 원시 요소를 코드로 조합해 더 큰 워크플로우를 구성하는 것이 핵심 아키텍처 패턴이다. (출처: https://docs.typesafe.ai/introduction , https://docs.typesafe.ai/primitives ) 5.5 Machine Native Intelligence TypeSafe AI는 향후 AI 활용의 "99%가 기계-기계 간(machine-to-machine) 상호작용, 1%만 인간 상호작용"이 될 것이라 가정하고, 출력을 사람이 읽기 좋게 만드는 대신 소프트웨어가 예측 가능하게 처리 할 수 있도록 설계했다고 밝힌다. (출처: https://docs.typesafe.ai/introduction/machine-learning-primer ) 5.6 모델 사양 (Jev 1.13) 컨텍스트 윈도우: 요청당 총 64k 토큰 (state + 모든 질문 합산), 그중 state + 가장 긴 단일 질문에 32k 토큰 예산이 적용된다. 처리량/속도: 위 2.5절의 지연시간·처리량 관련 마케팅 수치 참고. 언어: 영어를 주로 지원하며, 한국어·중국어·일본어 등 CJK 스크립트를 포함한 다른 언어도 처리되지만 정확도가 낮을 수 있다고 명시돼 있다. (출처: https://docs.typesafe.ai/models ) 6. 통합 / 연동 통합 대상 방식 출처 HTTP API 언어 무관, POST https://api.typesafe.ai/v1/systemone 직접 호출 https://docs.typesafe.ai/api Python SDK ( typesafe-sdk ) 동기( TypeSafeClient )·비동기( AsyncTypeSafeClient ) 클라이언트, 자동 재시도 https://docs.typesafe.ai/sdk/python JavaScript/TypeScript SDK ( @typesafe-ai/sdk ) ESM/CJS/TS 타입 지원, choice()/score()/noul() 헬퍼 함수 https://docs.typesafe.ai/sdk/javascript Claude Code 플러그인/스킬 claude plugin marketplace add typesafe-ai/skills → claude plugin install typesafe@typesafe-ai , 이후 /typesafe:typesafe-ai 로 호출하거나 프롬프트에서 "use the TypeSafe skill"이라고 지시 https://docs.typesafe.ai/agent-skill 기타 코딩 에이전트(범용 skills) npx skills add typesafe-ai/skills --skill typesafe-ai https://docs.typesafe.ai/agent-skill GitHub 저장소 스킬: github.com/typesafe-ai/skills , JS SDK 소스: github.com/typesafe-ai/typesafe-sdk-js https://docs.typesafe.ai/introduction/quickstart , https://docs.typesafe.ai/sdk/javascript 플레이그라운드(콘솔) 코드 없이 바로 테
velog
짧았지만 꽉 찼던 한 주😊 📍 이번 주를 돌아보며 추석 연휴 전 3일뿐인 짧은 주였지만, 내용은 오히려 더 꽉 찼던 것 같다. 웹크롤링을 마무리하고 Git/GitHub를 배운 뒤, 바로 첫 팀 프로젝트에 들어갔다. 배운 걸 정리할 틈도 없이 바로 써먹어야 하는 상황이었는데, 오히려 그래서 더 빨리 손에 붙은 느낌이다. 특히 Git은 그동안 혼자 TIL 올릴 때만 쓰던 도구였는데, 이번 주에 브랜치와 Pull Request를 배우면서 "여러 명이 같은 코드를 건드려도 안전한 이유"를 이해하게 됐다. 팀 프로젝트에서 바로 써볼 수 있어서 더 와닿았다. 🐍 이번 주 배운 것 웹크롤링 HTML 기본 구조와 주요 태그( a , h1~h6 , ul/ol/li , table , div ), id/class 속성, CSS 선택자 정적 크롤링: requests + BeautifulSoup, select() 로 원하는 태그 찾고 .text 로 추출 동적 크롤링: Selenium으로 실제 브라우저를 조작( .click() , .send_keys() ) 생성형 AI를 활용한 크롤링 코드 작성 (마켓컬리 리뷰 수집, 서울시 공공데이터 수집) Git & GitHub 로컬 저장소 ↔ 원격 저장소, push/pull의 개념 버전 관리 3단계: Changes → Staging → Commit Branch: 원본(main)을 보호하는 안전한 복사본 GitHub Flow: 브랜치 생성 → 작업·commit → push → Pull Request → Merge Conflict(충돌) 해결: Merge Editor에서 내 코드 / 상대 코드 중 선택 팀 프로젝트 시작 주제: 전국 자동차 신규등록 현황 및 기업 FAQ 조회 시스템 기획서, DB 설계서(ERD), 화면 기획서, 개발 전 합의 체크리스트 작성 및 팀원 공유 📌 트러블슈팅 1. Selenium — 다음 페이지 버튼이 클릭되지 않음 문제: 리뷰를 여러 페이지에서 수집하려고 다음 페이지 버튼을 클릭했는데, ElementClickInterceptedException 에러가 발생하며 다음 페이지로 넘어가지 않았다. 원인: 버튼이 화면에 보이긴 하지만, 다른 요소(팝업·고정 헤더 등)가 그 위를 덮고 있으면 Selenium의 일반 .click() 은 "가려져 있어서 못 누른다"고 판단해 에러를 낸다. (1) 수정 전 next_btn = driver.find_elements(By.CSS_SELECTOR, "button.css-frxx9h")[-1] next_btn.click() (2) 수정 후 next_btn = driver.find_elements(By.CSS_SELECTOR, "button.css-frxx9h")[-1] # 클릭 대상을 화면 중앙으로 스크롤 driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", next_btn) time.sleep(0.8) # JS로 직접 클릭 이벤트 실행 (가려져 있어도 클릭 가능) driver.execute_script("arguments[0].click();", next_btn) (3) 배운 점 Selenium의 .click() 은 "사람이 실제로 누를 수 있는 상태"여야 동작한다는 걸 알게 됐다. execute_script 로 JS 클릭 이벤트를 직접 실행하면, 다른 요소가 겹쳐 있어도 우회해서 클릭할 수 있다. 2. 공공 API — 데이터가 없는 기간을 요청했을 때 에러로 처리됨 문제: 2024년 1분기부터 2026년 2분기까지 반복 수집하는 코드를 돌렸는데, 아직 데이터가 등록되지 않은 미래 분기에서 수집이 중단됐다. 원인: API는 데이터가 없을 때 HTTP 에러를 내는 게 아니라, 정상 응답 안에 별도 상태 코드 ( INFO-200 )를 담아서 보낸다. 이걸 구분하지 않으면 "응답은 왔는데 원하는 데이터가 없는 상태"를 처리할 방법이 없다. (1) 수정 전 res = requests.get(url, timeout=15) data = res.json() rows = data[SERVICE_NAME]["row"] # 데이터가 없으면 KeyError (2) 수정 후 res = requests.get(url, timeout=15) res.raise_for_status() data = res.json() svc_data = data.get(SERVICE_NAME, {}) result_code = svc_data.get("RESULT", {}).get("CODE", "") if result_code == "INFO-200": print(f"[{quarter}] 데이터 미개설/없음 상태입니다.") return None, 0 # 에러가 아니라 '데이터 없음'으로 구분해서 넘어감 elif result_code != "INFO-000": print(f"[{quarter}] API 처리 오류 [{result_code}]") return None, 0 rows = svc_data.get("row", []) (3) 배운 점 HTTP 통신이 성공했다고 해서 원하는 데이터가 온 건 아니라는 걸 알게 됐다. 응답 내부의 상태 코드까지 확인 해야 한다. "에러"와 "데이터 없음"은 다르게 처리해야 반복 수집이 중간에 멈추지 않는다. 3. Git — 저장소를 여러 개 다룰 때 설정이 섞일까 봐 헷갈림 문제: Git 실습용으로 workspace 폴더에 새 저장소를 연결했는데, 기존에 쓰던 TIL 저장소의 설정이 덮어써지는 건 아닌지 걱정됐다. 게다가 VS Code가 여러 폴더를 한꺼번에 연 Untitled (Workspace) 상태여서 실습 폴더와 기존 폴더가 섞여 보였다. 원인: origin(원격 주소)은 각 폴더의 .git 안에 따로 저장 되어 서로 독립적이지만, git config --global 은 컴퓨터 전체에 적용 되는 설정이라는 차이를 몰랐다. (1) 확인 방법 # 각 저장소 폴더에서 실행 → 서로 다른 주소가 나오면 정상 (독립적) git remote -v # 컴퓨터 전체에 적용되는 설정 → 모든 저장소의 커밋 작성자가 여기 값으로 기록됨 git config --global user.name git config --global user.email (2) 배운 점 origin은 저장소별로 따로 관리되므로, 새 저장소를 연결해도 기존 저장소에는 영향이 없다. 반대로 --global 설정은 전부 공유되므로, 이메일이 GitHub 계정과 다르면 잔디가 안 채워질 수 있다 는 점을 주의해야 한다. VS Code에서 폴더를 열 때 Open Folder (하나만 열기)와 Add Folder to Workspace (기존 창에 추가)의 차이를 알게 됐다. ✅ Keep 배운 내용을 바로 팀 프로젝트에 적용해보는 흐름이 좋았다. Git을 배운 당일에 팀 저장소에 브랜치를 만들고 PR을 올려보니, 수업 내용이 훨씬 빨리 손에 붙었다 에러가 나면 바로 고치고 넘어가지 않고, 왜 그 에러가 났는지 원인을 이해하고 넘어가는 방식을 계속 유지하고 있다 🤔 Problem 3일뿐인 짧은 주에 크롤링 마무리 + Git + 팀 프로젝트 시작이 몰려서, 배운 내용을 충분히 복습할 시간이 부족했다 아직은 교재나 문법을 계속 찾아보면서 코드를 작성하고 있다. 개념은 이해했지만 "안 보고 처음부터 끝까지 짜는 것"은 아직 어렵다 🔥 Try 연휴 동안 API 호출 → 데이터 가공 → DB 저장 → 조회 → 화면까지 각 단계를 AI 없이 빈 파일에서 직접 써보며, 어디가 약한지 진단해보려 한다 팀 프로젝트에서 내가 맡은 파트는 먼저 직접 작성하고, AI에게는 검토만 맡기는 방식으로 진행하려 한다
Балл: 54.4Уверенность: 49%
Балл: 54.4Уверенность: 49%
Балл: 54.4Уверенность: 49%
Балл: 54.4Уверенность: 49%
Балл: 54.4Уверенность: 49%