Swift

5 개의 포스트

aws4분 읽기큐레이션 요약

AWS 주간 요약: Amazon RDS for SQL Server의 BYOM, Swift용 AWS IoT Device SDK 등 (2026년 6월 8일) | Amazon Web Services

AWS 이번 주 주요 소식은 Swift 기반 IoT 개발의 본격화와 기업용 AWS 서비스의 안정성·보안·AI 기능 강화에 초점이 맞춰져 있다. AWS IoT Device SDK for Swift가 정식 출시되어 MQTT 5, Device Shadow, Jobs, 플릿 프로비저닝을 macOS·iOS·tvOS·Linux에서 사용할 수 있게 됐다. 또한 RDS for SQL Server의 기존 라이선스 재사용, Cognito 멀티 리전 복제, Bedrock의 OpenAI 모델 지원 등 기업 환경을 겨냥한 기능도 확대됐다. ### Swift 기반 IoT와 엣지 컴퓨팅의 확장 - AWS IoT Device SDK for Swift가 정식 출시됐다. - 다음 기능을 제공한다. - 프로덕션 수준의 MQTT 5 연결 - Device Shadow를 통한 디바이스 상태 동기화 - Jobs를 이용한 원격 작업 및 업데이트 - 플릿 프로비저닝을 통한 대규모 디바이스 등록 - macOS, iOS, tvOS, Linux에서 Swift로 IoT 애플리케이션을 개발할 수 있다. - 서버 측 Swift, IoT, 엣지 컴퓨팅의 결합이 확대되고 있으며, WendyOS처럼 NVIDIA Jetson과 Raspberry Pi에서 Swift 애플리케이션 배포를 지원하는 프로젝트도 등장하고 있다. ### Amazon RDS for SQL Server의 BYOM 지원 - 온프레미스에서 SQL Server 애플리케이션을 이전하는 고객은 기존 Microsoft SQL Server 라이선스를 Amazon RDS에서 재사용할 수 있다. - Microsoft Software Assurance가 포함된 라이선스는 Microsoft License Mobility 프로그램을 통해 적용할 수 있다. - Bring Your Own Media(BYOM)는 AWS License Manager와 통합된다. - 이를 통해 라이선스 사용량을 추적하고 규정 준수 상태를 관리할 수 있다. - 기존 라이선스 투자를 활용할 수 있어 SQL Server 마이그레이션 비용 절감에 도움이 된다. ### Amazon Cognito 멀티 리전 복제 - Cognito 사용자 풀의 사용자 및 머신 ID 데이터를 보조 리전에 거의 실시간으로 동기화할 수 있다. - 복제 대상에는 다음 항목이 포함된다. - 자격 증명 - 사용자 풀 구성 - 연동 및 페더레이션 설정 - 기본 리전에 장애가 발생해도 로그인 상태의 사용자는 재인증 없이 애플리케이션을 계속 이용할 수 있다. - 등록 사용자는 기존 자격 증명으로 보조 리전에서 로그인할 수 있다. - Essentials 또는 Plus 기능 티어에서 애드온으로 제공되며, 16개 리전에서 지원된다. ### Amazon Bedrock의 OpenAI 모델 및 개발 도구 지원 - GPT-5.5, GPT-5.4, Codex가 Amazon Bedrock에서 정식 제공된다. - GPT-5.5는 에이전트 기반 코딩, 데이터 분석, 다단계 자율 작업에 강점을 가진다. - Codex는 다음 환경에서 사용할 수 있다. - Codex App - Codex CLI - Visual Studio Code - JetBrains IDE - Xcode - AWS의 기존 보안, 거버넌스, 운영 관리 체계 안에서 OpenAI 모델을 사용할 수 있다. - 가격은 OpenAI의 직접 제공 가격과 동일하며, 사용량은 기존 AWS 약정에 포함된다. ### Bedrock 관측성·콘솔·보안 기능 개선 - OpenAI 및 Anthropic 호환 API용 `bedrock-mantle` 엔드포인트에 CloudWatch 지표가 추가됐다. - 계정, 프로젝트, 모델, 프로젝트-모델 단위로 다음 정보를 모니터링할 수 있다. - 추론 요청 수 - 입력·출력 토큰 수 - 클라이언트 오류 수 - 호환 API에 최적화된 Bedrock 콘솔이 새롭게 개편됐다. - 모델 카탈로그 - 모델 나란히 비교 - 프로젝트 기반 구성 - 미리 채워진 코드 예제가 포함된 프로젝트별 문서 - Bedrock AgentCore Identity는 기존 AWS Secrets Manager 시크릿 ARN을 직접 참조할 수 있게 됐다. - 고객은 자체 KMS 키, 태깅 전략, 자동 로테이션 등 시크릿 관리 정책을 유지할 수 있다. ### 에이전트와 워크플로 자동화 - AWS Step Functions에 Bedrock AgentCore 기반의 에이전트 추론 단계가 추가됐다. - 워크플로에서 여러 AI 에이전트를 병렬 또는 순차적으로 실행할 수 있다. - 사람의 승인 단계를 삽입할 수 있어 자동화와 통제를 함께 구현할 수 있다. - 각 에이전트의 판단 과정을 추적할 수 있어 감사와 디버깅에 유리하다. ### 컨테이너 및 Kubernetes 기능 업데이트 - Amazon EKS와 EKS Distro가 Kubernetes 1.36을 지원한다. - 주요 변경 사항은 다음과 같다. - User Namespaces 정식 지원 - Mutating Admission Policies - Pod 단위 리소스의 인플레이스 수직 확장 - 리소스 상태 보고 기능 - ECS Managed Instances는 AWS Trainium과 Inferentia를 지원한다. - Inferentia2, Trainium1, Trainium2 인스턴스를 용량 공급자로 구성할 수 있다. - ECS가 워크로드에 필요한 가속기 리소스를 자동으로 할당한다. ### 네트워크 연결·비용 분석·위치 서비스 - Amazon Quick은 VPC를 통해 사설 MCP 서버에 연결할 수 있다. - 내부 애플리케이션과 도구를 인터넷에 노출하지 않고 Amazon Quick에서 사용할 수 있다. - AWS Cost and Usage Report 2.0은 Athena와 Redshift 통합을 지원한다. - 선택한 쿼리 엔진에 맞는 형식으로 비용 데이터를 전달하고, 테이블 정의와 데이터 로딩 지침도 제공한다. - Amazon Location Service Routes API에는 대중교통 및 복합 이동 경로가 추가됐다. - Transit과 Intermodal 모드를 통해 대중교통, 도보, 자동차, 택시, 렌터카를 조합한 경로를 계획할 수 있다. - 해당 기능은 13개 리전에서 제공된다. ### 실용적인 시사점 - SQL Server를 AWS로 이전한다면 기존 라이선스와 Software Assurance를 활용할 수 있는지 확인하는 것이 좋다. - 글로벌 서비스의 인증 연속성이 중요하다면 Cognito 멀티 리전 복제를 검토할 만하다. - Bedrock을 도입하는 팀은 CloudWatch 토큰·오류 지표와 Secrets Manager 연동을 함께 구성해 비용과 보안을 관리하는 것이 바람직하다. - IoT 제품을 Swift 생태계로 개발하거나 Apple 기기와 엣지 하드웨어를 함께 운영하려는 경우 AWS IoT Device SDK for Swift가 유력한 선택지가 될 수 있다.

