diff --git a/_i18n/ko/_posts/2026/2026-01-16-jser-info-15th.md b/_i18n/ko/_posts/2026/2026-01-16-jser-info-15th.md new file mode 100644 index 00000000000..8a19ba65623 --- /dev/null +++ b/_i18n/ko/_posts/2026/2026-01-16-jser-info-15th.md @@ -0,0 +1,469 @@ +--- +title: "JSer.info 15주년: 15년간 JavaScript 돌아보기" +author: azu +translator: rewrite0w0 +layout: post +date : 2026-01-16T00:00:00Z +category: Article +tags: + - JSer + +--- + +2011년 1월 16일 시작한 [JSer.info](https://jser.info)은, 2026년 1월 16일로 15주년을 맞이했습니다🎉 + +JSer.info는 15년간 820건 글을 공개, 13,606건 사이트/읽을거리/라이브러리를 소개했습니다. 또한, 1회 갱신을 15년간 지속했습니다. + +이 글에서는, 15년간 JSer.info 데이터를 돌아보며, JavaScript 에코시스템이 어떻게 변화했는지 알아보려합니다. + +다만, 이 글 데이터는 JSer.info에 소개된 글 위주이므로, JavaScript 에코시스템 전체를 대표하지는 않습니다. +또한, 2024-2025년은 JSer.info 자체 갱신 수가 적어졌기에, 데이터에도 2025년에 감소 경향이 있으므로 이를 주의해주시길 바랍니다. + + + +--- + +## 15년간의 기본 통계 + +| 항목 | 수치 | +|------|------| +| 총 투고수 | 820회 | +| 총 소개된 읽을거리 수 | 13,606건 | +| 운영기간 | 2011년 1월 〜 2026년 1월(15년간) | +| 평균갱신빈도 | 주 1회 | + +연별로 소개 글을 보면, 2013년 1,269건 피크였으며, 근래는 600〜700건 추이입니다. 한편으로, 하나의 글의 소개 길이가 15년간 약 2배로 증가해, 「양보다 질」로 스타일 변화가 있습니다. + + +| 연도 | 소개된 글 | 투고수 | 1투고당 | 소개문 평균 글자수 | +|----|-----------|--------|-------------|-------------------| +| 2011 | 915 | 65 | 14.1건 | 62자 | +| 2013 | 1,269 | 57 | 22.3건 | 58자 | +| 2017 | 1,068 | 54 | 19.8건 | 79자 | +| 2019 | 790 | 53 | 14.9건 | 90자 | +| 2021 | 789 | 53 | 14.9건 | 101자 | +| 2025 | 552 | 41 | 13.5건 | 108자 | + +[![15년간 기본 통계](/uploads/media/2026/15th/15th_basic_stats_ko.png)](/uploads/media/2026/15th/15th_basic_stats_ko.png) + +그리고, 2025년은 투고 페이스가 조금 떨어졌기에 투고 횟수도 적어졌습니다. +이에, 이후에 등장하는 데이터에도 2025년에 감소하는 경향이 있다는 점을 주의해주십시오. + +--- + +## 정보원의 변화: 개인블로그에서 공식 문서로 + +15년간 가장 큰 변화는, 정보원의 구성입니다. + +### 초기(2011-2013년)주요 정보원 +1. github.com (327건) +2. d.hatena.ne.jp (154건) +3. slideshare.net (147건) +4. amazon.co.jp (98건) +5. amazon.com (83건) + +### 중기(2017-2019년)주요 정보원 +1. github.com (828건) +2. medium.com (134건) +3. developers.google.com (103건) +4. webkit.org (69건) +5. nodejs.org (64건) + +### 후기(2023-2025년)주요 정보원 +1. github.com (568건) +2. nodejs.org (98건) +3. bun.sh (62건) +4. zenn.dev (56건) +5. developer.chrome.com (55건) + +GitHub가 일관되게 최대 정보원인 것은 다르지 않지만, 그 주변은 큰 변화가 있습니다. + +[![정보원의 변화](/uploads/media/2026/15th/15th_info_sources_ko.png)](/uploads/media/2026/15th/15th_info_sources_ko.png) + +초기에는 **하테나 다이어리**나 **SlideShare**, **Amazon(도서)** 가 상위였지만. 개인 블로그나 스터디그룹 슬라이드, 도서가 주요 정보원인 시대였씁니다. + +중기에는 **Medium**가 많아졌으며, 브라우저 벤더의 **공식 문서/블로그**(developers.google.com나 webkit.org)가 상위에 있었습니다. 개인 블로그 플랫폼이 하테나에서 Medium으로 이동했고, 동시에 브라우저 벤더에서의 1차 정보가 중요해진 시기입니다. + +후기에는 **공식 문서/블로그**(nodejs.org, developer.chrome.com, bun.sh)나 **zenn.dev** 가 상위에 있습니다. Medium은 모습을 감췄고, 1차 정보원으로 직접 접근이 증가했습니다. + +### 콘텐츠 타입의 변화 + +| 종류 | 2011-2013 | 2014-2016 | 2017-2019 | 2020-2022 | 2023-2025 | +|------|-----------|-----------|-----------|-----------|-----------| +| 출시 노트 | 560 | 750 | 862 | 937 | 986 | +| 해설 글 | 719 | 692 | 813 | 617 | 526 | +| 라이브러리/도구 | 371 | 599 | 446 | 397 | 191 | +| 슬라이드/영상 | 292 | 309 | 170 | 60 | 49 | +| 도서 | 192 | 203 | 135 | 73 | 45 | +| 튜토리얼 | 97 | 154 | 93 | 33 | 14 | + +[![콘텐츠 타입의 변화](/uploads/media/2026/15th/15th_content_types_ko.png)](/uploads/media/2026/15th/15th_content_types_ko.png) + +출시 노트는 일관되게 증가됩니다. 한편, 슬라이드/영상, 도서, 튜토리얼 학습 콘텐츠가 적어졌습니다. 이는 공식 문서가 충실해지고 GitHub 출시 노트가 정보 발언 중심적으로 되면서, 스터티 그룹의 슬라이드나 도서 소개가 적어진 것을 반영합니다. + +--- + +## 일본어 플랫폼 변천 + +JSer.info에 소개된 일본어 기술 블로그도, 15년간 플랫폼이 크게 변경되었습니다. + +| 연도 | 하테나 | Qiita | Zenn | +|----|--------|-------|------| +| 2011 | 92 | 0 | 0 | +| 2014 | 29 | 19 | 0 | +| 2016 | 10 | 45 | 0 | +| 2020 | 3 | 4 | 3 | +| 2021 | 1 | 1 | 22 | +| 2024 | 2 | 1 | 24 | + +**하테나 다이어리/하테나 블로그 → Qiita → Zenn** 흐름으로 소개 글 플랫폼이 변화했습니다. + +[![일본어 플랫폼 변천](/uploads/media/2026/15th/15th_jp_platforms_ko.png)](/uploads/media/2026/15th/15th_jp_platforms_ko.png) + +다만, 전체적으로 일본어 자료 비율은 점점 적어져, 5% 전후로 정착되고 있습니다. +(타이틀만 보았으므로, 실제로는 더 높을 가능성이 있습니다) + +| 연도 | 일본어자료 | 합계 | 비율 | +|---:|---:|---:|---:| +| 2011 | 203 | 915 | 22.2% | +| 2012 | 194 | 1126 | 17.2% | +| 2013 | 150 | 1269 | 11.8% | +| 2014 | 114 | 1147 | 9.9% | +| 2015 | 80 | 1043 | 7.7% | +| 2016 | 93 | 1078 | 8.6% | +| 2017 | 67 | 1068 | 6.3% | +| 2018 | 64 | 921 | 6.9% | +| 2019 | 26 | 790 | 3.3% | +| 2020 | 25 | 810 | 3.1% | +| 2021 | 43 | 789 | 5.4% | +| 2022 | 33 | 712 | 4.6% | +| 2023 | 42 | 737 | 5.7% | +| 2024 | 44 | 638 | 6.9% | +| 2025 | 26 | 552 | 4.7% | + +[![일본어 자료 비율 추이](/uploads/media/2026/15th/15th_japanese_rate_ko.png)](/uploads/media/2026/15th/15th_japanese_rate_ko.png) + +이는 JSer.info가 의도적으로 일본어를 피한 것이 아니라, JavaScript의 1차 정보원이 거의 영어로 되어있다는 것을 반영합니다. 브라우저 벤더, 공식 사이트/프로젝트, 주요한 라이브러리의 관리자는 거의 대부분 영어로 정보를 제공합니다. + +--- + +## 기술 트렌드의 변천 + +### UI 프레임워크: jQuery → Angular → React + +| 연도 | jQuery | Angular | React | Vue | +|----|--------|---------|-------|-----| +| 2011 | 109 | 1 | 0 | 0 | +| 2013 | 86 | 44 | 6 | 0 | +| 2014 | 35 | 49 | 52 | 11 | +| 2015 | 29 | 30 | 103 | 10 | +| 2017 | 7 | 34 | 153 | 28 | +| 2019 | 9 | 9 | 84 | 20 | +| 2021 | 8 | 6 | 84 | 23 | +| 2025 | 1 | 4 | 82 | 4 | + +2011년은 jQuery가 가장 많았고, 2013년/2014년경에는 Angular/React/Vue가 증가, 2015년에는 React가 크게 증가했습니다. 2017년에 React는 153건으로 피크였고, 그 이후에는 안정기에 들어왔습니다. + +2025년에는 React의 건수가 피크때보다 절반정도 되었찌만, 이는 React 자체가 성숙해지면서, 매주 새로운 뉴스가 적어졌다는 것을 의미합니다. + +[![UI 프레임워크 변천](/uploads/media/2026/15th/15th_ui_frameworks_ko.png)](/uploads/media/2026/15th/15th_ui_frameworks_ko.png) + +### 빌드도구: webpack → Vite + +| 연도 | webpack | Rollup | esbuild | Vite | +|----|---------|--------|---------|------| +| 2016 | 33 | 2 | 0 | 0 | +| 2017 | 43 | 8 | 0 | 0 | +| 2020 | 26 | 7 | 5 | 1 | +| 2022 | 11 | 3 | 9 | 28 | +| 2023 | 13 | 10 | 16 | 36 | +| 2025 | 8 | 2 | 6 | 23 | + +webpack은 2017년이 가장 많고, 2020년까지는 화두였습니다. +한 편 2020년에 esbuild가 등장, 2022년 Vite 소개 글 숫자가 webpack를 앞섰습니다. + +JSer.info에도, esbuild 등장 이후는 Rust나 Go로 작성된 도구 소개가 증가했습니다. 「JavaScript 도구는 JavaScript로 작성」 전제가 변화해, 성능 기대치가 변화된 것을 반영되었습니다. + +[![빌드 도구 추이](/uploads/media/2026/15th/15th_build_tools_ko.png)](/uploads/media/2026/15th/15th_build_tools_ko.png) + +### 런타임: Node.js 1강에서 다양화로 + +| 연도 | Deno | Bun | +|----|------|-----| +| 2020 | 13 | 0 | +| 2021 | 21 | 1 | +| 2022 | 21 | 5 | +| 2023 | 19 | 27 | +| 2024 | 18 | 26 | + +2020년에 Deno 1.0가 출시되고, 2022년에 Bun이 등장. Node.js 1강 시대에서, 복수 런타임이 경쟁하는 시대로 옮겨졌습니다. + +특히 Bun은 2023년 1.0 출시 이후로 안정적으로 출시함에 따라, JSer.info에도 자주 소개되었습니다. + +[![런타임 다양화](/uploads/media/2026/15th/15th_runtimes_ko.png)](/uploads/media/2026/15th/15th_runtimes_ko.png) + +--- + +## JSer.info에 언급이 변화한 기술 + +### 15년간 언급이 없어진 기술(2011-2013 → 2023-2025) + +| 기술 | 초기 | 후기 | +|------|------|------| +| Backbone.js | 75 | 0 | +| CoffeeScript | 71 | 0 | +| AMD/RequireJS | 74 | 3 | +| Grunt | 49 | 0 | +| PhantomJS | 37 | 0 | +| Bower | 13 | 0 | + +이 기술은 당시에는 자주 사용되었지만, 지금은 JSer.info에서 다뤄지지 않습니다. + +Backbone.js와 CoffeeScript는 2011-2012년 무렵에 자주 소개되었습니다. AMD와 RequireJS은 모듈 시스템 선두주자 였찌만, ES Modules이 표준화됨에 따라 역할을 다했습니다. Grunt/Gulp는 npm scripts이나 빌드 도구로 변경되었고, PhantomJS은 Puppeteer/Playwright에 대체되었습니다. + +### 15년간 언급이 늘어난 기술 + +| 기술 | 초기 | 후기 | +|------|------|------| +| ESM/import | 2 | 117 | +| Rust | 1 | 40 | +| WebAssembly | 0 | 51 | +| monorepo | 0 | 14 | + +ECMAScript Modules은 2015년 ES2015에 사양화되었습니다만, 브라우저와 Node.js 양쪽에서 실용적으로 사용하게 된 것은 2020년 이후 입니다. + +Rust 언급은, SWC/Rspack/Biome/OxC 툴체인 연관입니다. JavaScript 에코시스템에, 치명적으로 성능이 문제 있는 부분은 Rust나 Go로 작성되는 것이 증가했습니다. +2025년에는 [TypeScript 컴파일러 자체도 Go로 재작성](https://devblogs.microsoft.com/typescript/typescript-native-port/) 되는 것이 발표되었습니다. + +WebAssembly은 2015년에 발표된 기술로, JSer.info에도 2017년경부터 언급이 증가했습니다. monorepo 개념 자체는 오래되었습니다만, JavaScript 에코시스템에서 주목했던 것은, Lerna(2016년)이나 npm/yarn workspaces 이후 입니다. +지금은, npm/yarn/pnpm 패키지 매니저 자체가 monorepo 공식 지원됩니다. + +[![15년간 언급이 변화한 기술](/uploads/media/2026/15th/15th_tech_changes_ko.png)](/uploads/media/2026/15th/15th_tech_changes_ko.png) + +--- + +## 횡단적 토픽 변화 + +프레임워크 의존없이, 기술 횡단적인 토픽 추이도 보겠습니다. + +| 연도 | 타입 | 테스트 | 성능 | 보안 | a11y | +|----|-----|--------|----------------|--------------|------| +| 2011 | 30 | 46 | 27 | 10 | 6 | +| 2014 | 52 | 87 | 58 | 14 | 9 | +| 2017 | 108 | 86 | 93 | 15 | 15 | +| 2020 | 123 | 44 | 80 | 13 | 16 | +| 2021 | 129 | 59 | 64 | 28 | 17 | +| 2025 | 88 | 47 | 42 | 15 | 23 | + +**타입(TypeScript)** 언급은 2021년에 피크(129건)였고, 그 이후는 감소 경향입니다. TypeScript가 기본이 되었기에, 「TypeScript 사용하자」 자체가 뉴스가 되지 않는다 생각됩니다. + +**테스트** 언급은 2014년에 피크(87건). Jasmine, Mocha, Karma 많은 테스트 프레임워크가 경쟁했던 시기였습니다, JSer.info에도 빈번하게 등장했습니다. 현재는 Jest, Vitest, Playwright가 주력이 되었습니다. + +**성능** 언급은 2017년에 피크(93건)였고, webpack 최적화나 Tree Shaking, 코드 부분을 JSer.info에도 많이 소개한 시기였습니다. + +**a11y(접근성)** 은, 일관되게 증가세에 있는 토픽입니다. 6건에서 23건으로, 약 4배 증가했습니다. + +[![횡단적 토픽 변화](/uploads/media/2026/15th/15th_cross_topics_ko.png)](/uploads/media/2026/15th/15th_cross_topics_ko.png) + +--- + +## 정보 소스 종류의 변화 + +소개 글의 소스를 「공식(프로젝트/문서)」 「GitHub」 「개인 블로그」로 분류했습니다. + +| 소스 | 2011-2013 | 2014-2016 | 2017-2019 | 2020-2022 | 2023-2025 | +|--------|-----------|-----------|-----------|-----------|-----------| +| 공식 | 204 | 294 | 467 | 471 | 479 | +| GitHub | 506 | 1,015 | 910 | 903 | 596 | +| 개인 블로그 | 213 | 194 | 141 | 76 | 70 | + +- 공식: nodejs.org, webkit.org, reactjs.org, eslint.org 공식 사이트/문서 +- GitHub: github.com, github.io +- 개인블로그: 하테나, Qiita, Zenn, medium.com/@개인 + +[![정보 소스의 변화](/uploads/media/2026/15th/15th_publisher_types_ko.png)](/uploads/media/2026/15th/15th_publisher_types_ko.png) + +비교해 보면, 2011-2013년은 개인 블로그와 공식이 거의 비슷(213 vs 204)했습니다만, 2023-2025년에는 공식 블로그/문서가 개인 블로그의 약 7배(479 vs 70)가 되었습니다. 공식 문서나 프로젝트 사이트의 정보제공이 충실해 짐에 따라, JSer.info에서 소개되는 정보원도 공식사이트 중심이 되었습니다. + +--- + +## 개발 방법 변화 + +개발 방법에 관련된 토픽도 변화가 있습니다. + +| 방법 | 2011-2013 | 2017-2019 | 2023-2025 | +|--------------|-----------|-----------|-----------| +| CI/CD | 31 | 56 | 67 | +| Migration/이행 | 10 | 32 | 56 | +| RFC/Proposal | 2 | 73 | 45 | +| Breaking Change | 3 | 15 | 17 | + + +**RFC/Proposal** 언급이 증가한 것은, ECMAScript가 ES2015에서 Stage제 도입하고, Proposal 소개가 증가한 점, 라이브러리/프레임워크가 RFC프로세스를 이용하는 경우가 증가한 것을 반영합니다. + +**Migration(이행)** 언급이 증가한 것은, 에코시스템 성숙을 보여줍니다. 새로운 기술로 이행, 메이저 버전업, 레거시 코드 갱신, 「기존 코드기반을 어떻게 갱신할까」가 중요한 테마가 되었습니다. + +[![개발 방법 변화](/uploads/media/2026/15th/15th_dev_practices_ko.png)](/uploads/media/2026/15th/15th_dev_practices_ko.png) + +--- + +## 15년간 변화의 정리 + +JSer.info의 15년간 데이터를 보고 변화를 정리합니다. + +[![15년간 변화의 정리](/uploads/media/2026/15th/15th_summary_ko.png)](/uploads/media/2026/15th/15th_summary_ko.png) + +--- + +## JSer.info 자체의 변화 + +15년간 JSer.info 자체도 변화가 있었습니다. + +### 기술적 변화 +- 2014년: Tumblr에서 GitHub Pages로 이전 +- 2015년: Realtime JSer.info 공개 +- 2016년: HTTPS화, Ping 기능 추가 +- 2021년: [JSer.info Policy](https://jser.info/policy/) 공개 +- 2023년: [JSer.info Watch List](https://jser.info/watch-list/) 공개 +- 2025년: MCP 보조, AI에 의한 헤드라인 생성 도입 + +### 운영 변화 +- 주 1갱신을 15년간 지속 +- GitHub 상에서 마무리 짓는 워크플로우 구축 +- 자동 카테고라이즈, 자동 태그 붙이기, 헤드라인 생성 도입 +- [postem](https://github.com/azu/postem) 사용한 글 투고 +- [한국어판](https://jser.info/ko/) 번역(@uyeong 님, @rewrite0w0 님, @Serzhul 님에게 감사) + +### 「교환 가능하게 한다」 는 목표의 이후 이야기 + +[JSer.info 11주년](https://jser.info/2022/01/16/11-years/) 에 「2025년까지 교환 가능하게 한다」는 목표를 밝혔습니다. 완전한 교환 가능은 달성하지 못했지만, AI 활용에 의해 갱신 흐름도 크게 변화했습니다. + +![JSer.info 갱신 흐름](/uploads/media/2026/15th/15th_jser_info_flow_ko.png) + +> JSer.info 갱신 흐름 2025년 - [YAPC::Fukuoka 2025에서 발표 자료](https://azu.github.io/slide/2025/yapc/opensource-15years.html) 발췌 + + +[JSer.info에 대하여](https://jser.info/about/)에는 「갱신에 자신에게 오는 부하를 되도록 적게하고 스무스하게 했던 것이 지속의 열쇠」라 밝혔습니다. 현재 JSer.info은, 정보 수집부터 PR 작성, 태그 붙이기, 그룹 나누기, 헤드라인 생성까지, 많은 부분이 자동화되어 있습니다. 인간이 해야 할 일은 정보의 판단에서 어떤 부분만이 남아 있습니다. 즉, 무엇을 소개할지, 어떻게 전달할 지에 대한 부분입니다. +지루한 작업을 자동화하고, 판단이라는 가치에서 어떤 부분에 집중하게 하는 구조가 정리되었습니다. + +자세한 사항은 [YAPC::Fukuoka 2025 발표](https://azu.github.io/slide/2025/yapc/opensource-15years.html) 를 참조해주시길 바랍니다. + +### 2025년 갱신 빈도에 대하여 + +2025년은 갱신 빈도가 조금 적어졌습니다. 개인 북마크(정보 수입 입력)을 분석해본 결과, 원인을 어느 정도 알게 되었습니다. + +| 연도 | 북마크 숫자 | 투고숫자 | 투고기간 | +|----|----------------|--------|----------| +| 2021 | 2,862 | 53 | 6.9일 | +| 2023 | 2,373 | 53 | 6.9일 | +| 2025 | 1,033 | 41 | 8.9일 | + +북마크 숫자(입력)이 2021년을 피크로 64% 감소했습니다. 한편, 북마크에서 읽을거리로 가는 경우가 2배 이상 높아졌습니다. 2021년은 4건 북마크 당 1건 소개되었지만, 2025년에는 2건 북마크 당 1건 소개되었습니다. 그 결과, 입력이 64% 감소했어도, 투고 숫자는 23% 감소에 그쳤습니다. + +[![북마크와 JSer.info 갱신 상관](/uploads/media/2026/15th/15th_bookmark_correlation_ko.png)](/uploads/media/2026/15th/15th_bookmark_correlation_ko.png) + +감소한 원인으로는, 글을 읽고, 북마크할 때 설명문을 작성하는 스타일이었기에, 그 부하에 걸린 것에 가능성을 높게 두고 있습니다. +수치로 알게된 것은, 이것을 추적하면서 개선하면 좋겠다는 생각입니다. +근래는 [postem](https://github.com/azu/postem) 도구에 Claude 연계 북마크 보조 기능을 추가했기에, 개선되고 있다 생각됩니다. + +또한, 최근에 RSS 리더를 만들었는데, RSS에서 정보 수집해서 판단하고 공개하는 JSer.info 정보 시스템 전체가 스스로 작성한 것으로 동작하고 있습니다. + +``` +JSer.info 정보 시스템 전체의 큰 흐름: + +RSS 피드 → 수집 → 판단 → 공개 +``` + +![JSer.info 정보 시스템](/uploads/media/2026/15th/15th_jser_info_system_ko.png) + +> [YAPC::Fukuoka 2025에서 발표 자료](https://azu.github.io/slide/2025/yapc/opensource-15years.html) + +이에 따라, 지금까지 마찰이 있던 부분도 기술적으로 제거하기 쉬워진 기분입니다. + +--- + +## 정리하며 + +JSer.info은 2011년 1월 16일에 시작해서, 15년이 지났습니다. + +15년 전, JavaScript은 jQuery([jQuery은 2026년 1월 14일에 20주년!](https://x.com/jquery/status/2011453468834505054))와 Backbone.js/CoffeeScript 시대였습니다. 지금은 React, TypeScript, Vite가 대부분 소개되지만, Node.js 이외 런타임도 선택할 수 있게 되었습니다. + +JSer.info에 소개된 정보원도 변화했습니다. 스터디 슬라이드나 도서에서, 공식 문서나 GitHub 출시 노트 중심이 되었습니다. + +변화가 계속되는 JavaScript의 에코시스템에서, JSer.info가 「JavaScript 정보를 정리하고 정확하게 전달하자」 역할을 다 할 수 있다면 좋겠습니다. + +--- + +이 글이나 JSer.info 관련한 의견이나 감상은, 이하의 링크에 남겨주시길 바랍니다. + +- X/Twitter: [#jserinfo](https://twitter.com/search?f=realtime&q=%23jserinfo) +- [JSer.info Slack](https://join.slack.com/t/jserinfo/shared_invite/zt-g2shzp7o-f_tj6OaphCAFw5Qlt2Jw0A) + +15년간 읽어주신 분, 지원해주신 분, 감사합니다! + +--- + +## JSer.info Sponsors + +JSer.info를 GitHub Sponsors에서 지원해주시는 분들에게 감사합니다. +특히 긴 시간 지원해주신 [사이보우즈 주식회사](https://cybozu.co.jp/)에 감사드립니다. + +{% include inline-support.html %} + +--- + +## 관련 링크 + +이 글을 작성할 때 사용한 JSer.info 데이터셋은 [jser/dataset](https://github.com/jser/dataset)에 공개했습니다. +또한, 이번에는 DuckDB를 주로 사용해 분석했고, 그 쿼리에 대해서는 [jser/jser.github.io#1343](https://github.com/jser/jser.github.io/pull/1343)에 공개했습니다. + +DuckDB에서 직접 JSer.info 데이터셋을 읽고, 횡단적 토픽의 연도별 집계를 쿼리하는 예시. + +```bash +duckdb -c " +SELECT + YEAR(CAST(date AS TIMESTAMP)) as year, + SUM(CASE WHEN LOWER(content) LIKE '%security%' OR LOWER(content) LIKE '%セキュリティ%' + OR LOWER(content) LIKE '%脆弱性%' THEN 1 ELSE 0 END) as security, + SUM(CASE WHEN LOWER(content) LIKE '%performance%' OR LOWER(content) LIKE '%パフォーマンス%' + OR LOWER(content) LIKE '%高速化%' THEN 1 ELSE 0 END) as performance, + SUM(CASE WHEN LOWER(content) LIKE '%accessib%' OR LOWER(content) LIKE '%a11y%' + OR LOWER(content) LIKE '%アクセシビリティ%' THEN 1 ELSE 0 END) as a11y, + SUM(CASE WHEN LOWER(content) LIKE '%test%' OR LOWER(content) LIKE '%テスト%' THEN 1 ELSE 0 END) as testing, + SUM(CASE WHEN LOWER(content) LIKE '%型%' OR LOWER(content) LIKE '%type%' THEN 1 ELSE 0 END) as typing +FROM read_json_auto('https://jser.info/source-data/items.json', ignore_errors=true) +GROUP BY year +ORDER BY year; +" + +┌───────┬──────────┬─────────────┬────────┬─────────┬────────┐ +│ year │ security │ performance │ a11y │ testing │ typing │ +│ int64 │ int128 │ int128 │ int128 │ int128 │ int128 │ +├───────┼──────────┼─────────────┼────────┼─────────┼────────┤ +│ 2010 │ 0 │ 0 │ 0 │ 0 │ 0 │ +│ 2011 │ 6 │ 19 │ 3 │ 34 │ 29 │ +│ 2012 │ 7 │ 31 │ 2 │ 98 │ 43 │ +│ 2013 │ 11 │ 28 │ 7 │ 118 │ 69 │ +│ 2014 │ 6 │ 39 │ 4 │ 82 │ 52 │ +│ 2015 │ 9 │ 20 │ 8 │ 66 │ 72 │ +│ 2016 │ 10 │ 39 │ 22 │ 60 │ 75 │ +│ 2017 │ 13 │ 69 │ 5 │ 72 │ 104 │ +│ 2018 │ 11 │ 68 │ 14 │ 50 │ 90 │ +│ 2019 │ 20 │ 54 │ 14 │ 55 │ 103 │ +│ 2020 │ 11 │ 65 │ 9 │ 34 │ 117 │ +│ 2021 │ 23 │ 54 │ 8 │ 39 │ 124 │ +│ 2022 │ 18 │ 39 │ 7 │ 57 │ 114 │ +│ 2023 │ 13 │ 66 │ 6 │ 57 │ 111 │ +│ 2024 │ 12 │ 36 │ 9 │ 46 │ 90 │ +│ 2025 │ 14 │ 30 │ 9 │ 34 │ 86 │ +│ 2026 │ 2 │ 4 │ 1 │ 2 │ 5 │ +├───────┴──────────┴─────────────┴────────┴─────────┴────────┤ +│ 17 rows 6 columns │ +└────────────────────────────────────────────────────────────┘ +``` + +- [JSer.info 10주년: JavaScript 정보 수집 방법, 작성 방법, 정리 방법](https://jser.info/2021/01/16/jser-10th/) +- [JSer.info 11주년: 목표는 2025년까지 교환 가능하게 하기](https://jser.info/2022/01/16/11-years/) +- [JSer.info 12주년입니다](https://jser.info/ko/2023/01/16/jser-12th/) +- [JSer.info 13주년: JavaScript 정보처를 정리](https://jser.info/ko/2024/01/16/jser-13th/) +- [JSer.info 14주년](https://jser.info/ko/2025/05/24/jser-14th/) \ No newline at end of file