Announcing Interop 2023 : 브라우저 간의 구현 차이는 많은 문제를 일으키므로 이를 해결하기 위해서 웹 플랫폼 테스트를 공유해서 모든 브라우저가 테스트하도록 하고 있다. Interop 프로젝트는 2022년부터 Apple, Bocoup, Google, Igalia, Microsoft, Mozilla가 협력한 프로젝트로 웹의 상용 운용성 개선하기 위한 프로젝트이다. Iterop 2022에서 여러 플랫폼의 상호 운용성이 많이 개선되었고 올해도 Iterop 2023를 발표하게 되었다. Iterop 2023에서는 Focus ares와 Investigation의 개선에 집중하고 있는데 웹 플랫폼 테스트에서는 이미 높은 수준의 사양과 우수한 테스트 커버리지를 가진 플랫폼을 중점적으로 다루며 "Active focus area"는 올해 점수에 기여한 영역이고 "Inactive focus ares"는 개선이 예상되지 않는 전년도의 포커스 영역이다. 각 브라우저의 테스트 점수도 보여주지만, Gecko, WebKit, Blink가 모두 통과한 테스트는 Interop 점수로 계산해서 모든 브라우저에서 안정적으로 동작하도록 하고 있다. Investigation는 상호운용성이 부족한데 테스트 통과만으로는 개선할 수 없는 영역을 조사하는 것으로 모바일 플랫폼과 접근성 API에서 테스트 인프라가 불충분하다고 생각해서 이 부분에 집중할 예정이다.(영어)
Container queries land in stable browsers : 컨테이너 쿼리를 이제 모든 주요 브라우저에서 사용할 수 있게 되었다. 컨테이너 쿼리는 container-type이나 container로 card나 inline-size를 지정해야 하고 미디어쿼리를 사용하듯이 부모 요소의 스타일 정보를 알 수 있게 되므로 재사용할 수 있는 컴포넌트에서 유용하다. 사이트에서 컨테이너 쿼리를 사용하는 예시를 제공하므로 직접 사용해 볼 수 있다.(영어)
Servo 2023 Roadmap : Mozilla에서 만들다가 2020년 Linux 재단으로 옮겨진 브라우저 엔진 Servo가 올해는 펀딩받으면서 로드맵을 발표했다. 올해 프로젝트를 다시 활성화하고 협력자와 스폰서를 모집하고 한동안 업데이트되지 않던 기능을 다시 업데이트한다고 한다.(영어)
Mock.shop API : Shopify에서 Storefront API를 테스트할 수 있는 Mock API를 공개했다. GraphQL API를 제공하면 curl, fetch, graphql-request, Apollo, Remix별로 예시도 같이 제공해주고 AI를 사용해서 프롬프트를 입력하면 API로 전환해 주지만 다양한 프롬프트를 지원하진 않는다.(영어)
그 밖의 개발 관련
A Gentle Introduction to CRDTs : 동시 편집 에디터 등에서 사용하는 CRDT(Conflict Free Replicated Data types)가 어떻게 동작하는지 설명한다. CRDT는 오프라인에서도 문서를 수저하고 온라인이 되면 동기화가 이루어져서 같은 결과본을 갖게 되므로 지연 동기화를 할 수 있고 서버리스 싱크도 가능하게 된다. 이를 CRDT없이 구현하려면 마지막에 수정된 변경 사항을 선택해야 하는데 분산된 상황에서 마지막 변경 사항임을 알기 위해서 시간 값을 사용하는 것은 많은 문제가 생기게 되므로 CRDT는 이를 논리적 시계로 만들어서 구현한다. 각 상황에서 실행해 볼 수 있는 예제를 제공하고 있다.(영어)
The evolution of Facebook’s iOS app architecture : 페이스북이 iOS 앱을 재작성한 지 10년이 지난 후 다른 iOS 앱과는 많이 다른 구조가 되었는데 이렇게 변화하게 된 이유를 설명한다. 앱을 재작성하고 2년 뒤에(2014년) 안정성 문제가 발생하면서 기존 설계가 지속 가능하지 않다고 판단하고 React를 조사했으나 Apple SDK에는 선언적 UI가 없었다. 그래서 직접 UI 프레임워크인 ComponentKit을 만들고 50%의 성능이 향상되었다. 2015년에는 사용자가 증가하면서 기능이 추가되면서 느려지기 시작했고 동적으로 코드를 로드하는 Dylibs를 도입해서 느려지는 문제는 막았지만, 아키텍처를 재설계해야 함을 느끼게 되었다. 2017년에 Dylibs의 문제를 해결하기 위해 빌드시스템인 Buck을 도입했고 2018년에는 코드 생성을 할 수 있게 되어 런타임 기반 앱 모듈 시스템이 되었다. 2020년에 Swift가 대세가 되었지만, C++ 기반인 FBiOS와 Swift의 궁합은 좋지 않아서 Swift를 쓰기 위해 아키텍처를 변경하게 되었다.(영어)
The technology behind GitHub’s new code search : 아직 베타이지만 GitHub의 새로운 코드 검색 기능은 Blackbird라고 부르는 Rust로 만든 검색엔진을 사용한다. 일반적인 텍스트 검색은 코드 검색에 맞지 않았고 Elasticsearch로 처음 만들었을 때 800만 개의 저장소를 색인하는데 여러 달이 걸렸지만, 지금은 저장소가 2억 개가 넘고 코드도 계속 변화하기 때문에 검색엔진으로 처리하기가 어려워서 직접 만들기로 했다고 한다. 인덱스를 설계하고 효율적으로 인덱스하기 위해 Git의 ObjectID로 샤드를 나누고 델타 인코딩으로 인덱스 할 양을 줄여서 155억 개의 문서를 18시간 만에 인덱싱할 수 있게 했고 Kafka로 push 이벤트에 따라 인덱스에 추가되도록 했다. 사용자 검색할 쿼리 서비스가 따로 있어서 쿼리를 처리하고 있으며 p99는 100ms 정도를 보여주고 있다.(영어)
GitHub Copilot now has a better AI model and new capabilities : GitHub Copilot의 지속적인 개선으로 2022년 6월 처음 런칭했을 때는 27%였던 코드 수락률이 이제 35%로 올라가게 되었다. 이는 Codex 모델이 업그레이드되었고 FIM(Fill-In-the-Middle) 패러다임을 통해 컨텍스트를 더 잘 이해하게 되었으며 경량 클라이언트 측 모델을 사용해서 불필요한 코드 제안을 줄일 수 있게 되었기 때문이다. 또한 시크릿값 등 보안 취약점을 제안되지 않도록 실시간으로 필터링하는 기능도 추가되었다.(영어)
Pull request merge queue (public beta) : GitHub의 머지 큐 기능이 퍼블릭 베타로 공개되어 Enterprise Cloud나 저장소에서 organization의 공개 저장소에서 활성화해서 사용할 수 있게 되었다. 머지 큐 기능은 CI 검사나 승인 조건이 완료되면 자동으로 머지 큐에 들어가서 다른 PR이 머지되더라도 순서대로 머지할 수 있게 되어 머지로 인한 생산성 저하를 줄여준다.(영어)
인프라 관련
Don't Call It A Platform : "마이크로서비스 아키텍처 구축"의 저자인 샘 뉴먼이 쓴 글로 최근 주목을 받는 Platform engineering이 플랫폼에 매몰되어 개발자 지원을 놓치고 있고 DevOps에서와 마찬가지로 요점을 놓치고 있다고 지적하는 글이다. Kuberntes의 생태계의 너무 많은 기술이 생기면서 이 기술 자체에 매몰되어 사용자를 위해 존재해야 하는 플랫폼이 사용자를 플랫폼의 의도대로 굴복시키고 있다. "팀 토폴로지"라는 책에도 플랫폼 얘기가 나오는데 플랫폼을 선택적으로 만드는 것이 중요하고 플랫폼을 강제하면 사람들을 끌어들이기 위해 사용자 경험을 개선할 동기가 사라지게 된다.(영어)
Cilium CNI on EKS using secondary CIDR and prefix delegation : Cilium은 eBPF 기반으로 네트워크 통신을 모니터링하고 필터링할 수 있다. AWS EKS는 Calico를 사용하고 있지만 DNS 정책을 적용할 수 있고 Hubble로 가시성을 제공할 수 있으므로 Cilium을 사용하기로 선택하고 Cilium 네트워크 플러그인, Pod을 위한 VPC의 secondary CIDR, ENI 접두사 위임을 사용하기로 했다. EKS에서 지원하지 않기 때문에 VPC CNI를 따로 지워야 했고 이후 Cilium을 설정하고 Hubble UI로 기본 설정 확인을 한 뒤 정책을 적용하는 방법이 정리되어 있다.(영어)
core-js 메인테이너의 글 : core-js는 직접 사용하기보다 많은 라이브러리의 의존성으로 사용되고 있어서 잘 알려지진 않았지만 가장 많이 사용되는 polyfill 라이브러리다. 대기업 등 수많은 사이트에서 대부분 core-js를 사용하고 있고 프로젝트를 풀타임으로 유지보수하기 위해 생활비가 적게 드는 러시아에서 살고 있다. 몇 년 전 교통사고가 나서 합의금을 마련해야 했고 프로젝트의 펀딩에 대한 링크를 달자 수많은 혐오 댓글이 달리기 시작했고 결국 합의금을 마련하지 못해서 감옥에 갔다가 나왔다. 나온 뒤에 다시 core-js 관리를 하고 있지만 최근에는 펀딩이 많이 줄어들어서 시급 기준으로 2달러로 일해야 하는 상황까지 왔고 이 상태로는 core-js를 관리할 수 없다며 앞으로 core-js의 계획까지 정리한 글이다. 오픈소스 메인테이너의 슬픈 현실이면서 너무 정성 들여 쓴 글이라서 조금이나마 기부하고 왔다.(영어)
ChatGPT Is a Blurry JPEG of the Web : ChatGPT는 웹의 흐릿한 JPEG라고 얘기하는 유명 SF 작가 테드 창의 글이다. JPEG 처럼 대규모 언어 모델(LLM)도 웹의 손실 압축이기 때문에 흐릿한 정보를 재포장하는 데는 유능해 보일 수 있지만 재포장이 많아질수록 JPEG를 계속 압축하는 것처럼 흐려져서 품질이 나빠질 것이다. LLM의 품질을 측정하는 기준으로 회사가 생성한 텍스트를 새 모델의 학습 자료로 쓰려고 하는지로 볼 수 있는데 이렇게 하려면 앞은 발전이 필요할 것이다. 독창적인 글쓰기에 LLM이 도움이 되느냐고 했을 때 복사기를 이용한 예술가와 예술 장르가 있으므로 "그렇다"고 대답할 수도 있지만 복사기가 예술의 필수 도구라거나 복사기로 불이익을 받는다고 말하는 사람은 없다. 테드 창은 모호한 복사로 시작하는 것이 독창적인 작품을 만드는 좋은 방법은 아니며 독창적인 작품을 쓰기 전에 독창적이지 않은 작품을 많이 만드는 과정이 밑거름된다고 얘기하고 있다.(영어)
인간의 뇌와 비슷하게 모델이 학습 데이터를 만들어서 자기 개선을 계속할 수 있다면 데이터 부존 문제를 해결할 수 있다.
스스로 사실 확인을 할 수 있는 모델
현재의 LLM은 Google 검색을 대체할 수 없는데 부정확하거나 잘못된 정보를 자신감 있고 설득력 있게 제시하기 때문이다.
OpenAI의 CEO인 샘 알트먼도 "ChatGPT는 믿을 수 없을 정도로 제한적이지만, 일부 기능에서는 훌륭하다는 오해를 불러일으킬 만큼 충분히 뛰어납니다. 지금 당장 중요한 일에 이 기술에 의존하는 것은 실수입니다."라고 했다.
이를 개선하기 위해 LLM이 외부 소스에서 정보를 검색할 수 있고 제공하는 정보에 대한 참조를 제공할 수 있도록 하는 연구가 이뤄지고 있다.
대규모의 sparse expert 모델
현재의 LLM을 그 아키텍처가 거의 동일한데 모델이 실행될 때마다 모든 매개 변수가 사용되는데 sparse expert 모델에서는 관련된 하위 집합만 사용할 수 있기 때문에 계산 요구사항이 적고 해석하기 쉽다는 장점이 있다.
AI, 이번엔 다릅니다 – 스타트업 vs 기존 기업 (번역) : 실리콘 밸리의 투자자 Elad Gil이 쓴 AI: Startup Vs Incumbent Value 의 번역 글이다. 지난 10년 동안 많은 AI 스타트업이 있었지만, 좋은 성과를 내지 못하고 구글, 페이스북, 아마존 등 기존 기업이 AI를 더 잘 활용하고 있었는데 이 이유는 10배짜리 제품을 만들기 못했고 대규모 데이터 세트를 얻기 어려웠고 시장환경도 쉽지 않았기 때문이다. 하지만 새로 다가오는 AI 파도는 스타트업이 더 큰 가치를 만들 것이라고 믿는데 뛰어난 기술이 등장하고 있고 인프라를 제공하는 스타트업이 생겨나고 있고 기존에 확실히 1등이 없던 영역에서 사용사례가 나타나기 때문이라고 한다.(한국어)
Microsoft announces new Bing and Edge browser powered by upgraded ChatGPT AI : Microsoft가 자사의 검색엔진 Bing의 새 버전으로 ChatGPT의 업그레이드 버전으로 동작하는 Bing을 발표하며 AI 기반으로 검색에서 새로운 경쟁이 시작되었다고 얘기했다. 새로운 Bing에서는 기존 검색 결과와 AI 주석을 함께 보여주고 ChatGPT처럼 채팅으로 질문하는 인터페이스를 제공하고 있다. 또한 AI로 강화된 Edge 브라우저에서는 사이드바에서 현재 페이지에 대한 내용을 질문할 수 있고 SNS나 이메일에 작성한 글쓰기를 도와주는 기능이 포함되어 있다.(영어)
Introducing ChatGPT Plus : OpenAI에서 ChatGPT의 파일럿 구독 플랜인 ChatGPT Plus를 공개했다. ChatGPT Plus는 월 $20의 요금으로 구독자는 피크 시간에도 ChatGPT에 접근할 수 있고 더 빠른 응답시간과 새로운 기능을 더 먼저 사용할 수 있게 된다.(영어)
Comments