원문 읽기(새 탭에서 열림)
line원문

ODW #5: 벡터 DB와 에이전트 스킬로 RAG 시스템 만들기 (새 탭에서 열림)

LY Corporation에서 진행된 이번 워크숍은 대량의 마크다운 문서를 효율적으로 검색하기 위해 ChromaDB 기반의 RAG(검색 증강 생성) 시스템을 구축하고, 이를 에이전트 스킬과 결합하여 개발자 경험을 혁신하는 방법을 다룹니다. 단순히 문서를 데이터베이스화하는 것을 넘어, AI 에이전트가 데이터의 구조와 활용법을 이해하도록 돕는 '스킬' 정의를 통해 검색 정확도와 업무 효율을 동시에 높이는 실무적인 접근법을 제시합니다. 이러한 시스템은 향후 자연어 기반의 문서 검색을 넘어 코드 생성 및 리뷰 프로세스에 지식 베이스를 직접 연결하는 핵심 도구로 활용될 수 있음을 시사합니다. ### 개발 생산성 향상을 위한 RAG의 도입 배경 * 대규모 앱 개발 과정에서 발생하는 빌드 에러, 아키텍처 가이드라인 준수 등의 문제를 해결하기 위해 방대한 문서가 존재하지만, 이를 검색하고 숙지하는 데 많은 리소스가 소모됩니다. * 동료 전문가에게 직접 질문하는 방식은 질문자와 답변자 모두의 시간을 소모하므로, 자연어로 대량의 데이터를 검색할 수 있는 자동화된 구조가 필요합니다. * RAG 기법을 도입하면 AI 에이전트에게 신뢰할 수 있는 외부 지식을 제공하여, 환각 현상을 줄이고 보다 정확한 응답을 생성할 수 있습니다. ### ChromaDB와 Swift Evolution을 활용한 데이터 적재 * 오픈소스 벡터 DB인 ChromaDB를 활용하여 로컬 환경에서 파이썬 및 자바스크립트 라이브러리를 통해 데이터를 간단히 적재하는 시스템을 구축했습니다. * 약 500여 건의 Swift 언어 사양 제안 문서(Swift Evolution)를 예제로 사용하였으며, 이는 ID(SE-XXXX), 구현 상태, 작성자 등 정형화된 메타데이터를 포함하고 있어 RAG 실습에 적합합니다. * 워크숍에서는 로컬 DB를 구축하고 MCP(Model Context Protocol) 도구를 통해 Claude Code와 같은 코딩 에이전트가 DB를 참조하도록 구성했습니다. ### 에이전트 스킬을 통한 지능형 검색 최적화 * 단순히 MCP 도구만 연결하면 에이전트가 DB의 컬렉션 명이나 메타데이터 구조를 몰라 검색에 어려움을 겪을 수 있으므로, 이를 보완하기 위한 '에이전트 스킬'을 정의했습니다. * 스킬 내부에 "Swift Evolution 지식을 검색하려면 ChromaDB의 특정 컬렉션을 참조한다"는 지침과 메타데이터 활용법을 명시하여 에이전트의 컨텍스트를 강화했습니다. * 이를 통해 사용자가 "SE-0500에 대해 조사해줘"라는 짧은 명령어만 입력해도 에이전트가 스스로 최적의 검색 파라미터를 설정하여 정확한 정보를 찾아내게 됩니다. ### RAG 시스템의 확장과 실무 적용 * 구축된 시스템은 단순한 문서 검색을 넘어, 코딩 에이전트가 스스로 지식을 검색해 코드를 생성하거나 특정 규칙에 기반하여 코드 리뷰를 수행하는 등 고도화된 업무에 활용 가능합니다. * 워크숍에서는 참가자들이 직접 마크다운 문서를 DB에 적재하고 스킬을 작성하는 실습을 진행했으며, 결과물을 사내 클라우드(Flava)에 배포하여 공유하는 방법까지 포함했습니다. * 1,000명 이상의 직원이 참여한 이번 사례는 이론적인 개념 전달과 실제 업무 문서를 활용한 실습의 균형이 AI 도구 내재화에 얼마나 중요한지를 보여줍니다. 방대한 내부 문서를 보유한 조직이라면 ChromaDB와 같은 가벼운 벡터 DB와 MCP 기반의 에이전트 스킬을 결합해 보시기 바랍니다. 초기 구축 비용 대비 개발자가 정보를 찾는 시간을 획기적으로 단축할 수 있으며, 특히 사내 코딩 표준이나 복잡한 도메인 지식을 AI 에이전트에게 즉시 학습시키는 가장 효율적인 경로가 될 것입니다.

line원문

AttributedString 구조로 풀어낸 대규모 iOS 설정 시스템 (새 탭에서 열림)

LINE iOS 앱의 성장으로 인해 기존의 일체형 서비스 설정 시스템은 의존성 관리, 안정성, 개발 생산성 측면에서 한계에 봉착했습니다. 이를 해결하기 위해 LINE은 각 모듈이 독립적으로 설계를 정의하면서도 타입 안전성을 확보하고, 동시성 환경에서도 안전하게 작동하는 새로운 아키텍처로의 전환을 시도했습니다. 특히 Apple의 `AttributedString` 설계 방식을 벤치마킹하여 대규모 프로젝트에 적합한 확장성 있는 설정 관리 체계를 구축하고자 했습니다. **서비스 설정 시스템의 역할과 구조** * LINE은 2주마다 정기 배포를 진행하므로, 개별 서비스의 신규 기능 출시나 롤백을 앱 업데이트 없이 수행하기 위해 '서비스 설정' 시스템을 활용합니다. * 서버는 사용자의 지역, 기기, OS 버전 등에 따라 최적화된 설정값을 문자열 형태의 키-값 쌍(JSON)으로 클라이언트에 전달합니다. * 이 시스템은 기능 토글뿐만 아니라 A/B 테스트, 오류 수집 샘플링 비율 조정, UI 정책 결정 등 다양한 용도로 사용되며 현재 약 700개의 키가 운용되고 있습니다. **일체형 구조로 인한 순환 의존성 딜레마** * 과거에는 모든 설정 키를 단일 파일에서 관리했으나, 프로젝트 규모가 커지며 해당 파일이 7천 줄에 달하는 등 관리가 어려워졌습니다. * 설정 시스템이 특정 서비스 모듈의 전용 타입(예: 사진 품질 타입)을 반환하려 하면 모듈 간 순환 참조가 발생하여, 결국 타입 안전한 객체 대신 날것의 문자열을 노출하고 각 모듈에서 매번 파싱해야 하는 비효율이 발생했습니다. **불완전한 추상화와 구현 세부 사항의 노출** * 서버 규약에 따라 불리언 값을 "Y"/"N" 문자열로 처리해야 했고, 이를 위해 `decodeBoolIfPresent` 같은 비표준 메서드를 별도로 구현해야 했습니다. * 이 과정에서 표준 메서드와의 혼동으로 인한 버그가 잦았으며, 용도가 미묘하게 다른 기본값을 세 번이나 중복 정의해야 하는 설계 결함이 존재했습니다. * 이러한 복잡성은 신규 개발자에게 암기 위주의 온보딩 지식을 강요하여 생산성을 저하시켰습니다. **스레드 안전성 부재로 인한 런타임 오류** * 기존 시스템은 동시성을 고려하지 않고 설계되어, 여러 스레드에서 설정값을 읽는 과정에서 지연 평가 및 인스턴스 해제 타이밍이 겹치는 문제가 있었습니다. * 이로 인해 메모리 해제 후 사용(use-after-free) 오류가 발생하여 매일 수백 건의 크래시가 기록되는 등 앱 안정성에 심각한 영향을 미쳤습니다. **테스트 및 디버깅 효율성 저하** * 시스템 자체에 오버라이드 기능이 없어 QA 과정에서 설정값을 임시로 변경하려면 다수의 파일을 직접 수정해야 하는 번거로움이 있었습니다. * 싱글턴 구조의 의존성 때문에 각 모듈은 테스트를 위해 별도의 프로토콜과 테스트 대역을 각자 만들어 관리해야 했으며, 이는 실제 구현체와의 동작 괴리를 유발하는 원인이 되었습니다. **성장을 위한 설계의 재정립** * 대량의 키-값 쌍을 타입 안전하게 관리하면서도 각 모듈이 독립적으로 키를 정의할 수 있는 구조를 만들기 위해 Foundation의 `AttributedString` 설계를 참고했습니다. * 이는 개별 서비스가 자신의 도메인에 맞는 설계를 독립적으로 확장할 수 있게 하여, 거대해진 프로젝트 규모에 대응할 수 있는 유연한 기반을 마련하는 계기가 되었습니다.

airbnb원문

LLM 및 @generateMock (새 탭에서 열림)

에어비앤비는 LLM과 제품 컨텍스트를 결합한 `@generateMock` 지시어를 도입하여, 수동으로 작성하던 GraphQL 모의 데이터 생성 과정을 자동화하고 혁신했습니다. 이 시스템은 단순한 랜덤 값 생성을 넘어 쿼리 정의, 스키마 주석, 그리고 디자인 목업 이미지까지 컨텍스트로 활용해 실제 서비스 환경과 매우 흡사한 타입 안정적(Type-safe) 데이터를 생성합니다. 이를 통해 개발자는 백엔드 구현을 기다리지 않고도 고품질의 데모와 테스트를 수행할 수 있으며, 쿼리 변경에 따른 모킹 데이터의 관리 부담을 획기적으로 줄였습니다. ### 기존 모킹 방식의 한계와 도전 과제 * **수동 작업의 비효율성:** 수백 줄에 달하는 GraphQL 쿼리에 대응하는 JSON 데이터를 직접 작성하고 수정하는 과정은 매우 번거롭고 실수에 취약합니다. * **병렬 개발의 병목:** 서버 스키마가 확정된 후에도 실제 API가 구현될 때까지 클라이언트 개발자는 UI 테스트를 진행하기 어려워 임시방편(하드코딩, 로컬 프록시 등)에 의존하게 됩니다. * **데이터의 동기화 문제:** 쿼리나 스키마가 진화함에 따라 수동으로 작성된 모의 데이터는 점차 실제 프로덕션 환경과 괴리가 생기며, 이는 테스트 신뢰도 저하로 이어집니다. ### @generateMock 지시어를 통한 선언적 모킹 * **지시어 기반 워크플로우:** 개발자는 `.graphql` 파일의 연산, 프래그먼트, 또는 특정 필드에 `@generateMock` 지시어를 추가하는 것만으로 모의 데이터를 정의할 수 있습니다. * **주요 파라미터 활용:** * `id`: 여러 버전의 모의 데이터를 생성할 때 식별자로 사용하며, 생성된 헬퍼 함수의 이름에 반영됩니다. * `hints`: "파리, 교토로 가는 여행 일정을 포함해달라"와 같이 LLM에게 구체적인 데이터 생성을 지시하는 자연어 가이드를 제공합니다. * `designURL`: 디자인 도구(Figma 등)의 URL을 입력하면 LLM이 실제 디자인 화면의 텍스트와 레이아웃에 부합하는 데이터를 생성합니다. * **로컬 개발 도구 통합:** 에어비앤비의 코드 생성 도구인 'Niobe'와 결합되어, 코드 생성 시 JSON 데이터와 이를 로딩하는 소스 코드(TypeScript, Swift, Kotlin)가 자동으로 빌드 아티팩트에 포함됩니다. ### LLM을 활용한 컨텍스트 중심의 데이터 생성 * **스키마 최적화 주입:** 전체 스키마를 LLM에 전달하는 대신, 해당 쿼리와 연관된 타입 및 인라인 문서 주석만을 추출하여 컨텍스트 윈도우 내에서 효율적으로 처리합니다. * **디자인 시각 정보 반영:** 내부 API를 통해 `designURL`의 스냅샷 이미지를 생성하고 이를 LLM에 전달함으로써, 실제 UI 디자인에 명시된 이름, 주소 등의 콘텐츠와 일치하는 현실적인 데이터를 얻습니다. * **수동 수정 및 보존:** 생성된 JSON 데이터는 개발자가 직접 수정할 수 있으며, 이후 다시 코드를 생성하더라도 Niobe는 사용자가 직접 수정한 내용을 지우지 않고 보존하는 지능적인 병합 기능을 제공합니다. 이러한 접근 방식은 단순히 더 나은 가짜 데이터를 만드는 것을 넘어, 프론트엔드와 백엔드 간의 의존성을 분리하고 개발 생산성을 극대화하는 데 목적이 있습니다. 대규모 GraphQL 환경을 운영하는 조직이라면 스키마 메타데이터와 LLM을 결합하여 테스트 자동화 수준을 한 단계 높이는 이 모델을 참고할 가치가 있습니다.

figma3분 읽기큐레이션 요약

팀을 Figma로 전환하도록 설득

Figma 도입은 단순히 디자인 도구를 바꾸는 일이 아니라, 디자인을 조직 내 협업과 의사결정의 중심으로 끌어오는 문화적 변화다. Buffer의 James Morris는 전사 탐색 기간을 마련하고, 실제 화이트보딩과 엔지니어 협업을 통해 구성원들이 Figma의 가치를 직접 경험하게 했다. 클라우드 기반의 공유성, 플랫폼 독립성, 실시간 협업, 개발자용 디자인 데이터 제공이 전환의 핵심 동력이었다. ## 디자인 도구가 협업을 가로막은 문제 - Buffer는 투명성을 중시하는 조직이었지만, 기존 디자인 도구는 디자인팀을 다른 부서와 분리했다. - 디자인 파일이 Dropbox의 깊은 하위 폴더에 묻혀 필요한 자료를 찾기 어려웠다. - 파일을 열려면 특정 데스크톱 소프트웨어나 최신 버전, 유료 라이선스가 필요했다. - 개발자와 PM은 실수로 원본을 덮어쓸까 봐 파일을 열기조차 꺼렸다. - Linux를 사용하는 엔지니어는 디자인 파일을 보기 위해 Mac을 구매해야 할 수도 있었다. ## Figma가 제공한 협업 방식 - 클라우드에서 실행되므로 파일을 URL 하나로 공유할 수 있다. - 무료 보기 전용 계정을 통해 누구나 디자인을 확인하고 댓글을 남길 수 있다. - 디자이너와 개발자, PM이 동일한 파일을 보며 소통할 수 있다. - 디자인 파일이 특정 운영체제나 데스크톱 애플리케이션에 종속되지 않는다. - 하나의 공유 URL이 디자인의 기준점이 되어, 이미지로 내보내거나 Dropbox 경로를 설명할 필요가 줄어든다. ## 1단계: 전사적인 탐색 기간 마련 - James는 처음부터 Figma 도입을 강요하지 않고, 회사 전체에 ‘탐색 기간’을 제안했다. - 각 팀이 여러 디자인·협업 도구를 직접 사용해 보고 자신들의 요구에 맞는 도구를 평가하도록 했다. - 이 과정에서 Buffer의 업무 흐름과 협업 문제에 대한 구성원들의 피드백을 수집했다. - Figma의 장점을 일방적으로 주장하기보다, 실제 사용을 통해 기능이 증명되도록 했다. ## 2단계: 설명보다 직접 경험하게 하기 ### PM과의 원격 화이트보딩 - 원격 근무 환경에 맞춰 PM과 Figma에서 실시간 가상 화이트보딩을 진행했다. - 문서에 글을 쓰는 대신 도형을 사용해 기능 아이디어와 협업 방식을 함께 구상했다. - 별도의 공식 기획서가 완성될 때까지 기다리지 않고, 디자이너와 PM이 즉시 아이디어를 시각화할 수 있었다. - Figma의 직관성과 실시간 협업 기능을 자연스럽게 체험하게 한 사례다. ### 엔지니어 설득 - 개발자들에게 장황하게 설명하는 대신 파일 URL을 전달하고 필요한 정보를 직접 찾아보게 했다. - 무료 보기 전용 기능으로 CSS, iOS용 Swift, Android용 XML 관련 디자인 데이터를 확인할 수 있었다. - 개발자는 별도의 애플리케이션을 설치하거나 라이선스를 구매하지 않고 디자인을 열 수 있었다. - URL이 동일하게 유지되는 ‘단일 진실의 원천(source of truth)’이 되어 디자인 전달과 위치 확인이 쉬워졌다. - Figma가 WebAssembly를 활용해 브라우저 성능을 개선했다는 점도 엔지니어들의 기술적 관심을 끌었다. ### 디자이너의 우려 다루기 - 디자이너는 공개적이고 투명한 디자인 작업 방식에 부담을 느낄 수 있다. - 웹 애플리케이션이 데스크톱 도구만큼 빠르게 작동할지 의심할 수도 있다. - 따라서 디자이너에게는 기능 설명보다 실제 성능과 작업 흐름을 직접 보여 주는 접근이 필요하다. - 글에서 제시된 전략의 핵심은 각 직군이 중요하게 여기는 가치에 맞춰 Figma를 소개하는 것이다. 조직의 도구 전환을 성공시키려면 “새 도구가 더 좋다”고 주장하기보다, 구성원들이 자신의 업무에서 문제 해결 효과를 직접 확인하게 해야 한다. 특히 원격·다직군 협업 환경에서는 공유 가능한 단일 작업 공간과 운영체제에 구애받지 않는 접근성이 도입의 강력한 근거가 된다.

원문 읽기(새 탭에서 열림)