From 6a2adad6c70e4f3f018e93248a8984b4c70ba916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A4=80=EC=9A=B0?= Date: Thu, 4 Jun 2026 07:02:19 +0900 Subject: [PATCH 1/3] =?UTF-8?q?roadmap=20=EC=9D=B4=EC=8B=9D=EC=88=98?= =?UTF-8?q?=EC=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 14340 -> 18436 bytes DATASET/README.md | 66 + DATASET/roadmap.csv | 2708 +++++++++++++++++ DATASET/webdataset/01_market_overview.json | 57 + DATASET/webdataset/02_backend_stacks.json | 80 + DATASET/webdataset/03_frontend_stacks.json | 76 + .../webdataset/04_devops_cloud_stacks.json | 87 + DATASET/webdataset/05_ai_ml_data_stacks.json | 114 + DATASET/webdataset/06_mobile_stacks.json | 82 + .../webdataset/07_security_game_stacks.json | 101 + DATASET/webdataset/08_deep_analysis.json | 240 ++ .../webdataset/09_stack_frequency_matrix.json | 41 + .../webdataset/10_salary_comprehensive.json | 104 + DATASET/webdataset/11_raw_job_postings.json | 362 +++ .../12_stack_frequency_realdata.json | 113 + .../13_deep_analysis_v2_realdata.json | 215 ++ .../webdataset/14_linkareer_job_postings.json | 275 ++ .../webdataset/15_bigtech_company_stacks.json | 171 ++ .../16_stackoverflow_survey_2025.json | 80 + DATASET/webdataset/17_kr_roadmap_overlay.json | 1002 ++++++ app/api/v1/roadmap.py | 49 + app/main.py | 2 + app/schemas/roadmap.py | 9 + app/services/_rag_utils.py | 34 +- app/services/roadmap/__init__.py | 0 app/services/roadmap/llm_analyzer.py | 418 +++ app/services/roadmap/market_loader.py | 224 ++ app/services/roadmap/market_tier.py | 363 +++ app/services/roadmap/rule_filter.py | 899 ++++++ app/services/roadmap_assess.py | 198 ++ app/services/roadmap_merger.py | 142 + 31 files changed, 8302 insertions(+), 10 deletions(-) create mode 100644 DATASET/README.md create mode 100644 DATASET/roadmap.csv create mode 100644 DATASET/webdataset/01_market_overview.json create mode 100644 DATASET/webdataset/02_backend_stacks.json create mode 100644 DATASET/webdataset/03_frontend_stacks.json create mode 100644 DATASET/webdataset/04_devops_cloud_stacks.json create mode 100644 DATASET/webdataset/05_ai_ml_data_stacks.json create mode 100644 DATASET/webdataset/06_mobile_stacks.json create mode 100644 DATASET/webdataset/07_security_game_stacks.json create mode 100644 DATASET/webdataset/08_deep_analysis.json create mode 100644 DATASET/webdataset/09_stack_frequency_matrix.json create mode 100644 DATASET/webdataset/10_salary_comprehensive.json create mode 100644 DATASET/webdataset/11_raw_job_postings.json create mode 100644 DATASET/webdataset/12_stack_frequency_realdata.json create mode 100644 DATASET/webdataset/13_deep_analysis_v2_realdata.json create mode 100644 DATASET/webdataset/14_linkareer_job_postings.json create mode 100644 DATASET/webdataset/15_bigtech_company_stacks.json create mode 100644 DATASET/webdataset/16_stackoverflow_survey_2025.json create mode 100644 DATASET/webdataset/17_kr_roadmap_overlay.json create mode 100644 app/api/v1/roadmap.py create mode 100644 app/schemas/roadmap.py create mode 100644 app/services/roadmap/__init__.py create mode 100644 app/services/roadmap/llm_analyzer.py create mode 100644 app/services/roadmap/market_loader.py create mode 100644 app/services/roadmap/market_tier.py create mode 100644 app/services/roadmap/rule_filter.py create mode 100644 app/services/roadmap_assess.py create mode 100644 app/services/roadmap_merger.py diff --git a/.DS_Store b/.DS_Store index 08a342fbca517448a176aba6781a3e48f5ad047c..2f0587db45a9ebe40fd1a1a09eacd4f1761cdc5d 100644 GIT binary patch delta 589 zcmZoEXqmvM!oa}5=v10w$iUzLWO4v8h!)^sU|`~8U{C#*@mS_6MyqTSYMS@XyGmip4-{du7>YJV9PBN;q6KCe;3rcqwm5H!?^G=l{ zW?~dhUL~rq*+XM4Q#}!;=H{okB<18M0UgWHct(BJswc-CiF0^ChGB4Wer^F!H4LEH zCxSH$`SrXu2WXyVfrivkMp-t9eg|$K?TQ{}n+2I(Gf(C>u{2-=#xTq#AOjR<48X_( dMYRWr4HOH2(g`4Xaz0P% 수집일: 2026-06-01 +> 출처: 잡코리아, 사람인(점핏), 원티드, 링크드인, 인크루트, 업계 보고서 종합 +> 분석 도구: Claude AI (Anthropic) + +--- + +## 파일 목록 + +### v1 — 웹검색 기반 (간접 자료) +| 파일 | 내용 | +|------|------| +| `01_market_overview.json` | 2026 채용시장 종합 개요 (직군별 수요, 구조적 변화) | +| `02_backend_stacks.json` | 백엔드/서버 개발자 기술스택 상세 | +| `03_frontend_stacks.json` | 프론트엔드 개발자 기술스택 상세 | +| `04_devops_cloud_stacks.json` | DevOps / 클라우드 / SRE 엔지니어 스택 | +| `05_ai_ml_data_stacks.json` | AI·ML·데이터엔지니어·MLOps 스택 | +| `06_mobile_stacks.json` | Android·iOS·크로스플랫폼 모바일 스택 | +| `07_security_game_stacks.json` | 보안 엔지니어 + 게임 개발자 스택 | +| `08_deep_analysis.json` | 심층 분석 v1 (구조적 변화, 트렌드 매트릭스, 스킬갭, 미래 예측) | +| `09_stack_frequency_matrix.json` | 직군×스택 빈도 점수 매트릭스 (5점 척도, 추정값) | +| `10_salary_comprehensive.json` | 직군·연차·스택별 연봉 종합 데이터 | + +### v2 — 실제 채용공고 직접 파싱 기반 (1차 소스) +| 파일 | 내용 | +|------|------| +| `11_raw_job_postings.json` | **27개 실제 공고 원본 파싱** (점핏 14건, 원티드 11건, 링크드인 2건) | +| `12_stack_frequency_realdata.json` | **실제 공고 기반 스택 빈도 집계** (직군별 세분화 포함) | +| `13_deep_analysis_v2_realdata.json` | **심층 분석 v2** — 사이트 접근성 보고, 검증된 사실, 갭 분석, 기업유형별 패턴 | +| `14_linkareer_job_postings.json` | **링커리어 18건 실제 파싱** — LG전자·네이버·AWS·마키나락스 등 대기업·AI 특화 공고 | + +### v3 — 보강 데이터 (빅테크 실제 스택 + 글로벌 서베이 + 다이어그램 오버레이) +| 파일 | 내용 | +|------|------| +| `15_bigtech_company_stacks.json` | **네카라쿠배당토 실제 기술스택** — 네이버·카카오·라인·쿠팡·배민·당근·토스·카카오뱅크 | +| `16_stackoverflow_survey_2025.json` | **SO 2025 글로벌 서베이** — 전문 개발자 49,000+명 기술스택 사용률, 한국 관련성 주석 | +| `17_kr_roadmap_overlay.json` | **⭐ 다이어그램 강조 오버레이** — roadmap.csv 노드 61개에 한국시장 상태 매핑 (필수/급증/증가/유지/감소/하락) | + +--- + +## 핵심 인사이트 요약 + +### 1. 가장 수요 높은 직군 TOP 5 +1. 백엔드/서버 (28.1%) +2. AI/ML 엔지니어 (급증, YoY+50%) +3. 프론트엔드 (11.1%) +4. 데이터 엔지니어 +5. DevOps/클라우드 + +### 2. 2026 핵심 기술 트렌드 +- **필수화**: TypeScript, Next.js, Docker, Kubernetes, Terraform +- **급부상**: LangChain/RAG, FastAPI, dbt, Zustand +- **하락**: Angular, jQuery, PHP(신규), SVN + +### 3. 연봉 최고 기술스택 +C++ > Keras > TensorFlow > R > Python 순 (평균 기준) + +### 4. 스킬갭 (공급 부족 = 프리미엄) +- LLM 앱 개발 (+30%) +- MLOps (+25%) +- K8s 심화 운영 (+20%) +- Go 백엔드 (+18%) + +### 5. 모든 직군 공통 필수 +Git/GitHub, Linux/Bash, Docker, Python(부분), AWS diff --git a/DATASET/roadmap.csv b/DATASET/roadmap.csv new file mode 100644 index 0000000..f414e08 --- /dev/null +++ b/DATASET/roadmap.csv @@ -0,0 +1,2708 @@ +roadmap_role,dev_type,node_id,topic_label,parent_topic,order_index,node_type,maps_to_esco_uri,maps_to_esco_label,source +frontend,frontend,VlNNwIEDWqQXtqkHWJYzC,Internet,,8,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,yCnn-NfSxIybUQ2iTuUGq,How does the internet work?,Internet,9,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,R12sArWVpbIs_PHxBqVaR,What is HTTP?,Internet,10,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ZhSuu2VArnzPDp6dPQQSC,What is Domain Name?,Internet,11,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,aqMaEY8gkKMikiqleV5EP,What is hosting?,Internet,12,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,hkxw9jPGYphmjhTjw8766,DNS and how it works?,Internet,13,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,P82WFaTPgQEPNp5IIuZ1Y,Browsers and how they work?,Internet,14,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,yWG2VUkaF5IJVVut6AiSy,HTML,,15,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,PCirR2QiFYO89Fm-Ev3o1,Learn the basics,,16,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,z8-556o-PaHXjlytrawaF,Writing Semantic HTML,,17,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,V5zucKEHnIPPjwHqsMPHF,Forms and Validations,,18,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,iJIqi7ngpGHWAqtgdjgxB,Accessibility,,19,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,mH_qff8R7R6eLQ1tPHLgG,SEO Basics,HTML,20,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ZhJhf1M2OphYbEmduFq-9,CSS,,21,topic,http://data.europa.eu/esco/skill/e5d1f825-60ed-4bdd-872a-e748c387f777,CSS,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,YFjzPKWDwzrgk2HUX952L,Learn the basics,CSS,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,dXeYVMXv-3MRQ1ovOUuJW,Making Layouts,CSS,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,TKtWmArHn7elXRJdG6lDQ,Responsive Design,CSS,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ODcfFEorkfJNupoQygM53,JavaScript,,25,topic,http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7,JavaScript,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,A4brX0efjZ0FFPTB4r6U0,Fetch API / Ajax (XHR),JavaScript,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,0MAogsAID9R04R5TTO2Qa,Learn DOM Manipulation,JavaScript,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,wQSjQqwKHfn5RGPk34BWI,Learn the Basics,JavaScript,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,MXnFhZlNB1zTsBFDyni9H,VCS Hosting,,29,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,NIY7c4TQEEHx0hATu-k5C,Version Control Systems,,30,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,R_I4SGYqLk5zze5I1zS_E,Git,Version Control Systems,31,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,IqvS1V-98cxko3e9sBQgP,Package Managers,,32,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,qmTVMJDsEhNIkiwE_UTYu,GitHub,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,zIoSJMX3cuzCgDYHjgbEh,GitLab,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,DILBiQp7WWgSZ5hhtDW6A,Bitbucket,VCS Hosting,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,yrq3nOwFREzl-9EKnpU-e,yarn,Package Managers,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,SLxA5qJFp_28TRzr1BjxZ,pnpm,Package Managers,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ib_FHinhrw8VuSet-xMF7,npm,Package Managers,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,eXezX7CVNyC1RuyU_I4yP,Pick a Framework,,39,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,-bHFIiXnoUQSov64WI9yo,Angular,Pick a Framework,40,subtopic,http://data.europa.eu/esco/skill/1ffac4ac-fda7-407d-8ed1-ca8f4a8dc146,Angular,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ERAdwL1G9M1bnx-fOm5ZA,Vue.js,Pick a Framework,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,tG5v3O4lNIFc2uCnacPak,React,Pick a Framework,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ZR-qZ2Lcbu3FtqaMd3wM4,Svelte,Pick a Framework,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,DxOSKnqAjZOPP-dq_U7oP,Solid JS,Pick a Framework,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,N5DCb6bDfgUnSdHPLYY4g,Qwik,Pick a Framework,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,XDTD8el6OwuQ55wC-X4iV,Writing CSS,,46,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,eghnfG4p7i-EDWfp3CQXC,Tailwind,Writing CSS,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,nPg_YWpMJtlhU2t2UD_6B,CSS Architecture,,49,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,UTW1pP59dUehuf0zeHXqL,CSS Preprocessors,,50,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,dRDmS072xeNLX7p_X565w,BEM,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,kukEE5rMSPa4NeNjx21kt,Sass,,52,subtopic,http://data.europa.eu/esco/skill/1110c92f-3059-445a-9436-0f4200d365f5,Sass,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,9WlPENh9g1xOv-zA64Tfg,PostCSS,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,i9z0stM4uKu27Cz6NIgNX,Build Tools,,54,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,9VcGfDBBD8YcKatj4VcH1,Linters and Formatters,,55,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,hkSc_1x09m7-7BO7WzlDT,Module Bundlers,,56,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,NS-hwaWa5ebSmNNRoxFDp,Parcel,Module Bundlers,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,sCjErk7rfWAUvhl8Kfm3n,Rollup,Module Bundlers,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,twufEtHgxcRUWAUQ9bXus,Webpack,Module Bundlers,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,4W7UXfdKIUsm1bUrjdTVT,esbuild,Module Bundlers,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,0Awx3zEI5_gYEIrD7IVX6,Vite,Module Bundlers,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,zbkpu_gvQ4mgCiZKzS1xv,Prettier,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,NFjsI712_qP0IOmjuqXar,ESLint,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,igg4_hb3XE3vuvY8ufV-4,Testing,,64,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,hVQ89f6G0LXEgHIOKHDYq,Vitest,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,g5itUjgRXd9vs9ujHezFl,Jest,Testing,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,jramLk8FGuaEH4YpHIyZT,Playwright,Testing,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,DaynCz5RR26gjT6N6gTDL,Cypress,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,U5mD5FmVx7VWeKxDpQxB5,Authentication Strategies,,69,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,RDWbG3Iui6IPgp0shvXtg,Web Security Basics,,70,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,AfH2zCbqzw0Nisg1yyISS,CORS,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,uum7vOhOUR38vLuGZy8Oa,HTTPS,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,rmcm0CZbtNVC9LZ14-H6h,Content Security Policy,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,JanR7I_lNnUCXhCMGLdn-,OWASP Security Risks,Web Security Basics,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,ruoFa3M4bUE3Dg6GXSiUI,Web Components,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,hwPOGT0-duy3KfI8QaEwF,Type Checkers,,76,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,VxiQPgcYDFAT6WgSRWpIA,Custom Elements,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,Hk8AVonOd693_y1sykPqd,HTML Templates,Web Components,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,-SpsNeOZBkQfDA-rwzgPg,Shadow DOM,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,0asdhvwBH3gn-ercktV7A,TypeScript,Type Checkers,80,subtopic,http://data.europa.eu/esco/skill/867137fb-ff1b-4ca3-99f3-cb6969aa2c68,TypeScript,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,Cxspmb14_0i1tfw-ZLxEu,SSR,,81,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,OL8I6nOZ8hGGWmtxg_Mv8,Svelte,SSR,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,3TE_iYvbklXK0be-5f2M7,Vue.js,SSR,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,k6rp6Ua9qUEW_DA_fOg5u,Angular,SSR,84,subtopic,http://data.europa.eu/esco/skill/1ffac4ac-fda7-407d-8ed1-ca8f4a8dc146,Angular,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,SGDf_rbfmFSHlxI-Czzlz,React,SSR,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,KJRkrFZIihCUBrOf579EU,react-router,SSR,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,zNFYAJaSq0YZXL5Rpx1NX,Next.js,SSR,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,BBsXxkbbEG-gnbM1xXKrj,Nuxt.js,SSR,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,P4st_telfCwKLSAU2WsQP,Svelte Kit,SSR,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,L7AllJfKvClaam3y-u6DP,GraphQL,,90,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,5eUbDdOTOfaOhUlZAmmXW,Apollo,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,0moPO23ol33WsjVXSpTGf,Relay Modern,GraphQL,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,n0q32YhWEIAUwbGXexoqV,Static Site Generators,,93,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,CMrss8E2W0eA6DVEqtPjT,Vuepress,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,XWJxV42Dpu2D3xDK10Pn3,Nuxt.js,Static Site Generators,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,iUxXq7beg55y76dkwhM13,Astro,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,io0RHJWIcVxDhcYkV9d38,Eleventy,Static Site Generators,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,V70884VcuXkfrfHyLGtUg,Next.js,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,PoM77O2OtxPELxfrW1wtl,PWAs,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,VOGKiG2EZVfCBAaa7Df0W,Mobile Apps,,100,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,dsTegXTyupjS8iU6I7Xiv,React Native,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,dIQXjFEUAJAGxxfAYceHU,Flutter,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,xmRv6-L45m5MDpHmdHFCL,Ionic,Mobile Apps,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,KMA7NkxFbPoUDtFnGBFnj,Desktop Apps,,104,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,mQHpSyMR4Rra4mqAslgiS,Electron,Desktop Apps,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,GJctl0tVXe4B70s35RkLT,Tauri,Desktop Apps,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,2MRvAK9G9RGM_auWytcKh,Flutter,Desktop Apps,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,-DsETM9xLgHyGZthptj1Y,PRPL Pattern,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,xD5WfEP7Ez0oi3890UgmH,RAIL Model,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,X0Y3-IpPiFUCsNDK4RFxw,Performance Metrics,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,RIhHMHLsLLPhNl05Q9aBf,Using Lighthouse,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,3_sJHKTogkDoCjR518-OL,Using DevTools,PWAs,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,raoa-75p_DyBAycvy3yVv,Storage,PWAs,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,NDJR8UCoa31v45TBFP7we,Web Sockets,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,doPe92aUpo-8KWhi45lWK,Server Sent Events,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,TldWoXiqKxM4X3JONKAR7,Service Workers,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,YbGGYoKJEx29PlvopUBiM,Location,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,6AlcArOiJMhHXguAosDzn,Notifications,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,Fd0hQh1DleM0gMzCpGou4,Device Orientation,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,MAM1nuVk-h4AvTUk4nvmj,Payments,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,opu2bAsmdWHqWqtsCscLC,Credentials,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,h26uS3muFCabe6ekElZcI,SWC,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +frontend,frontend,wA2fSYsbBYU02VJXAvUz8,Astro,SSR,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,gKTSe9yQFVbPVlLzWB0hC,Search Engines,,8,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,9Fpoor-Os_9lvrwu5Zjh-,Design and Development Principles,,10,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,EwvLPSI6AlZ4TnNIJTZA4,Learn about APIs,,12,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,SiYUdtYMDImRPmV2_XPkH,Internet,,15,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,CWwh2abwqx4hAxpAGvhIx,Rust,Pick a Language,16,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,l9Wrq_Ad9-Ju4NIB0m5Ha,PHP,,17,subtopic,http://data.europa.eu/esco/skill/4350c38d-0fe9-4ca7-bab9-40ed7f72b04f,PHP,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,BdXbcz4-ar3XOX0wIKzBp,Go,,18,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,8-lO-v6jCYYoklEJXULxN,JavaScript,,19,subtopic,http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7,JavaScript,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ANeSwxJDJyQ-49pO2-CCI,Java,,20,subtopic,http://data.europa.eu/esco/skill/19a8293b-8e95-4de3-983f-77484079c389,Java (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,J_sVHsD72Yzyqb9KCIvAY,Python,,21,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,rImbMHLLfJwjf3l25vBkc,C#,,22,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,SlH0Rl07yURDko2nDPfFy,Ruby,,23,subtopic,http://data.europa.eu/esco/skill/0ccdfe98-f845-4598-84a1-3dca66e9d9a3,Ruby (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,2f0ZO6GJElfZ2Eis28Hzg,Pick a Language,,24,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,_I1E__wCIVrhjMk6IMieE,Git,Version Control Systems,25,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ezdqQW9wTUw93F6kjOzku,Version Control Systems,,26,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ptD8EVqwFUYr4W5A_tABY,GitHub,,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Ry_5Y-BK7HrkIc6X0JG1m,Bitbucket,Repo Hosting Services,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Wcp-VDdFHipwa7hNAp1z_,GitLab,Repo Hosting Services,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,NvUcSDWBhzJZ31nzT4UlE,Repo Hosting Services,,30,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,FihTrMO56kj9jT8O_pO2T,PostgreSQL,Relational Databases,31,subtopic,http://data.europa.eu/esco/skill/a8d07b5a-c1a1-42c6-9d53-db9c7a2ca996,PostgreSQL,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,dEsTje8kfHwWjCI3zcgLC,MS SQL,Relational Databases,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,VPxOdjJtKAqmM5V0LR5OC,MySQL,Relational Databases,33,subtopic,http://data.europa.eu/esco/skill/4da171e5-779c-4983-a76f-91c16751e99f,MySQL,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,h1SAjQltHtztSt8QmRgab,Oracle,Relational Databases,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,tD3i-8gBpMKCHB-ITyDiU,MariaDB,Relational Databases,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,r45b461NxLN6wBODJ5CNP,Relational Databases,,36,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,F8frGuv1dunOdcVJ_IiGs,NoSQL Databases,,37,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Z7jp_Juj5PffSxV7UZcBb,ORMs,More about Databases,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Ge2SnKBrQQrU-oGLz6TmT,Normalization,More about Databases,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,qSAdfaGUfn8mtmDjHJi3z,ACID,More about Databases,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,GwApfL4Yx-b5Y8dB9Vy__,Failure Modes,More about Databases,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,rq_y_OBMD9AH_4aoecvAi,Transactions,More about Databases,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,SYXJhanu0lFmGj2m2XXhS,Profiling Perfor.,More about Databases,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,bQnOAu863hsHdyNMNyJop,N+1 Problem,More about Databases,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,LJt27onEOeIBomiEMTyKd,More about Databases,,45,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,y-xkHFE9YzhNIX3EiWspL,Database Indexes,Scaling Databases,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,zWstl08R4uzqve4BdYurp,Sharding Strategies,Scaling Databases,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,wrl7HHWXOaxoKVlNZxZ6d,Data Replication,Scaling Databases,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,LAdKDJ4LcMaDWqslMvE8X,CAP Theorem,Scaling Databases,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,95d9itpUZ4s9roZN8kG9x,Scaling Databases,,50,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,dLY0KafPstajCcSbslC4M,HATEOAS,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,sNceS4MpSIjRkWhNDmrFg,JSON APIs,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,9cD5ag1L0GqHx4_zxc5JX,Open API Specs,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,sSNf93azjuyMzQqIHE0Rh,SOAP,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,J-TOE2lT4At1mSdNoxPS1,gRPC,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,lfNFDZZNdrB0lbEaMtU71,REST,Learn about APIs,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,zp3bq38tMnutT2N0tktOW,GraphQL,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,KWTbEVX_WxS8jmSaAX3Fe,Client Side,Caching,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Nq2BO53bHJdFT1rGZPjYx,CDN,Caching,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,z1-eP4sV75GBEIdM4NvL9,Server Side,Caching,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ELj8af7Mi38kUbaPJfCUR,Caching,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,RBrIP5KbVQ2F0ly7kMfTo,Web Security,,62,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,381Kw1IMRv7CJp-Uf--qd,Integration Testing,Testing,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,NAGisfq2CgeK3SsuRjnMw,Functional Testing,Testing,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,3OYm6b9f6WOrKi4KTOZYK,Unit Testing,Testing,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,STQQbPa7PE3gbjMdL6P-t,Testing,,66,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,mGfD7HfuP184lFkXZzGjG,CI / CD,,67,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,6XIWO0MoE-ySl4qh_ihXa,GOF Design Patterns,Design and Development Principles,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,u8IRw5PuXGUcmxA0YYXgx,CQRS,Design and Development Principles,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,BvHi5obg0L1JDZFKBzx9t,Domain Driven Design,Design and Development Principles,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,wqE-mkxvehOzOv8UyE39p,Event Sourcing,Design and Development Principles,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,I-PUAE2AzbEaUkW9vMaUM,Test Driven Development,Design and Development Principles,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Ke522R-4k6TDeiDRyZbbU,Monolithic Apps,Architectural Patterns,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,nkmIv3dNwre4yrULMgTh3,Serverless,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,K55h3aqOGe6-hgVhiFisT,Microservices,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,n14b7sfTOwsjKTpFC9EZ2,Service Mesh,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,tObmzWpjsJtK4GWhx6pwB,SOA,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,8DmabQJXlrT__COZrDVTV,Twelve Factor Apps,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,tHiUpG9LN35E5RaHddMv5,Architectural Patterns,,79,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,GPFRMcY1DEtRgnaZwJ3vW,RabbitMQ,Message Brokers,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,VoYSis1F1ZfTxMlQlXQKB,Kafka,Message Brokers,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,nJ5FpFgGCRaALcWmAKBKT,Message Brokers,,82,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,31ZlpfIPr9-5vYZqvjUeL,LXC,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,SGVwJme-jT_pbOTvems0v,Containerization vs Virtualization,,84,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,sVuIdAe08IWJVqAt4z-ag,WebSockets,Real-Time Data,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,RUSdlokJUcEYbCvq5FJBJ,Server Sent Events,Real-Time Data,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,z5AdThp9ByulmM9uekgm-,Nginx,Web Servers,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Op-PSPNoyj6Ss9CS09AXh,Caddy,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,jjjonHTHHo-NiAf6p9xPv,Apache,Web Servers,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,0NJDgfe6eMa7qPUOI6Eya,MS IIS,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,fekyMpEnaGqjh1Cu4Nyc4,Web Servers,,91,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,SHmbcMRsc3SygEDksJQBD,Building For Scale,,92,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,g8GjkJAhvnSxXTZks0V1g,Redis,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,xPvVwGQw28uMeLYIWn8yn,Memcached,Caching,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,28U6q_X-NTYf7OSKHjoWH,MongoDB,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,qOlNzZ7U8LhIGukb67n7U,CouchDB,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,BTNJfWemFKEeNeTyENXui,Neo4j,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,G9AI_i3MkUE1BsO3_-PH7,Graceful Degradation,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,qAu-Y4KI2Z_y-EqiG86cR,Throttling,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,JansCqGDyXecQkD1K7E7e,Backpressure,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,HoQdX7a4SnkFRU4RPQ-D5,Loadshifting,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,spkiQTPvXY4qrhhVUkoPV,Circuit Breaker,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,f7iWBkC0X7yyCoP_YubVd,Migration Strategies,Building For Scale,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,osQlGGy38xMcKLtgZtWaZ,Types of Scaling,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,4X-sbqpP0NDhM99bKdqIa,Instrumentation,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,QvMEEsXh0-rzn5hDGcmEv,Monitoring,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,neVRtPjIHP_VG7lHwfah0,Telemetry,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,jWwA6yX4Zjx-r_KpDaD3c,MD5,Web Security,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,JVN38r5jENoteia3YeIQ3,SHA,Web Security,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,kGTALrvCpxyVCXHRmkI7s,scrypt,Web Security,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,dlG1bVkDmjI3PEGpkm1xH,bcrypt,Web Security,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,x-WBJjBd8u93ym5gtxGsR,HTTPS,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,AAgciyxuDvS2B_c6FRMvT,OWASP Risks,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,0v3OsaghJEGHeXX0c5kqn,SSL/TLS,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,LU6WUbkWKbPM1rb2_gEqa,CORS,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,TZ0BWOENPv6pQm8qYB8Ow,Server Security,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,HgQBde1zLUFtlwB66PR6_,CSP,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,yCnn-NfSxIybUQ2iTuUGq,How does the internet work?,Internet,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,R12sArWVpbIs_PHxBqVaR,What is HTTP?,Internet,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ZhSuu2VArnzPDp6dPQQSC,What is Domain Name?,Internet,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,aqMaEY8gkKMikiqleV5EP,What is hosting?,Internet,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,hkxw9jPGYphmjhTjw8766,DNS and how it works?,Internet,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,P82WFaTPgQEPNp5IIuZ1Y,Browsers and how they work?,Internet,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,PY9G7KQy8bF6eIdr1ydHf,Authentication,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,UxS_mzVUjLigEwKrXnEeB,JWT,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,yRiJgjjv2s1uV9vgo3n8m,Basic Authentication,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,0rGj7FThLJZouSQUhnqGW,Token Authentication,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,vp-muizdICcmU0gN8zmkS,OAuth,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ffzsh8_5yRq85trFt9Xhk,Cookie Based Auth,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,z3EJBpgGm0_Uj3ymhypbX,OpenID,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,UCHtaePVxS-0kpqlYxbfC,SAML,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,NulaE1isWqn-feYHg4YQT,Elasticsearch,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,iN_1EuIwCx_7lRBw1Io4U,Solr,,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,5XGvep2qoti31bsyqNzrU,Real-Time Data,,150,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,osvajAJlwGI3XnX0fE-kA,Long Polling,Real-Time Data,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Tt7yr-ChHncJG0Ge1f0Xk,Short Polling,Real-Time Data,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,M0iaSSdVPWaCUpyTG50Vf,Redis,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,dwfEHInbX2eFiafM-nRMX,DynamoDB,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,RyJFLLGieJ8Xjt-DlIayM,Firebase,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,5T0ljwlHL0545ICCeehcQ,RethinkDB,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,kdulE3Z_BdbtRmq6T2KmR,SQLite,Relational Databases,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,XbM4TDImSH-56NsITjyHK,Influx DB,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,WiAK70I0z-_bzbWNwiHUd,TimeScale,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,gT6-z2vhdIQDzmR2K1g1U,Cassandra,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,QZwTLOvjUTaSb_9deuxsR,Base,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,5xy66yQrz1P1w7n6PcAFq,AWS Neptune,,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,Z01E67D6KjrShvQCHjGR7,Observability,,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +backend,backend,ZsZvStCvKwFhlBYe9HGhl,Migrations,More about Databases,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,B0kARTODvCBi0iOF8iiqI,HTML,,10,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,dAJHWmGeiYdzZ1ZjrWz1S,CSS,,11,topic,http://data.europa.eu/esco/skill/e5d1f825-60ed-4bdd-872a-e748c387f777,CSS,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,T9PB6WQf-Fa9NXKKvVOy_,JavaScript,,12,topic,http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7,JavaScript,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,mGgx_QTEPmVKf6AijX9fi,npm,,13,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,WsdUAEaI7FX6DKKhPXUHp,Checkpoint - Static Webpages,,14,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,2DFzoIUjKdAKGjfu_SCfa,Checkpoint - Interactivity,,16,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,We2APJpOPTr-VNfowG0kI,Git,,18,topic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,8sPXL8iClpPqje03ksses,GitHub,,19,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,R4aeJNOrfWyVp3ea-qF4H,Checkpoint - External Packages,,20,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,CVCqdPkq_hGQfI8EEi5RC,Tailwind CSS,,22,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,khoUtTUxdf8udAzN9_CAb,React,,23,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,zFGWxgLPcZoW7KIzlnSV9,Checkpoint - Collaborative Work,,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,7JU1cVggMDoZUV-adGsf-,Checkpoint - Frontend Apps,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,_aA6Hp4KkgJeptqo8oKTg,Node.js,,29,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,JGu0TKwAw-ieiG92BytYI,Checkpoint — CLI Apps,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,vmHbWdmMHF53otXIrqzRV,RESTful APIs,,35,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,3EtGLO6cwkLc1-o9gwFNk,Checkpoint — Simple CRUD Apps,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,vHojhJYjiN0IwruEqi1Dv,JWT Auth,,38,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,Onfd7Sl8LG2sjh2aQY7gb,Redis,,39,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,SHTSvMDqI7X1_ZT7-m--n,Linux Basics,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,v4NF25lJElAtkU0Rm6Fob,Checkpoint — Complete App,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,cUOfvOlQ_0Uu1VX3i67kJ,Basic AWS Services,,45,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,6oBIxYj8WPcUHidQ99tus,EC2,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,QtL-bLKtWIdH00K6k_PdC,VPC,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,5zyYpu9cyuTFwQCjTbHpS,Route53,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,B-cphY7Imnv6JBMujVIF7,SES,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,n2Xp_ijJ2OS8xhE7xMWxk,S3,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,y1SFX7uvWaCy4OYBnECLu,Monit,,52,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,HGhnbMg6jh6cAmUH4DtOx,PostgreSQL,,53,topic,http://data.europa.eu/esco/skill/a8d07b5a-c1a1-42c6-9d53-db9c7a2ca996,PostgreSQL,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,J2_IWAb1s9zZcxOY3NXm2,Checkpoint — Deployment,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,863KMXcFJzInvTp_-Ldmz,GitHub Actions,,55,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,NQmEl27eBPYhivcXdOEz3,Checkpoint — Monitoring,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,rFXupYpUFfp7vZO8zh614,Ansible,,58,topic,http://data.europa.eu/esco/skill/6f8a40d6-f9ce-43ec-a72f-d4213a53f3ed,Ansible,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,liaY1GnlOateB_ZKBjNpY,Checkpoint — CI / CD,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,2kKHuQZScu7hCDgQWxl5u,Terraform,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,sO_9-l4FECbaqiaFnyeXO,Checkpoint — Automation,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +full-stack,fullstack,YVMyHFSCVF-GgXydq-SFJ,Checkpoint — Infrastructure,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,v5FGKQc-_7NYEsWjmTEuq,Learn a Programming Language,,14,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,TwVfCYMS9jSaJ6UyYmC-K,Python,Learn a Programming Language,15,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,PuXAPYA0bsMgwcnlwJxQn,Ruby,,16,subtopic,http://data.europa.eu/esco/skill/0ccdfe98-f845-4598-84a1-3dca66e9d9a3,Ruby (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,npnMwSDEK2aLGgnuZZ4dO,Go,Learn a Programming Language,17,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,eL62bKAoJCMsu7zPlgyhy,Rust,,18,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,QCdemtWa2mE78poNXeqzr,JavaScript / Node.js,Learn a Programming Language,19,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,qe84v529VbCyydl0BKFk2,Operating System,,21,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,cTqVab0VbVcn3W7i0wBrX,Ubuntu / Debian,,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,zhNUK953p6tjREndk3yQZ,SUSE Linux,,25,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,7mS6Y_BOAHNgM3OjyFtZ9,RHEL / Derivatives,,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,PiPHFimToormOPl1EtEe8,FreeBSD,,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,97cJYKqv7CPPUXkKNwM4x,OpenBSD,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,haiYSwNt3rjiiwCDszPk1,NetBSD,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,UOQimp7QkM3sxmFvk5d3i,Windows,Operating System,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,wjJPzrFJBNYOD3SJLzW2M,Terminal Knowledge,,31,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,x-JWvG1iw86ULL9KrQmRu,Process Monitoring,Terminal Knowledge,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,gIEQDgKOsoEnSv8mpEzGH,Performance Monitoring,Terminal Knowledge,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,OaqKLZe-XnngcDhDzCtRt,Networking Tools,Terminal Knowledge,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,cUifrP7v55psTb20IZndf,Text Manipulation,Terminal Knowledge,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,syBIAL1mHbJLnTBoSxXI7,Bash,,36,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,z6IBekR8Xl-6f8WEb05Nw,Power Shell,Terminal Knowledge,37,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,Jt8BmtLUH6fHT2pGKoJs3,Vim / Nano / Emacs,Terminal Knowledge,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,LvhFmlxz5uIy7k_nzx2Bv,Version Control Systems,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,uyDm1SpOQdpHjq9zBAdck,Git,Version Control Systems,41,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,h10BH3OybHcIN2iDTSGkn,VCS Hosting,,42,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ot9I_IHdnq2yAMffrSrbN,GitHub,VCS Hosting,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,oQIB0KE0BibjIYmxrpPZS,GitLab,VCS Hosting,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,Z7SsBWgluZWr9iWb2e9XO,Bitbucket,VCS Hosting,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,jCWrnQNgjHKyhzd9dwOHz,What is and how to setup X ?,,46,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,F93XnRj0BLswJkzyRggLS,Forward Proxy,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,f3tM2uo6LLSOmyeFfLc7h,Firewall,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ukOrSeyK1ElOt9tTjCkfO,Nginx,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,dF3otkMMN09tgCzci8Jyv,Tomcat,,50,subtopic,http://data.europa.eu/esco/skill/0fb753a1-2ef2-4429-84d2-ecb2b24daf7a,Apache Tomcat,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,0_GMTcMeZv3A8dYkHRoW7,Apache,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,54UZNO2q8M5FiA_XbcU_D,Caddy,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,5iJOE1QxMvf8BQ_8ssiI8,IIS,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,R4XSY4TSjU1M7cW66zUqJ,Caching Server,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,i8Sd9maB_BeFurULrHXNq,Load Balancer,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,eGF7iyigl57myx2ejpmNC,Reverse Proxy,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,CQhUflAcv1lhBnmDY0gaz,Containers,,57,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,P0acFNZ413MSKElHqCxr3,Docker,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,qYRJYIZsmf-inMqKECRkI,LXC,Containers,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,2Wd9SlWGg6QtxgiUVLyZL,Cloud Providers,,60,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,1ieK6B_oqW8qOC6bdmiJe,AWS,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ctor79Vd7EXDMdrLyUcu_,Azure,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,zYrOxFQkl3KSe67fh3smD,Google Cloud,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,-h-kNVDNzZYnQAR_4lfXc,Digital Ocean,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,YUJf-6ccHvYjL_RzufQ-G,Alibaba Cloud,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,I327qPYGMcdayRR5WT0Ek,Hetzner,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,FaPf567JGRAg1MBlFj9Tk,Heroku,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,eJZdjheptmiwKsVokt7Io,Contabo,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,RDLmML_HS2c8J4D_U_KYe,FTP / SFTP,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,Vu955vdsYerCG8G6suqml,DNS,,70,subtopic,http://data.europa.eu/esco/skill/071233c4-ad2b-4f50-b79f-768d2231163e,domain name service,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ke-8MeuLx7AS2XjSsPhxe,HTTP,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,AJO3jtHvIICj8YKaSXl0U,HTTPS,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,0o6ejhfpmO4S8A6djVWva,SSL / TLS,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,wcIRMLVm3SdEJWF9RPfn7,SSH,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,E-lSLGzgOPrz-25ER2Hk7,White / Grey Listing,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,zJy9dOynWgLTDKI1iBluG,SMTP,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,5vUKHuItQfkarp7LtACvX,DMARC,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,WMuXqa4b5wyRuYAQKQJRj,IMAP,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ewcJfnDFKXN8I5TLpXEaB,SPF,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,fzO6xVTBxliu24f3W5zaU,POP3S,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,RYCD78msIR2BPJoIP71aj,Domain Keys,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,QZ7bkY-MaEgxYoPDP3nma,OSI Model,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,w5d24Sf8GDkLDLGUPxzS9,Networking & Protocols,,84,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,9p_ufPj6QH9gHbWBQUmGw,Serverless,,85,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,LZDRgDxEZ3klp2PrrJFBX,Vercel,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,l8VAewSEXzoyqYFhoplJj,Cloudflare,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,mlrlf2McMI7IBhyEdq0Nf,Azure Functions,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,UfQrIJ-uMNJt9H_VM_Q5q,AWS Lambda,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,hCKODV2b_l2uPit0YeP1M,Netlify,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,1oYvpFG8LKT1JD6a_9J0m,Provisioning,,91,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,XA__697KgofsH28coQ-ma,AWS CDK,Provisioning,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,TgBb4aL_9UkyU36CN4qvS,CloudFormation,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,O0xZ3dy2zIDbOetVrgna6,Pulumi,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,nUBGf1rp9GK_pbagWCP9g,Terraform,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,V9sOxlNOyRp0Mghl7zudv,Configuration Management,,96,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,h9vVPOmdUSeEGVQQaSTH5,Ansible,Configuration Management,97,subtopic,http://data.europa.eu/esco/skill/6f8a40d6-f9ce-43ec-a72f-d4213a53f3ed,Ansible,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,kv508kxzUj_CjZRb-TeRv,Chef,Configuration Management,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,yP1y8U3eblpzbaLiCGliU,Puppet,Configuration Management,99,subtopic,http://data.europa.eu/esco/skill/6417a4cc-6f61-4459-a114-761a7fa0279d,Puppet (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,aQJaouIaxIJChM-40M3HQ,CI / CD Tools,,100,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,JnWVCS1HbAyfCJzGt-WOH,GitHub Actions,CI / CD Tools,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,2KjSLLVTvl2G2KValw7S7,GitLab CI,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,dUapFp3f0Rum-rf_Vk_b-,Jenkins,CI / CD Tools,103,subtopic,http://data.europa.eu/esco/skill/f47a1998-0beb-43be-9f46-380aa4d183da,Jenkins (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,-pGF3soruWWxwE4LxE5Vk,Travis CI,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,1-JneOQeGhox-CKrdiquq,Circle CI,CI / CD Tools,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,TsXFx1wWikVBVoFUUDAMx,Drone,CI / CD Tools,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,L000AbzF3oLcn4B1eUIYX,TeamCity,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,hcrPpjFxPi_iLiMdLKJrO,Secret Management,,108,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ZWq23Q9ZNxLNti68oltxA,Sealed Secrets,Secret Management,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,yQ4d2uiROZYr950cjYnQE,Cloud Specific Tools,Secret Management,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,tZzvs80KzqT8aDvEyjack,Vault,Secret Management,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,GHQWHLxsO40kJ6z_YCinJ,SOPs,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,qqRLeTpuoW64H9LvY0U_w,Infrastructure Monitoring,,113,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,W9sKEoDlR8LzocQkqSv82,Zabbix,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,NiVvRbCOCDpVvif48poCo,Prometheus,Infrastructure Monitoring,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,bujq_C-ejtpmk-ICALByy,Datadog,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,niA_96yR7uQ0sc6S_OStf,Grafana,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,gaoZjOYmU0J5aM6vtLNvN,Logs Management,,118,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,K_qLhK2kKN_uCq7iVjqph,Elastic Stack,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,s_kss4FJ2KyZRdcKNHK2v,Graylog,Logs Management,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,dZID_Y_uRTF8JlfDCqeqs,Splunk,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,cjjMZdyLgakyVkImVQTza,Papertrail,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,Yq8kVoRf20aL_o4VZU5--,Container Orchestration,,123,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,XbrWlTyH4z8crSHkki2lp,GKE / EKS / AKS,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,FE2h-uQy6qli3rKERci1j,AWS ECS / Fargate,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,VD24HC9qJOC42lbpJ-swC,Docker Swarm,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,zuBAjrqQPjj-0DHGjCaqT,Artifact Management,,127,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,C_sFyIsIIpriZlovvcbSE,Artifactory,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,ootuLJfRXarVvm3J1Ir11,Nexus,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,vsmE6EpCc2DFGk1YTbkHS,Cloud Smith,Artifact Management,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,-INN1qTMLimrZgaSPCcHj,GitOps,,131,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,i-DLwNXdCUUug6lfjkPSy,ArgoCD,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,6gVV_JUgKgwJb4C8tHZn7,FluxCD,GitOps,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,EeWsihH9ehbFKebYoB5i9,Service Mesh,,134,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,XsSnqW6k2IzvmrMmJeU6a,Istio,Service Mesh,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,OXOTm3nz6o44p50qd0brN,Consul,Service Mesh,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,hhoSe4q1u850PgK62Ubau,Linkerd,Service Mesh,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,epLLYArR16HlhAS4c33b4,Envoy,Service Mesh,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,Qc0MGR5bMG9eeM5Zb9PMk,Cloud Design Patterns,,139,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,JCe3fcOf-sokTJURyX1oI,Availability,Cloud Design Patterns,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,5FN7iva4DW_lv-r1tijd8,Data Management,Cloud Design Patterns,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,1_NRXjckZ0F8EtEmgixqz,Design and Implementation,Cloud Design Patterns,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,8kby89epyullS9W7uKDrs,Management and Monitoring,Cloud Design Patterns,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,w2eCgBC-ydMHSxh7LMti8,Loki,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,hIBeTUiAI3zwUY6NgAO-A,Kubernetes,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,JXsctlXUUS1ie8nNEgIk9,GCP Functions,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,wNguM6-YEznduz3MgBCYo,Application Monitoring,,158,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,8rd7T5ahK2I_zh5co-IF-,Jaeger,Application Monitoring,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,pk76Us6z8LoX3f0mhnCyR,New Relic,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,BHny2Emf96suhAlltiEro,Datadog,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,eOyu4wmKOrcMlhD8pUGGh,Prometheus,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +devops,devops,K81bmtgnB1gfhYdi3TB5a,OpenTelemetry,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Suws-7f_6Z1ChpfcnxX2M,Pick a Language,,18,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,qIzUv8-GgQnkqChEdgD50,Kotlin,Pick a Language,19,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,RBABbkzD_uNFwEO-hssZO,Java,Pick a Language,20,subtopic,http://data.europa.eu/esco/skill/19a8293b-8e95-4de3-983f-77484079c389,Java (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,HlUUGj3dOZ68t4gIjerXh,The Fundamentals,,21,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ZRGsokU313Ky-anWbWK6q,Development IDE,The Fundamentals,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,jl1FsQ5-WGKeFyaILNt_p,Basics of Kotlin,The Fundamentals,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,j69erqfosSZMDlmKcnnn0,Basics of OOP,The Fundamentals,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,cNeT1dJDfgn0ndPzSxhSL,Data Structures and Algorithms,The Fundamentals,25,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,FVxNjbDBxgf6vkZWw1Awt,What is and how to use Gradle?,The Fundamentals,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,5m_7DvInF8C_4Ml1xVI6L,Create a Basic Hello World App,The Fundamentals,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,5s1CqsYCOXjNroDHaGKGa,Version Control,,28,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,rqSZ2ATeHbOdIQE9Jlb0B,Git,,29,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,H-2eb8fLwz8IKYXbeSVKK,GitHub,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,5LFZdUiFYYU_1sYsouyan,Bitbucket,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Q47BtQphp59NkkZoeNXmP,GitLab,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,5Li8J5iR_ZuyIlxX0LYei,App Components,,34,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,nwuVlPmzwJ17mtVQ8Hi9w,Activity,App Components,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,PcHmU1c9hqKyzSjwlRPHk,Services,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,nkcdjrswv0WCzUs48BAt9,Content Provider,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,tFuAToid1Fkmu96BDtW7K,Broadcast Receiver,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,hv_9imIQpthxEaMLXEUHI,Intent,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,FVg438cVBBzqJFkGWVbQM,Activity LifeCycle,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,oUjetA2eduvQIeLcQlLcu,State Changes,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,-O-G9bg36ut8NnZcdOaop,Tasks & Backstack,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,gGdz3j33x0gfrFDp_rw8Z,Implicit Intents,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,TmIeCF3xVCe5Sy3ITmM31,Explicit Intents,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,b-sfh6NoS-APqaNKm5L5S,Intent Filters,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,jePGzTejFe4ryA5qFFmjl,Design & Architecture,,46,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Dp2DOX10u2xJUjB8Okhzh,Frame,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,U8iMGGOd2EgPxSuwSG39Z,Linear,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,yE0qAQZiEC9R8WvCdskpr,Relative,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,3fFNMhQIuuh-NRzSXYpXO,Constraint,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,xIvplWfe-uDr9iHjPT1Mx,RecyclerView,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,znvZp24L-PcQwkSObtixs,TextView,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,2iDJrxjXOt7o2fPp2HfRl,Fragments,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,boMz0HZlMAsLdCZlpUo-H,EditText,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Mtx0bY0drmaTw8sCM5YTl,Dialogs,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,WhfzFOUpm0DFEj7Oeq21R,Buttons,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,BVgO9n7tGlVdiS72-hFSd,Toast,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,A4rtNULX_MoV93IH1Lgqw,ImageView,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Z4Tbd5ClnqCXGPGG09F-G,Bottom Sheet,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,EzLjX4iRT7AxkAOsJYnSU,ListView,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,amTxz7mS98lkhOrNMJXG_,Drawer,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,pEBpXv3Jf1AzBNHlvVrG8,Tabs,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Xn1VQ-xOT67ZfJJTM4r1p,Animations,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,60Vm-77rseUqpMiFvp-dA,Jetpack Compose,Interface & Navigation,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,xV475jHTlLuHtpHZeXb7P,App Shortcuts,Interface & Navigation,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,o5rzmnaQeiSh9ocvfJPpK,Navigation Components,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Bz-BkfzsDHAbAw3HD7WCd,MVI,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,pSU-NZtjBh-u0WKTYfjk_,MVVM,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,aF_xFIqTjQbENtC7pkXvJ,MVP,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,w1A6wPKSd3Yh2luuHV-aE,MVC,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ZF5XgO7I_J9928bD3CVXo,Repository Pattern,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,784fiIdKrQDlIm3VIiJQN,Builder Pattern,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,DeOxj6RzQBYfEWV-M1Ybm,Factory Pattern,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,N_auRfGKkeIIc-qiHLkR_,Observer Pattern,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,W-WTIiQml8dLK6i_V69JK,Flow,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,xk0vnWr7uESdzYRxwFjoK,RxJava,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,7rbsp1o5bzIJP11BRIoeG,RxKotlin,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,TiokceMGU9caqiR0lbFYL,LiveData,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,qtXM9K7wyjOFuEMlZrB3C,Dependency Injection,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,CK7Ce632fdTgxeFsRUVvd,Dagger,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,UMqZ-jmXKDXKuu8bzqDH_,Koin,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ooo_k2k_vUBR_jQ7Ke6Et,Hilt,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,dc7k50PjCYZcElHhCk66p,Kodein,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,0fNQWRxst8xRstIfPaPO6,Storage,,90,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,PKql1HY0PLMfp50FRELXL,Shared Preferences,Storage,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,GWq3s1iTxQOp1BstHscJ9,DataStore,Storage,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Bfg4So5RlI09zFNcburJd,Room Database,Storage,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,A4kdaj6AFueUgPI7hwKi5,File System,Storage,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Yb6aKJMMCxU1QVltWg3Dr,Network,,95,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,dDMRYiqrKyOBnRRQc8zsp,Retro,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,5pVuwOItAhUxxJX8ysAsn,OkHttp,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ww0fTbdXwVr-QIOClU7ng,Apollo-Android,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,cFYZ2C7yNnY6NHKUNP2Z4,Asynchronism,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,i_cKmTnGAYw8xpHwZHjAd,Coroutines,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,BeGrA5BDBMZP1Jy7n-wl-,Threads,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,zXsNEyRbb8UpEOAUv6FpY,RxJava,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,4h37WBpYxRRyw9oH8ge7o,RxKotlin,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,OAb_JD64uGm2tPoue7w6t,WorkManager,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ZEdn2yy-IwHN3kOYr2ZbC,Common Services,,105,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,Xv0es_z64vh-QzivMeAT3,Authentication,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,xB4evbD07n1VrHOIpowV4,Crashlytics,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,1Tz-Shj_Tuz2U8llEAcLr,Remote Config,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,e3vHFaFFMV7kI9q6yf5e9,Cloud Messaging,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,3EEfKAd-ppIQpdQSEhbA1,FireStore,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,D4ZXQOKJkyFYNZIy-MJ9Y,Google Admob,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,m5rumeynEbS8T27pelr0-,Google Play Services,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,S5FVF9rMgVSSDKXJW2GYb,Google Maps,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,77F9F3oI5CPgwgM_hxWfa,Linting,,115,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,zMbXQH17Q52opdbitPzj7,Ktlint,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,RUvuCp_JK5MQQT13SSHUV,Detekt,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,6KbSUAoT_jTudFoIbwMpA,Debugging,,118,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,VFOD4JrV8kZ2583G3oT95,Timber,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,3i4g9ZWgLxKb2UMgRJi4Q,Leak Canary,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,7RKN1FNtRE_BE6QeAQrKb,Chucker,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ACUJlDDR0jqEohsFzWEoQ,Jetpack Benchmark,Debugging,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,ZOQm5OlzCA-h_yxywwDrW,Testing,,123,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,-ONSC-ImGSELbamKmjIlH,Espresso,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,gvGAwjk_nhEgxzZ_c3f6b,JUnit,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,kc6buUsLAeZeUb4Tk0apM,Distribution,,126,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,T7q_quNaIAuGi96OdnDT1,Firebase Distribution,Distribution,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,HgRdgi2Hu4C8YLG5PXfoo,Google Playstore,Distribution,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,_FSlD_qTz5Xo0x3pB6sZI,Signed APK,Distribution,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +android,mobile,4_e76QafrB419S2INOeKd,Interface & Navigation,,137,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,KJ7fM-V0_azY_lzmhjJAN,Swift (Recommended),,5,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,z4-1Gc95JKYAn2RPFc7hw,History and Why Swift?,Swift (Recommended),6,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,ZkNulHQAqhiFTO3CRC_mW,Benefits over Objective-C,,7,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,fboebSmquyJyozsMRJDtK,Swift Basics,,8,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,oOaMz9A5DZvrjxovMztXz,Objective-C,,9,topic,http://data.europa.eu/esco/skill/9973a5a2-7822-4161-99e9-95c781eb63f8,Objective-C,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,0BSX80W1TJ_Ia_Zh2zKyK,Objective-C Basics,Objective-C,10,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,IAPzuN51xvrZJ5TFB23Q9,Interoperability with Swift,,11,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,IduGSdUa2Fi7VFMLKgmsS,iOS Architecture,,14,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,IdGdLNgJI3WmONEFsMq-d,Core OS,,15,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,LHM7gNgTtfn_QDW-oQskD,Core Services,,16,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,nGCG74_Xp_Ngt0u7PZnZl,Media,iOS Architecture,17,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,kRE9xT3mT9Si4NwJr9yGi,Core Graphics,,18,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,_mRs6ctH0IsSSi-cwV2b8,Core Animation,,19,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,UKgiSQvR9cryQT50t7riZ,AVFoundation,,20,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,6zE_M0_oVpwW0B9qFSRgP,Core Image,,21,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,4bAABCfTvxchS5C5NlAro,Core Audio,,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,5VguZoP4h40rTWkxWxaxU,Metal,,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,leozxW-5fAOfkKbQM4FD1,Cocoa Touch,iOS Architecture,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mk02yV7_XHkgp2xdNIxaU,Core Programming Concepts,,25,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,FoqlB7xBIrV4yUp4ReBkw,OOP,Core Programming Concepts,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,Pj-hqRZUmwx1WhmTbLoFD,Functional Programming,Core Programming Concepts,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,tqbg8mBJfjuXacdMlIB_L,Memory Management,Core Programming Concepts,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,DZaY060-5D6PbfryOZH9H,ViewController Lifecycle,Core Programming Concepts,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,N5ojp6bqgH074MPKYjCHV,Error Handling,Core Programming Concepts,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,aALIiAxKz4f7B_EYyhBCi,"Concurrency (GCD, async/await)",Core Programming Concepts,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,MrdIb9F-wSEbUz7KRnH3t,Pick a Language,,35,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,sGnDm2xuJxqfU3pwmlY7H,Version Control,,36,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,QifWR7WSJJTcTK2IfczxG,Git,,37,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,U_xXGSFF5iibQ4VkzPAWf,GitHub,Version Control,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,la5M4VoH79bhnN8qj5Izp,Xcode,,40,topic,http://data.europa.eu/esco/skill/449d119b-2d66-43a9-9230-7d27f16afbb6,Xcode,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,R8LdFpfyS0MFYJuMLk8RG,Installing,Xcode,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,SeGfULWFR7ufdv4U9Db3F,Preferences,Xcode,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,BJgoAgH85U6S3RtXq7hHV,New Project,Xcode,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,FwwqAchMC6qdnXbqg45he,Interface overview,Xcode,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,AxQ5gCjk136kXsbBFTUNp,Toolbar,Xcode,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,odKZx4SUULF1y4gmiJZdu,Navigators,Xcode,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,-4q7MFXaTmpR_39PTeWD8,Editors,Xcode,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,YytdlQl41yrHSwlV-G3Pd,Project Files,Xcode,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,42sfiLKrVCcnMMjR7TFn1,Groups,Xcode,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,X0QavvwPVJU6sulafPVUK,Breakpoints,Xcode,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,VuWUsg05WmOoP_RJ5AXJO,Debug Navigator,Xcode,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,hUHxlNa6iJJbDGdFNhynB,Stepping,Xcode,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,iMzYd8KUFnk6zqr4KecgX,Interface Builder,Xcode,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,tuUuLInq0p-nhehe2AqPg,IBOutlets,Xcode,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,FspN4yiBF9aEN7_SlXUe1,IBActions,Xcode,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,j2BL0sf3WjnJZZWa7cCjy,Auto layout,Xcode,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,-7OW2IgiMk1eot1PaYd7m,UIKit,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,A1TFKVjGU5RbeTF_zxJlu,Components,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,se9w7mT1XJLGlmWUhH4Uv,Views,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mfWdkUm1RhjygtMyInXiD,View Controllers,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,GKuxilB0AwjcTgCSk3FeU,User Interactions,UIKit,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,0o3V_zveN1xCIt7rayrCF,Basic Interfaces,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,a2CqrCJSxGfHq6_Y9f_re,Storyboards,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,RwvC4Pi18_1phcrJL-9iu,Xibs,UIKit,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,FXUrfyvuIIOH7VDnT_E0z,Navigation,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,cwVcNDTBBulBY2m4Wzn4G,View Transitions,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,kAIKsDcDzwI1E0wSnC_uo,SwiftUI,,71,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,QVg4_8EXeQBJbleryy8c1,Declarative Syntax,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,xkH7Llut6uP2-8iTMw76F,Components,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,RvyOkQelc-GChQGJyEx72,State Management,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,yR94uHs0SiSScU4gPBzfr,Data binding,SwiftUI,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,YvuYJceeNNfLBpq2-3iiL,Building Interfaces,SwiftUI,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mgUCYztUpKINqIZikT4Bh,Views and Modifiers,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,02VAK4GMkN6nDHf1zqwPA,Navigation,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,2tmR1yE5daz2HB4IV5qwI,View Transitions,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,4fPgpGwNXmVoZoruBRb_B,UI Design,,83,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,1I5eFKqFVBxWLAXfpgNXO,HIG,UI Design,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,pNEE5C1E1wAjH_nTlzH6N,UIKit,,85,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,XX5rCd_yTHvOfYif4Kpbl,"Views, View Controllers",UIKit,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,tUbMr1pGlw4JwMuW311JJ,"Navigation Controllers, Segues",,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mUMDZsgzCB6cs_K6pfUY1,Navigation Stacks,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,gqd6zjxP_qFj4Ru-6LARo,Pushing Presenting,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,jb89kQxDhZND3vQo0EH7r,Modals and Navigation,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,PvFp6aY7EUrYHn87RZAGj,SwiftUI,,91,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,TLm70PlTI0K3Odn1iYxWX,Navigation Stacks,SwiftUI,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,IBr2P7dknWTnZ2a-fFCqN,Navigation View,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,my77jLU2qxU7bQ7_Fx2iH,NavigationLink,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,4pmjLa7WvwV7D3RZlM6Hp,Presenting / Dismissing views,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,KpcmuLWX0xAjz6ty4ebtB,Core Animation,,97,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,w0i5Dxp40XS2HnF5nXeZI,Basics / Creating Animations,Core Animation,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,i-T6GTqS0FZ_Llt5v4SvR,Lottie,Core Animation,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,a-QDI7Ei-B5BRHbicFcfG,MVC,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,lVNrnUK6p4eifKRVSnOje,MVP,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,taTxZw2c3xS18JOwgkNHM,MVVM,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,iLT2jAkQg-Ex0zSLquNfl,MVVM-C,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mTdnDPGYSDupM9VBNdXRg,VIPER,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,NhC0SBZgUFGjMLNICvbTI,TCA,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,ajPGMwoaFb1UFWTtpi5kd,Architectural Patterns,,108,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,28HMXXBJWd3n-ZPgeQRDa,Reactive Programming,,111,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,UzpdLLPs226N00c6weWRv,Combine,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,noBaDV_PvCTzqPyw9eO4H,Publishers / Subscribers,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,GAn12SsVR_mPxOaOVckdz,Operators & Pipelines,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,pY_zaMcFpeFDLgVk2W0Vy,Combine and MVVM,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,0xwoWj9jek36p1AwU3WkK,RxSwift,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,k232wKg7XCb_ngjZ5Mwsy,Observables & observers,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,1xYZdnlI6JSJzNvmz4-0v,Subjects,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,g_1f5a6tIB5V_36NjgtL5,RxSwift with MVVM,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,t7IYTY8tVjC_xzM1n8wts,Operators,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,UqA01PT86_w_JzN6KZBku,Schedulers,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,BtPYKd7RedHOLRATDKkpg,Delegate Pattern,,125,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,z3AUN9u7EEqeKOqvLxf7D,Implementing Delegates,Delegate Pattern,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,qJEd7KU52xL_GRG3IQqhM,Callbacks,,127,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,M9UlalPL47GoqhcyGsAPV,Closures,Callbacks,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,5V7nxQKmmHWSMSBCRxkaF,Understanding and using Closures,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,S-D-PnHA7COd2Dp6U2XO4,Capturing Values & Memory Mgmt.,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,WhOpzFvv21QQV3aS6XbXr,Callback Hell,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,ysaBCl_TtWqelirptQp7P,Async / Await,,133,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,-aLGB3cDXZHIhVU3t-Ve4,Concurrency,Async / Await,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,6gfqFy3H6SLt06oJ1kt5A,Data Persistence,,135,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,H4-Dp2WTA6HAZiFRQdLjx,Core Data,Data Persistence,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,ImS1FqVicQImMw-y1ze7y,User Defaults,Data Persistence,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,8v_eP0j85TnB33XyYAzrT,Keychain,Data Persistence,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,_bkRbqVXKNCnRvEFCM6mN,File System,Data Persistence,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,3qjQbrCUchJn1bJTBWrQF,SQLite,Data Persistence,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,WYV4YG_sLvC4S5ptFFdrF,JSON / XML,,141,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,UTVh1RHRWb5eA-S7ayLp8,Parsing,JSON / XML,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,8rYjSCgRiJMHTNxOU6vgG,Serializing,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,JoNoM-utp8MaL1H0oXDta,Networking,,144,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,GjY5qCU1rjB0D58qHQtAR,HTTP / HTTPs,Networking,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,3Qw-qmy5iAE61mPbIY4Q2,REST,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,9o7d3aN0YFfNNUeVoJrhs,GraphQL,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,WPJACNeI6jX9GGB1roeTp,URLSession,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,nJeBisdKtN43ntkXnPCVF,Alamofire,,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,fbloF-u4XwdHLmBS9flZm,Concurrency and Multithreading,,151,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,aROcI1RucAyu-gHn-tVnj,GCD,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,mdAV4JlF08q-ZQpb5C3q6,Operation Queues,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,Tv8-WUcKiZMLHuunQwise,Dependency Manager,,154,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,epr1sOEZIAOwlgb8bre7r,CocoaPods,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,tIHjjNTXJWcNgkO6TB9ea,Carthage,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,KFkX8_Hv9SCFeCtZMZIQM,Swift Package Manager,Dependency Manager,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,pZVPsgvCpP3zUgBM4i0CF,Frameworks & Library,,158,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,MaHtZSIPxDzrnB33_9OdV,XCFramework,Frameworks & Library,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,RuXuHQhMt2nywk43LgGeJ,Static Library,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,Lrb4HZYrZU7SJlbedZp7U,Dynamic Library,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,1DZYPqvgY6GtwMCS7N2y-,Accessibility,,162,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,h34LaYQ3JYN2AZPMDqpmO,Accessibility Inspector,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,trAMZVA4tDB7b_qAgiWNW,Voice Over,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,0nei6iwP4Pgi_j4vVi_Qt,Dynamic Type,Accessibility,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,PdzCQXZIivw3zCYPtokJV,Frameworks,Accessibility,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,k3uHcF0CsyHr6PK95UwR1,ARKit,,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,Jsu5f6QASpuvpky_W5q-O,HealthKit,,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,H5F9P5xeQiHhWhS6jEzp5,GameKit,,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,XOXsjaQ-YyuAMpVCqH8KG,MapKit,,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,7s9Elv80TbZX_-NZpyutj,Core ML,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,DVe8S6TjKcQ8LT5G-aMVa,Code Quality Tools,,175,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,NnTC3R8goZQTXHmfHKHbM,SwiftLint,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,F5796wzm5Ar6sQt-1y8vH,Tailor,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,TMFvfwG45Z00PzrzZIVhT,SwiftFormat,Code Quality Tools,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,OZZ3UnWN2gFflbM_WaJ8H,Debugging Techniques,,180,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,WxshXCloVDkVkQV0JvI1w,Xcode Debugger,Debugging Techniques,181,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,Y24WWPej0C7-FiBeXpvl3,Profiling Instruments,,182,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,5589B1DKaCd-9l9DfKH3o,Unit & UI Testing,,185,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,xZmBJVq5FHNdm1BDuZbbS,XCTest,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,ZQSUKPbXZl5yKra2ap8JR,XCUITest,,187,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,uczkyc30K_qqcarZCGTdF,Test Plan & Coverage,Debugging Techniques,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,iZAXQKLe2LaIIifVFtFOL,App Store Distribution,,190,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,KCJgCjMJGxIcf13XSEclO,TestFlight,,191,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,_W3vb0b14FrWB2fH7DHC7,FastLane,,192,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,U4xE1enkZxUME0j0gutae,CI / CD,,193,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,TrblGyy81Oep2CBxoZkaf,Jenkins,CI / CD,194,subtopic,http://data.europa.eu/esco/skill/f47a1998-0beb-43be-9f46-380aa4d183da,Jenkins (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,tWxuFh0xDugdplnHt_G0e,CircleCI,CI / CD,195,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,LltERZaHsI-R_3O_3twpk,GitHub Actions,CI / CD,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,VylaBSDAVFzveVfytI1Fz,GitLab,CI / CD,197,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,r3fNx1Hk_TGlQSDtRnXqF,Azure DevOps,CI / CD,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,jZpH-T2hW-XBdprVqemGi,App Store Optimization (ASO),,199,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,fOOQurIL1w3PwH5Mep9x1,Keeping Updated with WWDC,,201,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,e7qVpQeu2iQL0c9MOMCVe,Latest Swift Version,Keeping Updated with WWDC,202,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,SBlLNfyWzzhdFNtNtkLet,Latest iOS SDK,,203,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ios,mobile,0dbdUmWvTIJ0fkUuLp9gR,New Feature Announcements,,204,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,JfXwzkN29UGz17FYHHE3A,Introduction,,20,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,cMfsRtvzvDZZJ0TqeUOxm,What is React Native?,Introduction,21,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,2rlmLn_yQQV-7DpX1qT98,Why use React Native?,Introduction,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,ODQ8zrHc2rsc8PN-APKvz,React Native Alternatives,Introduction,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,cSXsu17F1Oy34Wp6J-N3C,Learn the Pre-requisites,,25,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,1oUJXtHGQ29ZZU9sxwGo2,JavaScript Basics,Learn the Pre-requisites,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,SnF3xtzBh-x4Z_qUQUg7H,CSS Basics,Learn the Pre-requisites,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,k9_hVOBd9ZmC4HLuAf46v,Components,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,V7r1Hqk9IXTfjkjAg7-BT,State,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,s5YKenJY2Xv_PZBSxegEm,JSX,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,0gH7vI_Hy7s9hO2TF6hR3,Props,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,lNmddXrT8IHVtWobh3-oq,Environment Setup,,33,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,yW7nDDJbjmm8XKJI0hq3Q,Expo,Environment Setup,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,uLH9eo2G09wGO80XtFI5x,create-expo-app,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,9eOwhh2k59nvH-ztuDNjg,Expo Snack,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,zzOyoDcAQYkNNv07TIKeZ,Expo Tradeoffs,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,bxWLf0RDAl9Zaczkon9Rl,React Native CLI,Environment Setup,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,VhSEH_RoWFt1z2lial7xZ,Metro Bundler,Environment Setup,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,T4AhL9Zls2iNZMituGdtl,Development Workflow,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,KyKMZ8Aa5XUAIWelGTiSt,Running on Device,Development Workflow,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,tOt_vvmnBtOUbgokmVa5P,In-App Developer Menu,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,wWwaEdnvBsvj6jD9LJ4Jj,Enabling Fast Refresh,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,Tz-bRjQVkZedphelhAlWM,LogBox,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,Dq490IqEJXoFZRnBFJI8N,Sourcemaps,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,HHx3VSfV7xf6RqACrxjBf,DevTools,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,fnujIq6QAFB6bmTisuZ3T,Core Components,,48,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,OFhyYyxtrCBy_UUb5YBv5,Text,Core Components,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,Frz1RYp3y9OwRb-3t2e85,Text Input,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,kkH9H9Qh1FD7sLItoWw69,Button,Core Components,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,E7N8tSg2amZW-vc-X46JU,Image,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,GFGhnx5xUer2DdRI-SO4D,ImageBackground,Core Components,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,ouNTekf4VpZv-Vja8_bfM,Switch,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,QOOZs9qtz49agfZwi6k1B,StatusBar,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,hHFR59RrdMIWxcQe72qCs,ActivityIndicator,Core Components,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,V34mZCkpoT49o-74XoATS,Modal,Core Components,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,4BgVq-cZYEXgqktvlNnet,Pressable,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,GrFL32pZ_eOmdJRzSlH8b,View,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,UqCpoPzYio3ng3RFlbvZ7,SafeAreaView,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,8bn1PFd9h0ek6_T-cl1cS,KeyboardAvoidingView,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,x-OZCZcX6uhN3Yr5BAATn,Listings,Core Components,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,yN283SRWoALOEZh9iTn-L,ScrollView,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,h3ypxGxeHDCTxURHg6D2d,ListViews,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,CYqLNGyOe9f9hVhbyUnTX,FlatList,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,gLJMD9X7chy8OxdALht8g,SectionList,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,m8Nu71Y61Ha_fLxdtWTkn,RefreshControl,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,HiUbRfOv8OttFd85pDUHN,Writing Platform Specific Code,,68,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,KZIrRSYq_I-YzpFaYLuWi,Platform Module,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,LLANnVosxOUCPTtuBfNgu,File Extensions,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,UQpyXrC2cs_jDXxVTlQOu,react-native-web,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,ervpuL89myBW3oR9r-4lH,Styling,,72,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,wB0D9koC6jpt1rzX8F07F,Stylesheets,Styling,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,e-r3tuRZ3PzhFegES0oOm,Layouts & Flexbox,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,KoXTwQUqPt_ZhOFuaelny,Accessibility,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,7GBV5sfOaGxHwpkNUvFWE,Networking,,76,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,k7uVPyhbPgvO6HxAfxxYZ,Connectivity Status,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,aSCgax1M4wlmzkJSZV_fv,WebSockets,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,f7KFPFS2-EA90pumYHM9T,Fetch,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,CAQJaGs24wx1SqKOU44aB,Push Notifications,,80,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,GYdz9a1yLiewAeMRSyfLr,Interactions,,81,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,A7ZIe8nlQnHU5g3LM3Eif,Touchables,Interactions,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,xf7L5J42yQq3LE7lG2plp,Gesture Handling,Interactions,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,nk6zdVNRz_xE71mVUOFsi,Scrolling & Swiping,Interactions,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,Jr2iuQqyCbx6CyTJj4Qz2,Screen Navigation,Interactions,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,3NLcPO-hqQV1EacoPLVrv,Animations,Interactions,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,dckRzKDKj-mLB3-OxwjPh,DeepLinking,,87,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,CGtVwhVGc8Vea5RfzJvQG,Security,,88,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,LRBHwYiT0Yyi18PwR49rc,Authentication,Security,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,ee4QqFTosXNcTgoQIok8i,Networking,Security,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,NdjmP1bZNYriV08vb-iRw,Storage,Security,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,w0WW1kg_0BEMeLa1l2gb5,Storage,,92,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,WsJGiMjHSQ6MpPd5wuP9h,react-native-async-storage,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,JgBfwmOgcVi_a96L5NGwr,expo-secure-store,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,9pvrXH5Drdsa1cr93UBdc,expo-file-system,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,oK8z23a_CjcDjBJ843_Jn,expo-sqlite,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,vZMsm-MtsqmQMD-MG6zJY,Other Storage Options,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,G15Aey-Spax_iUHpm1v38,Testing,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,06gsRokwjxVa2xyLY4qAb,Jest,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,81tmis0km2h1zsjS2HsP5,React Test Renderer,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,-b4LfjCjkSZ6ZsSv3eFm6,React Native Testing Library,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,3m7ANLJvtx3zie4y86MNU,Detox,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,spTzJMS7cE0cNa7tVQhVQ,Appium,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,NIJzKzWlsciAjxUpm4K2v,Performance,,108,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,1U3AiCDWEVEKsofWtqavi,Understand Frame Rates,Performance,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,afwB90L-q2hIwrA0LtWbG,Common Problem Sources,Performance,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,LL2ZkB7BuELyY2mPQhkAj,Speeding up Builds,Performance,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,PyPjHnKIWpnFHal8RuSmX,Optimizing Flatlist Config,Performance,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,u5I-EOnA_yt6AQsRX-qr0,RAM Bundles + Inline Requires,Performance,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,apXv-E6LvOuOMj3EpzwuA,Profiling,Performance,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,0BMpZDc-1rSvETwX82zON,Using Native Modules,,115,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,b-1-JcwLSGMyH3gXS59lY,For iOS,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,wMxTB8WgU6e-oYMtQFCDY,For Android,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,4U-HZQGH7kaWCB94Xy8Mh,Publishing Apps,,118,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,1s9Y1dUtjpW9pu74ipX99,Apple App store,Publishing Apps,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +react-native,mobile,D8T9cZ5zKi_KZDr9tDpCf,Google Play Store,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,3xp2fogAVmwXQhdzhZDWR,Introduction,,16,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,yCnn-NfSxIybUQ2iTuUGq,What is Data Analytics,Introduction,21,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Lsapbmg-eMIYJAHpV97nO,Types of Data Analytics,,22,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,hWDh0ooidbqZb000ENVok,Descriptive Analytics,Types of Data Analytics,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,j7DA2J3speSaBsZAV4M0v,Diagnostic Analytics,,25,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,3WZORRCwme3HsaKew23Z5,Predictive Analytics,,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,DFMR-0MbmVCCrJu0I9JWG,Prescriptive Analytics,,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,R12sArWVpbIs_PHxBqVaR,Key Concepts of Data,Introduction,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,mDUSpexdq3ITV6qokwSJl,Collection,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,nC7tViln4UyQFYP_-fyjB,Cleanup,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,XFnw4_dQYSzm96-srWa7X,Exploration,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,jowh4CFLQiFzKaaElyCuQ,Visualisation,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,2pUq-7hu5EjGpowz98YoV,Statistical Analysis,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,U55hwR0HRCIz2cveVR8FZ,Machine Learning,,34,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,sgXIjVTbwdwdYoaxN3XBM,Analysis / Reporting with Excel,,36,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,wME4MSldOWlMB54ekpReS,IF,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,yBlJrNo9eO470dLp6OaQZ,DATEDIF,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,9sIP-jpNjtA1JPCBjTf-H,VLOOKUP / HLOOKUP,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,dke_pySrqYZZ7K3rprnIT,REPLACE / SUBSTITUTE,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,YReKRRgE_2dWfGGdBQqbf,UPPER / LOWER / PROPER,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,SIiIfcy-jeiRoDlxw385V,CONCAT,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,D5Q6o6ydr1j51kB0ASFPE,TRIM,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,FDYunL9KJkR_tHEcUV2iC,AVERAGE,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,uAdxP1ZkgzcU8JcWjvw6d,COUNT,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,_FO80Cm2iAD_bThmnsEgp,SUM,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,F3-cr5onkWqKKPRdxu8lV,MIN / MAX,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Vk3JErqxpnPY44iyfkLMl,Charting,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,2DDJUFr0AJTVR2Whj8zub,Pivot Tables,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,i2uEcaO4bJhcZ5ayRs2CQ,Learn a Programming Lang.,,52,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,g_EBQizZsIe-vn8ir6FTv,R,,54,subtopic,http://data.europa.eu/esco/skill/51586df8-1c46-4b47-8583-773cb63bf00b,R,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,M1QtGTLyygIjePoCfvjve,Data Manipulation Libraries,,55,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,8OXmF2Gn6TYJotBRvDjqA,Pandas,Data Manipulation Libraries,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,l1SnPc4EMqGdaIAhIQfrT,Data Visualisation Libraries,,57,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,uGkXxdMXUMY-3fQFS1jK8,Matplotlib,Data Visualisation Libraries,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,y__UHXe2DD-IB7bvMF1-X,Dplyr,Data Manipulation Libraries,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,E0hIgQEeZlEidr4HtUFrL,Ggplot2,Data Visualisation Libraries,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,_sjXCLHHTbZromJYn6fnu,Data Collection,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,tYPeLCxbqvMFlTkCGjdHg,Databases,Data Collection,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,iWOK0mRY-hAGxMnHYJ0tt,CSV Files,Data Collection,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,4DFcXSSHxg5wv0uXLIRij,APIs,Data Collection,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,qQ64ZhSlbbWu9pP8KTE67,Web Scraping,Data Collection,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,E6cpb6kvluJM8OGuDcFBT,Data Cleanup,,67,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,X9WmfHOks82BIAzs6abqO,Handling Missing Data,Data Cleanup,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Xltm7B-8TZ1-igLjVJXoR,Removing Duplicates,Data Cleanup,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,-rQ8h_6NFxEOhxXgo7LHo,Finding Outliers,Data Cleanup,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,t_BRtEharsrOZxoyX0OzV,Data Transformation,Data Cleanup,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,TucngXKNptbeo3PtdJHX8,Pandas,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,v8TfY-b4W5ygOv7r-syHq,Dplyr,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,il6KQXVPGBza5libN38ib,Descriptive Analysis,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,2ldO-_ZnIg364Eo8Jyfgr,Dispersion,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Fyqg3MRcwY7g-Q3gjiqwK,Distribution Space,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,923KGEUG9ofBm7dYkkrxz,Mean,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,qdXoikVh2xkJkOQNKcyvb,Median,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,fY8zVG2tVbmtx5OhY7hj-,Mode,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,yn1sstYMO9du3rpfQqNs9,Average,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,tSxtyJhL5wjU0XJcjsJmm,Range,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,ict4JkoVM-AzPbp9bDztg,Variance,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,MXIP8ekH4YtczODKM_G_l,Standard Deviation,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,VfcCRRqwLxkYpIX0ZKNNX,Skewness,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,PqGO8AU1zE2ZdtqrIrOkZ,Kurtosis,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,BJTVa4ur_bJB7mMtD2-hQ,Central Tendency,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Sz2Y8HLbSmDjSKAJztDql,Tableau,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,SJLeose5vZU8w_18C8_t0,Power BI,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,tvDdXwaRPsUSTqJGaLS3P,Matplotlib,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,-cJb8gEBvdVFf7FlgG3Ud,Seaborn,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,n3M49lgNPn28hm7kzki-a,ggplot2,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,EVk1H-QLtTlpG7lVEenDt,Bar Charts,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,v9T0DX56jFNhUz9nzubzS,Line Chart,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,A5YQv7D4qRcskdZ64XldH,Scatter Plot,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,muFy-C2agCX9vR_NU7UZF,Funnel Charts,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,FEyBFZLaGJqTC-IUEcOVS,Histograms,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,329BrtmXjXNLfi1SFfdeo,Stacked Charts,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,G8resQXEVEHCaQfDlt3nj,Heatmap,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,K9xwm_Vpdup9ujYqlD9F3,Pie Charts,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,2g19zjEASJw2ve57hxpr0,Data Visualisation,,106,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,TeewVruErSsD4VLXcaDxp,Statistical Analysis,,107,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Xygwu0m5TeYT6S_8FKKXh,Hypothesis Testing,Statistical Analysis,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,murioZ0NdrTix_lqSGz-8,Correlation Analysis,Statistical Analysis,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,lTycWscyFPi-BtkNg9cdm,Regression,Statistical Analysis,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,mCUW07rx74_dUNi7OGVlj,Visualizing Distributions,Descriptive Analysis,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,f4GuzeokP9w_gwtOquP0g,Machine Learning,,114,topic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,XdBwqLoYYiLJNlWPBEDUj,Reinforcement Learning,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,FntL9E2yVAYwIrlANDNKE,Unsupervised Learning,,116,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,FIYCkGXofKMsXmsqHSMh9,Supervised Learning,,117,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,vHDm_9Lh4EqvXNYSOBaqZ,Decision Trees,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,zbUw5PyVsdccbgDTRHg7d,Naive Byes,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,h2xF5bZeUByDgsAi4dga2,K-Means Clustering,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,7ikA373qH88HBx5irCgIH,Model Evaluation Techniques,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,_aUQZWUhFRvNu0MZ8CPit,Big Data Technologies,,123,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,m1IfG2sEedUxMXrv_B8GW,Big Data Concepts,Big Data Technologies,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,SStzU_iXSvI_9QWbvGNou,KNN,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,ofOQKAIu4rezWmgZeE-KT,Logistic Regression,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Fwwve0j-KDfc605IIgmil,Parallel Processing,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,wECWIRMlWNoTxz5eKwaSf,Hadoop,,129,subtopic,http://data.europa.eu/esco/skill/e46291c7-52b9-4174-bd59-178884861038,Hadoop,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,vaiigToDh4522rtWamuSM,Spark,,130,subtopic,http://data.europa.eu/esco/skill/af7ae54f-4649-4c16-87c7-59ba41d4d57f,SPARK,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,fqCAH4Enc4AAJHoSkk2Pe,MPI,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,eAM9orCNwzqh34uvGBVm8,MapReduce,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,SiYUdtYMDImRPmV2_XPkH,Deep Learning (Optional),,134,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,gGHsKcS92StK5FolzmVvm,Neural Networks,,136,subtopic,http://data.europa.eu/esco/skill/5608d5a0-6d5e-43b7-be37-616501729bb4,artificial neural networks,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,XlCv2OirEfuBFa4ranyyE,CNNs,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,Gocm98_tRg5BGxKcP-7zg,RNN,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,FJ4Sx477FWxyDsQr0R8rl,Tensorflow,,140,subtopic,http://data.europa.eu/esco/skill/7b0d5000-00da-4864-b776-6de49a87a669,computer vision,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,LJSqfz6aYJbCe_bK8EWI1,Pytorch,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,bHPJ6yOHtUq5EjJBSrJUE,Image Recognition,,143,subtopic,http://data.europa.eu/esco/skill/45f1ae17-c20d-40fc-9307-7d33b6ca9213,image recognition,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,DFv-eiYDicF4cA4jgVk9_,Natural Language Processing,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-analyst,data,iTmtpXe7dR4XKslgpsk2q,Data Storage Solutions,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,WSYIFni7G2C9Jr0pwuami,Introduction,,30,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,WB2PRVI9C6RIbJ6l9zdbd,What is Data Engineering?,Introduction,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,jJukG4XxfFcID_VlQKqe-,Data Engineering vs Data Science,Introduction,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,3BxbkrBp8veZj38zdwN8s,Skills and Responsibilities,Introduction,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Ouph2bHeLQsrHl45ar4Cs,Data Engineering Lifecycle,Introduction,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,_MpdVlvvkrsgzigYMZ_P8,Choosing the Right Technologies,Introduction,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,_2Ofq3Df-VRXDgKyveZ0U,Programming Skills,,37,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ILs5azr4L_uLK0CDFKVaz,Python,,38,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,LZ4t8CoCjGWMzE0hScTGZ,Java,,39,subtopic,http://data.europa.eu/esco/skill/19a8293b-8e95-4de3-983f-77484079c389,Java (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,WHJXJ5ukJd-tK_3LFLJBg,Scala,,40,subtopic,http://data.europa.eu/esco/skill/ffddfc7c-a9dd-449f-9e96-882dc447c8b6,Scala,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,4z2i5NXTo9h3YY0kJvRrz,Go,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fqmn6DPOA5MH7UWYv6ayn,Data Structures and Algorithms,,43,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,02TADW_PPVtTU_rWV3jf1,Git and GitHub,,44,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,FXQ_QsljK59zDULLgTqCB,Linux Basics,,45,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,cgkzFMmQils2sYj4NW8VW,Networking Fundamentals,,46,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,c1dadtQgbqXwcsQhI6de0,Distributed Systems Basics,,47,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,AWf1y87pd1JFW71cZ_iE1,Data Generation,Data Engineering Lifecycle,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,wydtifF3ZhMWCbVt8Hd2t,Data Storage,Data Engineering Lifecycle,49,subtopic,http://data.europa.eu/esco/skill/a7f0fbe0-c546-4f30-8e41-34a58c64567e,data storage,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,CvCOkyWcgzaUJec_v5F4L,Data Ingestion,Data Engineering Lifecycle,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,RspQLpkICyHUmthLlxQ84,Data Serving,Data Engineering Lifecycle,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,w3cfuNC-IdUKA7CEXs0fT,Data Engineering Lifecycle,,52,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,zGKTlMUzhrbVbqpLZBsMZ,Sources of Data,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,qRHeaD2udDaItAxmiIiUg,Database,Sources of Data,62,subtopic,http://data.europa.eu/esco/skill/43ae58b9-5e56-4524-b45a-b422777a0576,database,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,cxTriSZvrmXP4axKynIZW,APIs,Sources of Data,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,s-wUPMaagyRupT2RdfHks,Logs,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,dJZqe47kzRqYIG-4AZTlz,Mobile Apps,Sources of Data,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,KeGCHoJRHp-mBX-P5to4Y,IoT,,66,subtopic,http://data.europa.eu/esco/skill/f049d050-12da-4e40-813a-2b5eb6df6b51,Internet of Things,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,wDDWQgMVBYK4WcmHq_d6l,Data Collection Considerations,,67,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,g4UC0go7OPCJYJlac9w-i,Database Fundamentals,,69,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,kVPEoUX-ZAGwstieD20Qa,Data Normalization,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,SlQHO8n97F7-_fc6EUXlj,Data Modelling Techniques,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,AslPFjoakcC44CmPB5nuw,CAP Theorem,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,-VQQmIUGesnrT1N6kH5et,OLTP vs OLAP,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,5KgPfywItqLFQRnIZldZH,Slowly Changing Dimension - SCD,Database Fundamentals,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,k_XSLLwb0Jk0Dd1sw-MpR,Horizontal vs Vertical Scaling,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,OfH_UXnxvGQgwlNQwOEfS,Star vs Snowflake Schema,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,cslVSSKBMO7I6CpO7vG1H,Relational Databases,,77,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,2rRVWPON-o3MvpgZmrU_A,Learn SQL,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ilbFKqhfYyykjJ7cOngwx,Indexing,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,1BJGXWax6CONuFkaYR4Jm,Transactions,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,_bFj6rbLuqeQB5MjJZpd6,MySQL,,82,subtopic,http://data.europa.eu/esco/skill/4da171e5-779c-4983-a76f-91c16751e99f,MySQL,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,__JFgwxeDLvz8p7DAJnsc,PostgreSQL,,83,subtopic,http://data.europa.eu/esco/skill/a8d07b5a-c1a1-42c6-9d53-db9c7a2ca996,PostgreSQL,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,p7S_6O9Qq722r-F4bl6G3,MariaDB,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,YZ4G1-6VJ7VdsphdcBTf9,Aurora DB,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,PJcxM60h85Po0AAkSj7nr,Oracle,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,YxnIQh6Y5ic795-YsajB8,MS SQL,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,uZYQ8tqTriXt_JIOjcM9_,NoSQL Databsases,,89,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,sGkAOVl3C-xIIAdtDH9jq,Document,,90,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,04V0Bcgjusfqdw0b-Aw4W,MongoDB,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,_F53cV3ln2yu0ics5BFfx,ElasticSearch,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,goL_GqVVTVxXQMGBw992b,CosmosDB,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,-IesOBWPSIlbgvTjBqHcb,CouchDB,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fBD6ZQoMac8w4kMJw_Jrd,Column,,95,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,QYR8ESN7xhi4ZxcoiZbgn,Cassandra,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ltZftFsiOo12AkQ-04N3B,BigTable,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Uho9OOWSG0bUpyH4P6hKk,HBase,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,W6RnhoD7fW2xzVwnyJEDr,Graph,,101,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,TG63YRbSKL1F9vlUVF1VY,Neo4j,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,atAK4zGXIbxZvfBTzFEIe,Neptune,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fSlBjoNVKstJjWO7rS69V,Key-Value,,104,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,dW_eC4vR8BrvKG9wxmEBc,Redis,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,KYUh29Ok1aeOviboGDS_i,Memcached,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,BDfpCDOxXZ-Tp0Abj_CVW,DynamoDB,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,dc3lJI27hJ3zZ45UCVqM1,What is Data Warehouse?,,109,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,J854xPM1X0BWlhtJw7Hs_,Data Warehousing Architectures,,110,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ArOoKuf9scAURs8NRjAru,Data Warehouse,,111,topic,http://data.europa.eu/esco/skill/3ec2e4d6-7000-4905-bf1a-c5b1679416de,data warehouse,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Je2in1n8bMaknyeH79Zbv,Google BigQuery,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,W3l1_66fsIqR3MqgBJUmU,Snowflake,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,omrg8QcYmTdQLBKV47b7o,Amazon Redshift,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,c6Pf3kFcC4iV4a7mPc-WH,Data Mart,Data Warehousing Architectures,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,y0Lxz_wVyQ6lr1hvCsufa,Data Lake,,116,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fhfyoWekmYvEs-jdP2mJo,Databricks Delta Lake,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Pf0_CBGkmSEfWDQ2_iFXr,Snowflake,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,senZEYC9k-C_C4EAYDNeU,Onehouse,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,D7qtosIbsQuIY3OWl_Hwc,Data Mesh,,120,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,-x3QLMYhC67VJQ6EW6BrJ,Data Fabric,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,OiWleAdMbPtisrJpk2eSJ,Data Hub,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,14CycunRC1p2qTRn-ncoy,Metadata-first Architecture,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ZnGX8pg4GagdSalg_P0oq,Serverless Options,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,lDeSL9qvgQgyAMcWXF7Fr,Cloud Computing,,126,topic,http://data.europa.eu/esco/skill/bd14968e-e409-45af-b362-3495ed7b10e0,cloud technologies,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,YLfyb_ycgz1hu0yW8SPNE,Cloud Architectures,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,AHLsBfPfBJOhLlJ-64GcK,Amazon EC2 ( Compute),,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,tbut25IZI2aU7TkI9fFYV,S3 (Storage),,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,GtFk7phYGfXUhxanicYNQ,Amazon RDS (Database),,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,nD36-PXHzOXePM7j9u_O_,Amazon RDS (Database),,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,-yi-xk-kv0njW9GdytiAQ,Azure Virtual Machines,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,gzbEGCUwMsD1gL4nW668g,Azure Blob Storage,,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,iIZ3g70KRwEJCBNaONd2d,Azure SQL Database,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,BNGdJSmrNE90rwPa4JoWj,Data Factory (ETL),,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,-cU86vJWJmlmPHXDCo31o,Compute Engine (Compute),,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,2lqvArZdwRX0t3P3yovEH,Google Cloud Storage,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,9-wQWQIdAxQmMaJC9ojPg,Cloud SQL (Database),,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,YWgVUyIvBRW8eTVR5y73P,Dataflow,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,GN1Xh3kA25ge-wTbdiSio,Types of Data Ingestion,,147,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,f-a3Hy1ldnvSv8W2mFiJK,Batch,Types of Data Ingestion,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,4fugNG5sEDl0kgmN3Mezk,Hybrid,Types of Data Ingestion,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,wwPO5Uc6qnwYgibrbPn7y,Streaming,Types of Data Ingestion,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,oqxNr0Lj34mgRi5Z5wJt_,Realtime,Types of Data Ingestion,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fqTPu70MJyXBmqYUgCJ_r,Data Pipelines,,152,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,nShDMih1HmubBczxu4cfU,Extract Data,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,TjsxMNyWO3YGwg6zEIid4,Transform Data,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,y5Aaxe-P68HC5kNsIi88q,Load Data,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,vfO5Dz6ppsNtbGiQwpUs7,Apache Airflow,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,SgYLIkMtLVPlw8Qo5j0Fb,dbt,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,_IiKTZDF_b57l79X6lsq6,Luigi,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,TAh4__7U58J7fduU9a1Ol,Perfect,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,hB0y8A2U3owpAbTUb7LN5,Cluster Computing Basics,,162,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Ad10evrGQuYRl5GaMhQwu,What is Cluster Computing,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,1LLF4466grFDlT9p_WLsi,Distributed File Systems,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ccc6_SzDwXpCL1WbFuPNA,Job Scheduling,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,wpZfbIFtfiUSLMASk4t7f,Cluster Management Tools,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,I_IueX1DFp-LmBwr1-suX,Kubernetes,,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,pjm_qShAiFk3JsX4Z2d8G,Apache Hadoop YARN,,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,9lSjQBM2hWrkujxZjhQHE,HDFS,,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,03BHmPhYkZrJwRvQdmxxr,Big Data Tools,,171,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,0pH2U4GOj8zK3lgkh_r5M,HDFS,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,__tWu5uZYnmnuR-qO9SOR,MapReduce,,174,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,KcW4z48pk2x6IjQhZs_Ub,YARN,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,qHMtJFYcGmESiz_VwRwiI,Apache Spark,Big Data Tools,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,eTHitN2erd6z8-MZiXE9s,Containers & Orchestration,,177,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,OQ3RqVgWEMxpAtrrjOG5U,Docker,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,kcgDW6AFW7WXzXMTPE6J-,Kubernetes,Containers & Orchestration,179,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,8qEgXYZEbDWC73SQSflDY,Google Cloud GKE,Containers & Orchestration,180,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,eVqcYI2Sy2Dldl3SfxB2C,AWS EKS,Containers & Orchestration,181,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,k2SJ4ELGa4B2ZERDAk1uj,CI/CD,,182,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,IYIO4S3DO5xkLD__XT5Dp,GitLab CI,CI/CD,183,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,CewITBPtfVs32LD5Acb2E,Circle CI,,184,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,N8vpCfSdZCADwO_qceWBK,GitHub Actions,CI/CD,185,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,PUzHbjwntTSj1REL_dAov,ArgoCD,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,dk5FQl7Pk3-O5eF7dKwmp,Monitoring,,187,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,3QsgoKKxAoyj2LWJ8ad-7,Prometheus,Monitoring,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Zoa4JEGrSKjVwUNer4Go1,Datadog,,189,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,i54fx-NV6nWzQVCdi0aKL,Sentry,Monitoring,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,r1KmASWAa_MOqQOC9gvvF,New Relic,Monitoring,191,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,DZoxLu-j1vq5leoXLRZqt,Testing,,192,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,NIG53tyoEiLtwf6LvBZId,Integration Testing,Testing,193,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,8dXD4ddR_USEbAJhUMcB6,Unit Testing,Testing,194,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,mC9sWeC_wYHeJJHJAvxpI,End-to-End Testing,Testing,195,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,E4ND5XaMDGDLtlV7wTzi6,Functional Testing,Testing,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,5qe0q_llTzzNVudbONMYo,A/B Testing,Testing,197,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,qoMRpAITA7R_KOrwGDPAb,Load Testing,Testing,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,woa5K4Dt9L6aBzlJMNS31,Smoke Testing,Testing,199,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,dAvizeYvv92KMeAvSDmey,Messaging Systems,,200,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,1qju7UlcMo2Ebp4a3BGxH,What and why use them?,Messaging Systems,201,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,VefHaP7rIOcZVFzglyn66,Async vs Sync Communication,Messaging Systems,202,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,IZvL-1Xi0R9IuwJ30FDm4,Messages vs Streams,Messaging Systems,203,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,yyJJGinOv3M21MFuqJs0j,Best Practices,Messaging Systems,204,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fTpx6m8U0506ZLCdDU5OG,Apache Kafka,,206,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ERcgPTACqYo9BXoRdLjbd,RabbitMQ,,207,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,uIU5Yncp6hGDcNO1fpjUS,AWS SQS,,208,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,uFeiTRobSymkvCinhwmZV,AWS SNS,,209,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,jgz7L8OSuqRNcf9buuMTj,Infrastructure as Code - IaC,,210,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,GyC2JctG-Gi0R_qx1lTeg,Declarative vs Imperative,,211,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,9xoBZgKT9uAGsjc1soelY,Idempotency,,212,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,Rzk6HlMosx3FN_JD5kELZ,Reusability,,213,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,WUfJCLTajyLNK19gAAvoW,Environmental Management,,214,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,N-xRhdOTHijAymcTWPXPJ,Terraform,,217,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,WdlC0HhJ5YESfjXmdMnLU,OpenTofu,,218,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,OKJ3HTfreitk2JdrfeLIK,AWS CDK,,219,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,1A98uTo8l_GQSrFxu5N2X,Google Deployment Mgr.,,220,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,V30v5RLQrWSMBUIsZQG1o,Data Analytics,,222,topic,http://data.europa.eu/esco/skill/97bd1c21-66b2-4b7e-ad0f-e3cda590e378,data analytics,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,zA5QqqBMsqymdiPGFdUnt,Business Intelligence,,224,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,6Nr5FAGT_oOPZwZWdv7hl,Microsoft Power BI,,226,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,FfU6Vwf0PXva91FoqxFgp,Streamlit,,227,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,gqEAOwHFrQiYSejNUdV7-,Tableu,,228,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,fY0eZzz0aTXm2lelk8l3g,Looker,,229,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,JpuiYsipNWBcrjmn2ji6b,Reverse ETL,,230,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,LMFREK9dH_7qzx_s2xCjI,ETL vs Reverse ETL,Reverse ETL,231,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,mBOGrJIUaatBe2PnJM2NK,Reverse ETL Usecases,,232,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,vZGDtlyt_yj4szcPTw3cv,Census,,234,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,8vqjI-uFwJIr_TBEVyM_3,Segment,,235,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,8NTe5-XQ5tKAWUyg1rnzb,Hightouch,,236,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,HDVhttLNMLmIAVEOBCOQ3,Authentication vs Authorization,,238,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,2PqRgrYuJi_pPhOS0AkoP,Encryption,,239,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ZAKo9Svb8TQ6KkmOnfB5x,Tokenization,,240,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,2Wu1Ufm2l1nrytz1mAxmJ,Data Masking,,241,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,rUiYUV4ps6NYYYRwUnjuM,Data Obfuscation,,242,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,cStrYgFZA2NuYq8TdWWP_,Data Quality,,244,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,pKewO7Ef3GBXL4MDK62QG,Data Lineage,,245,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,a5gzM8msXibxD58eVDkM-,Metadata Management,,246,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,ghAbtfB5KtbboNjijL1Zf,Data Interoperability,,247,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,iuNP6W0A2GLTE2PK5y68u,Data Quality,,248,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,MuPHohc7mJzcH5QdJ-K46,GDPR,,252,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,g1VwuSupohuDAT2O4hTXx,ECPA,,253,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,tdqhFFvQ2dQVeQh1qTHjV,EU AI Act,,254,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,S8XMtFKWlnUqADElFp0Zw,Machine Learning,,267,topic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +data-engineer,data,VQv-c7buU2l-IDzRZBMRo,MLOps,,268,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,_hYN0gEi9BL24nptEtXWU,Introduction,,27,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,GN6SnI7RXIeW8JeD-qORW,What is an AI Engineer?,Introduction,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,jSZ1LhPdhlkW-9QJhIvFs,AI Engineer vs ML Engineer,Introduction,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,wf2BSyUekr1S1q6l8kyq6,LLMs,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,KWjD4xEPhOOYS51dvRLd2,Inference,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,xostGgoaYkqMO28iN2gx8,Training,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,XyEp6jnBSpCxMGwALnYfT,Embeddings,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,LnQ2AatMWpExUHcZhDIPd,Vector Databases,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,9JwWIK0Z2MK8-6EQQJsCO,RAG,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,Dc15ayFlzqMF24RqIF_-X,Prompt Engineering,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,9XCxilAQ7FRet7lHQr1gE,AI Agents,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,5QdihE1lLpMc3DFrGy46M,AI vs AGI,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,qJVgKe9uBvXc-YPfvX_Y7,Impact on Product Development,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,K9EiuFgPBFgeRxY4wxAmb,Roles and Responsiblities,Introduction,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,d7fzv_ft12EopsQdmEsel,Pre-trained Models,,49,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,1Ga6DbOPc6Crz7ilsZMYy,Benefits of Pre-trained Models,Pre-trained Models,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,MXqbQGhNM3xpXlMC2ib_6,Limitations and Considerations,Pre-trained Models,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,2WbVpRLqwi3Oeqk1JPui4,Open AI Models,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,vvpYkmycH0_W030E-L12f,Capabilities / Context Length,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,LbB2PeytxRSuU07Bk0KlJ,Cut-off Dates / Knowledge,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,hy6EyKiNxk1x84J63dhez,Anthropic's Claude,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,oe8E6ZIQWuYvHVbYJHUc1,Google's Gemini,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,3PQVZbcr4neNMRr6CuNzS,Azure AI,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,OkYO-aSPiuVYuLXHswBCn,AWS Sagemaker,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,8XjkRqHOdyH-DbXHYiBEt,Hugging Face Models,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,n-Ud2dXkqIzK37jlKItN4,Mistral AI,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,a7qsvoauFe5u953I699ps,Cohere,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,5ShWZl1QUqPwO-NRGN85V,OpenAI Models,Pre-trained Models,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,zdeuA4GbdBl2DwKgiOA4G,OpenAI API,,65,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,_bPTciEA1GT1JwfXim19z,Chat Completions API,OpenAI API,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,9-5DYeOnKJq9XvEMWP45A,Writing Prompts,OpenAI API,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,nyBgEHvUhwF-NANMwkRJW,Open AI Playground,OpenAI API,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,15XOFdVp0IC-kLYPXUJWh,Fine-tuning,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,qzvp6YxWDiGakA2mtspfh,Maximum Tokens,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,FjV3oD7G2Ocq5HhUC17iH,Token Counting,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,DZPM9zjCbYYWBPLmQImxQ,Pricing Considerations,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,8ndKHDJgL_gYwaXC7XMer,AI Safety and Ethics,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,cUyLT6ctYQ1pgmodCKREq,Prompt Injection Attacks,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,lhIU0ulpvDAn1Xc3ooYz_,Bias and Fairness,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,sWBT-j2cRuFqRFYtV_5TK,Security and Privacy Concerns,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,Pt-AJmSJrOxKvolb5_HEv,Conducting adversarial testing,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ljZLa3yjQpegiZWwtnn_q,OpenAI Moderation API,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,4Q5x2VCXedAWISBXUIyin,Adding end-user IDs in prompts,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,qmx6OHqx4_0JXVIv8dASp,Robust prompt engineering,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,t1SObMWkDZ1cKqNNlcd9L,Know your Customers / Usecases,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ONLDyczNacGVZGojYyJrU,Constraining outputs and inputs,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,a_3SabylVqzzOyw3tZN5f,OpenSource AI,,87,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,RBwGsq9DngUsl8PrrCbqx,Open vs Closed Source Models,OpenSource AI,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,97eu-XxYUH9pYbD_KjAtA,Popular Open Source Models,OpenSource AI,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,v99C5Bml2a6148LCJ9gy9,Hugging Face,,90,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,YLOdOvLXa5Fa7_mmuvKEi,Hugging Face Hub,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,YKIPOiSj_FNtg0h8uaSMq,Hugging Face Tasks,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,3kRTzlLNBnXdTsAEXVu_M,Inference SDK,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,bGLrbpxKgENe2xS1eQtdh,Transformers.js,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,rTT2UnvqFO3GH6ThPLEjO,Ollama,,97,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ro3vY_sp6xMQ-hfzO-rc1,Ollama Models,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,TsG_I7FL-cOCSw8gvZH3r,Ollama SDK,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,--ig0Ume_BnXb9K2U7HJN,What are Embeddings,,100,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,eMfcyBxnMY_l_5-8eg6sD,Semantic Search,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,HQe9GKy3p0kTUPxojIfSF,Recommendation Systems,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,AglWJ7gb9rTT2rMkstxtk,Anomaly Detection,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,06Xta-OqSci05nV2QMFdF,Data Classification,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,l6priWeJhbdUD5tJ7uHyG,Open AI Embeddings API,,107,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,y0qD5Kb4Pf-ymIwW-tvhX,Open AI Embedding Models,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,4GArjDYipit4SLqKZAWDf,Pricing Considerations,Open AI Embeddings API,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,apVYIV4EyejPft25oAvdI,Open-Source Embeddings,,110,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ZV_V6sqOnRodgaw4mzokC,Sentence Transformers,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,dLEg4IA3F5jgc44Bst9if,Models on Hugging Face,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,tt9u3oFlsjEMfPyojuqpc,Vector Databases,,113,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,WcjX6p-V-Rdd77EL8Ega9,Purpose and Functionality,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,dSd2C9lNl-ymmCRT9_ZC3,Chroma,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,_Cf7S1DCvX7p1_3-tP3C3,Pinecone,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,VgUnrZGKVjAAO4n_llq5-,Weaviate,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,JurLbOO1Z8r6C3yUqRNwf,FAISS,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,rjaCNT3Li45kwu2gXckke,LanceDB,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,DwOAL5mOBgBiw-EQpAzQl,Qdrant,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,9kT7EEQsbeD2WDdN9ADx7,Supabase,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,j6bkm0VUgLkHdMDDJFiMC,MongoDB Atlas,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,5TQnO9B4_LTHwqjI7iHB1,Indexing Embeddings,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ZcbRPtgaptqKqWBgRrEBU,Performing Similarity Search,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,lVhWhZGR558O-ljHobxIi,RAG & Implementation,,127,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,GCn4LGNEtPI0NWYAZCRE-,RAG Usecases,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,qlBEXrbV88e_wAGRwO9hW,RAG vs Fine-tuning,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,mX987wiZF7p3V_gExrPeX,Chunking,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,grTcbzT7jKk_sIUwOTZTD,Embedding,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,zZA1FBhf1y4kCoUZ-hM4H,Vector Database,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,OCGCzHQM2LQyUWmiqe6E0,Retrieval Process,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,2jJnS9vRYhaS69d6OxrMh,Generation,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,WZVW8FQu6LyspSKm1C_sl,Using SDKs Directly,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,ebXXEhNRROjbbof-Gym4p,Langchain,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,d0ontCII8KI8wfP-8Y45R,Llama Index,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,eOqCBgBTKM8CmY3nsWjre,Open AI Assistant API,,140,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,c0RPhpD00VIUgF4HJgN2T,Replicate,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,AeHkNU-uJ_gBdo5-xdpEu,AI Agents,,142,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,778HsQzTuJ_3c9OSn5DmH,Agents Usecases,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,voDKcKvXtyLzeZdx2g3Qn,ReAct Prompting,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,6xaRB34_g0HGt-y1dGYXR,Manual Implementation,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,Sm0Ne5Nx72hcZCdAcC0C2,OpenAI Functions / Tools,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,mbp2NoL-VZ5hZIIblNBXt,OpenAI Assistant API,,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,W7cKPt_UxcUgwp8J6hS4p,Multimodal AI,,151,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,sGR9qcro68KrzM8qWxcH8,Multimodal AI Usecases,Multimodal AI,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,fzVq4hGoa2gdbIzoyY1Zp,Image Understanding,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,49BWxYVFpIgZCCqsikH7l,Image Generation,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,TxaZCtTCTUfwCxAJ2pmND,Video Understanding,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,mxQYB820447DC6kogyZIL,Audio Processing,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,GCERpLz5BcRtWPpv-asUz,Text-to-Speech,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,jQX10XKd_QM5wdQweEkVJ,Speech-to-Text,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,CRrqa-dBw1LlOwVbrZhjK,OpenAI Vision API,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,LKFwwjtcawJ4Z12X102Cb,DALL-E API,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,OTBd6cPUayKaAM-fLWdSt,Whisper API,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,EIDbwbdolR_qsNKVDla6V,Hugging Face Models,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,j9zD3pHysB1CBhLfLjhpD,LangChain for Multimodal Apps,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,akQTCKuPRRelj2GORqvsh,LlamaIndex for Multimodal Apps,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,NYge7PNtfI-y6QWefXJ4d,Development Tools,,171,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,XcKeQfpTA5ITgdX51I4y-,AI Code Editors,,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +ai-engineer,ai_ml,TifVhqFm1zXNssA8QR3SM,Code Completion Tools,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,MEL6y3vwiqwAV6FQihF34,Introduction,,29,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,GHO6lN3GTiIRH1P70IRaZ,ML Engineer vs AI Engineer,Introduction,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,BzZd-d5t63dY97SRSIb0J,Skills and Responsibilities,Introduction,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,FgzPlLUfGdlZPvPku0-Xl,What is an ML Engineer?,Introduction,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,83UDoO1vC0LjL-qpI0Jh-,Linear Algebra,,36,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,wHlEinHuRARp5OfSulpA-,Calculus,,37,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,jJukG4XxfFcID_VlQKqe-,Chain rule of derivation,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,3BxbkrBp8veZj38zdwN8s,"Gradient, Jacobian, Hessian",Calculus,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,GN6SnI7RXIeW8JeD-qORW,"Derivatives, Partial Derivatives",,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,d7J8GEkut61NDGRzROJoP,"Scalars, Vectors, Tensors",Linear Algebra,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,yGs2h10gZcO4GMaWfI3uW,Singular Value Decomposition,Linear Algebra,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,1IhaXJxNREq2HA1nT-lMM,Matrix & Matrix Operations,Linear Algebra,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,3p98Uwf8gyALDr-89lBEZ,"Eigenvalues, Diagonalization",Linear Algebra,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,XmnWnPE1sVXheuc-M_Ew7,"Determinants, inverse of Matrix",Linear Algebra,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,5DiaZkljhHAGPi9DkaH3b,Statistics,,46,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,p8q1Gtt9x19jw5_-YjAGh,Basics of Probability,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,ZaoZ2XxicKuTDn4uxe52L,Descriptive Statistics,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,P32Rmnln5NCFWz4LP0k05,Basic concepts,Statistics,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,WLlZE_vto-CYY5GLV_w7o,Types of Distribution,Linear Algebra,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,P576TdYcbE6v3RpJntiKw,"Random Variances, PDFs",,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,7o6g0wQxHH9i9MMCoDq2C,Bayes Theorem,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,DUIrJwuYHlhJvZJT2acaY,Inferential Statistics,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,MYZUJ1uHIaRd1Gb4ORzwG,Graphs & Charts,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,tP0oBkjvJC9hrtARkgLon,Linear Algebra,,55,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,N_vLjBVdsGsoePtqlqh2w,Discrete Mathematics,,56,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,qDn1elMoPIBgQSCWiYkLI,Python,,57,topic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,hWA7RtuqltMTmHdcCnmES,Basic Syntax,,58,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,dEFLBGpiH6nbSMeR7ecaT,Variables and Data Types,Basic Syntax,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,NP1kjSk0ujU0Gx-ajNHlR,Conditionals,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,R9DQNc0AyAQ2HLpP4HOk6,Data Structures,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,fNTb9y3zs1HPYclAmu_Wv,Exceptions,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,-DJgS6l2qngfwurExlmmT,"Functions, Builtin Functions",,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Dvy7BnNzK55qbh_SgOk8m,Loops,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,nN9BumBHi-c9HKFlgL2GH,Object Oriented Programming,,65,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,ybqwtlHG4HMm5lyUKW2SO,Essential libraries,,66,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,nKE9sO-f2fdMiuLu2xby1,Numpy,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,PnOoShqB3z4LuUvp0Gh2e,Pandas,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,OXbATvlhBXTQ1iRGwPUfb,Matplotlib,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,VYVLUxhp3XxxknNr5V966,Seaborn,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,-oRH7LgigHcfBkNF1xwxh,Data Sources,,72,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,VdMhrAi48V-JXw544YTKI,"Databases (SQL, No-SQL)",,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,cxTriSZvrmXP4axKynIZW,Internet,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,s-wUPMaagyRupT2RdfHks,APIs,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,dJZqe47kzRqYIG-4AZTlz,Mobile Apps,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,KeGCHoJRHp-mBX-P5to4Y,IoT,,77,subtopic,http://data.europa.eu/esco/skill/f049d050-12da-4e40-813a-2b5eb6df6b51,Internet of Things,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,U4LGIEE3igeE5Ed3EWzsu,Data Formats,,78,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,kagKVPUyLtx8UPAFjRvbN,JSON,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,tq6WRwUpaCok9fX-0bY7m,Parquet,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,MWfdLCb_w06A0jqwUJUxl,CSV,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,K9Si7kJe946CcGWBGmDsZ,Excel,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,qRHeaD2udDaItAxmiIiUg,Other Data Formats,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,MdhfkuKWTDCE73hczzG3D,Preprocessing Techniques,,85,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,5v0jRBYrRuVXQC90IseRG,Data Cleaning,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,y3-nWiDjlY6ZwqmxBUvhd,Dimensionality Reduction,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,UmGdV94afOIbAL8MaxOWv,Feature Engineering,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,cigwKoltemM0q-M5O50Is,Feature Selection,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,iBkTNbk8Xz626F_a3Bo5J,Feature Scaling & Normalization,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Ns2zKn8BL_kTEI6O65pCp,Types of Machine Learning,,92,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,36ryjK5isV1MD4MgZP2Jn,Unsupervised Learning,Types of Machine Learning,93,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Yho0zf9F-ROhEnTxRMq_M,Semi-supervised Learning,,94,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,5MUwKGfSTKlam8KCG0A1U,Supervised Learning,Types of Machine Learning,95,subtopic,http://data.europa.eu/esco/skill/3a2d5b45-56e4-4f5a-a55a-4a4a65afdc43,machine learning,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,NC1A2SQVyc1n-KEf6yl-4,Reinforcement Learning,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,lgO7luG7-R_FY5nwFjRE0,Self-supervised Learning,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,rzhVFzl5H5MWtcvr8ayRk,What is Machine Learning?,,98,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,ajKU5CPlbn7BbWHEhUNaB,What is Supervised Learning?,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,cffITx6oAcnvJlK1VLdi8,Classification,,101,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,aHOjajXwkDMOssqW1VGrm,Logistic Regression,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,_jS66rGAWecXH3zVF-5ds,Support Vector Machines,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,x7vlCNAxfJzobj9HcTaJy,K-Nearest Neighbors (KNN),Classification,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,JuTTbL_pm1ltGvhUsIzQd,Gradient Boosting Machines,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,arlmRF5pYglsbHb-HR-2x,"Decision Trees, Random Forest",,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,gKu6tnpTO2PhDDMYp2u7F,Regression,,107,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,xGO1X9aZRgKcgzi6r1xq8,Linear Regression,Regression,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,hfr2MU8QkVt9KhVi1Okpv,Polynomial Regression,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,9oWdnQd-vwVJi62JQLgJ5,What is Unsupervised Learning?,,111,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,CBSGvGPoI53p7BezXNm6M,Clustering,,112,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,vQI-4uFQJ6694nm1SCpDR,Dimensionality Reduction,,113,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,BzUunjJrUMlh6K1NOOD87,Overlapping,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,jJ8cXfHV2LG5PJGZRTHxB,Hierarchical,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,eErzKbR8sRNlrYcwNSRSh,Exclusive,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,VrLaUipVKWvwnFF0ZbIlo,Probabilistic,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,owSUO9Ut9sggd1OiWr3O7,Autoencoders,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,K-x_L3z8JTSHwtTeHm4EG,Principal Component Analysis,Dimensionality Reduction,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,EtU_9MOklVBvnvyg30Yfx,What is Reinforcement Learning?,,121,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,PZ-WxKGTcWTrXmYI_inD_,Policy Gradient,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,4Vy6lW9vF_SWwbKLU0qno,Actor-Critic Methods,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,9o-ZT9oZIE3hCXD6eWZI0,Deep-Q Networks,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,wxq5dkrpgvs3axmLmeHCk,Q-Learning,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,99TI95HVGrXIYr-PIDxhC,What is Model Evaluation?,,127,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,5dKl6SUQhOsZfUtVR5hzw,Metrics to Evaluate,,128,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,3wib9UH0_OLhKjqKoZEMv,Accuracy,Metrics to Evaluate,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,mja35tndhAT5z_ysv-hDe,Precision,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,DH33Na9zz_WGmbD-Dxvq1,Recall,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,FdNY8QUbPPpeHFgD8TTaD,F1-Score,Metrics to Evaluate,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,anEGWHVpcp75e3jQrj_LZ,ROC-AUC,Metrics to Evaluate,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,7fOp3t283GeOn6Tf4kEuN,Log Loss,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,oyL0M2OP4NTNbIO3zq-Hz,Confusion Matrix,Metrics to Evaluate,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,LWLqa61GK5ukYzHpjinYi,Forward propagation,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,0meihv22e11GwqnRdSJ9g,Back Propagation,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,8425N_E43Dv5mcmEcXRIa,"Perceptron, Multi-layer Perceptrons",,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,RXTci1N6i6D9HqTbsLYIy,Activation Functions,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,4dxZmLg0UEaaVEORupOOC,Neural Network (NN) Basics,,141,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,KcfFjpxFTFxI6HR6hBPrl,Loss Functions,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,ZVbnAF9I1r8qWFFYG6nXv,Scikit-learn,,143,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,1aX_vO5zxfTV8_kUIFHkR,Ridge,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,EXogp25SPW1bBfb1gRDAe,Lasso,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,0hi0LdCtj9Paimgfc-l1O,Validation Techniques,,149,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,GKMhIXEuSKdW75-24Zopb,LOOCV,Validation Techniques,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,vRS7DW2WUaXiHk9oJgg3z,K-Fold Cross Validation,Validation Techniques,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,_Z2miSW4PwILMRtBFajBn,Deep Learning Architectures,,152,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,BtO2wH7YYqE25HShI6sd9,Convolutional Neural Network,,153,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,I-GEE7PvpQmhQSfZmxqwA,Pooling,Convolutional Neural Network,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,a2PGTDnXKp759vFZzkjSF,Padding,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,MtoYStcZBduLSbjRuPjq0,Convolution,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,YWxSI45e5K_4YOrvmh6LV,Strides,Convolutional Neural Network,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,gCGHtxqD4V_Ite_AXMspf,Applications of CNNs,,158,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,E4k6WgNXdnNoApR675VKb,Image Classification,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,iSX9YExs1gS4L2CBQux5w,Image Segmentation,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,jPvZdgye7cBf0bPMVGf7a,Image & Video Recognition,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,_eKuBhCCwUHnEGwHNQY-g,Recommendation Systems,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,H0cscBaExZPNZuFubBUv7,Recurrent Neural Networks,,163,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,LpggrF1MMvAxtO9EJe3wY,RNN,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,ZWDSLqxmfg3aPBZFH479q,GRU,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,LdUwTWfCIcowwC-e6q3ac,LSTM,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,-tzeA13f2jYDm4aO5JciT,Attention Mechanisms,,167,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,kvf2CUKBe4qSbZla4Brh3,Autoencoders,,168,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,rDIg16eb6B6um1P8uMy51,Transformers,Attention Mechanisms,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,J1aGPkZqDZfUwpVmC88AL,Multi-head Attention,Attention Mechanisms,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,oTKC1o1OOnPiTh60a8yVc,Self-Attention,Attention Mechanisms,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,IR0wVIcu1MxOOBiLBnn8S,Generative Adversarial Networks,,172,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,JVXe2QDQaqiJYPupIMhWe,Natural Language Processing,,174,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,QbftToskhtBlTz1jyiRkb,Tokenization,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,pP0VeUSK9CDodgz-BQmrP,Lemmatization,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,UO1GEUe8e22uRB6DAxfpe,Stemming,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,CaHbAXDIJQXcQ9DZqziod,Embeddings,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,sChxcuQ2OruKVx8P4wAK_,Attention Models,,179,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Tv3sZvus76dmu0X9AqCIU,Explainable AI,,186,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,5xxAg18h74pDAUPy6P8NQ,Train - Test Data,Scikit-learn,187,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,-W2uAccH7Y2XIwhfl9mDF,Data Preparation,Scikit-learn,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,bIhGv4886V4RWJD3tX0a0,Data Loading,Scikit-learn,189,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,m4vmnxRMBf7zwNnwrMEnk,Tuning,Scikit-learn,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,vBnqnIh_xSn0OuY9oQ5e-,Prediction,Scikit-learn,191,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Ddhph9saFgfMi-uUFGK75,Model Selection,Scikit-learn,192,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,A_Kx3pEj0jpnLJzdOpcQ9,Deep Learning Libraries,,193,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,Ru8_xMyFxye1hyzCUYvnj,TensorFlow,,194,subtopic,http://data.europa.eu/esco/skill/7b0d5000-00da-4864-b776-6de49a87a669,computer vision,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,zoXnXI4Wf5sxddHqYwQjP,Keras,,195,subtopic,http://data.europa.eu/esco/skill/7b0d5000-00da-4864-b776-6de49a87a669,computer vision,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,7RSW-Pypf3QpZp4O21AGl,PyTorch,,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,yKtRmgwrJ75VVz7_txZ-S,Scikit-learn,,197,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,0-6BV-MggAyD7g3JH45B7,ElasticNet Regularization,,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +machine-learning,ai_ml,vmERbhRIevLLNc7Ny2pWp,Why is it important?,,199,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,_7uvOebQUI4xaSwtMjpEd,Programming Fundamentals,,6,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,Vh81GnOUOZvDOlOyI5PwT,Python,Programming Fundamentals,9,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,vdVq3RQvQF3mF8PQc6DMg,Go,Programming Fundamentals,10,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,mMzqJF2KQ49TDEk5F3VAI,Bash,Programming Fundamentals,11,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,oUhlUoWQQ1txx_sepD5ev,Version Control Systems,,12,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,06T5CbZAGJU6fJhCmqCC8,Git,Version Control Systems,13,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,7t7jSb3YgyWlhgCe8Se1I,GitHub,,14,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,00GZcwe25QYi7rDzaOoMt,Cloud Computing,,17,topic,http://data.europa.eu/esco/skill/bd14968e-e409-45af-b362-3495ed7b10e0,cloud technologies,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,u3E7FGW4Iwdsu61KYFxCX,AWS / Azure / GCP,Cloud Computing,18,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,kbfucfIO5KCsuv3jKbHTa,Cloud-native ML Services,Cloud Computing,19,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,tKeejLv8Q7QX40UtOjpav,Containerization,,20,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,XIdCvT-4HyyglHJLRrHlz,Docker,Containerization,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,XQoK9l-xtN2J8ZV8dw53X,Kubernetes,Containerization,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,ulka7VEVjz6ls5SnI6a6z,Machine Learning Fundamentals,,24,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,VykbCu7LWIx8fQpqKzoA7,Data Engineering Fundamentals,,25,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,cOg3ejZRYE-u-M0c89IjM,Data Pipelines,Data Engineering Fundamentals,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,wOogVDV4FIDLXVPwFqJ8C,Data Lakes & Warehouses,Data Engineering Fundamentals,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,Berd78HvnulNEGOsHCf8n,Data Ingestion Architecture,Data Engineering Fundamentals,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,pVSlVHXIap0unFxLGM-lQ,Airflow,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,UljuqA89_SlCSDWWMD_C_,Spark,Data Engineering Fundamentals,30,subtopic,http://data.europa.eu/esco/skill/af7ae54f-4649-4c16-87c7-59ba41d4d57f,SPARK,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,fMNwzhgLgHlAZJ9NvKikR,Kafka,Data Engineering Fundamentals,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,o6GQ3-8DgDtHzdX6yeg1w,Flink,Data Engineering Fundamentals,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,iTsEHVCo6KGq7H2HMgy5S,MLOps Principles,,33,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,l1xasxQy2vAY34NWaqKEe,MLOps Components,,34,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,kHDSwlSq8WkLey4EJIQSR,Version Control,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,a6vawajw7BpL6plH_nuAz,CI/CD,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,fes7M--Y8i08_zeP98tVV,Orchestration,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,fGGWKmAJ50Ke6wWJBEgby,Experiment Tracking & Model Registry,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,6XgP_2NLuiw654zvTyueT,Data Lineage & Feature Stores,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,zsW1NRb0dMgS-KzWsI0QU,Model Training & Serving,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,r4fbUwD83uYumEO1X8f09,Monitoring & Observability,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +mlops,ai_ml,sf67bSL7HAx6iN7S6MYKs,Infrastructure as Code,,42,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,MvpHHpbS-EksUfuOKILOq,Basic Blockchain Knowledge,,24,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Atv-4Q7edtvfySs_XhgEq,Blockchain Structure,Basic Blockchain Knowledge,25,subtopic,http://data.europa.eu/esco/skill/296f6b56-de45-4aac-aa96-43e4a4864724,blockchain architecture,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,9z0Fqn1qqN8eo6s7_kwcb,Basic Blockchain Operations,Basic Blockchain Knowledge,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,WD2JH4X4tEE4J0W0XFQ_4,Applications and Uses,Basic Blockchain Knowledge,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,edO8iEehsZtYavlsEKhOy,What is Blockchain,Basic Blockchain Knowledge,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,H9jvIlxX6P-C_cgPfZop4,Decentralization,Basic Blockchain Knowledge,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Nc9AH6L7EqeQxh0m6Hddz,Why it matters?,Basic Blockchain Knowledge,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,bA4V_9AbV3uQi3qrtLWk0,General Blockchain Knowledge,,31,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,B7niNXMOTbHn_1ixKQ8ri,Mining and Incentive Models,General Blockchain Knowledge,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,E9HR_voxQ2a2tvWUuva_p,Decentralization vs Trust,General Blockchain Knowledge,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,L08v-78UsEhcg-mZtMVuk,Blockchain Forking,General Blockchain Knowledge,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,s1QqQc0We5yQaNF3Ogt4k,Cryptocurrencies,General Blockchain Knowledge,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,FSThY0R1OAZCIL98W3AMj,Cryptowallets,General Blockchain Knowledge,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,e_I-4Q6_qIW09Hcn-pgKm,Cryptography,General Blockchain Knowledge,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,_BkpK9qgp9up8nXNH7q4m,Consensus Protocols,General Blockchain Knowledge,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,nNPa6jKRUaitmHwBip_LE,Blockchain Interoperability,General Blockchain Knowledge,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,JYHK95Xr0R1MVCda1Epl6,Solana,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,ug4FB4RXItHU0ADnisvve,TON,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,tSJyp46rkJcOtDqVpJX1s,EVM-Based,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,EQgb4LqXnyq3gOX7Fb85s,Blockchains,,43,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,JLXIbP-y8C2YktIk3R12m,Ethereum,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,JNilHFQnnVDOz-Gz6eNo5,Polygon,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,sJj-6wG5KjjzYYia_eo63,Binance Smart Chain,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,UQ9AejYV6_Sk6ZJkXYWf7,Gnosis Chain,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,PkRAYBZQAUAHxWEeCCX4U,Huobi Eco Chain,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,txQ9U1wcnZkQVh6B49krk,Avalanche,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,trcGwYcFW5LQUUrAcbUf_,Fantom,,50,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,VVbvueVMJKLUoJYhbJB1z,Moonbeam / Moonriver,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,YC385OLECWjpZjVeWKksO,Everscale,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,5MGtl00EEZdSnJdrNYPJ7,Gosh,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,4tAyunbYVwlbzybuVq7fr,TON,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,3HCpgWWPIkhK3gPRJuJQf,Venom,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,miBEG3x_foKYxwfX4Tr4f,TVM-Based,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,i_Dw3kUZ7qKPG-tk-sFPf,L2 Blockchains,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,ixTIn2Uhs-i5-UPt9jKAa,Arbitrum,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Ib9STGxQa8yeoB-GFeGDE,Moonbeam / Moonriver,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,hlcavpstLnXkJcjccQUL8,TVM-Based,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,sK8G-41D3EfYNSLFJ3XYf,Oracles,,61,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,JbgBwG6KmeTdyle9U6WAv,Hybrid Smart Contracts,Oracles,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,omQOhNfMO09pBc7oy76Wo,Chainlink,Oracles,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,CzfsAQIk3zIsDaDAorG9K,Oracle Networks,Oracles,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,BV6lEwCAKaYxSPWD0LV_d,Smart Contracts,,65,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,chaIKoE1uE8rpZLkDSfV-,Solidity,,66,subtopic,http://data.europa.eu/esco/skill/605399ce-4736-4b41-b41e-92ecf2139454,Solidity,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,jgHa_LeCac0pl6dSADizF,Vyper,,67,subtopic,http://data.europa.eu/esco/skill/53780150-1581-4ae6-b435-34068c172caf,Vyper,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Larbhjzi-MnPQKH1Pzn2R,Rust,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,IXs4nUzy_A5vBjI_44kaT,Unit Tests,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,QNfnbUGkT3N-pj5epnHcM,Integration Tests,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,4V-dj9x9hSAAGCxpBWsbE,Code Coverage,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,7goaYnedUlfgfl5qApoO2,Deployment,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,H3jNM_0sJrB7ZbYzrVhF7,Monitoring,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,OotJnHgm622NQJc2WRI7c,Upgrades,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,bjUuL7WALETzgFxL6-ivU,ERC Tokens,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,SM8Wt3iNM_nncLj69KCuy,Crypto Wallets,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,lXukWXEatsF87EWFSYyOO,IDEs,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,S68IUKs0k_FFHEH97xxs7,Crypto Faucets,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,tvk1Wh04BcFbAAwYWMx27,Decentralized Storage,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,KRtEN0845lV5e85SOi6oZ,Smart Contract Frameworks,,82,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,l110d4NqTQt9lfEoxqXMX,Hardhat,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Q64AbQlvYPiqJl8BtoJj9,Brownie,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Vl9XHtc22HnqaCnF9yJv9,Truffle,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,F1EUAxODBJ3GEoh7cqM-K,Foundry,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,snQA5_4H2dDkT1pENgaYD,Security,,87,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,UOF7Ep97i1l3Own6YEWlq,Practices,Security,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,wypJdjTW4jHm9FCqv7Lhb,Fuzz Testing & Static Analysis,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,GxD-KybtmkwT3wqDzIfHp,Common Threat Vectors,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,f60P5RNNdgCbrhDDzkY25,Source of Randomness Attacks,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,n3pipnNb76aaQeUwrDLk_,Tools,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,YA3-7EZBRW-T-8HuVI7lk,Slither,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,twR3UdzUNSztjpwbAUT4F,Manticore,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,XIgczUc3yKo6kw-_3gskC,MythX,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,U4H62lVac8wIgxNJ3N3ga,Echidna,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,fbESHQGYqxKRi-5DW8TY3,Management Platforms,,97,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,qox-x_q-Q7aWcNFWD7RkT,OpenZeppelin,Management Platforms,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Fs9rcEh_f9fJ2tF-bkAUE,Version Control Systems,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,gpS5CckcQZX3TMFQ2jtIL,Git,Version Control Systems,100,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,oSK3MRQD_4j1gGDORN7RO,Repo Hosting Services,,101,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,GOgeaQoRvqg-7mAfL_A8t,GitHub,Repo Hosting Services,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,CWqwv4asouS-dssAwIdxv,GitLab,Repo Hosting Services,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,TMPB62h9LGIA0pMmjfUun,Bitbucket,Repo Hosting Services,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,SXXvFtf_7Rx64cHSEWxMS,dApps - Decentralized Applications,,105,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,aATSuiqPG-yctr3ChEBa_,Applicability,,106,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,1AhombZUkZN6Ra5fysSpg,Defi,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,RsoOgixZlyQU6h7nIaY9J,DAOs,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,e4OHLOfa_AqEShpMQe6Dx,NFTs,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,vTGSDThkDDHvCanNlgP07,Payments,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,uMXcKCUoUN8-Hq_IOBRCp,Insurance,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,dDPhMNPpl3rZh3EgXy13P,Node as a Service,,112,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,lOoubzXNILBk18jGsc-JX,Alchemy,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,hJmNuEMHaMSM0QQlABFRS,Infura,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,pJhR9OQo8YFQmAZXQbikJ,Moralis,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,FGih8w9We52PHpBnnGO6H,Quicknode,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,NK02dunI3i6C6z7krENCC,Supporting Languages,,117,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,fF06XiQV4CPEJnt_ESOvv,JavaScript,,118,subtopic,http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7,JavaScript,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,pVG7bGqVGCeSBlZxRNHJs,Python,,119,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,jxlQ1ibcCv6ZlcEvobZ_G,Go,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,YR-U2njkUrEMO0JxCU1PH,Frontend Frameworks,,121,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,0DUYS40_-BTpk2rLQ1a0e,React,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,UY_vAsixTyocvo8zvAF4b,Angular,,123,subtopic,http://data.europa.eu/esco/skill/1ffac4ac-fda7-407d-8ed1-ca8f4a8dc146,Angular,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Ke97bMHGfb-8hB_xSwMbk,Vue,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,-7Bq2ktD0nt7of9liuCDL,Testing,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,cW3_Ki9Bx7fYluDLKKKgl,Deployment,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,XvVpnlYhT_yOsvjAvwZpr,Maintenance,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,B6GGTUbzEaIz5yu32WrAq,Architecture,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,PBTrg9ivOpw9uNTVisIpx,Security,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,vZiDpX9pEB9gfueSKZiQL,Client Libraries,,130,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,i-ltfXPTCu3WaBo-xaN05,ethers.js,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,jwuMeo9TwaQviGIMO13Jf,web3.js,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,RFgetmTvKvpV2PG6Vfev7,Moralis,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,CoYEwHNNmrQ0i0sSQTcB7,Client Nodes,,134,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,DBRaXtwvdq2UGE8rVCmI1,Geth,,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,Gnnp5qrFmuSVtaq31rvMX,Besu,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,xtYwg0WAcE8Ea9VgC2RSc,Nethermind,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,E4uuJZFZz-M1vlpZmdJTO,Substrate,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,bTdRKEiIUmu1pnp8UbJK9,Building for Scale,,140,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,5T5c3SrFfMZLEKAzxJ-_S,State & Payment Channels,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,ti6-LSK52dTCLVdxArp9q,Optimistic Rollups & Fraud Proofs,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,PykoX4j5Q3eJWIpUoczjM,Zk Rollups & Zero Knowledge Proof,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,chmxDwNVOefp98IbjEgNl,Validium,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,dMesiPUPBegYQ7hgeMMJK,Plasma,,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,lSQA3CfQBugEBhAh2yxro,Sidechains,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,9uz6LBQwYpOid61LrK5dl,Ethereum 2.0,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,1bUD9-vFo-tsHiB1a06tO,On-Chain Scaling,Building for Scale,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,ecT4W5z8Vq9pXjnuhMdpl,Why it matters?,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +blockchain,blockchain,zvUCR0KeigEi9beqFpwny,Storage,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,rQArtuVKGVgLn_fw9yO3b,Client Side Development,,18,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,m1wX27XBWKXZcTMH2U1xp,Game Mathematics,,19,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,grRf-MmaXimDB4iODOV47,Linear Algebra,Game Mathematics,20,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,yLEyh5XJ3sl8eHD-PoSvJ,Vector,,21,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Kg6Mg9ieUUGXWX9Lai7B0,Matrix,Game Mathematics,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,XWxW2ZBw3LcQ4DRk4tgAG,Geometry,,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,XABzEU9owCx9-zw1id9xU,Linear Transformation,Game Mathematics,24,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,r5TcXQsU9s4NlAQIPvZ3U,Affine Space,Game Mathematics,25,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,SkCreb6g4i-OFtJWhRYqO,Affine Transformation,Game Mathematics,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,iIWEjpkNFBj4R5wQ0mcWY,Orientation,,27,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,zPs_LlDvkfxvvCrk5fXB2,Quaternion,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,L0J2kvveJNsmN9ueXhqKf,Euler Angle,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,YTkOF_33oL1ZkA-loc_DP,Curve,,30,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,nTiHZXRh2j3_FsBotmlGf,Spline,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,m4AuHjEBnHS0wyATG-I1Z,Hermite,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,DUEEm9sAaZqSI-W-PFZ8f,Bezier,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,N9GoA3YvOaKwYjljj6NZv,Catmull-Rom,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,5qfoD77wU4ETI7rUSy4Nc,Projection,,35,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,LEJymJ2EaAW5FM5LgKW38,Perspective,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,d6C1qFv-Tad3AtMBDLI6r,Orthogonal,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,UTBnrQiZ6Bf96yJYIUf3b,Game Physics,,38,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,0D7KQlF-9ylmILTBBVxot,Dynamics,,39,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,HWtU4q-YPXxSi64t43VNF,Center of Mass,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,6E2mkXuAzoYnrT1SEIA16,Moment of Inertia,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ejZMnxZ0QrN-jBqo9Vrj8,Acceleration,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,m2_wUW2VHMCXHnn5B91qr,Joints,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,qduFRhmrzJ2sn0g7L-tza,Force,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,egOcxFTQP7vPIGrxcieuk,Restitution,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Y7HYY5eq7OG42V9yQz0Q1,Angular Velocity,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,WzcmdW_fKHv3gwdBnvI0_,Buoyancy,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Z_U6abGV_wVkTGZ2LVkFK,Linear Velocity,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Hz9R4YGYtD0jAur8rYist,Friction,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AdOfOJtLtNgDwuABb6orE,Collision Detection,,50,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,SuemqQuiePab0Qpm2EGy9,Narrow Phase,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AKd2UpITqBZV7cZszSRps,Broad Phase,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,YLusnwCba7BIdKOYUoY6F,Convexity,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,pG_V12qhS4HevoP_KHTvh,Convex,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,jslk7Gy58VspO1uXGDgBp,Concave,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,jixffcPBELkhoG0e7Te8g,Convex Hull,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,bgP9NpD0DJGqN4VCt65xP,Convex Decomposition,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,vmRYaXNVCe0N73xG8bsEK,Intersection,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,kSMz7mZ243qMKtT_YD3AD,SAT,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,lwd3Gz9bJEKCIwhXD6m-v,GJK,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,vWLKYK2KUzV1fO-vQunzW,EPA,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,PLR_4yoRifoTzkOR4c7ym,Bounding Volume,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,aTeYGd4JlPr5txNPyBezn,AABB,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,7nGtvbxoEAheiF4IPMfPf,OBB,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,9Fk3XSINBr2NNdbMtwsIK,Spatial Partitioning,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,STdvFYM9V0a36IkPXjvrB,Sort & Sweep,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,FCc5xwb_G3VsDRXOcg3hV,BVH,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,XHFV4d6Ab4kWQ3-XcZTyT,DBVT,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,1yK8TH4Pn7Ag8VQoug54i,CCD,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,fv5tivGad2P9GRZOodfn2,Game Engine,,70,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,7OffO2mBmfBKqPBTZ9ngI,Godot,Game Engine,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,a6H-cZtp3A_fB8jnfMxBR,Unreal Engine,Game Engine,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,CeAUEN233L4IoFSZtIvvl,Native,Game Engine,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,rNeOti8DDyWTMP9FB9kJ_,Unity 3D,Game Engine,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,4YgbrXLXf5mfaL2tlYkzk,Programming Languages,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,jsq0UXnIIC0Z_nbK2w48f,C/C++,Programming Languages,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Ph3ZqmSnwwzUBUC-6dgf-,C#,,77,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AaRZiItRcn8fYb5R62vfT,GDScript,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ts9pWxUimvFqfNJYCmNNw,Rust,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AJp_QRLgSG5ETXDIjUjmm,Python,,80,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,lIb5MeDoqVj6HycveOgTS,Computer Graphics,,81,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,JW5c_0JEtO-OiBoXUia6A,Ray Tracing,Computer Graphics,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,vYNj9nzu90e9xlrzHULnP,Rasterization,Computer Graphics,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,shSRnMf4NONuZ3TGPAoQc,Graphics Pipeline,Computer Graphics,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,rmtxybcavWV6A53R4ZWgc,Sampling,Computer Graphics,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,qIrePusMuvcUva9LMDmDx,Shader,Computer Graphics,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,WVgozaQPFbYthZLWMbNUg,Rendering Equation,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,eI2jym4AAz3ani-lreSKE,Reflection,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,0g1z5G2dsF4PTIfFAG984,Diffuse,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,odfZWKtPbb-lC35oeTCNV,Specular,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,THMmnx8p_P0X-dSPoHvst,Mapping,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,iBZ1JsEWI0xuLgUvfWfl-,Texture,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,r4UkMd5QURbvJ3Jlr_H9H,Bump,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,YGeGleEN203nokiZIYJN8,Parallax,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,9cBOfj58I4hBlxlQIyV9g,Horizon,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,1RdyzTI_TXqmct2bIbNh9,Computer Animation,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,WK6fLWJq9Vh2ySVrSqd-U,Color,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,1S1qPogijW2SQCiF7KLZe,Visual Perception,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,RgC9TOc0wbr2QSuvrpIDV,Tone Reproduction,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,DDN3mn0LTueBhjRzXFcbU,Lighting and Shadow,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ygtru6fqQ3gpFZRN_I8rP,Shadow Map,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Wq8siopWTD7sylNi0575X,2D,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,cv1-AwewuqJsZDBI3h84G,Cube,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Lu38SfZ38y89BffLRMmGk,Cascaded,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,VLrcBE1vb6N5fw5YESCge,Light Source,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,foD8K7V0yIxgeXwl687Bv,Directional,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,aNhyXWW2b7yKTv8y14zk9,Point,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,FetbhcK1RDt4izZ6NEUEP,Spot,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,sC3omOmL2DOyTSvET5cDa,Infinite,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,OcxesFnB5wO6VXrHYnhz-,Visibility and Occlusion,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,MlLYqO_8JDNOwKRvaM-bf,Occluder,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,1gdDeUPBRco10LpOxug4k,Culling,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,xP_VDMu1z9jiVnZaBFKJQ,Clipping,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,2ocwC0P1-ZFmjA9EmA1lV,Fog,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,UcLGWYu41Ok2NYdLNIY5C,Frustum,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,_1LkU258hzizSIgXipE0b,Light,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,lqfW8hkuN3vWtacrqBBtI,Shadow,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,-r15srXTBLnUGokpXKclH,Polygon,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,GHfLMtgmc36OCvjQvW_Su,Polyhedron,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AEAVc8Ih4fctSGGVJG0Np,Stencil Shadow,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Kx7O7RLp7aPGtOvK8e314,Graphics API,,124,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,bgWFV09AtDv1yJS5t0EaB,DirectX,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ffa5-YxRhE3zhWg7KXQ4r,OpenGL,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,CeydBMwckqKll-2AgOlyd,WebGL,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,wYUDJb-q1rtM4w2QV3Wr1,HLSL,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,j8mWMFMQCEIPUzegDDsm1,GLSL,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,EVOiWAeZsIvjLTt3EYu-6,OpenGL ES,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,oEznLciLxZJaulMlBGgg4,Metal,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,yPfhJSTFS7a72UcqF1ROK,Vulkan,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,DvV32n3NoXNEej8Fsqqs2,SPIR-V,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Hpf_CPmLpCSP8Qo07Kq1X,Game AI,,134,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Ky-95ipdgyPZGAIdqwMCk,Decision Making,Game AI,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,rwGivalwv2ozdSlVMSc4U,Decision Tree,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,aJa_2xkZuSjQ5bt6Kj5oe,State Machine,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ztoW8fBY73Es624A_tjd7,Behavior Tree,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,4ZCVUpYrCT14d_JULulLe,Fuzzy Logic,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,c6j-30p84vk3MZEF1R2hN,Markov System,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Cuc0xvCAkVyUtwOxO_Uua,Goal Oriented Behavior,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,mUyzX-DXnIKDl-r9o8d38,Movement,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,eoK70YRCz73GmzbNhh5kg,Board Game,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,oOjGqicW3eqRwWyIwJdBA,Minimax,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,KYCi4d475zZfNwlj6HZVD,AB Pruning,,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,QD9TfZn3yhGPVwiyJ6d0V,MCTS,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,Hpk8eOaOepERMmOvUgkxa,Game AI,,147,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ul5XnVwQCwr4ZaL4kBNpd,Decision Learning,,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,aw1BAGqrdBBmUwB6vMF_A,Naive Bayes Classifier,,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,sz1047M8_kScjth84yPwU,Decision Tree Learning,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,ltkEyfuDxExs7knqs79ya,Deep Learning,,153,subtopic,http://data.europa.eu/esco/skill/ecc4552a-92c5-4222-b18d-faf5ac841080,deep learning,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,AoH2r4EOHyZd8YaV24rBk,Artificial Neural Network,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,rGEHTfdNeBAX3_XqC-vvI,Reinforcements Learning,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,9_OcZ9rzedDFfwEYxAghh,Learning,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,CDYszS1U4v95GozB_drbt,Advanced Rendering,,158,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,_i7BXZq-iLxQc3QZRMees,Real-time Ray Tracing,Advanced Rendering,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,qoIkw9o8iMx7MzUyVYoR2,DirectX Ray Tracing,Advanced Rendering,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,tDGnV8dGIFr_diz4HcEjr,Vulkan Ray Tracing,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,GDLysy3__cbYidEaOmFze,OptiX,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,XvFtMHrYsBREmuerE7CGc,Physically-Based Rendering,Advanced Rendering,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,PuhXaRZ-Ql5PCqzMyz3en,Translucency & Transparency,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,H3hkafXO9zqEnWuwHa38P,Conservation of Energy,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,olY1ibR7kw1yJ58TfU-37,Metallicity,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +game-developer,game,YrQgfjsdLCIUxrwflpEHO,Microsurface Scattering,Advanced Rendering,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,m1wX27XBWKXZcTMH2U1xp,Learn the Fundamentals,,29,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Zja25damM2vXMOYCyRZiq,Test Oracles,Learn the Fundamentals,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,1976f2-opqLqV4ImPJlt0,Test Prioritization,Learn the Fundamentals,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,pH9h2tjO6raO_g4W8EgKq,Manage your Testing,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,FE_Wp2RPWFDHNaQIBLqH6,qTest,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,5Tn6Wtw8QE56LZ9BlRAmW,TestRail,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,leiCCxLJgXCpk1a--mE83,TestLink,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,aGvbxmZCHbbt9PgXL1ooJ,Zephyr,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,JInFH3JRvAxjvpIFKjUiP,What is Quality Assurance?,Learn the Fundamentals,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,vZv4Ow5bg_PbKoF557G9S,QA Mindset,Learn the Fundamentals,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,uFOVuenPyOKZGgoJXkwRZ,Testing Approaches,Learn the Fundamentals,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,y4QnZ2xQyc4x6Kr-eGBer,White Box Testing,,40,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ZmWEG7Wu-h7bZe6pGxqDg,Gray Box Testing,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,2zfwE6uzGYc2qnvOZ47LB,Black Box Testing,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ZqgeqqZTGA-y7jVNyPCt4,Project Management,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,wVqbs8Rh0WjLQqJZ0XiF0,Atlassian,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,xLPE9CqqiYz0miMFI3ThY,Assembla,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,6bS1YjGJHARAUKTywYMU9,YouTrack,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,dmfMp6ydjtHo6oKv97AzB,Trello,,47,subtopic,http://data.europa.eu/esco/skill/fdf15b35-9028-4acb-bfd2-43f00a015cd9,use personal organization software,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,gQLbDFP00itL260i1BiDe,Testing Techniques,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,wmMIL-0ytz7a3JygyB-wc,Load Testing,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,bapKhjye4oWQxTEZ4fl_c,Performance Testing,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,skrOrieK1T0hHj_mJBNsW,Stress Testing,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,MahtxMJD3ETHfgk_PQabQ,Security Testing,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,zGzpjxz3nvVH9Eu3NOPbk,Accessibility Testing,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,vYIEsjTKoO1ciypGIDlil,Non-Functional Testing,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,o4xmFhw_ilWdhpCiEotck,Functional Testing,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Ls_pezva7_ZW2HHn7RvO4,UAT,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,2h6mJeIFCU72J7aggTvnQ,Exploratory Testing,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Lve3xpC1FU91TQqoDOYv7,Sanity Testing,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,XCeXiKvBblmDArfbWjDvw,Regression Testing,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,MVShii4LZiWW_gPTJzkty,Smoke Testing,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,PMO3M33U6RuvNdINvqIAA,Unit Testing,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,a_vwz-onn6QEoc27N6oBc,Integration Testing,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Pb3QkhSCgRByJHuPxVAlU,SDLC Delivery Model,,63,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,zELjfWwfEYSc1YO8JLoJn,V Model,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,7h-Xfp2Foiyn7-pI0w7ft,Waterfall,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,47NXgbc1OTGE06qXxlQoh,Agile Model,SDLC Delivery Model,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,cJyQx-LBcOL11nkK-P2JH,Kanban,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,k3xPwDzA1WUEAwJ6-Q8PW,Scrum,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,4SLrNPD_No05CKeAVDFn5,XP,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Tdj051ANlwwpo03X1hjbF,SAFe,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,daUEq4xlh4PIltSdiD4F2,Manual Testing,,71,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,M78baCVYpsk7C6j-VPvPZ,TDD,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,2U8WRKkuF-YCEWtpgTspF,Test Planning,Manual Testing,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ELnCFVRkO_s5qI_3Yzf5U,Test Cases and Scenarios,Manual Testing,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,RD0vRC-OL2ReYLT1leJMs,Compatibility,Manual Testing,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,vP76hqx-8Pri7sxdJDGV5,Verification and Validation,Manual Testing,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,pYkfl-4gMHRj9wIeH8RTP,"HTML, CSS, JavaScript",,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,cHI05cf8fLh3XB1Bt6jNP,Browser / Dev Tools,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,jn02FD5hjhZFVWaJjjNN3,Ajax,,79,subtopic,http://data.europa.eu/esco/skill/b4dc6e4f-dc7d-445f-8ce2-d7b9d225e282,AJAX,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,qvlA7iIOvoWMXm5MCAysZ,Caching,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,_2IwBNhB5SqbPRxGhZyhq,"SWAs, PWAs, JAMStack",,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,-2RU50LUPwCQ8XRaMslY-,CSR vs SSR,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,6cGPxfJ9ipij40hnmckxV,Responsive vs Adaptive,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,_3HfVT8IDlcgvUM4h6A0_,Selenium IDE,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,mX7bNNP7WjFdlsRK6qIgy,Ghost Inspector,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,wUq-qEIh-tazYhgQQUqGG,Bug Magnet,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,cFhOYHgq1_MUSXjDI_fFN,Webdriver.io,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,CHqfXjRRdS_c6XMnfVVx-,Playwright,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,414xO4PX9rU0f39aC7awu,QA Wolf,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,iQ7xwiA6xmbLyRIkI7tXM,Cypress,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,HP55XWH18THmCNjCq-gBl,Jasmine,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Ta1leBdu-Y9LryB-0U-CT,Nightwatch,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,nf76o_NYm0-pSIVBFm7IH,Robot,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,s3HMrqNEVogftCIOZYO61,Selenium,,94,subtopic,http://data.europa.eu/esco/skill/7557f0f4-b8bc-4ac0-b91e-222ab1ba744f,tools for ICT test automation,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ZeJSeYs8fkZLQ-Pc3TqEM,Jest,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,YKHlLKIlL-Y4ZtHTLfApu,Puppeteer,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,hU5OCnEe3tG206xuGsVFd,Frontend Automation,,98,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,mPaMQ5h8ZcXKOfcuSwB2-,Backend Automation,,102,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,5cMhZ-7YMQ6ccs-AaIi-0,Cypress,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ZKOU7dWcrkKzTdt0wxwuO,Playwright,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,eE9F3YviSpmgor6V5NMj5,Soap UI,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,8zXn8R9OGWTmreBpstj03,Karateframework,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,X_nLwzc1QmShivEjfy6v9,Postman / Newman,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,gECIgOii7C5MzilSbQP9t,REST Assured,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ITtBvrJ8dsW-5LQV8tWgO,Mobile Automation,,109,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,stMeB1U3SfuefZ-yS8wGF,Espresso,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,gZnNHDjFMI003Od7u2RNa,Detox,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,UIKUiCfSw5MkrRJZ3Ah3x,Appium,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Q6eNkuRI6dPa9X44pwrea,XCUITest,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,mmDIqSD6MU3ZhWREGI5E2,Accessibility Tests,,115,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Lb1ctvpMcKIvsC0WQ5q43,Wave,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,_4jJ8YQeLcaT-z38kxRRR,AXE,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Xadg2WZTz6Cc_Ir9FsbgY,Chrome DevTools,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,wTfvbS62eyitDT8pLsVhj,Load & Performance Testing,,119,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,fkUxhrP3LhtIVgIP9Dxar,Lighthouse,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,igbQfUpmMSKYyAOVkSCLM,Webpage Test,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,J1Yx1VcO20Lc3r3PdGpUW,Gatling,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Jcp29_ASj9QZ_DjDBIapJ,K6,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,j1DYOQbIUT1tw_9WIPBkE,Artillery,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,LGZlOPNYQp0O_vapnciEI,Vegeta,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,UeeDNUPZ61_HHgcaF9-__,JMeter,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,QjAJIfSQe7WjbyYdGWSP8,Locust,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,wsJXMvRbOTh_VXKhmhPmQ,Security Testing,,128,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,75-XdVA4BL6UrcvpC9grx,Authentication / Authorization,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,mKM27KrX1CEViOwz1EDtQ,Vulnerability Scanning,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,YV6ST78AH4J0i2Rw9zhZj,Secrets Management,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,JR-MkszNvv96-S3DpyLeX,OWASP 10,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,x3HEti8-xF9Mxe5ELBM9T,Attack Vectors,,133,subtopic,http://data.europa.eu/esco/skill/501537a7-9d63-491d-ae02-09f04767ff1e,attack vectors,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,G-F6jQTOAZ2kQ36F-VrBB,Email Testing,,134,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,rFjtp3-cnaUmHiKfjPZBn,Mailinator,Email Testing,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,mIM9ausl_tSUNPUerIfEr,Gmail Tester,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,MyAAsHteSr4JCPEpqjsy9,Reporting,,137,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,o4nkmhEDGwi8yE6DSwZi5,TestRail,Reporting,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,jaHOo-vZGjTnABxQKMT3_,Allure,Reporting,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,5bNdrymdzqL0VbTqWt8r2,jUnit,Reporting,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,pJvijtG-a0vOq16EFu3Gr,Monitoring & Logs,,141,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,8CztIu0BOPZZRZsqR9asW,Grafana,Monitoring & Logs,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,QnNUZQlQ2Jhv34daeIuW8,New Relic,Monitoring & Logs,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,iceaqeXRYXoGtagWn_B7b,RunScope,Monitoring & Logs,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,H-2wWlKxD_Q1xVv99GlBj,Sentry,Monitoring & Logs,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,DCZyXcx8H2MTPcyKOhn2_,Kibana,Monitoring & Logs,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Y2I_dcVZb4xZremXoajjx,Datadog,Monitoring & Logs,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,DJDegO78Elo83eHjq8IHN,Pager Duty,Monitoring & Logs,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,s8o5fXu3XHrMduh8snLwu,Version Control System,,149,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,WrqKdOTRUiOnc1aIhTZeB,Git,Version Control System,150,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,M6v8VUpVtw5blU2gi4F2r,Repo Hosting Services,,151,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,v4gjV1qolrFXdESrY9bzG,GitHub,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,4xlbvY7NS3cemSZsEQAkD,Bitbucket,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,RfwyTgwfb_xu5H9N-8_s9,GitLab,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,-n2yAprKdWg3YVi2vp25d,CI / CD,,155,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,z1kZkWTL_RRPZY59aWylU,Circle CI,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,3oDyxhhbCCqxuCh1sT9VC,Drone,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,3l2dkN1vBy9johFhAgZhT,Jenkins,,158,subtopic,http://data.europa.eu/esco/skill/f47a1998-0beb-43be-9f46-380aa4d183da,Jenkins (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Rz1E97EQCxESu44dTQd5t,Travis CI,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,iW3oaTl7c3a1kNlCKy-13,GitLab CI,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,j4J5OhHEf7t-LVNkNVW3M,Bamboo,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,k3TBVtepeQEGzKGceDkPJ,TeamCity,CI / CD,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,u0tKd7HZVN2gGv9Cz3jHz,Azure DevOps Services,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,Pm-Wx7Z3jCUFcafetsQYi,Headless Testing,,164,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,XoYsStVqfMeCHkGBlbRhD,Repo Hosting Services,,165,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,m0gT774b59xsSJKrrjTxq,Zombie.js,Headless Testing,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,sHyFCf7XQKxGxchaYxp2B,Puppeteer,,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,0TUq4KRbWTLsLuYI9sgi0,Playwright,,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,D7zGshmgwqWluF-W7OTWe,Cypress,Headless Testing,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,JO--NVMs3saUNjh3mcd7z,Headless Chrome,Headless Testing,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,ryoSezFNeiunCAZygCbaQ,Headless Fox,Headless Testing,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +qa,qa,-Sf7DLr8Ywoorrmsx3bfd,HTML Unit,Headless Testing,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,oimYzZYFXKjgvc7D4c-2u,Fundamental IT Skills,,26,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Ih0YZt8u9vDwYo8y1t41n,Computer Hardware Components,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,F1QVCEmGkgvz-_H5lTxY2,Connection Types and their function,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,pJUhQin--BGMuXHPwx3JJ,OS-Independent Troubleshooting,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_7RjH4Goi0x6Noy6za0rP,Understand Basics of Popular Suites,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,T0aU8ZQGShmF9uXhWY4sD,Basics of Computer Networking,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,hwAUFLYpc_ftCfXq95dey,NFC,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fUBNKHNPXbemRYrnzH3VT,WiFi,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,DbWf5LdqiByPiJa4xHtl_,Bluetooth,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,KsZ63c3KQLLn373c5CZnp,Infrared,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,E7yfALgu9E2auOYDOTmex,iCloud,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,IOK_FluAv34j3Tj_NvwdO,Google Suite,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,-5haJATqlmj0SFSFAqN6A,MS Office Suite,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,wkuE_cChPZT2MHyGjUuU4,HackTheBox,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,kht-L7_v-DbglMYUHuchp,TryHackMe,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,W94wY_otBuvVW_-EFlKA6,VulnHub,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,pou5xHwnz9Zsy5J6lNlKq,picoCTF,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,WCeJrvWl837m1BIjuA1Mu,SANS Holiday Hack Challenge,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lbAgU5lR1O7L_5mCbNz_D,CompTIA A+,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,p34Qwlj2sjwEPR2ay1WOK,CompTIA Linux+,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,4RGbNOfMPDbBcvUFWTTCV,CompTIA Network+,,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,4RD22UZATfL8dc71YkJwQ,CCNA,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,AxeDcKK3cUtEojtHQPBw7,CompTIA Security+,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,AAo7DXB7hyBzO6p05gx1i,CEH,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lqFp4VLY_S-5tAbhNQTew,CISA,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,s86x24SHPEbbOB9lYNU-w,CISM,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,nlmATCTgHoIoMcEOW8bUW,GSEC,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,t4h9rEKWz5Us0qJKXhxlX,GPEN,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,rwniCTWfYpKP5gi02Pa9f,GWAPT,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ZiUT-lyIBfHTzG-dwSy96,GIAC,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,SwVGVP2bbCFs2uNg9Qtxb,OSCP,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,rA1skdztev3-8VmAtIlmr,CREST,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,BqvijNoRzSGYLCMP-6hhr,CISSP,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,UY6xdt_V3YMkZxZ1hZLvW,Operating Systems,,64,topic,http://data.europa.eu/esco/skill/f9a6f35b-01a7-40c9-8b61-b6ee46f97272,operating systems,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,BNUKEQ4YpZmIhSPQdkHgU,Windows,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,4frVcjYI1VlVU9hQgpwcT,Linux,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,dztwr-DSckggQbcNIi4_2,MacOS,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,02aaEP9E5tlefeGBxf_Rj,Installation and Configuration,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,yXOGqlufAZ69uiBzKFfh6,Different Versions and Differences,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,MGitS_eJBoY99zOR-W3F4,Navigating using GUI and CLI,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,bTfL7cPOmBBFl-eHxUJI6,Understand Permissions,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Ot3LGpM-CT_nKsNqIKIye,Installing Software and Applications,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,zRXyoJMap9irOYo3AdHE8,Performing CRUD on Files,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xeRWOX1fWQDLNLWMAFTEe,Troubleshooting,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,WDrSO7wBNn-2jB8mcyT7j,Common Commands,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,gSLr-Lc119eX9Ig-kDzJ2,Networking Knowledge,,77,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,OXUd1UPPsBhNoUGLKZJGV,Understand the OSI Model,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ViF-mpR17MB3_KJ1rV8mS,Common Protocols and their Uses,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0tx2QYDYXhm85iYrCWd9U,Common Ports and their Uses,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,dJ0NUsODFhk52W2zZxoPh,SSL and TLS Basics,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,umbMBQ0yYmB5PgWfY6zfO,Basics of NAS and SAN,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,E8Z7qFFW-I9ivr0HzoXCq,Basics of Subnetting,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,2nQfhnvBjJg1uDZ28aE4v,Public vs Private IP Addresses,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0TWwox-4pSwuXojI8ixFO,localhost,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,W_oloLu2Euz5zRSy7v_T8,loopback,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,PPIH1oHW4_ZDyD3U3shDg,CIDR,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,f-v8qtweWXFY_Ryo3oYUF,subnet mask,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,5rKaFtjYx0n2iF8uTLs8X,default gateway,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,d5Cv3EXf6OXW19yPJ4x6e,VLAN,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,gfpvDQz61I3zTB7tGu7vp,DMZ,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,M52V7hmG4ORf4TIVw3W3J,ARP,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ZTC5bLWEIQcdmowc7sk_E,VM,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,T4312p70FqRBkzVfWKMaR,DHCP,,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ORIdKG8H97VkBUYpiDtXf,DNS,,97,subtopic,http://data.europa.eu/esco/skill/071233c4-ad2b-4f50-b79f-768d2231163e,domain name service,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Kkd3f_0OYNCdpDgrJ-_Ju,NAT,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,FdoqB2---uDAyz6xZjk_u,IP,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lwSFIbIX-xOZ0QK2sGFb1,Router,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,r9byGV8XuBPzoqj5ZPf2W,Switch,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,gTozEpxJeG1NTkVBHH-05,VPN,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LrwTMH_1fTd8iB9wJg-0t,MAN,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xWxusBtMEWnd-6n7oqjHz,LAN,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,vCkTJMkDXcQmwsmeNUAX5,WAN,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,QCVYF1rmPsMVtklBNDNaB,WLAN,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,R5HEeh6jwpQDo27rz1KSH,DHCP,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,r1IKvhpwg2umazLGlQZL1,DNS,,110,subtopic,http://data.europa.eu/esco/skill/071233c4-ad2b-4f50-b79f-768d2231163e,domain name service,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tf0TymdPHbplDHvuVIIh4,NTP,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,hN8p5YBcSaPm-byQUIz8L,IPAM,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,P0ZhAXd_H-mTOMr13Ag31,Star,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9vEUVJ8NTh0wKyIE6-diY,Ring,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,PYeF15e7iVB9seFrrO7W6,Mesh,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0DWh4WmLK_ENDuqQmQcu4,Bus,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,8Mog890Lj-gVBpWa05EzT,SSH,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Ia6M1FKPNpqLDiWx7CwDh,RDP,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ftYYMxRpVer-jgSswHLNa,FTP,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,YEy6o-clTBKZp1yOkLwNb,SFTP,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,3Awm221OJHxXNLiL9yxfd,HTTP / HTTPS,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LKK1A5-xawA7yCIAWHS8P,SSL / TLS,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,AjywuCZdBi9atGUbetlUL,VMWare,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,vGVFhZXYOZOy4qFpLLbxp,VirtualBox,,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,BisNooct1vJDKaBKsGR7_,esxi,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jqX1A5hFF3Qznqup4lfiF,proxmox,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,CIoLaRv5I3sCr9tBnZHEi,Hypervisor,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,251sxqoHggQ4sZ676iX5w,VM,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LocGETHz6ANYinNd5ZLsS,GuestOS,,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,p7w3C94xjLwSMm5qA8XlL,HostOS,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tk4iG5i1Ml9w9KRO1tGJU,nslookup,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jr8JlyqmN3p7Ol3_kD9AH,iptables,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,k6UX0BJho5arjGD2RWPgH,Packet Sniffers,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,u-6xuZUyOrogh1bU4cwER,ipconfig,,142,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,2M3PRbGzo14agbEPe32ww,netstat,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,iJRQHzh5HXADuWpCouwxv,Port Scanners,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,GuuY-Q6FZzfspB3wrH64r,ping,,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,D2YYv1iTRGken75sHO0Gt,dig,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,hkO3Ga6KctKODr4gos6qX,arp,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,K05mEAsjImyPge0hDtsU0,Protocol Analyzers,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xqwIEyGfdZFxk6QqbPswe,nmap,,149,subtopic,http://data.europa.eu/esco/skill/de586dcf-d7e5-4340-bf5b-d59026f1b436,penetration testing tool,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xFuWk7M-Vctk_xb7bHbWs,route,,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,y8GaUNpaCT1Ai88wPOk6d,tcpdump,,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,cSz9Qx3PGwmhq3SSKYKfg,tracert,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lG6afUOx3jSQFxbH92otL,Kerberos,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lV3swvD6QGLmD9iVfbKIF,LDAP,,154,subtopic,http://data.europa.eu/esco/skill/a57a54b6-2f2e-43e4-9621-b52f4a63cb08,LDAP,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xL32OqDKm6O043TYgVV1r,SSO,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tH3RLnJseqOzRIbZMklHD,RADIUS,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,WXRaVCYwuGQsjJ5wyvbea,Certificates,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,vYvFuz7lAJXZ1vK_4999a,Local Auth,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_hYN0gEi9BL24nptEtXWU,Security Skills and Knowledge,,160,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,rzY_QsvnC1shDTPQ-til0,Understand Common Hacking Tools,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Lg7mz4zeCToEzZBFxYuaU,Understand Common Exploit Frameworks,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Rae-f9DHDZuwIwW6eRtKF,Understand Concept of Defense in Depth,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Ec6EairjFJLCHc7b-1xxe,Understand Concept of Runbooks,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7KLGFfco-hw7a62kXtS3d,Understand Basics of Forensics,,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_x3BgX93N-Pt1_JK7wk0p,Basics and Concepts of Threat Hunting,,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lcxAXtO6LoGd85nOFnLo8,Basics of Vulnerability Management,,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,uoGA4T_-c-2ip_zfEUcJJ,Basics of Reverse Engineering,,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,NkAAQikwH-A6vrF8fWpuB,Penetration Testing Rules of Engagement,,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,PUgPgpKio4Npzs86qEXa7,Perimiter vs DMZ vs Segmentation,,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,HavEL0u65ZxHt92TfbLzk,Core Concepts of Zero Trust,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,kqT0FRLt9Ak9P8PhHldO-,Roles of Compliance and Auditors,,174,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ggAja18sBUUdCfVsT0vCv,Understand the Definition of Risk,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9asy3STW4oTYYHcUazaRj,Understand Backups and Resiliency,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,H38Vb7xvuBJXVzgPBdRdT,Cyber Kill Chain,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,pnfVrOjDeG1uYAeqHxhJP,MFA & 2FA,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_S25EOGS3P8647zLM5i-g,Operating System Hardening,,179,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,aDF7ZcOX9uR8l0W4aqhYn,Understand Concept of Isolation,,180,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,FJsEBOFexbDyAj86XWBCc,Basics of IDS and IPS,,181,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,bj5YX8zhlam0yoNckL8e4,Honeypots,,182,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,WG7DdsxESm31VcLFfkVTz,Authentication vs Authorization,,183,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7tDxTcKJNAUxbHLPCnPFO,Blue / Red / Purple Teams,Security Skills and Knowledge,184,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,XwRCZf-yHJsXVjaRfb3R4,False Negative / False Positive,,185,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,M6uwyD4ibguxytf1od-og,True Negative / True Positive,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,wN5x5pY53B8d0yopa1z8F,"Basics of Threat Intel, OSINT",,187,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,zQx_VUS1zRmF4zCGjJD5-,Understand Handshakes,,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,uz6ELaLEu9U4fHVfnQiOa,Understand CIA Triad,,189,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,cvI8-sxY5i8lpelW9iY_5,Privilege Escalation,,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fyOYVqiBqyKC4aqc6-y0q,Web Based Attacks and OWASP10,,191,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,v7CD_sHqLWbm9ibXXESIK,Learn how Malware works and Types,,192,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Hoou7kWyfB2wx_yFHug_H,nmap,,194,subtopic,http://data.europa.eu/esco/skill/de586dcf-d7e5-4340-bf5b-d59026f1b436,penetration testing tool,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jJtS0mgCYc0wbjuXssDRO,tracert,,195,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,OUarb1oS1-PX_3OXNR0rV,nslookup,,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,W7iQUCjODGYgE4PjC5TZI,curl,,197,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Cclbt4bNfkHwFwZOvJuLK,hping,,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,yfTpp-ePuDB931FnvNB-Y,ping,,199,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fzdZF-nzIL69kaA7kwOCn,arp,,200,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,D2ptX6ja_HvFEafMIzWOy,cat,,201,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9xbU_hrEOUtMm-Q09Fe6t,dd,,202,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,VNmrb5Dm4UKUgL8JBfhnE,head,,203,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Dfz-6aug0juUpMmOJLCJ9,grep,,204,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Sm9bxKUElINHND8FdZ5f2,wireshark,,205,subtopic,http://data.europa.eu/esco/skill/8fa510d0-a8a6-4932-a361-00f8442cfe23,Wireshark,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,gNan93Mg9Ym2AF3Q2gqoi,winhex,,206,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,wspNQPmqWRjKoFm6x_bVw,memdump,,207,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_jJhL1RtaqHJmlcWrd-Ak,FTK Imager,,208,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,bIwpjIoxSUZloxDuQNpMu,autopsy,,209,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,XyaWZZ45axJMKXoWwsyFj,dig,,210,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,762Wf_Eh-3zq69CZZiIjR,tail,,211,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,IXNGFF4sOFbQ_aND-ELK0,ipconfig,,212,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jqWhR6oTyX6yolUBv71VC,Salting,,214,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0UZmAECMnfioi-VeXcvg8,Hashing,,215,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,rmR6HJqEhHDgX55Xy5BAW,Key Exchange,,216,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fxyJxrf3mnFTa3wXk1MCW,PKI,,217,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7svh9qaaPp0Hz23yinIye,Private vs Public Keys,,218,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,kxlg6rpfqqoBfmMMg3EkJ,Obfuscation,,219,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,auR7fNyd77W2UA-PjXeJS,ATT&CK,,221,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7Bmp4x6gbvWMuVDdGRUGj,Kill Chain,,222,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,AY-hoPGnAZSd1ExaYX8LR,Diamond Model,,223,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,oRssaVG-K-JwlL6TAHhXw,ISO,,225,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,SOkJUTd1NUKSwYMIprv4m,NIST,,226,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fjEdufrZAfW4Rl6yDU8Hk,RMF,,227,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,sSihnptkoEqUsHjDpckhG,CIS,,228,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,HjfgaSEZjW9BOXy_Ixzkk,CSF,,229,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,c2kY3wZVFKZYxMARhLIwO,SIEM,,231,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,i0ulrA-GJrNhIVmzdWDrn,SOAR,,232,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,zR6djXnfTSFVEfvJonQjf,ParrotOS,,234,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,w6wXkoLrv0_d-Ah0txUHd,Kali Linux,,235,subtopic,http://data.europa.eu/esco/skill/625b57ee-29d4-425b-bf99-9fd54dd021fe,Kali Linux,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,10qbxX8DCrfyH7tgYexxQ,LOLBAS,,236,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,KbFwL--xF-eYjGy8PZdrM,Event Logs,,239,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7oFwRkmoZom8exMDtMslX,syslogs,,240,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,xXz-SwvXA2cLfdCd-hLtW,netflow,,241,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,TIxEkfBrN6EXQ3IKP1B7u,Packet Captures,,242,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,np0PwKy-EvIa_f_LC6Eem,Firewall Logs,,243,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,OAukNfV5T0KTnIF9jKYRF,MAC-based,,245,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,6oAzYfwsHQYNVbi7c2Tly,NAC-based,,246,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,W7bcydXdwlubXF2PHKOuq,Port Blocking,,247,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,FxuMJmDoDkIsPFp2iocFg,Group Policy,,248,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,8JM95sonFUhZCdaynUA_M,ACLs,,249,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,oFgyQYL3Ws-l7B5AF-bTR,Sinkholes,,250,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,e-MDyUR3GEv-e4Qsx_5vV,Patching,,251,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,UF3BV1sEEOrqh5ilnfM1B,Jump Server,,252,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LEgJtu1GZKOtoAXyOGWLE,Endpoint Security,,253,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9Z6HPHPj4escSVDWftFEx,FTP vs SFTP,,255,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,6ILPXeUDDmmYRiA_gNTSr,SSL vs TLS,,256,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,gNFVtBxSYP5Uw3o3tlJ0M,IPSEC,,257,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LLGXONul7JfZGUahnK0AZ,DNSSEC,,258,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,z_fDvTgKw51Uepo6eMQd9,LDAPS,,259,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_9lQSG6fn69Yd9rs1pQdL,SRTP,,260,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9rmDvycXFcsGOq3v-_ziD,S/MIME,,261,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,3140n5prZYySsuBHjqGOJ,Antivirus,,263,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9QtY1hMJ7NKLFztYK-mHY,Antimalware,,264,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,QvHWrmMzO8IvNQ234E_wf,EDR,,265,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,iolsTC-63d_1wzKGul-cT,DLP,,266,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,35oCRzhzpVfitQPL4K9KC,ACL,,267,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tWDo5R3KU5KOjDdtv801x,Firewall & Nextgen Firewall,,268,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,l5EnhOCnkN-RKvgrS9ylH,HIPS,,269,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LIPtxl_oKZRcbvXT4EdNf,NIDS,,270,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7w9qj16OD4pUzq-ItdxeK,NIPS,,271,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jWl1VWkZn3n1G2eHq6EnX,Host Based Firewall,,272,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,SLKwuLHHpC7D1FqrpPRAe,Sandboxing,,273,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,1jwtExZzR9ABKvD_S9zFG,EAP vs PEAP,,274,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,HSCGbM2-aTnJWUX6jGaDP,WPS,,275,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,MBnDE0VyVh2u2p-r90jVk,WPA vs WPA2 vs WPA3 vs WEP,,276,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,w6V4JOtXKCMPAkKIQxvMg,Preparation,,278,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,XsRoldaBXUSiGbvY1TjQd,Identification,,279,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,l7WnKuR2HTD4Vf9U2TxkK,Containment,,280,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,N17xAIo7sgbB0nrIDMWju,Eradication,,281,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,vFjbZAJq8OfLb3_tsc7oT,Recovery,,282,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ErRol7AT02HTn3umsPD_0,Lessons Learned,,283,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,zqRaMmqcLfx400kJ-h0LO,Zero Day,,285,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,HPlPGKs7NLqmBidHJkOZg,Known vs Unknown,,286,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,l0BvDtwWoRSEjm6O0WDPy,APT,,287,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,rxzcAzHjzIc9lkWSw0fef,VirusTotal,,289,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,h__KxKa0Q74_egY7GOe-L,Joe Sandbox,,290,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,GZHFR43UzN0WIIxGKZOdX,any.run,,291,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lFt1k1Q-NlWWqyDA3gWD1,urlvoid,,292,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lMiW2q-b72KUl-2S7M6Vb,urlscan,,293,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,-RnlvUltJ9IDtH0HEnMbN,WHOIS,,294,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,7obusm5UtHwWMcMMEB3lt,Phishing,,296,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,M65fCl72qlF0VTbGNT6du,Whishing,,297,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,KSwl6sX2W47vUmytpm8LH,Whaling,,298,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,d4U6Jq-CUB1nNN2OCFoum,Smishing,,299,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,cbEMUyg_btIPjdx-XqIM5,Spam vs Spim,,300,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,FD0bkmxNpPXiUB_NevEUf,Shoulder Surfing,,301,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Iu0Qtk13RjrhHpSlm0uyh,Dumpster Diving,,302,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,o-keJgF9hmifQ_hUD91iN,Tailgating,,303,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,v9njgIxZyabJZ5iND3JGc,Zero day,,304,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,O1VceThdxRlgQ6DcGyY7Y,Social Engineering,,305,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,UU_inxa8Y2lLP2BRhdLDT,Reconnaissance,,306,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ZEgxmvjWPp5NofLFz_FTJ,Impersonation,,307,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,dcvuKHq0nHgHLcLwtl4IJ,Watering Hole Attack,,308,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,cO70zHvHgBAH29khF-hBW,Drive by Attack,,309,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0LeDwj_tMaXjQBBOUJ5CL,Typo Squatting,,310,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Q0i-plPQkb_NIvOQBVaDd,Brute Force vs Password Spray,,311,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,IF5H0ZJ72XnqXti3jRWYF,DoS vs DDoS,,313,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ODlVT6MhV-RVUbRMG0mHi,MITM,,314,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LteSouUtAj3JWWOzcjQPl,Spoofing,,315,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,O1fY2n40yjZtJUEeoItKr,Evil Twin,,316,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,urtsyYWViEzbqYLoNfQAh,DNS Poisoning,,317,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,LfWJJaT3fv0p6fUeS8b84,Deauth Attack,,318,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,u4hySof6if5hiONSaW-Uf,VLAN Hopping,,319,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Ee7LfbhwJbiWjJ3b_bbni,Rogue Access Point,,320,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,n8ZOZxNhlnw7DpzoXe_f_,Buffer Overflow,,321,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,nOND14t7ISgSH3zNpV3F8,Memory Leak,,322,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,2jo1r9O_rCnDwRv1_4Wo-,XSS,,323,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,P-Am25WJV8cFd_KsX7cdj,SQL Injection,,324,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,pK2iRArULlK-B3iSVo4-n,CSRF,,325,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,mIX8PsIGuwgPCGQZ6ok2H,Replay Attack,,326,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,sMuKqf27y4iG0GrCdF5DN,Pass the Hash,,327,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,L0ROYh2DNlkybNDO2ezJY,Directory Traversal,,328,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,lv6fI3WeJawuCbwKtMRIh,Stakeholders,,330,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,05tH6WhToC615JTFN-TPc,HR,,331,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,C5bCIdPi0gGkY_r4qqoXZ,Legal,,332,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,05Gbgy6aawYlYIx38u8DE,Compliance,,333,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,s9tHpzYRj2HCImwQhnjFM,Management,,334,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,vVaBQ5VtsE_ZeXbCOF8ux,Cloud Skills and Knowledge,,336,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ThLsXkqLw--uddHz0spCH,Understand the Concept of Security in the Cloud,,337,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,XL3FVeGFDhAl_gSol6Tjt,Understand the basics and general flow of deploying in the cloud,,338,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,KGjYM4Onr5GQf1Yv9IabI,Understand the differences between cloud and on-premises,,339,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,RJctUpvlUJGAdwBNtDSXw,Understand the concept of Infrastructure as Code,,340,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,-83ltMEl3le3yD68OFnTM,Understand the Concept of Serverless,,341,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,sVw5KVNxPEatBRKb2ZbS_,SaaS,,342,subtopic,http://data.europa.eu/esco/skill/83218cac-3599-417e-93d2-26013cdccd98,service-oriented modelling,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,PQ_np6O-4PK2V-r5lywQg,PaaS,,343,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,1nPifNUm-udLChIqLC_uK,IaaS,,344,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ecpMKP1cQXXsfKETDUrSf,Private,,347,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ZDj7KBuyZsKyEMZViMoXW,Public,,348,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,ywRlTuTfh5-NHnv4ZyW1t,Hybrid,,349,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,0LztOTc3NG3OujCVwlcVU,AWS,,350,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tOLA5QPKi6LHl1ljsOMwX,GCP,,351,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,GklBi7Qx1akN_cS9UMrha,Azure,,352,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,2jsTgT7k8MeaDtx6RJhOP,S3,,354,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,9OastXVfiG1YRMm68ecnn,Dropbox,,355,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,4Man3Bd-ySLFlAdxbLOHw,Box,,356,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,MWqnhDKm9jXvDDjkeVNxm,OneDrive,,357,subtopic,http://data.europa.eu/esco/skill/b769f524-0f25-44d7-8538-5c46710a040e,manage digital documents,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,fTZ4PqH-AMhYA_65w4wFO,Google Drive,,358,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Wqy6ki13hP5c0VhGYEhHj,iCloud,,359,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,_RnuQ7952N8GWZfPD60sJ,Programming Skills,,361,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,XiHvGy--OkPFfJeKA6-LP,Python,Programming Skills,362,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,jehVvdz8BnruKjqHMKu5v,Go,Programming Skills,363,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,2SThr6mHpX6rpW-gmsqxG,JavaScript,Programming Skills,364,subtopic,http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7,JavaScript,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,8jj9hpe9jQIgCc8Txyw3O,C++,Programming Skills,365,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,tao0Bb_JR0Ubl62HO8plp,Bash,Programming Skills,366,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,paY9x2VJA98FNGBFGRXp2,Power Shell,Programming Skills,367,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Jd9t8e9r29dHRsN40dDOk,GTFOBINS,,371,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +cyber-security,security,Rnpx7VkhrBkSQTni6UuTR,WADCOMS,,372,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,4zicbh7Wg2lmKSRhb6E-L,Understand the Basics,,9,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,EGG99VA-PEdWdVxNDLtG_,What is Software Architecture,Understand the Basics,10,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,eG38hT0rotYJ3G-t9df9R,What is a Software Architect,Understand the Basics,11,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,2sR4KULvAUUoOtopvsEBs,Levels of Architecture,Understand the Basics,12,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Lqe47l4j-C4OwkbkwPYry,Application Architecture,Understand the Basics,13,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,uGs-9xE3DMJxKhenltbFK,Solution Architecture,,14,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,vlW07sc-FQnxPMjDMn8_F,Enterprise Architecture,,15,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,rUxbG2S2nJuA1YVY6sjiX,Responsibilities,,21,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,lBtlDFPEQvQ_xtLtehU0S,Important Skills to Learn,,29,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,fBd2m8tMJmhuNSaakrpg4,Design & Architecture,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,MSDo0nPk_ghRYkZS4MAQ_,Decision Making,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,lrtgF1RTaS4TCKww0aY6C,Simplifying Things,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,77KvWCA1oHSGgDKBTwjv7,How to Code,Important Skills to Learn,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,5D-kbQ520k1D3fCtD01T7,Documentation,Important Skills to Learn,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Ac49sOlQKblYK4FZuFHDR,Communication,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,m0ZYdqPFDoHOPo18wKyvV,Estimate and Evaluate,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,otHQ6ye1xgkI1qb4tEHVF,Balance,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,LSWlk9A3b6hco9Il_elao,Consult & Coach,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,YW6j3Sg511dXToTcwSnOS,Marketing Skills,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,hFx3mLqh5omNxqI9lfaAQ,Technical Skills,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,uoDtVFThaV6OMK2wXGfP5,Programming Languages,,41,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,a5DB_hsD4bAf8BtHNFNPo,Java / Kotlin / Scala,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,j2Ph2QcKwmKlbaMHz1l_i,Python,,43,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,U_Hmzfjjs1jVtu2CZ0TlG,Ruby,,44,subtopic,http://data.europa.eu/esco/skill/0ccdfe98-f845-4598-84a1-3dca66e9d9a3,Ruby (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,nKlM9k4qAh4wBFXqM-2kC,Go,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,bhP5gMpRVebSFpCeHVXBj,JavaScript / TypeScript,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,D1IXOBUrrXf5bXhVu9cmI,.NET Framework Based,Programming Languages,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,_U0VoTkqM1d6NR13p5azS,Patterns & Design Principles,,48,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,AMDLJ_Bup-AY1chl_taV3,OOP,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,jj5otph6mEYiR-oU5WVtT,"MVC, MVP, MVVM",Patterns & Design Principles,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,RsnN5bt8OhSMjSFmVgw-X,"CQRS, Eventual Consistency",,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,AoWO2BIKG5X4JWir6kh5r,Actors,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,bbKEEk7dvfFZBBJaIjm0j,"ACID, CAP Theorem",,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,QNG-KP01WQnq8o1-In1-n,SOLID,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,DnP66pjK3b8tCtYr05n2G,TDD,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,IIelzs8XYMPnXabFKRI51,DDD,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,diu8MyHxZuZSdhavYVj1T,Tools,,57,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,ZEzYb-i55hBe9kK3bla94,Git,Tools,58,subtopic,http://data.europa.eu/esco/skill/9d2e926f-53d9-41f5-98f3-19dfaa687f3f,tools for software configuration management,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,CYnUg_okOcRrD7fSllxLW,Slack,Tools,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,a6joS9WXg-rbw29_KfBd9,Trello,Tools,60,subtopic,http://data.europa.eu/esco/skill/fdf15b35-9028-4acb-bfd2-43f00a015cd9,use personal organization software,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,3bpd0iZTd3G-H8A7yrExY,Atlassian Tools,Tools,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,PyTuVs08_z4EhLwhTYzFu,GitHub,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,SuMhTyaBS9vwASxAt39DH,Tools,,63,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,OaLmlfkZid7hKqJ9G8oNV,Architecture,,64,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,FAXKxl3fWUFShYmoCsInZ,Serverless,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,mka_DwiboH5sGFhXhk6ez,Client / Server,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,05hLO2_A8Tr6cLJGFRhOh,Layered,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,j7OP6RD_IAU6HsyiGaynx,Distributed Systems,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,6uvmMgvOwGyuLC5TOhjFu,Service Oriented,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,IzFTn5-tQuF_Z0cG_w6CW,Security,,70,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,7tBAD0ox9hTK4D483GTRo,Hashing Algorithms,Security,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,OpL2EqvHbUmFgnpuhtZPr,PKI,Security,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,KhqUK-7jdClu9M2Pq7x--,OWASP,,73,subtopic,http://data.europa.eu/esco/skill/902fb91c-3113-4004-9b4f-79aa86b638b7,web application security threats,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,KiwFXB6yd0go30zAFMTJt,Auth Strategies,Security,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,YCJYRA3b-YSm8vKmGUFk5,Working with Data,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,92GG4IRZ3FijumC94aL-T,"Hadoop, Spark, MapReduce",Working with Data,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,JUFE4OQhnXOt1J_MG-Sjf,"ETL, Datawarehouses",Working with Data,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,n5AcBt_u8qtTe3PP9svPZ,SQL Databases,Working with Data,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,57liQPaPyVpE-mdLnsbi0,NoSQL Databases,Working with Data,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,a0baFv7hVWZGvS5VLh5ig,Apache Spark,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,I_VjjmMK52_tS8qjQUspN,Hadoop,,81,subtopic,http://data.europa.eu/esco/skill/e46291c7-52b9-4174-bd59-178884861038,Hadoop,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,B5YtP8C1A0jB3MOdg0c_q,Datawarehouse Principles,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Ocn7-ctpnl71ZCZ_uV-uD,APIs & Integrations,,84,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,priDGksAvJ05YzakkTFtM,gRPC,APIs & Integrations,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,fELnBA0eOoE-d9rSmDJ8l,"ESB, SOAP",,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Sp3FdPT4F9YnTGvlE_vyq,GraphQL,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Ss43xwK1ydEToj6XmmCt7,REST,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,DwNda95-fE7LWnDA6u1LU,"BPM, BPEL",,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,4NVdEbmpQVHpBc7582S6E,Messaging Queues,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,j9Y2YbBKi3clO_sZ2L_hQ,"Web, Mobile",,91,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,6FDGecsHbqY-cm32yTZJa,Functional Programming,"Web, Mobile",92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,mCiYCbKIOVU34qil_q7Hg,"React, Vue, Angular","Web, Mobile",93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,ulwgDCQi_BYx5lmll7pzU,"SPA, SSR, SSG","Web, Mobile",94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,vpko5Kyf6BZ5MHpxXOKaf,Microfrontends,"Web, Mobile",95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,s0RvufK2PLMXtlsn2KAUN,W3C and WHATWG,"Web, Mobile",96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,C0g_kQFlte5siHMHwlHQb,Reactive Programming,"Web, Mobile",97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,hjlkxYZS7Zf9En3IUS-Wm,Frameworks,,98,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,LQlzVxUxM3haWRwbhYHKY,BABOK,Frameworks,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,wFu9VO48EYbIQrsM8YUCj,IAF,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,8FTKnAKNL9LnZBrw9YXqK,UML,,101,subtopic,http://data.europa.eu/esco/skill/7193cb6d-8334-494f-86e5-21e6d03a47c3,unified modelling language,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,5TDTU22Fla2mRr6JeOcaY,TOGAF,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,UyIwiIiKaa6LTQaqzbCam,Management,,103,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,hRug9yJKYacB9X_2cUalR,PMI,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Rq1Wi-cHjS54SYo-Btp-e,ITIL,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,SJ5lrlvyXgtAwOx4wvT2W,Prince2,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,7rudOREGG-TTkCosU0hNw,RUP,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,qwpsGRFgzAYstM7bJA2ZJ,LeSS,,110,subtopic,http://data.europa.eu/esco/skill/26fa7a33-a426-4cd5-9792-33bf668612e1,LESS,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Bg7ru1q1j6pNB43HGxnHT,SaFE,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,O7H6dt3Z7EKohxfJzwbPM,Kanban,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,PKqwKvoffm0unwcFwpojk,Scrum,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,7fL9lSu4BD1wRjnZy9tM9,XP,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,cBWJ6Duw99tSKr7U6OW3A,Networks,,115,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Mt5W1IvuHevNXVRlh7z26,OSI,Networks,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,UCCT7-E_QUKPg3jAsjobx,TCP/IP Model,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Nq6o6Ty8VyNRsvg-UWp7D,"HTTP, HTTPS",,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,6_EOmU5GYGDGzmNoLY8cB,Proxies,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,Hqk_GGsFi14SI5fgPSoGV,Firewalls,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,EdJhuNhMSWjeVxGW-RZtL,Operations Knowledge,,121,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,igf9yp1lRdAlN5gyQ8HHC,Infrastructure as Code,Operations Knowledge,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,C0rKd5Rr27Z1_GleoEZxF,Cloud Providers,Operations Knowledge,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,WoXoVwkSqXTP5U8HtyJOL,Serverless Concepts,Operations Knowledge,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,XnvlRrOhdoMsiGwGEhBro,Linux / Unix,Operations Knowledge,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,OErbfM-H3laFm47GCHNPI,Service Mesh,Operations Knowledge,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,isavRe4ANVn77ZX6gNSLH,CI / CD,Operations Knowledge,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,l3oeo65FyV5HHvw5n_1wa,Containers,Operations Knowledge,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,CxceVdaNCyKDhs0huDtcL,Cloud Design Patterns,Operations Knowledge,129,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,8yALyPVUZPtd7LX3GrO1e,Enterprise Software,,131,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,gdtI0H_PzzTj_aFQn_NeA,MS Dynamics,Enterprise Software,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,TxWAznp1tUtZ1MvThf9M1,"SAP ERP, HANA, Business Objects",Enterprise Software,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,YfYviOXqGVp9C6DuhqBrn,EMC DMS,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,5EVecZmvor09LjD7WR_Y9,IBM BPM,Enterprise Software,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,mOXyzdNn8W-9R99ffcnor,Salesforce,Enterprise Software,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +software-architect,architect,b6lCGw82qKpUmsxe1r1f5,Microservices,Architecture,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,lDIy56RyC1XM7IfORsSLD,Introduction,,19,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,soar-NBWCr4xVKj7ttfnc,What are Relational Databases?,Introduction,20,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,p3AmRr_y_ZBKzAU5eh7OU,RDBMS Benefits and Limitations,Introduction,21,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,IAKERTzTpTds5kZLMCapM,PostgreSQL vs Other RDBMS,Introduction,22,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,D0doJTtLu-1MmFOfavCXN,PostgreSQL vs NoSQL Databases,Introduction,23,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-M9EFgiDSSAzj9ISk-aeh,Basic RDBMS Concepts,,24,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,RoYP1tYw5dvhmkVTo1HS-,Object Model,,25,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,xVocG4LuFdtphwoOxiJTa,Queries,,26,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,4Pw7udOMIsiaKr7w9CRxc,Data Types,,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Rd3RLpyLMGQZzrxQrxDGo,Rows,,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,cty2IjgS1BWltbYmuxxuV,Columns,,29,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,W8NhR4SqteMLfso8AD6H8,Tables,,30,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,mF6qAlo2ULJ3lECG2m0h7,Schemas,,31,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,DU-D3-j9h6i9Nj5ci8hlX,Databases,,32,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,mDVbjdVN0spY7dI_8k1YW,Relational Model,,33,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-LuxJvI5IaOx6NqzK0d8S,Domains,,34,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,XvZMSveMWqmAlXOxwWzdk,Attributes,,35,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,vJhvgGwNV3JB-wWn_0gMb,Tuples,,36,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,2hM2IPAnNYq-LlEbcFp2Z,Relations,,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,j9ikSpCD3yM5pTRFuJjZs,Constraints,,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,91eOGK8mtJulWRlhKyv0F,NULL,,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,_BSR2mo1lyXEFXbKYb1ZG,High Level Database Concepts,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,9u7DPbfybqmldisiePq0m,ACID,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-_ADJsTVGAgXq7_-8bdIO,MVCC,,42,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,yFG_hVD3dB_qK8yphrRY5,Transactions,,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,9sadNsbHLqejbRPHWhx-w,Write-ahead Log,,44,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Qk14b9WyeCp9RV9WAwojt,Query Processing,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,5MjJIAcn5zABCK6JsFf4k,Using Docker,,46,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,pEtQy1nuW98YUwrbfs7Np,Package Managers,,47,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,mMf2Mq9atIKk37IMWuoJs,Connect using `psql`,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,6SCcxpkpLmmRe0rS8WAPZ,Deployment in Cloud,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,P1Hm6ZlrhCRxbxOJkBHlL,Using `systemd`,,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,a4j0Rs8Tl6-k9WP5zjaep,Using `pg_ctl`,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,v3SoKmeCh6uxKW5GAAMje,Using `pg_ctlcluster`,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,FtPiBWMFhjakyXsmSL_CI,Installation and Setup,,56,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,ANUgfkADLI_du7iRvnUdi,Learn SQL,,57,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,KMdF9efNGULualk5o1W0_,For Schemas,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,ga8ZiuPc42XvZ3-iVh8T1,ForTables,,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,fvEgtFP7xvkq_D4hYw3gz,Data Types,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,BEJyz0ohCglDucxfyuAy4,Querying Data,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,dd2lTNsNzYdfB7rRFMNmC,Filtering Data,,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,G2NKhjlZqAY9l32H0LPNQ,Modifying Data,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Hura0LImG9pyPxaEIDo3X,Joining Tables,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,umNNMpJh4Al1dEpT6YkrA,Import / Export Using `COPY`,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,ghgyAXJ72dZmF2JpDvu9U,Transactions,,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,_Y-omKcWZOxto-xJka7su,Subqueries,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,uwd_CaeHQQ3ZWojbmtbPh,Grouping,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,fsZvmH210bC_3dBD_X8-z,CTE,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,fTsoMSLcXU1mgd5-vekbT,Lateral Join,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,kOwhnSZBwIhIbIsoAXQ50,Set Operations,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,T819BZ-CZgUX_BY7Gna0J,Configuring,,75,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,yl3gxfQs4nOE0N7uGqR0d,Resource Usage,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,9VmQ-vN3nPyf1pTFIcj40,Write-ahead Log,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,zoaqBP0Jbf0HpTH8Q3LkJ,Vacuums,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,A3YTrZSUxNBq77iIrNdZ4,Replication,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,hOPwVdIzesselbsI_rRxt,Query Planner,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,3pLn1mhRnekG537ejHUYA,Checkpoints / Background Writer,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,507TY35b8iExakbBMrHgZ,Reporting Logging & Statistics,Configuring,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,VAf9VzPx70hUf4H6i3Z2t,Adding Extra Extensions,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,2Zg8R5gs9LMQOcOMZtoPk,Security,,85,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,S20aJB-VuSpXYyd0-0S8c,Object Privileges,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,o1WSsw-ZIaAb8JF3P0mfR,Grant / Revoke,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,t18XjeHP4uRyERdqhHpl5,Default Privileges,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,09QX_zjCUajxUqcNZKy0x,Advanced Topics,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,bokFf6VNrLcilI9Hid386,Row-Level Security,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,GvpIJF-eaGELwcpWq5_3r,SELinux,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,gb75xOcAr-q8TcA6_l1GZ,Authentication Models,Security,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,l0lpaPy12JFCJ-RRYVSqz,Roles,Security,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Y2W29M4piaQsTn2cpyR7Q,pg_hba.conf,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,EKwO6edtFnUw8cPCcVwKJ,SSL Settings,Security,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,zlqSX0tl7HD9C1yEGkvoM,Infrastructure Skills,,96,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,cJYlZJ9f3kdptNrTlpMNU,Using `pg_upgrade`,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,MVVWAf9Hk3Fom-wBhO64R,Using Logical Replication,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,rNp3ZC6axkcKtAWYCPvdR,Simple Stateful Setup,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,QHbdwiMQ8otxnVIUVV2NT,Helm,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,nRJKfjW2UrmKmVUrGIfCC,Operators,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Z2PuOmgOqScGFbhvrvrA1,PostgreSQL Anonymizer,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,V8_zJRwOX9664bUvAGgff,HAProxy,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,IkB28gO0LK1q1-KjdI9Oz,Consul,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,xk2G-HUS-dviNW3BAMmJv,KeepAlived,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,kCw6oEVGdKokCz4wYizIT,Etcd,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,XmBeM01NAy-_nfyNdk9ZV,Prometheus,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,z3VD68R2uyu1s-3giRxKr,Zabbix,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,WiOgUt5teG9UVRa6zo4h3,check_pgactivity,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,aXG68inOu3trBWOmg9Yqx,temBoard,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,DDPuDDUFxubWZmWXCmF7L,check_pgbackrest,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-XhONB0FBA6UslbDWoTDv,barman,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,4gQSzH-WKFAvmkwlX_oyR,WAL-G,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,5LLYxCj22RE6Nf0fVm8GO,pgbackrest,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Id_17Ya-NUvoXxijAZvmW,pg_probackup,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,XZ922juBJ8Om0WyGtSYT5,pg_dump,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,QmV-J6fPYQ5CcdGUkBs7y,pg_dumpall,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,YSprRhPHkzV8SzDYpIVmp,pg_restore,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,XYaVsj5_48CSnoTSGXBbN,pg_basebackup,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,te4PZaqt6-5Qu8rU0w6a1,Backup Validation Procedures,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,aKQI7aX4bT_39bZgjmfoW,PgBouncer,,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,3V1PPIeB0i9qNUsT8-4O-,PgBouncer Alternatives,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,rmsIw9CQa1qcQ_REw76NK,Logical Replication,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,MwLlVbqceQ-GTgPJlgoQY,Streaming Replication,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,mm0K_8TFicrYdZQvWFkH4,Patroni,,130,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,TZvZ_jNjWnM535ZktyhQN,Patroni Alternatives,,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,SNnc8CIKuHUAEZaJ_qEar,Resource Usage / Provisioning / Capacity Planning,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,e5s7-JRqNy-OhfnjTScZI,Learn to Automate,,139,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-clI2RmfhK8F8beHULaIB,Shell Scripts,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,j5YeixkCKRv0sfq_gFVr9,Any Programming Language,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,RqSfBR_RuvHrwHfPn1jwZ,Ansible,,143,subtopic,http://data.europa.eu/esco/skill/6f8a40d6-f9ce-43ec-a72f-d4213a53f3ed,Ansible,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Q_B9dlXNMXZIRYQC74uIf,Salt,,144,subtopic,http://data.europa.eu/esco/skill/c7451027-8249-405a-bb1b-342ff0f3fb3b,Salt (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,7EHZ9YsNjCyTAN-LDWYMS,Chef,,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,e39bceamU-lq3F2pmLz6v,Puppet,,146,subtopic,http://data.europa.eu/esco/skill/6417a4cc-6f61-4459-a114-761a7fa0279d,Puppet (tools for software configuration management),roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,AtZcMhy2Idmgonp5O8RSQ,Practical Patterns / Antipatterns,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,3Lcy7kBKeV6hx9Ctp_20M,Migration Related Tools,,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,cc4S7ugIphyBZr-f6X0qi,Bulk Loading / Processing Data,,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,OiGRtLsc28Tv35vIut6B6,Data Partitioning,,151,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,r6Blr7Q4wOnvJ-m6NvPyP,Sharding Patterns,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Fcl7AD2M6WrMbxdvnl-ub,Normalization / Normal Forms,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,rnXcM62rgq3p6FQ9AWW1R,Patterns / Antipatterns,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,WCBWPubUS84r3tOXpnZT3,PgQ,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,v2J6PZT0fHvqA7GwlqBU7,Processes & Memory Architecture,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,dJzJP1uo4kVFThWgglPfk,Vacuum Processing,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,KeBUzfrkorgFWpR8A-xmJ,Buffer Management,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,pOkafV7nDHme4jk-hA8Cn,Lock Management,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,gweDHAB58gKswdwfpnRQT,Physical Storage and File Layout,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,lDuBFA7cEMnd7Cl9MDgnf,System Catalog,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,msm4QCAA-MRVI1psf6tt3,"Per-User, Per-Database Setting",,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,4VrT_K9cZZ0qE1EheSQy0,Storage Parameters,,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,VekAMpcrugHGuvSbyPZVv,OLTP,,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,WI3-7hFAnJw5f7GIn-5kp,OLAP,,172,subtopic,http://data.europa.eu/esco/skill/b0a3bb25-a02f-43ed-ab1f-994fa66a424a,online analytical processing,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,rHDlm78yroRrrAAcabEAl,HTAP,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Ur23UVs_nXaltytF1WJD8,PL/pgSQL,,174,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,LiF2Yh818D-zEF58v5Fgr,Procedures and Functions,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,ps2KK88QA1n5udn2ochIn,Triggers,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,A1LGOqqaka0ILcYwybclP,Recursive CTE,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,iQqEC1CnVAoM7x455jO_S,Aggregate and Window functions,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,pvj33qDiG3sSjtiW6sUra,top,,182,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,0hRQtRsteGDnKO5XgLF1R,sysstat,,183,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,n8oHT7YwhHhFdU5_7DZ_F,iotop,,184,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,yIdUhfE2ZTQhDAdQsXrnH,gdb,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,C_cUfEufYeUlAdVfdUvsK,strace,,187,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,QarPFu_wU6-F9P5YHo6CO,ebpf,,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,wH447bS-csqmGbk-jaGqp,perf-tools,,189,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,-CIezYPHTcXJF_p4T55-c,Core Dumps,,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,V2iW8tJQXwsRknnZXoHGd,pgBadger,,192,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,ISuU1lWH_zVDlCHnWXbf9,pgCluu,,193,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,HJCRntic0aGVvdmCN45aP,awk,,194,subtopic,http://data.europa.eu/esco/skill/21d2f96d-35f7-4e3f-9745-c533d2dd6e97,computer programming,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,cFtrSgboZRJ3Q63eaqEBf,grep,,195,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,hVL6OtsXrE8BvjKpRjB-9,sed,,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,_NL5pGGTLNxCFx4axOqfu,pg_stat_activity,,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,wLMGOUaULW7ZALRr-shTz,pg_stat_statements,,199,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,TytU0IpWgwhr4w4W4H3Vx,pgcenter,,201,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,n2OjwxzIHnATraRWi5Ddl,EXPLAIN,,203,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,rVlncpLO20WK6mjyqLerL,Depesz,,204,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,9RyMU36KEP__-RzTTz_eo,PEV2,,205,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,xEu5n6U9-WKVxjlT5YUgx,Tensor,,206,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,UZ1vRFRjiQAVu6BygqwEL,explain.dalibo.com,,207,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,QWi84EjdHw5ChYsuwUhPC,USE,,209,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,qBkpTmfbyCv2L-OJW9pPI,RED,,210,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,oX-bdPPjaHJnQKgUhDSF2,Golden Signals,,211,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,FDuiJyU1yWUQ9IsfS3CeZ,Schema Design Patterns / Anti-patterns,,214,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,G9DB1ZQjgXaHxJ4Lm6xGx,SQL Query Patterns / Anti-patterns,,215,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Dhhyg23dBMyAKCFwZmu71,Indexes and their Usecases,,216,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,jihXOJq9zYlDOpvJvpFO-,B-Tree,Indexes and their Usecases,217,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,2yWYyXt1uLOdQg4YsgdVq,Hash,,218,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,2chGkn5Y_WTjYllpgL0LJ,GiST,Indexes and their Usecases,219,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,LT5qRETR3pAI8Tk6k5idg,SP-GiST,Indexes and their Usecases,220,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,FJhJyDWOj9w_Rd_uKcouT,GIN,,221,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,43oFhZuXjJd4QHbUoLtft,BRIN,,222,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,NhodBD8myUTljNdn3y40I,Get Involved in Development,,223,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,8H7hJhGKxr1nrjkHv9Xao,Mailing Lists,Get Involved in Development,224,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,Jy0G0ZnHPOM8hba_PbwuA,Reviewing Patches,Get Involved in Development,225,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +postgresql-dba,database,eQzMU_KyQmHJQ6gzyk0-1,Writing Patches,Get Involved in Development,226,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,_hYN0gEi9BL24nptEtXWU,Introduction,,26,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,idLHBxhvcIqZTqmh_E8Az,What is System Design?,Introduction,27,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,os3Pa6W9SSNEzgmlBbglQ,How to approach System Design?,Introduction,28,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,e_15lymUjFc6VWqzPnKxG,Performance vs Scalability,,30,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,O3wAHLnzrkvLWr4afHDdr,Latency vs Throughput,,31,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uJc27BNAuP321HQNbjftn,Availability vs Consistency,,32,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,tcGdVQsCEobdV9hgOq3eG,CAP Theorem,,33,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,GHe8V-REu1loRpDnHbyUn,Consistency Patterns,,36,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,EKD5AikZtwjtsEYRPJhQ2,Weak Consistency,Consistency Patterns,37,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,rRDGVynX43inSeQ9lR_FS,Eventual Consistency,Consistency Patterns,38,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,JjB7eB8gdRCAYf5M0RcT7,Strong Consistency,Consistency Patterns,39,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ezptoTqeaepByegxS5kHL,Availability Patterns,,40,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,L_jRfjvMGjFbHEbozeVQl,Fail-Over,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,0RQ5jzZKdadYY0h_QZ0Bb,Replication,,45,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uHdrZllrZFAnVkwIB3y5-,Availability in Numbers,,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,DOESIlBThd_wp2uOSd_CS,Background Jobs,,52,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,NEsPjQifNDlZJE-2YLVl1,Event-Driven,Background Jobs,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,zoViI4kzpKIxpU20T89K_,Schedule Driven,Background Jobs,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,2gRIstNT-fTkv5GZ692gx,Returning Results,Background Jobs,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Uk6J8JRcKVEFz4_8rLfnQ,Domain Name System,,56,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,O730v5Ww3ByAiBSs6fwyM,Content Delivery Networks,,57,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uIerrf_oziiLg-KEyz8WM,Push CDNs,Content Delivery Networks,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,HkXiEMLqxJoQyAHav3ccL,Pull CDNs,Content Delivery Networks,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,14KqLKgh090Rb3MDwelWY,Load Balancers,,60,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ocdcbhHrwjJX0KWgmsOL6,LB vs Reverse Proxy,Load Balancers,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,urSjLyLTE5IIz0TFxMBWL,Load Balancing Algorithms,Load Balancers,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,e69-JVbDj7dqV_p1j1kML,Layer 7 Load Balancing,Load Balancers,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,MpM9rT1-_LGD7YbnBjqOk,Layer 4 Load Balancing,Load Balancers,64,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,IkUCfSWNY-02wg2WCo1c6,Horizontal Scaling,Load Balancers,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,XXuzTrP5UNVwSpAk-tAGr,Application Layer,,66,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,UKTiaHCzYXnrNw31lHriv,Microservices,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Nt0HUWLOl4O77elF8Is1S,Service Discovery,Application Layer,68,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,5FXwwRMNBhG7LT5ub6t2L,Databases,,69,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,KLnpMR2FxlQkCHZP6-tZm,SQL vs NoSQL,Databases,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,dc-aIbBwUdlwgwQKGrq49,Replication,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,FX6dcV_93zOfbZMdM_-li,Sharding,,72,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,DGmVRI7oWdSOeIUn_g0rI,Federation,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Zp9D4--DgtlAjE2nIfaO_,Denormalization,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,fY8zgbB13wxZ1CFtMSdZZ,SQL Tuning,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,KFtdmmce4bRkDyvFXZzLN,Key-Value Store,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,didEznSlVHqqlijtyOSr3,Document Store,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,WHq1AdISkcgthaugE9uY7,Wide Column Store,,79,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,6RLgnL8qLBzYkllHeaI-Z,Graph Databases,,80,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,-X4g8kljgVBOBcf1DDzgi,Caching,,82,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Bgqgl67FK56ioLNFivIsc,Refresh Ahead,,83,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,vNndJ-MWetcbaF2d-3-JP,Write-behind,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,RNITLR1FUQWkRbSBXTD_z,Write-through,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,bffJlvoLHFldS0CluWifP,Cache Aside,,86,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,RHNRb6QWiGvCK3KQOPK3u,Client Caching,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Kisvxlrjb7XnKFCOdxRtb,CDN Caching,,89,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,o532nPnL-d2vXJn9k6vMl,Web Server Caching,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,BeIg4jzbij2cwc_a_VpYG,Database Caching,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,5Ux_JBDOkflCaIm4tVBgO,Application Caching,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,84N4XY31PwXRntXX1sdCU,Asynchronism,,93,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,YiYRZFE_zwPMiCZxz9FnP,Back Pressure,Asynchronism,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,a9wGW_H1HpvvdYCXoS-Rf,Task Queues,Asynchronism,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,37X1_9eCmkZkz5RDudE5N,Message Queues,Asynchronism,96,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,3pRi8M4xQXsehkdfUNtYL,Idempotent Operations,,99,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uQFzD_ryd-8Dr1ppjorYJ,Communication,,101,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,I_nR6EwjNXSG7_hw-_VhX,HTTP,,102,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,2nF5uC6fYKbf0RFgGNHiP,TCP,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,LC5aTmUKNiw9RuSUt3fSE,UDP,Communication,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ixqucoAkgnphWYAFnsMe-,RPC,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,6-bgmfDTAQ9zABhpmVoHV,REST,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Hw2v1rCYn24qxBhhmdc28,gRPC,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,jwv2g2Yeq-6Xv5zSd746R,GraphQL,,108,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,p--uEm6klLx_hKxKJiXE5,Performance Antipatterns,,109,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,hxiV2uF7tvhZKe4K-4fTn,Busy Database,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,i_2M3VloG-xTgWDWp4ngt,Busy Frontend,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,0IzQwuYi_E00bJwxDuw2B,Chatty I/O,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,6u3XmtJFWyJnyZUnJcGYb,Extraneous Fetching,,113,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,lwMs4yiUHF3nQwcvauers,Improper Instantiation,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,p1QhCptnwzTGUXVMnz_Oz,Monolithic Persistence,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,klvHk1_e03Jarn5T46QNi,No Caching,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,r7uQxmurvfsYtTCieHqly,Noisy Neighbor,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,LNmAJmh2ndFtOQIpvX_ga,Retry Storm,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Ihnmxo_bVgZABDwg1QGGk,Synchronous I/O,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,hDFYlGFYwcwWXLmrxodFX,Monitoring,,120,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,hkjYvLoVt9xKDzubm0Jy3,Health Monitoring,Monitoring,121,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,rVrwaioGURvrqNBufF2dj,Availability Monitoring,Monitoring,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,x1i3qWFtNNjd00-kAvFHw,Performance Monitoring,Monitoring,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,I_NfmDcBph8-oyFVFTknL,Security Monitoring,Monitoring,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,eSZq74lROh5lllLyTBK5a,Usage Monitoring,Monitoring,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Q0fKphqmPwjTD0dhqiP6K,Instrumentation,Monitoring,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,IwMOTpsYHApdvHZOhXtIw,Visualization & Alerts,Monitoring,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,THlzcZTNnPGLRiHPWT-Jv,Cloud Design Patterns,,129,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,dsWpta3WIBvv2K9pNVPo0,Messaging,,131,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,VgvUWAC6JYFyPZKBRoEqf,Sequential Convoy,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uR1fU6pm7zTtdBcNgSRi4,Scheduling Agent Supervisor,,133,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,LncTxPg-wx8loy55r5NmV,Queue-Based Load Leveling,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,2ryzJhRDTo98gGgn9mAxR,Publisher/Subscriber,,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,DZcZEOi7h3u0744YhASet,Priority Queue,,136,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,siXdR3TB9-4wx_qWieJ5w,Pipes and Filters,,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,9Ld07KLOqP0ICtXEjngYM,Competing Consumers,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,aCzRgUkVBvtHUeLU6p5ZH,Choreography,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,kl4upCnnZvJSf2uII1Pa0,Claim Check,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,eNFNXPsFiryVxFe4unVxk,Async Request Reply,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,W0cUCrhiwH_Nrzxw50x3L,Data Management,,142,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,stZOcr8EUBOK_ZB48uToj,Valet Key,,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,-lKq-LT7EPK7r3xbXLgwS,Static Content Hosting,,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,R6YehzA3X6DDo6oGBoBAx,Sharding,,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,WB7vQ4IJ0TPh2MbZvxP6V,Materialized View,,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,AH0nVeVsfYOjcI3vZvcdz,Index Table,,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,7OgRKlwFqrk3XO2z49EI1,Event Sourcing,,148,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,LTD3dn05c0ruUJW0IQO7z,CQRS,,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,PK4V9OWNVi8StdA2N13X2,Cache-Aside,,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,PtJ7-v1VCLsyaWWYHYujV,Design & Implementation,,151,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,VIbXf7Jh9PbQ9L-g6pHUG,Strangler Fig,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,izPT8NfJy1JC6h3i7GJYl,Static Content Hosting,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,AAgOGrra5Yz3_eG6tD2Fx,Sidecar,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,WkoFezOXLf1H2XI9AtBtv,Pipes & Filters,,155,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,beWKUIB6Za27yhxQwEYe3,Leader Election,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,LXH_mDlILqcyIKtMYTWqy,Gateway Routing,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,0SOWAA8hrLM-WsG5k66fd,Gateway Offloading,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,bANGLm_5zR9mqMd6Oox8s,Gateway Aggregation,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,BrgXwf7g2F-6Rqfjryvpj,External Config Store,,160,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ODjVoXnvJasPvCS2A5iMO,Compute Resource Consolidation,,161,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ivr3mh0OES5n86FI1PN4N,CQRS,,162,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,n4It-lr7FFtSY83DcGydX,Backends for Frontend,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,4hi7LvjLcv8eR6m-uk8XQ,Anti-Corruption Layer,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Hja4YF3JcgM6CPwB1mxmo,Ambassador,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,DYkdM_L7T2GcTPAoZNnUR,Reliability Patterns,,166,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Xzkvf4naveszLGV9b-8ih,Availability,,168,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,FPPJw-I1cw8OxKwmDh0dT,Deployment Stamps,,169,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Ml9lPDGjRAJTHkBnX51Un,Geodes,,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,cNJQoMNZmxNygWAJIA8HI,Health Endpoint Monitoring,,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,-M3Zd8w79sKBAY6_aJRE8,Queue-Based Load Leveling,,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,6YVkguDOtwveyeP4Z1NL3,Throttling,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,wPe7Xlwqws7tEpTAVvYjr,High Availability,,174,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,Ze471tPbAwlwZyU4oIzH9,Deployment Stamps,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,6hOSEZJZ7yezVN67h5gmS,Geodes,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,uK5o7NgDvr2pV0ulF0Fh9,Health Endpoint Monitoring,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,IR2_kgs2U9rnAJiDBmpqK,Bulkhead,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,D1OmCoqvd3-_af3u0ciHr,Circuit Breaker,,179,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,wlAWMjxZF6yav3ZXOScxH,Resiliency,,180,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,PLn9TF9GYnPcbpTdDMQbG,Bulkhead,,181,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,O4zYDqvVWD7sMI27k_0Nl,Circuit Breaker,,182,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,MNlWNjrG8eh5OzPVlbb9t,Compensating Transaction,,183,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,CKCNk3obx4u43rBqUj2Yf,Health Endpoint Monitoring,,184,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,AJLBFyAsEdQYF6ygO0MmQ,Leader Election,,185,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,NybkOwl1lgaglZPRJQJ_Z,Queue-Based Load Leveling,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,xX_9VGUaOkBYFH3jPjnww,Retry,,187,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,RTEJHZ26znfBLrpQPtNvn,Scheduler Agent Supervisor,,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,ZvYpE6-N5dAtRDIwqcAu6,Security,,189,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,lHPl-kr1ArblR7bJeQEB9,Federated Identity,,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,DTQJu0AvgWOhMFcOYqzTD,Gatekeeper,,191,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +system-design,backend,VltZgIrApHOwZ8YHvdmHB,Valet Key,,192,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,tU4Umtnfu01t9gLlnlK6b,Pick a Language,,39,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,RlKZzs44biQPgxD0tK1qx,Python,Pick a Language,40,subtopic,http://data.europa.eu/esco/skill/ccd0a1d9-afda-43d9-b901-96344886e14d,Python (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,mWW88VnkqWgDz02qw5zU-,Go,,41,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,jHKCLfLml8oZyj4829gx0,C#,Pick a Language,42,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,1bDjg-KBDKRmE6f1MWY8l,Rust,Pick a Language,43,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,1kQJs-3Aw8Bi7d_Xh67zS,C++,,44,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,n4IsklfYJXFIyF1rGWuEa,C,Pick a Language,45,subtopic,http://data.europa.eu/esco/skill/4c016b68-4116-468c-9dc6-42710c239e4a,C#,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,1lQSUFrrIGq19nUnM92-I,Java,,46,subtopic,http://data.europa.eu/esco/skill/19a8293b-8e95-4de3-983f-77484079c389,Java (computer programming),roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,NM7q5REW1sJgMhxJhPpLT,Data Structures,,47,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,gr8BK6vq4AVwp_aUozZmf,Linked List,Data Structures,48,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,hJB5gO9tosRlC4UmdSNzl,Stack,,49,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,JI990pDX2jjNe6IH_Y_t0,Queue,Data Structures,50,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,G2dN2FO0SN_I-5AhO_EUk,Hash Table,Data Structures,51,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,TwW6SO2IXqkxJXVjLzdwU,Array,,52,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,_eWqiWUmOj0zUo_Ix3j1O,Tree,,53,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,G9dnegZ6zNvxrCZ3O_b_z,Binary Tree,,54,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,et7l85gnxjvzD2tDyHT_T,Binary Search Tree,,55,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Q8ZJNeTbc22Q08Mra-McY,Full Binary Tree,,56,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Jx1WWCjm8jkfAGtHv15n1,Complete Binary Tree,,57,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ZaWGLvZyu4sIPn-zwVISN,Balanced Tree,,58,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,w4sxmZR1BjX6wlrZmuOlf,Unbalanced Tree,,59,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,vQm046o6ozcvLoqg9L6eL,Graph,Data Structures,60,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,6Jy8SXHuYA08h9iLjKFWR,Directed Graph,,61,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,QGx8it2N_85PiPVjpTGK_,Undirected Graph,,62,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,L4xtWOdqGUf4SbJkoOsNM,Spanning Tree,,63,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,HZ1kk0TQ13FLC9t13BZl5,Adjacency Matrix,,65,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,rTnKJcPniUtqvfOyC88N0,Adjacency List,,66,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,pw3ZCC3HKU7D5SQwte4vE,Heap,,67,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,UpBrpmrUwYUB9eesNxCq5,Asymptotic Notation,,68,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,c-NrTtJuNihbHzyPEOKTW,Big O,,69,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ThLpVZQIJ4diY5m0dik8m,Big-Theta,,70,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,X33735aeAVSlJ6yv9GS-h,Big Omega,,71,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3F_QBv_sU39ehOxpurF88,Constant,,73,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,nnlMNkQn1HU4U9yPbV9kQ,Logarithmic,,74,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,jymhjv8GiFALQpox6aZeu,Linear,,75,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,sVFvpsAO1_ZH9aliEj9aF,Polynomial,,76,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,5mMLr6tWbiSZuox1lx0_B,Exponential,,77,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,m0umGQNdvg95UiNpQZsQN,Factorial,,78,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,7a6-AnBI-3tAU1dkOvPkx,Common Algorithms,,79,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,0_qNhprnXU3i8koW3XTdD,Tail Recursion,,81,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,iLEOuQgUgU5Jc38iXDpp5,Non-Tail Recursion,,82,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,cEsboPT8nLvo0Zt0_oBq6,LRU Cache,,84,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,hna0HLu0l4NTNNpyGqlW5,MFU Cache,,85,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,8kTg4O9MrTHRUrp6U-ctA,Binary Search,,87,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,XwyqBK9rgP1MMcJrdIzm5,Linear Search,,88,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4wGBYFZpcdTt97WTbSazx,Bubble Sort,,90,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,rOsHFXQm5jNz0RyZQ5ZGs,Selection Sort,,91,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ujDCW6zZE8dV_fpNf-oIl,Insertion Sort,,92,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,CovrRsBY-sYW_xSegcN6N,Heap Sort,,93,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,be0Q8GW9ZX1JbPrBvbMji,Quick Sort,,94,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Bh-whDbcCjl3m6mRm9w02,Merge Sort,,95,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,psTN5N66xoFHFopgd5faW,Pre-Order Traversal,,97,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,KTrgf14Q6rg2f0v4dqq2s,In-Order Traversal,,98,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4_oGXwjzSY5cX9n7L4iAA,Post Order Traversal,,99,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Ke_ch4fnuKIiGAXUM_LPP,Breadth First Search,,100,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,chzP5_t2gMi6MstxEzCi5,Depth First Search,,101,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,vcV6TEM_PqXxtThdfMKGw,Breadth First Search,,103,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Yf5gOIe7oiL19MjEVcpdw,Depth First Search,,104,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,eY4nK2lPYsrR-a_8y2sao,Bellman Ford's Algorithm,,105,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,oJstm-8c-4seWbIWcNgDv,Dijkstra's Algorithm,,106,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Yrk2PLUa-_FAPlhCkMl3e,A* Algorithm,,107,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,aBjBHpq_OajgQjxdCobXD,Finding Hamiltonian Paths,,109,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,HlAmTY1udqDT2mTfBU9P-,Solving N Queen Problem,,110,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,nODFT-i2YsxUVsgwWkIWn,Maze Solving Problem,,111,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,NcKW_3vJWL_rVlDBB_Qjs,The Knight's Tour Problem,,112,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,l3X9UrEYTWs5kBXI1NNCf,Dijkstra's Algorithm,,114,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,QrcijPiVT3bgqfkF-6ssi,Huffman Coding,,115,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Wqhg7E-lOz1oNcRXjUej8,Kruskal's Algorithm,,116,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Hqw2eGtgfbVggqXBnIOdI,Ford-Fulkerson Algorithm,,117,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,znpFIKwMJlepKJ8dH3kvC,Prim's Algorithm,,118,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,l5--4opvZoc_seVn__5R3,Rabin-Karp Algorithm,,119,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,n11ujPI3of-52l2KW2CDQ,LFU Cache,,120,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,NUWk-7IXmMU-4TT-oS8fF,String Search & Manipulations,,121,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,L4M5yFRKKR2axKXGcIA7d,Search Pattern in Text,,122,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Ld1TUNS8713coMNvwhNIJ,Suffix Arrays,,123,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,g3b0kt1fCAjjYyS2WelWi,Brute Force Search,,124,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,8abFKMfaV9H8F38I0DcMT,Knuth-Morris Pratt,,125,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,p6qub32jcaGloHXUDUrlG,Boyer-Moore,,126,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Km5LvcJpyntrW2iA8h5e3,Robin-Karp,,127,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,E9hf1ux1KKGHvvAShm67w,Substring Search,,128,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,-bawIWfrYuAxy8cP-AGFS,Floating Point Math,,129,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,vjMqqFsTxSjaiYxmliwLi,Endianess,,130,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,U8AgY6I-62mN5Ohg9MsG6,Big Endian,Endianess,131,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,rD_5n5bjiNMVC0cPhEVyG,Little Endian,,132,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,DMuMsEowpevTCALtziwTB,Common UML Diagrams,,133,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,04hpfxI2x958tQI-0clsp,Unicode,,134,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,hmwsNp60alS43kJg4A_Og,ASCII,,135,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,DtG9EJonWi4_2oQ4fWOKY,Character Encodings,,136,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,FZ8znJSz8PvQlnEyRLXmQ,Class Diagrams,Common UML Diagrams,137,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,dVvYbrcaxHLpvtX6HbS7g,Usecase Diagrams,,138,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ptfRNiU0mC0Q5SLA_FWZu,Activity Diagrams,,139,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,X0CKM9LaJUrgI5gIdqFvU,Statemachine Diagrams,,140,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,gaUT5K2xS-WQMrIA0Bkb_,Sequence Diagrams,,141,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,-De1hU2ONGwhQmUpsyrCO,Design Patterns,,142,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,iPN9mSyFwYZER5HSkj6oL,GoF Design Patterns,Design Patterns,143,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,BGhJNtszbYJtKyhqr2jax,Architectural Patterns,Design Patterns,144,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,J7DKRklMtJ94Y-18Jo50r,Dependency Injection,Design Patterns,145,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,PpFQ0zmObZLvmBvqhTEMz,Null Object Pattern,Design Patterns,146,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,_2Jddpz_cdwyeIgrg5qt_,Type Object Pattern,Design Patterns,147,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,cdNi0EYrQ5nsgNxFVnXL8,Basic Math Skills,,148,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,HZ3_xyphbjhBPwwQo_rHH,Probability,Basic Math Skills,149,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,lWnAY0DgrUOmT6yqnxeBN,Combinatorics,,150,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,YLCmZvoLkhOk9wlgYW2Ms,Complexity Classes,,151,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3aM17dPKNi8tRJsW8lesI,P,,152,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ewXUHpOnjm8YrLhce1dAQ,NP,,153,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,mJJ8DGUpBuHEJ7I6UTy1T,NP Hard,,154,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Lwkz7qozXRlVNA20zJbSw,NP Complete,,155,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,0btHNkzWL1w_-pUgU_k2y,P = NP,,156,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ZG-hWjVoS3p9XfrtBL0sD,Travelling Salesman Problem,,157,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,yHeCRPhfAOWiggZeUHPU9,Knapsack Problem,,158,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4QVVYjDODMWsjnrE-4UBs,Longest Path Problem,,159,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4qUVacMEz3XFiL_dMre6P,Tries,,160,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,7DF3UhefOSqqTuccH8c8X,Balanced Search Trees,,162,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,OUistS7H7hQQxVV-lOg39,AVL Trees,,163,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,eOL0_SzxBn7_xhNcBDi2D,Red / Black Trees,,164,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3jiV9R82qxpqIGfpEq_wK,2 3 Search Trees,,165,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,IaPd_zuLbiOCwoSHQLoIG,2 3 4 Trees,,166,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,UOYeM-hqIKCrB9hGez4Q_,K-ary / M-ary Tree,,167,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,s0Pi6CemUUsmZSEu2j2gH,B-Tree,,168,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,w-fvEiSJysywR3AOAB0ve,System Design,,169,topic,http://data.europa.eu/esco/skill/fae27053-8924-4bfd-b565-c9fe502044c9,system design,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,-34WGppX6QC5fkCvfCghp,Horizontal vs Vertical Scaling,System Design,170,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,xDiS0HmrEoPjkQg9x2O3o,Load Balancing,,171,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,wAsZ-M5N9ERufQnBaXbAE,Clustering,,172,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4u5w9QCptLWuY9O7_UU8V,Caching,,173,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,r8V9bZpc98SrLvXc070bZ,CDN,,174,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,qLLJ_ehC8tSRfXsorYMQz,Proxy,,175,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,GZI8EsEqiMJX3fSbO_E-7,CAP Theorem,,176,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,LCPEzpyAuHY3ggN3nYrNN,Queues,,177,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,X1wv7xV69IEzepg8bF8oZ,Architectural Styles,,178,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Kvz3Sn7L8CxP5ZXO1hlcU,REST,,179,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,DeE_dZecLmKCjePovTfFS,GraphQL,,180,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,M4vdwAbjLPrLjWUsG_P1I,gRPC,,181,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,YMO9oD_sbzyDZPNU2xZwe,Cloud Design Patterns,,182,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,XeJi6TwpI5Uaszj00Uv_2,Long Polling,,183,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,gGmNJ8dK28iqrlQHPz6md,Short Polling,,184,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,bVjI14VismTHNCyA0mEBP,Web Sockets,,185,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,JckRqZA8C6IqQLPpTCgf4,SSE,,186,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,zvlTQ0A-My4QDrslp_lru,Databases,,187,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,nprZscHdC_RdRIcGeGyVk,SQL vs NoSQL Databases,,188,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Rw7QjLC8hLtXSwmU_9kHC,Normalization / Denormalization,,189,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,XnxxEmr2TyW2kOpB4gtR5,Entity-Relationship Model,,190,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ii1vF74u3yrFNlw_21b3B,DDL,,191,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,tcQSH-eAvJUZuePTDjAIb,DML,,192,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,05lkb3B86Won7Rkf-8DeD,DQL,,193,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,4bUmfuP2qgcli8I2Vm9zh,DCL,,194,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,_sm63rZNKoibVndeNgOpW,Locking,,195,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,W5B-v-BFcCRmuN0L1m6PI,ACID Model,,196,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,q3nRhTYS5wg9tYnQe2sCF,BASE,,197,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,uqfeiQ9K--QkGNwks4kjk,CAP Theorem,,198,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,g6HeyLptaAYx9QBKuHQyM,PACELC,,199,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,BEbsUA39kZ5itqCwD585f,Indexes,,200,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,lOj_ReWI1kQ3WajJZYOWU,Views,,201,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,KhvYJtSCUBOpEZXjHpQde,Transactions,,202,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,FjhZGhzJjYyDn0PShKmpX,Stored Procedures,,203,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3r21avMlo0xFB9i7PHccX,Database Federation,,204,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,WUEmEtlszbISSIWDKpvg6,Replication,,205,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3K65efPag2076dy-MeTg4,Sharding,,206,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,zG5t3HqbZnh9CGRqp1Sb-,Networking,,207,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,pZ5x_zDYGzW9VxYycyXtN,OSI Model,,208,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Fed5y1D95WPpqoVg7kmob,TCP/IP Model,,209,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,fYjoXB4rnkM5gg46sqVz5,DNS,,210,subtopic,http://data.europa.eu/esco/skill/071233c4-ad2b-4f50-b79f-768d2231163e,domain name service,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,2tUwl-br-SRuwADSzmQag,HTTP,,211,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3pu2bGhoCLFIs6kNanwtz,TLS & HTTPS,,212,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,u-c-UFegRb7xqsmvj9gVb,Sockets,Networking,213,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,JnJbJtsqKbVETY2vdLqCO,Security,,214,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,bDZ34BPm3lX06ERSE10cY,Public Key Cryptography,Security,215,subtopic,http://data.europa.eu/esco/skill/d32db06e-bd06-4415-a7ab-1b0ee68caa9a,ICT encryption,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,7r7o8pYhFHVAJIv0wNT6X,Hashing / Encryption / Encoding,Security,216,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,EX_e4B6G07zTb4JjJ7482,Hashing Algorithms,Security,217,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,3rPSp135TdSCyvXzEzn4p,OWASP Top 10,Security,218,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,-emdKpD5uRNuvem5rbFXJ,How Computers Work,,219,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,1eglba39q426Nh0E0qcdj,How CPU Executes Programs,How Computers Work,220,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,GDLKJkKgB-i7n0YcV2NDa,How Computers Calculate,,221,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,U3379F4AO1KSmGtVmPr27,Registers and RAM,,222,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,AxiGqbteK7ZSXEUt_zckH,Instructions and Programs,,223,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,DjTQjMbika4_yTzrBpcmB,CPU Cache,,224,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,ETEUA7jaEGyOEX8tAVNWs,Processes and Threads,,225,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,RbdT5MOE4L-E7PPWKRITX,Process Forking,,226,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,jVsZFTzyrYEDyR8LiBQL0,Memory Management,,227,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,O6-vG3FuoYet4D0hbiyrv,Lock / Mutex / Semaphore,Processes and Threads,228,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,xUo5Ox_HTgGyeQMDIkVyK,Concurrency in Multiple Cores,Processes and Threads,229,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,Ge2nagN86ofa2y-yYR1lv,Scheduling Algorithms,,230,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,cpQvB0qMDL3-NWret7oeA,CPU Interrupts,,231,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,IEX6v_MYpE5Ylk_28K2ZU,Processes vs Threads,,232,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,C1eNsPjiQo8INbvL2Lt7L,K-D Trees,,233,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,K96ggeWqd5OwoNnkL04pc,Skip Lists,,234,topic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,pLBfkzi0qfgVRqi_4AmMI,Co-NP,,236,subtopic,,,roadmap.sh:nilbuild/developer-roadmap@master +computer-science,general,hTPLcuOW7eEE5oYhNfmOG,Bitwise Operators,,237,topic,,,roadmap.sh:nilbuild/developer-roadmap@master diff --git a/DATASET/webdataset/01_market_overview.json b/DATASET/webdataset/01_market_overview.json new file mode 100644 index 0000000..f84519d --- /dev/null +++ b/DATASET/webdataset/01_market_overview.json @@ -0,0 +1,57 @@ +{ + "meta": { + "title": "2026 대한민국 개발자 채용시장 종합 개요", + "sources": ["잡코리아", "사람인(점핏)", "원티드", "링크드인", "인크루트", "아웃소싱타임스", "코드트리", "트리업"], + "collected_date": "2026-06-01", + "scope": "대한민국 전체 IT 개발자 채용공고 기반 분석" + }, + "market_size": { + "backend_postings": 2587, + "data_engineer_postings": 2546, + "mlops_postings": 228, + "android_postings": 304, + "note": "잡코리아 기준 2026년 상반기 공고 수" + }, + "top_demanded_roles": [ + { "rank": 1, "role": "백엔드 / 서버 개발자", "share_pct": 28.1, "trend": "유지" }, + { "rank": 2, "role": "AI / ML 엔지니어", "share_pct": 20.5, "trend": "급증" }, + { "rank": 3, "role": "프론트엔드 개발자", "share_pct": 11.1, "trend": "소폭감소" }, + { "rank": 4, "role": "데이터 엔지니어", "share_pct": 10.3, "trend": "급증" }, + { "rank": 5, "role": "DevOps / 클라우드 엔지니어", "share_pct": 8.7, "trend": "증가" }, + { "rank": 6, "role": "풀스택 개발자", "share_pct": 7.4, "trend": "증가" }, + { "rank": 7, "role": "모바일 개발자 (iOS/Android)", "share_pct": 5.9, "trend": "유지" }, + { "rank": 8, "role": "보안 엔지니어", "share_pct": 3.2, "trend": "소폭증가" }, + { "rank": 9, "role": "게임 개발자", "share_pct": 2.8, "trend": "유지" }, + { "rank": 10, "role": "임베디드 / 시스템 개발자", "share_pct": 2.0, "trend": "유지" } + ], + "hiring_quality_shift": { + "description": "2025~2026년 채용 시장은 '얼마나 많이 뽑느냐'보다 '누구를 뽑느냐' 중심으로 전환", + "ai_tool_usage_rate_pct": 84, + "companies_reducing_headcount_for_quality_pct": 63, + "preferred_experience_years": "4~7년 중간 경력직", + "key_hiring_criteria": [ + "즉시 투입 가능한 실무 역량", + "다기능성 (풀스택 + 클라우드 아우름)", + "AI 도구 활용 능력", + "지속적 학습 능력" + ] + }, + "ai_related_demand_growth": { + "data_engineer_yoy_growth_pct": 50, + "ai_data_role_share_by_investment_stage": { + "seed": "15%", + "series_b_plus": "34%" + } + }, + "salary_overview": { + "note": "단위: 만원/년", + "average_new_grad": 3243, + "frontend_1yr": 3000, + "frontend_3yr": 3800, + "backend_1yr": 3500, + "backend_3yr": 4300, + "backend_senior_range": "5000~10000+", + "ai_ml_average": 5175, + "top_paying_stack": "C++ (5748), Keras (5623), TensorFlow (5581)" + } +} diff --git a/DATASET/webdataset/02_backend_stacks.json b/DATASET/webdataset/02_backend_stacks.json new file mode 100644 index 0000000..b1deca2 --- /dev/null +++ b/DATASET/webdataset/02_backend_stacks.json @@ -0,0 +1,80 @@ +{ + "meta": { + "role": "백엔드 / 서버 개발자", + "sources": ["잡코리아", "사람인(점핏)", "원티드", "아웃소싱타임스"], + "collected_date": "2026-06-01" + }, + "market_position": { + "demand_rank": 1, + "job_postings_count": 2587, + "market_share_pct": 28.1, + "trend": "수요·공급 모두 서버·백엔드에 집중 (2026 상반기)", + "preferred_experience": "3~7년 경력", + "character": "신입 공채 감소, 경력직 수시채용 중심" + }, + "languages": [ + { "name": "Java", "demand_pct": 32.1, "note": "점핏 전체 공고 중 1위, 대기업·금융·SI 주축" }, + { "name": "Python", "demand_pct": 18.0, "note": "2024 15% → 2025 18%, AI 백엔드·FastAPI 수요 견인" }, + { "name": "Node.js (JavaScript/TypeScript)", "demand_pct": 16.5, "note": "스타트업·핀테크 선호, TypeScript 병행 필수화" }, + { "name": "Kotlin", "demand_pct": 8.3, "note": "Spring Kotlin, JVM 생태계 현대화" }, + { "name": "Go (Golang)", "demand_pct": 6.2, "note": "고성능 마이크로서비스, 클라우드 네이티브" }, + { "name": "C / C++", "demand_pct": 4.1, "note": "임베디드·게임·시스템 백엔드, 최고연봉" }, + { "name": "PHP", "demand_pct": 3.5, "note": "레거시 유지보수 수요, 신규 감소" }, + { "name": "Ruby / Ruby on Rails", "demand_pct": 1.2, "note": "외국계·스타트업 소수" } + ], + "frameworks": [ + { "name": "Spring Boot", "tier": "필수", "note": "Java/Kotlin 백엔드의 de-facto 표준" }, + { "name": "FastAPI", "tier": "급부상", "note": "Python 백엔드, AI 서빙 API 연동에 최적" }, + { "name": "Django / DRF", "tier": "중간", "note": "Python 중견기업·핀테크" }, + { "name": "Express.js / NestJS", "tier": "주류", "note": "Node.js 스타트업 표준, NestJS는 TS 기반" }, + { "name": "Gin / Echo", "tier": "성장", "note": "Go 마이크로서비스" } + ], + "databases": [ + { "name": "MySQL / MariaDB", "tier": "필수", "demand_pct": 41 }, + { "name": "PostgreSQL", "tier": "주류", "demand_pct": 28 }, + { "name": "Redis", "tier": "필수 (캐싱)", "demand_pct": 35 }, + { "name": "MongoDB", "tier": "보편", "demand_pct": 18 }, + { "name": "Elasticsearch", "tier": "검색·로그", "demand_pct": 14 }, + { "name": "Kafka", "tier": "이벤트 스트리밍", "demand_pct": 12 }, + { "name": "DynamoDB / Firestore", "tier": "클라우드 서버리스", "demand_pct": 7 } + ], + "infrastructure": [ + "Docker (컨테이너화 필수)", + "Kubernetes (오케스트레이션, 중급 이상 요구)", + "AWS (EC2, RDS, S3, Lambda, ECS)", + "GCP / Azure (중소 비중)", + "CI/CD: GitHub Actions, Jenkins, GitLab CI" + ], + "architecture_keywords": [ + "RESTful API 설계", + "MSA (마이크로서비스)", + "이벤트 드리븐 아키텍처", + "서버리스", + "API Gateway", + "gRPC", + "클라우드 네이티브" + ], + "common_requirements": { + "must": [ + "주력 언어 1개 이상 심화 역량", + "RDBMS 설계 및 쿼리 최적화", + "REST API 설계·구현", + "Git 버전 관리", + "Docker 기본 사용" + ], + "preferred": [ + "Kubernetes 운영 경험", + "대용량 트래픽 처리 경험", + "MSA 설계 경험", + "AI API 연동 경험 (OpenAI, Claude 등)", + "테스트 자동화 (JUnit, pytest)" + ] + }, + "salary_by_stack_万KRW": { + "Java_3yr": 4300, + "Python_3yr": 4500, + "Nodejs_3yr": 4200, + "Go_3yr": 5000, + "Cpp_senior": 5748 + } +} diff --git a/DATASET/webdataset/03_frontend_stacks.json b/DATASET/webdataset/03_frontend_stacks.json new file mode 100644 index 0000000..5be59d9 --- /dev/null +++ b/DATASET/webdataset/03_frontend_stacks.json @@ -0,0 +1,76 @@ +{ + "meta": { + "role": "프론트엔드 개발자", + "sources": ["사람인(점핏)", "원티드", "잡코리아", "링크드인"], + "collected_date": "2026-06-01" + }, + "market_position": { + "demand_rank": 3, + "market_share_pct": 11.1, + "applicant_share_pct": 15.5, + "trend": "공급 > 수요 (경쟁 심화)", + "preferred_experience": "3년 이상 실무 경험", + "character": "신입 채용 감소, React 경험 없으면 서류 탈락 위험" + }, + "languages": [ + { "name": "JavaScript (ES6+)", "demand_pct": 95, "note": "프론트엔드 기본 언어, 사실상 필수" }, + { "name": "TypeScript", "demand_pct": 78, "note": "중견 이상에서 필수화 진행 중, 정적 타이핑 선호" }, + { "name": "HTML5 / CSS3", "demand_pct": 90, "note": "기본 역량으로 간주" } + ], + "frameworks_libraries": [ + { "name": "React", "demand_pct": 44.7, "tier": "1순위 필수", "note": "한국 프론트엔드 시장 사실상 표준" }, + { "name": "Next.js", "demand_pct": 32.0, "tier": "빠르게 필수화", "note": "SSR·SSG, SEO 중시 기업 증가" }, + { "name": "Vue.js", "demand_pct": 18.5, "tier": "중간", "note": "스타트업·중소기업 여전히 사용" }, + { "name": "Nuxt.js", "demand_pct": 8.2, "tier": "틈새", "note": "Vue 기반 SSR" }, + { "name": "Svelte / SvelteKit", "demand_pct": 4.1, "tier": "신흥", "note": "성능 최적화 관심 기업" }, + { "name": "Angular", "demand_pct": 6.3, "tier": "하락", "note": "공공·SI·레거시 일부 잔존" } + ], + "state_management": [ + { "name": "Redux / Redux Toolkit", "demand_pct": 35, "note": "대규모 앱 상태관리 표준" }, + { "name": "React Query (TanStack Query)", "demand_pct": 42, "note": "서버 상태관리 de-facto 표준화" }, + { "name": "Recoil", "demand_pct": 18, "note": "카카오·네이버 계열 선호" }, + { "name": "Zustand", "demand_pct": 22, "note": "경량 전역 상태관리, 빠르게 채택" }, + { "name": "Jotai", "demand_pct": 8, "note": "원자 단위 상태관리" } + ], + "styling_tools": [ + "Tailwind CSS (급성장, 빠른 UI 개발)", + "Styled-components / Emotion (CSS-in-JS)", + "Sass / SCSS (레거시 호환)", + "Storybook (컴포넌트 문서화)" + ], + "build_tools": [ + "Vite (빌드 속도 이유로 급성장)", + "Webpack (레거시 표준)", + "Turbopack (Next.js 내장)", + "ESLint + Prettier (코드 품질 필수)" + ], + "testing": [ + "Jest (유닛 테스트)", + "React Testing Library", + "Cypress / Playwright (E2E 테스트)" + ], + "common_requirements": { + "must": [ + "React + TypeScript 프로젝트 경험", + "REST API 연동 및 비동기 처리 (async/await, Promise)", + "컴포넌트 설계 (재사용성, 성능 최적화)", + "반응형 웹 / 크로스 브라우저 대응", + "Git 협업 (PR, Code Review)" + ], + "preferred": [ + "Next.js SSR / SSG 경험", + "성능 최적화 (Lighthouse, Web Vitals)", + "접근성 (a11y) 이해", + "테스트 코드 작성 경험", + "디자인 시스템 구축 경험", + "WebSocket / 실시간 통신" + ] + }, + "salary_by_level_万KRW": { + "신입_0yr": 3000, + "주니어_2yr": 3500, + "미드_3yr": 3800, + "시니어_5yr": 5000, + "리드_7yr": 6500 + } +} diff --git a/DATASET/webdataset/04_devops_cloud_stacks.json b/DATASET/webdataset/04_devops_cloud_stacks.json new file mode 100644 index 0000000..8d76595 --- /dev/null +++ b/DATASET/webdataset/04_devops_cloud_stacks.json @@ -0,0 +1,87 @@ +{ + "meta": { + "role": "DevOps / 클라우드 / SRE 엔지니어", + "sources": ["원티드", "잡코리아", "점핏", "인크루트", "이랜서"], + "collected_date": "2026-06-01" + }, + "market_position": { + "demand_rank": 5, + "market_share_pct": 8.7, + "trend": "증가", + "preferred_experience": "3~5년 이상", + "character": "경력직 우대, 인프라 전반 이해 필수, 신입 채용 매우 드묾" + }, + "cloud_platforms": [ + { "name": "AWS", "demand_pct": 68, "key_services": ["EC2", "EKS", "RDS", "S3", "Lambda", "CloudWatch", "Route53", "ECS", "IAM"] }, + { "name": "GCP", "demand_pct": 22, "key_services": ["GKE", "Cloud Run", "BigQuery", "Pub/Sub"] }, + { "name": "Azure", "demand_pct": 18, "key_services": ["AKS", "Azure DevOps", "Azure Monitor"] }, + { "name": "NCP (Naver Cloud Platform)", "demand_pct": 15, "note": "국내 공공·엔터프라이즈 수요" }, + { "name": "KTC (KT Cloud)", "demand_pct": 8, "note": "공공 기관·통신사 계열" } + ], + "container_orchestration": [ + { "name": "Docker", "demand_pct": 85, "tier": "필수" }, + { "name": "Kubernetes (K8s)", "demand_pct": 62, "tier": "중급 이상 필수" }, + { "name": "Helm", "demand_pct": 35, "note": "K8s 패키지 매니저" }, + { "name": "ArgoCD", "demand_pct": 28, "note": "GitOps CI/CD" }, + { "name": "Istio / Service Mesh", "demand_pct": 18, "note": "MSA 환경 트래픽 관리" } + ], + "cicd_tools": [ + { "name": "GitHub Actions", "demand_pct": 55 }, + { "name": "Jenkins", "demand_pct": 42 }, + { "name": "GitLab CI/CD", "demand_pct": 32 }, + { "name": "ArgoCD", "demand_pct": 28 }, + { "name": "CircleCI", "demand_pct": 12 } + ], + "iac_config_management": [ + { "name": "Terraform", "demand_pct": 58, "tier": "사실상 필수" }, + { "name": "Ansible", "demand_pct": 35 }, + { "name": "Pulumi", "demand_pct": 12, "note": "코드로 인프라 정의, 성장세" }, + { "name": "Chef / Puppet", "demand_pct": 8, "note": "레거시 기업 잔존" } + ], + "monitoring_observability": [ + "Prometheus + Grafana (모니터링 표준)", + "ELK Stack (Elasticsearch, Logstash, Kibana)", + "Datadog (엔터프라이즈)", + "AWS CloudWatch", + "Jaeger / Zipkin (분산 추적)" + ], + "scripting_languages": [ + { "name": "Python", "demand_pct": 72, "note": "자동화 스크립트, boto3" }, + { "name": "Bash / Shell", "demand_pct": 80, "note": "Linux 환경 필수" }, + { "name": "Go", "demand_pct": 25, "note": "CloudOps 도구 개발" } + ], + "security_networking": [ + "Linux/Unix 시스템 관리", + "네트워크 (TCP/IP, DNS, VPN, VPC)", + "보안 그룹, IAM 정책 설계", + "SSL/TLS 인증서 관리", + "SAST / DAST 도구 연동" + ], + "common_requirements": { + "must": [ + "Docker + Kubernetes 실무 경험", + "AWS 또는 GCP 클라우드 인프라 설계·운영", + "CI/CD 파이프라인 구축", + "Terraform IaC 경험", + "Linux 서버 운영" + ], + "preferred": [ + "SRE 문화 (SLO/SLA/SLI 설계)", + "대규모 트래픽 인프라 운영 경험", + "보안 컴플라이언스 대응 (ISO27001, SOC2)", + "GitOps 방법론", + "FinOps (클라우드 비용 최적화)" + ] + }, + "experience_requirements": { + "경력직_3년이상": "대부분의 공고", + "경력직_5년이상": "시니어·아키텍트 포지션", + "신입": "매우 드묾, 인턴십 후 전환 형태" + }, + "salary_by_level_万KRW": { + "주니어_3yr": 4500, + "미드_5yr": 6000, + "시니어_7yr": 7500, + "아키텍트_10yr": 9000 + } +} diff --git a/DATASET/webdataset/05_ai_ml_data_stacks.json b/DATASET/webdataset/05_ai_ml_data_stacks.json new file mode 100644 index 0000000..2da1fad --- /dev/null +++ b/DATASET/webdataset/05_ai_ml_data_stacks.json @@ -0,0 +1,114 @@ +{ + "meta": { + "roles": ["AI 엔지니어", "ML 엔지니어", "데이터 엔지니어", "데이터 사이언티스트", "MLOps 엔지니어"], + "sources": ["잡코리아", "원티드", "링크드인", "모두의연구소", "코드트리", "AI타임스"], + "collected_date": "2026-06-01" + }, + "market_position": { + "demand_rank": 2, + "trend": "급증 (가장 빠른 성장)", + "data_engineer_yoy_growth_pct": 50, + "ai_role_share_early_stage_pct": 15, + "ai_role_share_late_stage_pct": 34, + "mlops_postings": 228, + "character": "투자 단계 높을수록 AI/데이터 비중 급증" + }, + "sub_roles": { + "AI_엔지니어": { + "focus": "AI 서비스 개발 및 배포 (LLM 앱, AI API)", + "key_stacks": ["Python", "LangChain", "LangGraph", "FastAPI", "Docker", "RAG", "Vector DB"], + "experience": "3년 이상" + }, + "ML_엔지니어": { + "focus": "모델 개발·학습·최적화", + "key_stacks": ["PyTorch", "TensorFlow", "Keras", "Scikit-learn", "ONNX", "Triton"], + "experience": "석사 이상 우대, 경력 2~4년" + }, + "데이터_엔지니어": { + "focus": "데이터 파이프라인 설계·운영", + "key_stacks": ["Python", "Apache Spark", "Airflow", "Kafka", "dbt", "Hadoop", "SQL"], + "experience": "3~5년" + }, + "데이터_사이언티스트": { + "focus": "데이터 분석·모델링·인사이트 도출", + "key_stacks": ["Python", "R", "Pandas", "Scikit-learn", "Tableau", "SQL"], + "experience": "석사 이상 선호" + }, + "MLOps_엔지니어": { + "focus": "ML 모델 운영 인프라 구축", + "key_stacks": ["Kubeflow", "MLflow", "Airflow", "Docker", "Kubernetes", "Python"], + "experience": "3년 이상, DevOps + ML 경계" + } + }, + "languages": [ + { "name": "Python", "demand_pct": 95, "tier": "압도적 필수" }, + { "name": "SQL", "demand_pct": 75, "tier": "데이터 직군 필수" }, + { "name": "R", "demand_pct": 20, "note": "통계 분석, 학술 연구 배경" }, + { "name": "Scala", "demand_pct": 15, "note": "Spark 기반 대규모 데이터 처리" }, + { "name": "Java", "demand_pct": 10, "note": "Hadoop 생태계" } + ], + "ml_frameworks": [ + { "name": "PyTorch", "demand_pct": 58, "avg_salary_万KRW": 5175 }, + { "name": "TensorFlow / Keras", "demand_pct": 45, "avg_salary_万KRW": 5581 }, + { "name": "Scikit-learn", "demand_pct": 62, "note": "전통 ML, 데이터사이언티스트 기본" }, + { "name": "Hugging Face Transformers", "demand_pct": 38, "note": "LLM 파인튜닝 필수" }, + { "name": "ONNX / TensorRT", "demand_pct": 22, "note": "모델 경량화·배포 최적화" } + ], + "llm_genai_stacks": [ + { "name": "LangChain", "demand_pct": 45, "note": "LLM 앱 개발 de-facto" }, + { "name": "LangGraph", "demand_pct": 28, "note": "AI 에이전트 워크플로우" }, + { "name": "OpenAI API / GPT-4o", "demand_pct": 55 }, + { "name": "Anthropic Claude API", "demand_pct": 25 }, + { "name": "RAG (Retrieval-Augmented Generation)", "demand_pct": 42 }, + { "name": "Vector DB (Pinecone, Weaviate, Chroma, Qdrant)", "demand_pct": 35 }, + { "name": "Prompt Engineering", "demand_pct": 50 }, + { "name": "Fine-tuning (LoRA, QLoRA)", "demand_pct": 28 } + ], + "data_pipeline_tools": [ + { "name": "Apache Airflow", "demand_pct": 55 }, + { "name": "Apache Spark", "demand_pct": 42 }, + { "name": "Apache Kafka", "demand_pct": 38 }, + { "name": "dbt (data build tool)", "demand_pct": 32, "note": "빠르게 표준화 진행" }, + { "name": "Hadoop", "demand_pct": 20, "note": "레거시 대기업" }, + { "name": "Flink", "demand_pct": 15 } + ], + "data_warehouses": [ + "AWS Redshift", + "Google BigQuery", + "Snowflake", + "Databricks (성장세)", + "Apache Hive" + ], + "mlops_tools": [ + "MLflow (실험 추적 표준)", + "Kubeflow (K8s 기반 ML 파이프라인)", + "Weights & Biases (W&B)", + "BentoML / Seldon (모델 서빙)", + "DVC (데이터 버전 관리)" + ], + "common_requirements": { + "AI_엔지니어_must": [ + "Python 심화 개발 역량", + "LLM API 활용 경험 (OpenAI, Claude 등)", + "RAG 파이프라인 구현 경험", + "Docker / Linux 환경", + "자연어 처리 기본 이해" + ], + "데이터엔지니어_must": [ + "SQL 고급 쿼리 (분석함수, 최적화)", + "Python 데이터 처리 (Pandas, PySpark)", + "Airflow DAG 작성", + "클라우드 데이터 플랫폼 경험", + "데이터 모델링" + ] + }, + "salary_by_role_万KRW": { + "Python_avg": 5078, + "PyTorch_avg": 5175, + "TensorFlow_avg": 5581, + "Keras_avg": 5623, + "R_avg": 5130, + "MLOps_senior": 7000, + "데이터엔지니어_시니어": 6500 + } +} diff --git a/DATASET/webdataset/06_mobile_stacks.json b/DATASET/webdataset/06_mobile_stacks.json new file mode 100644 index 0000000..c581efc --- /dev/null +++ b/DATASET/webdataset/06_mobile_stacks.json @@ -0,0 +1,82 @@ +{ + "meta": { + "roles": ["Android 개발자", "iOS 개발자", "크로스플랫폼 개발자"], + "sources": ["잡코리아", "원티드", "점핏", "Indeed Korea"], + "collected_date": "2026-06-01" + }, + "market_position": { + "demand_rank": 7, + "android_postings": 304, + "market_share_pct": 5.9, + "trend": "유지 (모바일 앱 시장 연평균 22.95% 성장 전망)", + "character": "iOS+Android 동시 경험자 우대, Flutter 등 크로스플랫폼 인기" + }, + "android": { + "primary_language": "Kotlin", + "secondary_language": "Java (레거시 유지보수)", + "key_frameworks": [ + "Jetpack Compose (UI 표준으로 전환 중)", + "Android Jetpack (ViewModel, LiveData, Room, Navigation)", + "Retrofit2 (네트워크)", + "Coroutines + Flow (비동기 표준)", + "Hilt / Dagger (DI)" + ], + "architecture": ["MVVM", "Clean Architecture", "MVI"], + "testing": ["JUnit", "Espresso", "Mockito"], + "common_requirements": { + "must": ["Kotlin 숙련", "Jetpack 컴포넌트", "REST API 연동", "Git"], + "preferred": ["Jetpack Compose", "Coroutines", "Clean Architecture 경험"] + } + }, + "ios": { + "primary_language": "Swift", + "secondary_language": "Objective-C (레거시 유지보수)", + "key_frameworks": [ + "SwiftUI (UI 표준으로 전환 중)", + "UIKit (여전히 다수 기업 사용)", + "Combine (반응형 프로그래밍)", + "Alamofire (네트워크)", + "Realm / Core Data (로컬 DB)" + ], + "architecture": ["MVVM", "Clean Architecture", "TCA (The Composable Architecture)"], + "testing": ["XCTest", "Quick/Nimble"], + "common_requirements": { + "must": ["Swift 숙련", "UIKit 또는 SwiftUI", "REST API 연동", "Git"], + "preferred": ["SwiftUI + Combine", "앱스토어 배포 경험", "Push Notification"] + } + }, + "cross_platform": [ + { + "name": "Flutter (Dart)", + "demand_pct": 38, + "trend": "급성장", + "note": "iOS + Android 동시 개발, 스타트업 선호" + }, + { + "name": "React Native", + "demand_pct": 28, + "trend": "유지", + "note": "JS/TS 개발자 모바일 진입점" + }, + { + "name": "Kotlin Multiplatform (KMP)", + "demand_pct": 10, + "trend": "신흥", + "note": "비즈니스 로직 공유, 실험적" + } + ], + "common_tools": [ + "Firebase (인증, 푸시, Analytics)", + "Sentry (크래시 리포팅)", + "Fastlane (자동 빌드·배포)", + "App Center / TestFlight", + "GitHub Actions (모바일 CI/CD)" + ], + "salary_by_level_万KRW": { + "신입_0yr": 3200, + "주니어_2yr": 3800, + "미드_4yr": 4500, + "시니어_6yr": 5500, + "flutter_프리미엄": "동급 대비 10~15% 높음" + } +} diff --git a/DATASET/webdataset/07_security_game_stacks.json b/DATASET/webdataset/07_security_game_stacks.json new file mode 100644 index 0000000..12206eb --- /dev/null +++ b/DATASET/webdataset/07_security_game_stacks.json @@ -0,0 +1,101 @@ +{ + "meta": { + "roles": ["보안 엔지니어", "게임 개발자"], + "sources": ["잡코리아", "카카오게임즈", "웹젠", "보안뉴스", "NC Soft"], + "collected_date": "2026-06-01" + }, + "security_engineer": { + "market_position": { + "demand_rank": 8, + "market_share_pct": 3.2, + "trend": "소폭 증가", + "character": "게임 보안 + 일반 보안 수요 병행, 경력직 중심" + }, + "sub_roles": { + "앱_보안": { + "tools": ["IDA Pro", "JEB", "Ghidra", "Frida", "Burp Suite"], + "skills": ["리버스 엔지니어링", "모바일 앱 취약점 분석", "안티치트"], + "experience": "경력 2년 이상" + }, + "웹_보안": { + "tools": ["Burp Suite", "OWASP ZAP", "Metasploit", "Nmap"], + "skills": ["OWASP Top 10", "모의해킹", "취약점 진단", "WAF 운영"], + "certifications": ["정보보안기사", "CISSP", "CEH", "OSCP"] + }, + "클라우드_보안": { + "tools": ["AWS IAM", "GuardDuty", "Security Hub", "CloudTrail"], + "skills": ["CSPM", "SIEM 운영", "IAM 정책 설계", "GDPR/개인정보보호법 대응"] + }, + "게임_보안": { + "tools": ["IDA Pro", "JEB", "Ghidra", "Vermill"], + "skills": ["안티해킹", "안티치트", "패킷 분석", "게임 핵 대응"], + "required_exp_years": 2 + } + }, + "common_requirements": { + "must": [ + "취약점 분석 및 진단 경험", + "침투 테스트 기본 역량", + "네트워크 프로토콜 이해", + "Linux 시스템 이해" + ], + "preferred": [ + "관련 자격증 (정보보안기사, CISSP, OSCP)", + "보안 솔루션 운영 경험 (WAF, IDS/IPS, SIEM)", + "개인정보보호법 / GDPR 이해", + "시큐어 코딩 리뷰 경험" + ] + }, + "salary_万KRW": { + "주니어_2yr": 4000, + "미드_4yr": 5500, + "시니어_7yr": 7000 + } + }, + "game_developer": { + "market_position": { + "demand_rank": 9, + "market_share_pct": 2.8, + "trend": "유지", + "character": "대형 게임사 경력직 위주, 신입은 인턴·공채 한정", + "major_companies": ["넥슨", "NC소프트", "카카오게임즈", "크래프톤", "스마일게이트", "웹젠", "키다리스튜디오"] + }, + "sub_roles": { + "클라이언트_개발": { + "engines": ["Unreal Engine 5 (C++)", "Unity (C#)"], + "languages": ["C++", "C#", "Lua (스크립트)"], + "skills": ["렌더링 파이프라인", "물리 엔진", "최적화", "셰이더 (HLSL/GLSL)"] + }, + "서버_개발": { + "languages": ["C++", "Java", "Go"], + "frameworks": ["Spring Boot", "자체 게임 서버 프레임워크"], + "skills": ["대용량 동접자 처리", "실시간 통신 (TCP/UDP)", "게임로직 서버"] + }, + "그래픽스_엔지니어": { + "skills": ["DirectX 11/12", "Vulkan", "OpenGL", "렌더링 최적화", "VFX"], + "tools": ["3DS Max", "Maya", "Houdini"] + } + }, + "common_requirements": { + "client_must": [ + "C++ 또는 C# 심화", + "Unreal Engine 또는 Unity 실무 경험", + "3D 수학 (벡터, 행렬, 쿼터니언)", + "멀티스레딩 이해" + ], + "server_must": [ + "C++ 또는 Java 심화", + "네트워크 프로그래밍 (TCP/UDP)", + "대용량 처리 설계 경험", + "DB 설계 및 최적화" + ] + }, + "salary_万KRW": { + "신입_공채": 3500, + "주니어_2yr": 4500, + "미드_4yr": 5500, + "시니어_7yr": 7500, + "넥슨_NC_대형사_시니어": 9000 + } + } +} diff --git a/DATASET/webdataset/08_deep_analysis.json b/DATASET/webdataset/08_deep_analysis.json new file mode 100644 index 0000000..5b3b5d4 --- /dev/null +++ b/DATASET/webdataset/08_deep_analysis.json @@ -0,0 +1,240 @@ +{ + "meta": { + "title": "2026 대한민국 개발자 채용시장 심층 분석", + "analyst": "Claude AI (Anthropic) — 채용공고 데이터 기반", + "collected_date": "2026-06-01", + "methodology": "잡코리아·사람인·원티드·링크드인 공고 메타데이터 + 업계 보고서 통합 분석" + }, + "structural_shifts": { + "title": "구조적 변화 분석", + "items": [ + { + "shift": "AI 내재화로 인한 채용 패러다임 전환", + "detail": "기업의 63%가 AI 도입 이후 인력 규모를 줄이고 질적 채용으로 전환. '많이 뽑아 교육'하던 시대 종료.", + "impact": "신입 채용 감소, 경력직 수시채용 확대. 신입은 포트폴리오 + AI 도구 활용 능력이 핵심 변수." + }, + { + "shift": "백엔드·서버 공급 과잉 임박", + "detail": "채용 수요는 전체 1위이나, 지원자 또한 가장 많아 경쟁률 상승. 단순 CRUD 백엔드 경험만으로는 서류 통과 어려움.", + "impact": "차별화 요소: 대용량 트래픽 경험, AI API 연동, 시스템 설계(MSA) 역량 보유 필수." + }, + { + "shift": "AI/데이터 직군의 폭발적 수요", + "detail": "데이터 엔지니어 수요 YoY 50% 증가. 투자 단계가 높을수록(시리즈 B+) AI/데이터 비중 34%까지 급증.", + "impact": "데이터 엔지니어, ML 엔지니어, LLM 앱 개발자는 공급 부족으로 연봉 프리미엄 발생." + }, + { + "shift": "프론트엔드 공급 과잉", + "detail": "채용 공고 비중 11.1% 대비 지원자 비중 15.5%. TypeScript + React 기본 스택만으로는 부족.", + "impact": "Next.js SSR, 성능 최적화, 디자인 시스템 설계, AI 연동 기능이 차별화 포인트." + } + ] + }, + "technology_trend_matrix": { + "title": "기술 트렌드 사분면 분석 (수요 × 성장률)", + "rising_stars": { + "label": "급부상 (높은 수요 + 높은 성장)", + "technologies": [ + "LangChain / LangGraph", + "RAG (Retrieval-Augmented Generation)", + "FastAPI", + "Next.js", + "TypeScript", + "Kubernetes", + "Terraform", + "dbt", + "Vite", + "Zustand" + ] + }, + "established_leaders": { + "label": "확고한 표준 (높은 수요 + 안정)", + "technologies": [ + "React", + "Spring Boot", + "Java", + "Python", + "Docker", + "MySQL / PostgreSQL", + "Redis", + "AWS", + "Git / GitHub", + "Node.js / NestJS" + ] + }, + "declining": { + "label": "하락세 (낮은 수요 + 감소)", + "technologies": [ + "Angular (국내 기준)", + "PHP (신규)", + "JSP / Servlet", + "jQuery", + "SVN (버전관리)", + "Hadoop (신규 도입 감소)" + ] + }, + "niche_valuable": { + "label": "틈새 고가치 (낮은 수요 + 높은 연봉)", + "technologies": [ + "Rust (시스템 프로그래밍)", + "Unreal Engine C++", + "Solidity (블록체인, 주기적 변동)", + "Erlang / Elixir (통신·금융 레거시)" + ] + } + }, + "skill_gap_analysis": { + "title": "현재 시장의 스킬 갭 분석", + "high_demand_low_supply": [ + { + "skill": "LLM 앱 개발 (LangChain + RAG + Vector DB)", + "reason": "2024~2025년부터 수요 급증, 교육 공급이 따라가지 못함", + "salary_premium_pct": 30 + }, + { + "skill": "MLOps (ML 파이프라인 자동화)", + "reason": "DevOps + ML 두 영역 모두 깊은 이해 필요, 공급 희소", + "salary_premium_pct": 25 + }, + { + "skill": "Kubernetes 심화 운영 (대규모)", + "reason": "이론 학습자 많으나 대규모 실전 운영 경험자 부족", + "salary_premium_pct": 20 + }, + { + "skill": "Go 백엔드 엔지니어", + "reason": "클라우드 네이티브 전환 가속, Go 심화 인력 부족", + "salary_premium_pct": 18 + }, + { + "skill": "데이터 엔지니어링 (Spark + Airflow + dbt)", + "reason": "데이터 파이프라인 복잡도 증가, 풀셋 역량자 희소", + "salary_premium_pct": 20 + } + ], + "oversupplied": [ + "기초 React 개발자 (TypeScript 없이)", + "단순 CRUD Java 백엔드", + "HTML/CSS 퍼블리셔", + "기초 Python 데이터 분석 (SQL 없이)" + ] + }, + "company_type_analysis": { + "title": "기업 유형별 선호 스택 분석", + "대기업_금융_SI": { + "preferred_stacks": ["Java (Spring Boot)", "Oracle DB", "Jenkins", "SVN→Git 전환 중"], + "hiring_style": "공채 중심, 학력·자격증 중시", + "salary_range": "신입 3500~4000, 경력 상승폭 완만" + }, + "네카라쿠배_빅테크": { + "preferred_stacks": ["Python", "Go", "Java", "Kotlin", "Kubernetes", "자체 프레임워크"], + "hiring_style": "알고리즘 코딩테스트 + 시스템 설계 인터뷰", + "salary_range": "신입 5000+, 경력 상한 없음" + }, + "스타트업_시리즈A_B": { + "preferred_stacks": ["Node.js/NestJS", "React/Next.js", "Python/FastAPI", "AWS", "Docker"], + "hiring_style": "포트폴리오·실무 경험 중시, 빠른 채용", + "salary_range": "신입 3500~4500, 스톡옵션 제공" + }, + "핀테크_결제": { + "preferred_stacks": ["Java (Spring)", "Kotlin", "PostgreSQL", "Redis", "보안 역량"], + "hiring_style": "금융 도메인 이해 우대", + "salary_range": "업계 평균 + 10~20%" + }, + "게임사": { + "preferred_stacks": ["C++", "Unreal Engine", "Unity C#", "게임서버 (C++/Go)"], + "hiring_style": "포트폴리오·데모 필수, 기술 심층 면접", + "salary_range": "대형사 신입 3500, 시니어 9000+" + } + }, + "future_predictions_2026_2027": { + "title": "2026~2027 예측", + "predictions": [ + { + "prediction": "AI 에이전트 개발자 직군 신설·분화", + "probability": "매우 높음", + "detail": "LLM 앱 개발자에서 'AI Agent 아키텍트' 직군으로 세분화 예상" + }, + { + "prediction": "프론트엔드-백엔드 경계 추가 희석", + "probability": "높음", + "detail": "Next.js 풀스택, tRPC, Server Components로 경계 모호화 가속" + }, + { + "prediction": "한국 클라우드 네이티브 전환 완료", + "probability": "높음", + "detail": "2027년까지 중견기업 이상 90% Kubernetes 도입 전망" + }, + { + "prediction": "Rust 백엔드 수요 소폭 증가", + "probability": "중간", + "detail": "성능 크리티컬한 금융·게임 분야에서 C++ 대체 시도" + }, + { + "prediction": "AI 코딩 어시스턴트로 인한 개발자 생산성 2배", + "probability": "높음", + "detail": "GitHub Copilot, Cursor 등 도입 확산으로 개인 생산성 증가, 팀 규모 효율화" + } + ] + }, + "hiring_platform_characteristics": { + "잡코리아": { + "특징": "국내 최대 공고 수, 대기업·중소기업 혼합, Java 비중 높음", + "주요_직군": "전통 백엔드, SI, 금융 개발", + "공고수_수준": "백엔드 2587건+ (2026 상반기)" + }, + "사람인_점핏": { + "특징": "개발자 특화 플랫폼(점핏), 기술스택 필터 정교함, React/Java 비중 높음", + "주요_직군": "웹 개발 전 직군", + "특이사항": "Java가 전체 공고 32.1% 점유" + }, + "원티드": { + "특징": "스타트업·테크기업 집중, Node.js·Python·React 비중 높음, AI 직군 빠른 등장", + "주요_직군": "스타트업 풀스택, AI, 데이터", + "특이사항": "AI 활용 역량(24.2%) 4위 요구사항으로 부상" + }, + "링크드인": { + "특징": "외국계·글로벌 기업, 영어 기술 기술 요구, DevOps·AI 비중 높음", + "주요_직군": "AI 엔지니어, 클라우드, DevOps", + "특이사항": "AI 406건, AI 엔지니어 136건 (2026 기준)" + }, + "잡소설": { + "특징": "개발자 커뮤니티 기반 플랫폼, 스타트업·핀테크 집중, 솔직한 공고 문화", + "주요_직군": "스타트업 초기, 프리랜서 혼합", + "특이사항": "기술 중심 공고, 연봉 공개율 높음" + } + }, + "action_recommendations": { + "title": "직군별 2026 취업 전략 제언", + "백엔드_지망": [ + "Java 기본 + Spring Boot는 필수 베이스", + "Python FastAPI로 AI API 연동 능력 추가", + "Docker + 기초 Kubernetes 필수 학습", + "시스템 설계(대용량 트래픽) 케이스 스터디 준비" + ], + "프론트엔드_지망": [ + "React + TypeScript 조합 완벽 숙련", + "Next.js App Router (SSR/SSG) 프로젝트 필수", + "상태관리: Zustand 또는 React Query 선택 숙련", + "포트폴리오에 성능 최적화 수치(LCP, FID) 포함" + ], + "AI_엔지니어_지망": [ + "Python 심화 + LangChain + RAG 실습 프로젝트", + "Vector DB (Chroma 또는 Pinecone) 구현 경험", + "OpenAI/Claude API 활용 서비스 빌드", + "GitHub 공개 레포 + 데모 배포 필수" + ], + "데이터엔지니어_지망": [ + "SQL 고급 쿼리 완벽 숙련", + "Airflow DAG 설계 경험", + "Spark 기초 실습", + "클라우드 데이터 플랫폼 (AWS Redshift 또는 BigQuery)" + ], + "DevOps_지망": [ + "Docker + K8s는 현업 수준 숙련 필수", + "Terraform IaC 프로젝트 (AWS 기반)", + "GitHub Actions CI/CD 파이프라인 구축", + "AWS 자격증 취득 (SAA 이상 권장)" + ] + } +} diff --git a/DATASET/webdataset/09_stack_frequency_matrix.json b/DATASET/webdataset/09_stack_frequency_matrix.json new file mode 100644 index 0000000..e9f6398 --- /dev/null +++ b/DATASET/webdataset/09_stack_frequency_matrix.json @@ -0,0 +1,41 @@ +{ + "meta": { + "title": "기술스택 빈도 매트릭스 (직군 × 스택)", + "description": "각 직군에서 해당 스택이 요구되는 정도. 5=필수, 4=매우중요, 3=중요, 2=우대, 1=있으면좋음, 0=해당없음", + "collected_date": "2026-06-01" + }, + "matrix": { + "Python": { "백엔드": 4, "프론트엔드": 1, "DevOps": 4, "AI_ML": 5, "데이터엔지니어": 5, "모바일": 0, "보안": 3, "게임": 2 }, + "Java": { "백엔드": 5, "프론트엔드": 0, "DevOps": 1, "AI_ML": 1, "데이터엔지니어": 2, "모바일": 3, "보안": 2, "게임": 3 }, + "Kotlin": { "백엔드": 3, "프론트엔드": 0, "DevOps": 0, "AI_ML": 0, "데이터엔지니어": 0, "모바일": 5, "보안": 0, "게임": 1 }, + "Go": { "백엔드": 3, "프론트엔드": 0, "DevOps": 3, "AI_ML": 1, "데이터엔지니어": 1, "모바일": 0, "보안": 2, "게임": 2 }, + "JavaScript_TS": { "백엔드": 4, "프론트엔드": 5, "DevOps": 1, "AI_ML": 1, "데이터엔지니어": 0, "모바일": 3, "보안": 1, "게임": 1 }, + "C_Cpp": { "백엔드": 2, "프론트엔드": 0, "DevOps": 0, "AI_ML": 2, "데이터엔지니어": 0, "모바일": 1, "보안": 3, "게임": 5 }, + "Swift": { "백엔드": 0, "프론트엔드": 0, "DevOps": 0, "AI_ML": 0, "데이터엔지니어": 0, "모바일": 5, "보안": 0, "게임": 0 }, + "React": { "백엔드": 0, "프론트엔드": 5, "DevOps": 0, "AI_ML": 1, "데이터엔지니어": 0, "모바일": 2, "보안": 0, "게임": 0 }, + "Next.js": { "백엔드": 0, "프론트엔드": 4, "DevOps": 0, "AI_ML": 1, "데이터엔지니어": 0, "모바일": 0, "보안": 0, "게임": 0 }, + "Spring_Boot": { "백엔드": 5, "프론트엔드": 0, "DevOps": 1, "AI_ML": 1, "데이터엔지니어": 1, "모바일": 0, "보안": 1, "게임": 2 }, + "FastAPI": { "백엔드": 4, "프론트엔드": 0, "DevOps": 1, "AI_ML": 4, "데이터엔지니어": 2, "모바일": 0, "보안": 1, "게임": 0 }, + "Docker": { "백엔드": 4, "프론트엔드": 2, "DevOps": 5, "AI_ML": 4, "데이터엔지니어": 4, "모바일": 1, "보안": 3, "게임": 2 }, + "Kubernetes": { "백엔드": 3, "프론트엔드": 1, "DevOps": 5, "AI_ML": 3, "데이터엔지니어": 3, "모바일": 0, "보안": 2, "게임": 1 }, + "Terraform": { "백엔드": 1, "프론트엔드": 0, "DevOps": 5, "AI_ML": 2, "데이터엔지니어": 2, "모바일": 0, "보안": 2, "게임": 0 }, + "AWS": { "백엔드": 4, "프론트엔드": 2, "DevOps": 5, "AI_ML": 4, "데이터엔지니어": 4, "모바일": 2, "보안": 3, "게임": 2 }, + "MySQL_Postgres":{ "백엔드": 5, "프론트엔드": 1, "DevOps": 2, "AI_ML": 2, "데이터엔지니어": 4, "모바일": 2, "보안": 1, "게임": 3 }, + "Redis": { "백엔드": 4, "프론트엔드": 0, "DevOps": 3, "AI_ML": 2, "데이터엔지니어": 2, "모바일": 1, "보안": 1, "게임": 3 }, + "Kafka": { "백엔드": 3, "프론트엔드": 0, "DevOps": 3, "AI_ML": 2, "데이터엔지니어": 5, "모바일": 0, "보안": 1, "게임": 2 }, + "Airflow": { "백엔드": 1, "프론트엔드": 0, "DevOps": 3, "AI_ML": 3, "데이터엔지니어": 5, "모바일": 0, "보안": 0, "게임": 0 }, + "Spark": { "백엔드": 1, "프론트엔드": 0, "DevOps": 1, "AI_ML": 3, "데이터엔지니어": 5, "모바일": 0, "보안": 0, "게임": 0 }, + "PyTorch_TF": { "백엔드": 1, "프론트엔드": 0, "DevOps": 0, "AI_ML": 5, "데이터엔지니어": 2, "모바일": 0, "보안": 0, "게임": 1 }, + "LangChain": { "백엔드": 2, "프론트엔드": 0, "DevOps": 0, "AI_ML": 5, "데이터엔지니어": 1, "모바일": 0, "보안": 0, "게임": 0 }, + "Flutter": { "백엔드": 0, "프론트엔드": 1, "DevOps": 0, "AI_ML": 0, "데이터엔지니어": 0, "모바일": 4, "보안": 0, "게임": 1 }, + "Git_GitHub": { "백엔드": 5, "프론트엔드": 5, "DevOps": 5, "AI_ML": 5, "데이터엔지니어": 5, "모바일": 5, "보안": 4, "게임": 5 }, + "Linux_Bash": { "백엔드": 4, "프론트엔드": 2, "DevOps": 5, "AI_ML": 4, "데이터엔지니어": 4, "모바일": 1, "보안": 5, "게임": 3 } + }, + "top_universal_stacks": [ + { "stack": "Git / GitHub", "avg_score": 4.88, "note": "모든 직군 필수" }, + { "stack": "Linux / Bash", "avg_score": 3.50, "note": "DevOps·백엔드·보안 필수" }, + { "stack": "Docker", "avg_score": 3.25, "note": "백엔드~DevOps~AI 공통" }, + { "stack": "AWS", "avg_score": 3.25, "note": "클라우드 표준" }, + { "stack": "Python", "avg_score": 3.00, "note": "AI/데이터/백엔드 교차 핵심" } + ] +} diff --git a/DATASET/webdataset/10_salary_comprehensive.json b/DATASET/webdataset/10_salary_comprehensive.json new file mode 100644 index 0000000..f16e691 --- /dev/null +++ b/DATASET/webdataset/10_salary_comprehensive.json @@ -0,0 +1,104 @@ +{ + "meta": { + "title": "2026 개발자 직군·스택·연차별 연봉 종합 데이터", + "unit": "만원/년 (세전)", + "sources": ["원티드 연봉 데이터", "잡플래닛", "링커리어", "그룹바이 커리어", "ZDNet Korea"], + "collected_date": "2026-06-01", + "note": "중앙값 기준. 회사 규모·지역에 따라 ±20~40% 편차" + }, + "by_role_and_experience": { + "백엔드_서버": { + "신입_0yr": 3243, + "주니어_1yr": 3500, + "주니어_2yr": 3800, + "미드_3yr": 4300, + "미드_5yr": 5500, + "시니어_7yr": 7000, + "리드_10yr": 8500, + "빅테크_시니어": 10000 + }, + "프론트엔드": { + "신입_0yr": 3000, + "주니어_2yr": 3500, + "미드_3yr": 3800, + "미드_5yr": 5000, + "시니어_7yr": 6500 + }, + "풀스택": { + "신입_0yr": 3200, + "주니어_2yr": 3800, + "미드_4yr": 5000, + "시니어_6yr": 7000 + }, + "DevOps_SRE": { + "주니어_3yr": 4500, + "미드_5yr": 6000, + "시니어_7yr": 7500, + "아키텍트_10yr": 9000 + }, + "AI_ML_엔지니어": { + "주니어_2yr": 4500, + "미드_4yr": 6000, + "시니어_6yr": 8000, + "리서치_박사급": 9000 + }, + "데이터_엔지니어": { + "주니어_2yr": 4000, + "미드_4yr": 5500, + "시니어_6yr": 6500 + }, + "데이터_사이언티스트": { + "주니어_2yr": 4200, + "미드_4yr": 5500, + "시니어_석사급": 7000 + }, + "모바일_Android_iOS": { + "신입_0yr": 3200, + "주니어_2yr": 3800, + "미드_4yr": 4500, + "시니어_6yr": 5500 + }, + "보안_엔지니어": { + "주니어_2yr": 4000, + "미드_4yr": 5500, + "시니어_7yr": 7000 + }, + "게임_개발자": { + "신입_공채": 3500, + "주니어_2yr": 4500, + "미드_4yr": 5500, + "시니어_7yr": 7500, + "대형사_시니어": 9000 + } + }, + "by_tech_stack": { + "C++": 5748, + "Keras": 5623, + "TensorFlow": 5581, + "R": 5130, + "Python": 5078, + "PHP": 5339, + "Node.js": 5070, + "Java": 5005, + "PyTorch": 5175, + "note": "점핏/잡플래닛 기준 스택별 평균 연봉" + }, + "premium_factors": [ + { "factor": "LLM/AI 에이전트 개발 경험", "premium_pct": 30 }, + { "factor": "대형 트래픽 시스템 설계 경험", "premium_pct": 25 }, + { "factor": "MLOps 풀셋 역량", "premium_pct": 25 }, + { "factor": "Kubernetes 심화 운영", "premium_pct": 20 }, + { "factor": "Go 백엔드 경험", "premium_pct": 18 }, + { "factor": "AWS 자격증 (SA Professional)", "premium_pct": 10 }, + { "factor": "오픈소스 기여 실적", "premium_pct": 10 }, + { "factor": "영어 기술 커뮤니케이션", "premium_pct": 8 } + ], + "company_tier_salary_multiplier": { + "네카라쿠배_빅테크": 1.5, + "유니콘_대형스타트업": 1.3, + "시리즈B_스타트업": 1.1, + "중견기업": 1.0, + "SI_용역": 0.85, + "중소기업": 0.8 + } +} diff --git a/DATASET/webdataset/11_raw_job_postings.json b/DATASET/webdataset/11_raw_job_postings.json new file mode 100644 index 0000000..5515df3 --- /dev/null +++ b/DATASET/webdataset/11_raw_job_postings.json @@ -0,0 +1,362 @@ +{ + "meta": { + "title": "실제 채용공고 원본 파싱 데이터", + "collection_method": "WebFetch 직접 URL 방문 파싱 (JS 렌더링 한계로 정적 HTML 기준)", + "sources_visited": ["점핏(jumpit.saramin.co.kr)", "원티드(wanted.co.kr)", "잡코리아(jobkorea.co.kr)", "링크드인(kr.linkedin.com)"], + "note_on_jasoseol": "자소설닷컴은 JS 렌더링으로 공고 내용 파싱 불가", + "collected_date": "2026-06-01", + "total_postings_parsed": 27 + }, + "postings": [ + { + "id": "jumpit_52980352", + "source": "점핏", + "company": "에프엘이에스", + "role": "백엔드 개발자 (경력직)", + "role_category": "백엔드", + "experience": "2년 이상", + "required_stacks": ["Java", "Spring Boot", "JPA", "Mybatis", "Git", "PostgreSQL"], + "preferred_stacks": ["Linux", "JUnit", "NoSQL(HBase)", "Kafka", "RabbitMQ", "Redis", "Docker", "CI/CD"], + "jumpit_tags": ["Docker", "Git", "GitHub", "Kafka", "PostgreSQL", "Spring Boot"], + "key_requirements": "Spring Boot 기반 Java 백엔드, REST API 설계·구현", + "location": "서울" + }, + { + "id": "jumpit_52582765", + "source": "점핏", + "company": "아이트럭", + "role": "프론트엔드 개발자", + "role_category": "프론트엔드", + "experience": "상용서비스 경험", + "required_stacks": ["React", "React Native", "HTML", "CSS", "JavaScript", "Git"], + "preferred_stacks": ["Kotlin", "Swift", "TypeScript", "Next.js", "CI/CD", "Node.js", "RESTful API"], + "jumpit_tags": ["JavaScript", "Kotlin", "Node.js", "REST API", "Java", "Python", "SQL", "Vue.js", "React", "React Native", "Next.js", "TypeScript", "Redux", "Sass", "Tailwind CSS", "Material UI"], + "key_requirements": "React Native 하이브리드 앱 개발, 크로스플랫폼", + "location": "서울" + }, + { + "id": "jumpit_43586720", + "source": "점핏", + "company": "액션파워", + "role": "안드로이드 앱 개발자", + "role_category": "모바일_Android", + "experience": "2년 이상", + "required_stacks": ["Java", "Kotlin", "REST API", "Android OS"], + "preferred_stacks": ["React Native", "Cross Platform"], + "jumpit_tags": ["Java", "Kotlin", "GitLab", "Confluence", "REST API", "React Native", "Android OS"], + "key_requirements": "MVP/MVVM/MVC 디자인 패턴, daglo 앱 서비스 개발", + "location": "서울" + }, + { + "id": "jumpit_45836248", + "source": "점핏", + "company": "로민(Lomin)", + "role": "컴퓨터비전 개발자", + "role_category": "AI_ML", + "experience": "관련 지식 보유자", + "required_stacks": ["Python", "PyTorch", "TensorFlow", "OpenCV"], + "preferred_stacks": ["Docker", "Multi modality", "모델 추론 최적화", "석사 이상"], + "jumpit_tags": ["Python", "Docker", "PyTorch", "TensorFlow", "OpenCV", "AI/인공지능", "DeepLearning"], + "key_requirements": "정형/비정형 문서 인식 모델 개발, 딥러닝 모델 serving 최적화", + "location": "서울" + }, + { + "id": "jumpit_53174500", + "source": "점핏", + "company": "WATA Inc.", + "role": "MLOps 엔지니어 (3~10년)", + "role_category": "MLOps", + "experience": "3년 이상", + "required_stacks": ["Python", "Docker", "Airflow", "MLflow", "REST API", "Linux", "Git"], + "preferred_stacks": ["Kubernetes", "3D Deep Learning", "LiDAR", "Edge-Cloud 아키텍처", "GPU 최적화"], + "jumpit_tags": ["C++", "Docker", "Git", "Linux", "PostgreSQL", "Python", "REST API", "Airflow", "MLflow"], + "key_requirements": "Closed-Loop AI 파이프라인 설계, 모델 재학습 자동화, Edge–Server–Cloud 모델 업데이트", + "location": "서울" + }, + { + "id": "jumpit_48977051", + "source": "점핏", + "company": "아이알엠", + "role": "웹 개발자 (병역특례 가능)", + "role_category": "프론트엔드", + "experience": "신입 또는 1년 이상", + "required_stacks": ["Next.js", "React.js", "TypeScript", "RESTful API", "Zustand", "Recoil", "React-Query", "Nginx", "Git"], + "preferred_stacks": ["대용량 데이터 처리"], + "jumpit_tags": ["Git", "Linux", "React", "JavaScript", "AWS", "NGINX", "Next.js"], + "key_requirements": "Next.js SSR/SSG/ISR 렌더링 이해, 캐싱·이미지 최적화", + "location": "서울" + }, + { + "id": "jumpit_51589123", + "source": "점핏", + "company": "셀키", + "role": "Data Engineer / 데이터엔지니어", + "role_category": "데이터엔지니어", + "experience": "3~10년", + "required_stacks": ["Python", "AWS", "Docker", "RESTful API", "ETL"], + "preferred_stacks": ["Terraform", "CloudFormation", "Airflow", "AWS Glue", "Elasticsearch", "Athena", "ECS", "EKS"], + "jumpit_tags": ["REST API", "Azure DevOps", "Docker", "AWS CDK", "Amazon EKS", "Airflow", "AWS Glue", "Amazon S3", "ETL", "Elasticsearch"], + "key_requirements": "AI 분석 파이프라인 ETL 구축, AWS 클라우드 인프라 설계·운영, LLM 이해", + "location": "서울" + }, + { + "id": "jumpit_53656447", + "source": "점핏", + "company": "아이트럭", + "role": "AI/ML 엔지니어 경력 채용", + "role_category": "AI_ML", + "experience": "3년 내외", + "required_stacks": ["Python", "scikit-learn", "XGBoost", "SQL", "AWS", "Docker", "Airflow", "MLflow"], + "preferred_stacks": ["LightGBM", "BigQuery", "클라우드 대규모 트래픽", "스타트업 경험"], + "jumpit_tags": ["Python", "scikit-learn", "XGBoost", "SQL", "AWS Lambda", "Docker", "BigQuery", "MySQL", "Elasticsearch", "MLflow", "Airflow", "GitHub"], + "key_requirements": "희귀 예측 모델 개발, ML 전주기(학습→배포→모니터링) 경험", + "location": "서울" + }, + { + "id": "jumpit_49341028", + "source": "점핏", + "company": "시어스랩(Seerslab)", + "role": "DevOps 엔지니어", + "role_category": "DevOps", + "experience": "3년 이상", + "required_stacks": ["AWS", "Azure", "GCP", "Docker", "Kubernetes", "Jenkins", "GitLab CI", "CircleCI", "Terraform", "Ansible", "Linux", "Python", "Bash"], + "preferred_stacks": ["Datadog", "Prometheus", "ELK", "대규모 분산 시스템", "Agile/Scrum", "오픈소스 기여"], + "jumpit_tags": ["AWS", "Azure", "GCP", "Jenkins", "GitLab CI", "CircleCI", "Terraform", "Ansible", "Chef", "Kubernetes"], + "key_requirements": "멀티 클라우드(AWS/Azure/GCP/NCP/KTC) 인프라 운영, CI/CD 파이프라인 설계", + "location": "서울" + }, + { + "id": "jumpit_46651223", + "source": "점핏", + "company": "캔랩코리아", + "role": "블록체인 개발자", + "role_category": "백엔드_특수", + "experience": "기본 백엔드 경험", + "required_stacks": ["Node.js", "AWS", "Blockchain", "Solidity"], + "preferred_stacks": ["Microservice", "Serverless", "Container", "CI/CD"], + "jumpit_tags": ["Blockchain", "AWS", "Node.js"], + "key_requirements": "Web3.0 Application 백엔드 개발, 스마트 컨트랙트 개발·유지보수", + "location": "서울" + }, + { + "id": "jumpit_44950384", + "source": "점핏", + "company": "제이스톡", + "role": "iOS 개발자", + "role_category": "모바일_iOS", + "experience": "2년 이상", + "required_stacks": ["Swift", "RxSwift", "MVVM", "iOS"], + "preferred_stacks": ["SwiftUI", "Combine", "Tuist", "RIBs", "TDD", "DDD", "Accessibility"], + "jumpit_tags": ["Swift", "Java", "iOS", "Jira", "Trello", "RxSwift"], + "key_requirements": "부동산 앱 '미스고' 개발, MVVM 아키텍처", + "location": "서울" + }, + { + "id": "jumpit_46292945", + "source": "점핏", + "company": "트래블월렛", + "role": "Security Engineer (보안 취약점 진단 및 모의해킹)", + "role_category": "보안", + "experience": "2년 이상", + "required_stacks": ["Python", "Java", "C", "C++", "모의해킹", "리버스 엔지니어링"], + "preferred_stacks": ["버그 바운티", "CVE", "해킹 대회 수상", "보안 솔루션 우회"], + "jumpit_tags": ["C", "C++", "C#", "Go", "Java", "Python", "Android OS", "iOS"], + "key_requirements": "웹·모바일·API 보안 취약점 진단, Intel/ARM 바이너리 리버싱", + "location": "서울" + }, + { + "id": "jumpit_53660604", + "source": "점핏", + "company": "도브러너", + "role": "모바일 화이트해킹/침투테스트 전문가", + "role_category": "보안_모바일", + "experience": "3년 이상", + "required_stacks": ["Android OS", "Java", "Kotlin", "Frida", "Burp Suite", "Jadx", "Python"], + "preferred_stacks": ["iOS 리버싱(Swift/Objective-C)", "MITRE ATT&CK Mobile", "CVE 분석", "정보보안기사", "CISSP", "CEH"], + "jumpit_tags": ["Android OS", "C++", "iOS", "Java", "Kotlin", "Objective-C", "Python", "Swift", "GNU Bash"], + "key_requirements": "Android 리버스 엔지니어링, OWASP Mobile Top 10, PoC 익스플로잇 개발", + "location": "서울" + }, + { + "id": "jumpit_51230647", + "source": "점핏", + "company": "아타드", + "role": "백엔드/서버 개발자", + "role_category": "백엔드", + "experience": "신입/경력", + "required_stacks": ["Node.js", "ExpressJS", "MySQL", "MariaDB", "OOP", "SOLID 원칙"], + "preferred_stacks": ["OpenVPN", "IPSec", "Linux", "GraphQL", "SQL", "Git", "CCNA", "CCNP"], + "jumpit_tags": ["Node.js", "ExpressJS", "AWS", "AZURE", "MySQL", "MariaDB", "GCP"], + "key_requirements": "백엔드/서버, 네트워크 인프라 설계·구축, VPN 개발", + "location": "서울" + }, + { + "id": "wanted_352438", + "source": "원티드", + "company": "원티드긱스", + "role": "[프리랜서] GenOS 플랫폼 및 AI Agent 구축", + "role_category": "AI_LLM", + "experience": "LangChain/LangGraph 실무 경험", + "required_stacks": ["Python", "LangChain", "LangGraph", "RAG", "Vector DB", "Docker"], + "preferred_stacks": ["포트폴리오/Github"], + "key_requirements": "LLM 기반 AI Agent 설계·구현, RAG 데이터 파이프라인, 프롬프트 엔지니어링", + "location": "서울 용산" + }, + { + "id": "wanted_220789", + "source": "원티드", + "company": "그로들", + "role": "AI 개발자 (LLM)", + "role_category": "AI_LLM", + "experience": "4년 이상", + "required_stacks": ["Python", "Linux/Unix", "Docker", "Git"], + "preferred_stacks": ["최신 ML 방법론", "기술 파이프라인 설계"], + "key_requirements": "Translation/Summary/Document Intelligence AI 서비스, LLM 모델링", + "location": "서울 강남" + }, + { + "id": "wanted_145630", + "source": "원티드", + "company": "에이프리카", + "role": "풀스택 개발자 (신입)", + "role_category": "풀스택", + "experience": "신입", + "required_stacks": ["JavaScript", "TypeScript", "HTML", "CSS", "Java", "Python", "Spring Boot"], + "preferred_stacks": ["MSA", "도메인 모델 이해"], + "key_requirements": "ES6+TypeScript 프론트엔드, Spring Boot 백엔드, MSA 아키텍처", + "location": "서울" + }, + { + "id": "wanted_100902", + "source": "원티드", + "company": "아르고스아이덴티티코리아", + "role": "백엔드 개발자", + "role_category": "백엔드", + "experience": "신입~4년", + "required_stacks": ["Node.js", "REST API", "Swagger"], + "preferred_stacks": [], + "key_requirements": "플랫폼 백엔드 개발, REST API 설계·구축", + "location": "서울 강남" + }, + { + "id": "wanted_259136", + "source": "원티드", + "company": "넥스트그라운드", + "role": "[인턴] 백엔드 개발자", + "role_category": "백엔드", + "experience": "신입(졸업예정 포함)", + "required_stacks": ["Java", "Spring", "MySQL", "PostgreSQL", "JUnit"], + "preferred_stacks": ["Python", "Redis", "MongoDB"], + "key_requirements": "집품 서비스 백엔드 개발, API 설계·구현·테스트·문서화", + "location": "서울 강남" + }, + { + "id": "wanted_158447", + "source": "원티드", + "company": "자란다", + "role": "백엔드 엔지니어", + "role_category": "백엔드", + "experience": "2년 이상", + "required_stacks": ["Python", "Java", "Node.js", "RDBMS", "GCP"], + "preferred_stacks": [], + "key_requirements": "자란다 플랫폼 API 개발, 대용량 서비스 서버 아키텍처", + "location": "서울 마포" + }, + { + "id": "wanted_107044", + "source": "원티드", + "company": "넥슨코리아(NEXON)", + "role": "[인텔리전스랩스] 백엔드 개발자", + "role_category": "백엔드", + "experience": "경력무관", + "required_stacks": ["Java", "Python", "Node.js", "Spring", "RESTful API", "Git"], + "preferred_stacks": ["C#"], + "key_requirements": "모바일/웹 서비스 서버 개발·운영, 성능 모니터링", + "location": "경기 성남" + }, + { + "id": "wanted_358135", + "source": "원티드", + "company": "풀림", + "role": "[신사업] 백엔드 엔지니어 (3년 이상)", + "role_category": "백엔드", + "experience": "3년 이상", + "required_stacks": ["Node.js", "Python", "Java", "Go", "MySQL", "PostgreSQL", "CI/CD"], + "preferred_stacks": [], + "key_requirements": "서비스 0→1 아키텍처 설계, 결제·정산 시스템 구축", + "location": "서울" + }, + { + "id": "wanted_76122", + "source": "원티드", + "company": "버핏서울", + "role": "백엔드 엔지니어 - Python/Django/AWS", + "role_category": "백엔드", + "experience": "5년 이상", + "required_stacks": ["Python", "Django", "Redis", "Celery", "PostgreSQL", "GCP", "AWS"], + "preferred_stacks": ["Flask", "RDBMS", "NoSQL", "REST API"], + "key_requirements": "피트니스 센터 운영 자동화, AWS/GCP 파이프라인 구축·배포·모니터링", + "location": "서울" + }, + { + "id": "wanted_286405", + "source": "원티드", + "company": "네이버클라우드", + "role": "MLOps 엔지니어", + "role_category": "MLOps", + "experience": "3년 이상", + "required_stacks": ["Kubernetes", "Python", "Go", "Kotlin", "Java"], + "preferred_stacks": ["Rust", "분산 시스템", "ML 파이프라인"], + "key_requirements": "대규모 ML 워크로드 인프라, 모델 서빙 시스템, CI/CD 자동화, K8s 클러스터 운영", + "location": "경기 성남" + }, + { + "id": "wanted_184145", + "source": "원티드", + "company": "컬리", + "role": "데이터 엔지니어", + "role_category": "데이터엔지니어", + "experience": "3년 이상", + "required_stacks": ["Python", "SQL", "Airflow", "AWS", "GCP", "Kafka", "Hadoop"], + "preferred_stacks": ["S3", "Athena", "Redshift", "MLOps"], + "key_requirements": "클라우드 기반 데이터 플랫폼 운영, 실시간·배치 파이프라인, DataOps/MLOps 구축", + "location": "서울 강남" + }, + { + "id": "wanted_24833", + "source": "원티드", + "company": "쏘카(SOCAR)", + "role": "데이터 엔지니어", + "role_category": "데이터엔지니어", + "experience": "관련 경험", + "required_stacks": ["Python", "SQL", "Airflow", "AWS Aurora", "GCP BigQuery"], + "preferred_stacks": ["Scala", "Java", "Go"], + "key_requirements": "AWS→GCP BigQuery 데이터 적재, 실시간/배치 파이프라인, ML/DL 모델 서빙 시스템", + "location": "서울 성동" + }, + { + "id": "linkedin_toss_frontend", + "source": "링크드인", + "company": "Toss", + "role": "Frontend Developer", + "role_category": "프론트엔드", + "experience": "경력", + "required_stacks": ["JavaScript", "TypeScript", "React"], + "preferred_stacks": [], + "key_requirements": "토스 프론트엔드 개발", + "location": "서울" + }, + { + "id": "linkedin_tossbank_android", + "source": "링크드인", + "company": "Toss Bank", + "role": "Android Developer", + "role_category": "모바일_Android", + "experience": "경력", + "required_stacks": ["Android", "Kotlin", "Java"], + "preferred_stacks": [], + "key_requirements": "토스뱅크 안드로이드 앱 개발", + "location": "서울" + } + ] +} diff --git a/DATASET/webdataset/12_stack_frequency_realdata.json b/DATASET/webdataset/12_stack_frequency_realdata.json new file mode 100644 index 0000000..b0cc0b2 --- /dev/null +++ b/DATASET/webdataset/12_stack_frequency_realdata.json @@ -0,0 +1,113 @@ +{ + "meta": { + "title": "실제 공고 파싱 기반 기술스택 빈도 집계", + "basis": "27개 실제 채용공고 직접 파싱 (점핏 14건, 원티드 11건, 링크드인 2건)", + "collected_date": "2026-06-01", + "note": "동일 공고 내 복수 스택 모두 카운트. 직군별 세분화 포함." + }, + + "total_stack_frequency": { + "Python": { "count": 20, "pct": 74, "note": "전 직군 공통 1위" }, + "Docker": { "count": 17, "pct": 63, "note": "백엔드~MLOps~DevOps 공통 필수" }, + "Java": { "count": 15, "pct": 56, "note": "백엔드·모바일·보안 전반" }, + "Git_GitHub": { "count": 14, "pct": 52, "note": "협업 도구 사실상 필수" }, + "AWS": { "count": 13, "pct": 48, "note": "클라우드 1위" }, + "Node.js": { "count": 10, "pct": 37, "note": "백엔드·풀스택 선호" }, + "React": { "count": 9, "pct": 33, "note": "프론트엔드 표준" }, + "TypeScript": { "count": 9, "pct": 33, "note": "프론트엔드·풀스택 필수화" }, + "Linux": { "count": 9, "pct": 33, "note": "서버·DevOps·AI 공통" }, + "Airflow": { "count": 8, "pct": 30, "note": "데이터 파이프라인 표준" }, + "Kubernetes": { "count": 7, "pct": 26, "note": "DevOps·MLOps 필수" }, + "PostgreSQL": { "count": 7, "pct": 26, "note": "RDBMS 2위" }, + "MySQL": { "count": 7, "pct": 26, "note": "RDBMS 1위 (MySQL+MariaDB)" }, + "REST_API": { "count": 7, "pct": 26, "note": "API 설계 기본" }, + "Spring_Boot": { "count": 6, "pct": 22, "note": "Java 백엔드 표준" }, + "GCP": { "count": 6, "pct": 22, "note": "클라우드 2위" }, + "Next.js": { "count": 5, "pct": 19, "note": "프론트엔드 급부상" }, + "MLflow": { "count": 4, "pct": 15, "note": "MLOps 표준 도구" }, + "Terraform": { "count": 3, "pct": 11, "note": "DevOps IaC" }, + "Redis": { "count": 3, "pct": 11, "note": "캐싱 레이어" }, + "Kafka": { "count": 3, "pct": 11, "note": "이벤트 스트리밍" }, + "SQL": { "count": 3, "pct": 11 }, + "Kotlin": { "count": 3, "pct": 11, "note": "Android·백엔드" }, + "Swift": { "count": 2, "pct": 7, "note": "iOS 전용" }, + "PyTorch": { "count": 2, "pct": 7 }, + "TensorFlow": { "count": 2, "pct": 7 }, + "LangChain": { "count": 2, "pct": 7 }, + "Go": { "count": 2, "pct": 7 }, + "Elasticsearch": { "count": 2, "pct": 7 }, + "Jenkins": { "count": 1, "pct": 4 }, + "Ansible": { "count": 1, "pct": 4 }, + "LangGraph": { "count": 1, "pct": 4 }, + "RAG": { "count": 1, "pct": 4 }, + "C_Cpp": { "count": 3, "pct": 11, "note": "보안·시스템·MLOps" }, + "Hadoop": { "count": 2, "pct": 7 }, + "BigQuery": { "count": 2, "pct": 7 } + }, + + "by_role_category": { + "백엔드": { + "sample_size": 9, + "top_stacks": ["Java", "Spring Boot", "Node.js", "Python", "MySQL/PostgreSQL", "Redis", "Docker", "AWS", "REST API", "Git"], + "notable": "Spring Boot + Java 조합이 여전히 1위. Node.js/Python은 스타트업 중심." + }, + "프론트엔드": { + "sample_size": 3, + "top_stacks": ["React", "TypeScript", "Next.js", "JavaScript", "React Native", "Redux", "Tailwind CSS", "Git", "AWS"], + "notable": "TypeScript 필수화 확인. Next.js SSR 요구 증가. Tailwind CSS 등장." + }, + "AI_ML": { + "sample_size": 3, + "top_stacks": ["Python", "PyTorch", "TensorFlow", "Docker", "Airflow", "MLflow", "scikit-learn", "XGBoost"], + "notable": "Python 100% 요구. 학습·서빙·모니터링 전주기 경험 요구." + }, + "AI_LLM": { + "sample_size": 2, + "top_stacks": ["Python", "LangChain", "LangGraph", "RAG", "Vector DB", "Docker", "Git"], + "notable": "LangChain+RAG 조합이 AI Agent 공고 표준 스택으로 자리잡음." + }, + "MLOps": { + "sample_size": 2, + "top_stacks": ["Python", "Docker", "Airflow", "MLflow", "Kubernetes", "Linux", "Git", "REST API"], + "notable": "ML 파이프라인 자동화 + Kubernetes 운영 경험이 핵심." + }, + "데이터엔지니어": { + "sample_size": 3, + "top_stacks": ["Python", "SQL", "Airflow", "AWS", "GCP", "Kafka", "Hadoop", "BigQuery", "S3"], + "notable": "AWS+GCP 멀티 클라우드 경험 요구. Airflow 100% 등장." + }, + "DevOps": { + "sample_size": 2, + "top_stacks": ["AWS", "Azure", "GCP", "Docker", "Kubernetes", "Terraform", "Jenkins", "GitLab CI", "Ansible", "Linux", "Python", "Bash"], + "notable": "멀티 클라우드 + Terraform + K8s 조합이 DevOps 표준 세트." + }, + "모바일_Android": { + "sample_size": 2, + "top_stacks": ["Kotlin", "Java", "Android OS", "REST API", "GitLab"], + "notable": "Kotlin 100% 요구. React Native 크로스플랫폼 우대." + }, + "모바일_iOS": { + "sample_size": 1, + "top_stacks": ["Swift", "RxSwift", "MVVM", "iOS"], + "notable": "Swift+RxSwift, SwiftUI+Combine 전환 진행 중." + }, + "보안": { + "sample_size": 2, + "top_stacks": ["Python", "Java", "C", "C++", "Android OS", "iOS", "Frida", "Burp Suite"], + "notable": "다중 언어 요구(C/C++/Java/Python). 리버스 엔지니어링 필수." + } + }, + + "key_findings_from_real_data": [ + "Python은 AI/ML·데이터·백엔드·DevOps·보안 등 전 직군에서 74% 등장 — 범용 언어로 완전 정착", + "Docker는 63%로 사실상 모든 서버사이드 직군 필수 도구", + "Airflow가 데이터엔지니어·MLOps 공고 전수 등장 — 파이프라인 오케스트레이션 표준", + "TypeScript가 프론트엔드 공고 전수 등장 — JavaScript 단독 공고는 사실상 없음", + "LangChain+RAG 조합이 AI LLM 공고의 표준 스택으로 확인", + "Next.js SSR/SSG 요구가 신입 공고에서도 등장 — 프론트엔드 기본 스택화", + "멀티 클라우드(AWS+GCP+Azure) 경험을 동시 요구하는 DevOps 공고 확인", + "백엔드에서 Go 요구 증가(풀림, 쏘카, 네이버클라우드) — 신흥 요구사항", + "MLflow가 MLOps·AI/ML 공고 전수 등장 — 실험 관리 표준 도구", + "보안 공고에서 5개 이상 언어(C/C++/Java/Python/Go) 동시 요구 — 폭넓은 언어 이해 필수" + ] +} diff --git a/DATASET/webdataset/13_deep_analysis_v2_realdata.json b/DATASET/webdataset/13_deep_analysis_v2_realdata.json new file mode 100644 index 0000000..5b876d6 --- /dev/null +++ b/DATASET/webdataset/13_deep_analysis_v2_realdata.json @@ -0,0 +1,215 @@ +{ + "meta": { + "title": "2026 대한민국 개발자 채용 심층 분석 v2 (실제 공고 파싱 기반)", + "basis": "27개 실제 채용공고 직접 파싱 — 잡코리아/사람인(점핏)/원티드/링크드인", + "collected_date": "2026-06-01", + "version": 2 + }, + + "site_accessibility_report": { + "title": "채용사이트 직접 접근성 분석", + "results": [ + { + "site": "점핏 (jumpit.saramin.co.kr)", + "access": "✅ 개별 공고 페이지 완전 파싱 성공", + "method": "포지션 ID 기반 직접 URL 접근", + "quality": "직무명·자격요건·우대사항·기술스택 태그 모두 수집", + "postings_parsed": 14 + }, + { + "site": "원티드 (wanted.co.kr/wd)", + "access": "✅ 개별 공고 페이지 파싱 성공 (목록은 JS 렌더링으로 불가)", + "method": "공고 ID 기반 직접 URL 접근", + "quality": "직무명·자격요건·우대사항 수집 (기술스택 태그 일부 미노출)", + "postings_parsed": 11 + }, + { + "site": "링크드인 (kr.linkedin.com)", + "access": "⚠️ 목록 페이지 부분 수집 (상세 기술스택 제한)", + "method": "jobs 목록 페이지 접근", + "quality": "직무명·회사명 수집, 기술스택 상세 미제공", + "postings_parsed": 2 + }, + { + "site": "잡코리아 (jobkorea.co.kr)", + "access": "⚠️ 목록 페이지 일부 수집 (기술스택 코드값으로만 저장)", + "method": "모바일 버전(m.jobkorea.co.kr) 시도", + "quality": "회사명·직무명 수집, 기술스택 코드값(ID) 형태라 파싱 불가", + "postings_parsed": 0 + }, + { + "site": "사람인 (saramin.co.kr)", + "access": "❌ JS 동적 렌더링으로 공고 목록 내용 없음", + "method": "직접 URL 접근", + "quality": "UI 구조만 확인, 공고 데이터 없음", + "postings_parsed": 0 + }, + { + "site": "자소설닷컴 (jasoseol.com)", + "access": "❌ JS 동적 렌더링으로 공고 내용 파싱 불가", + "method": "jasoseol.com/recruit 접근", + "quality": "레이아웃만 확인, 실제 공고 없음", + "note": "신입 취업 플랫폼으로 개발자 공고보다 대기업 공채 중심", + "postings_parsed": 0 + } + ] + }, + + "verified_stack_facts": { + "title": "실제 공고에서 검증된 사실", + "facts": [ + { + "fact": "Python은 AI/ML·데이터 직군에서 100% 등장, 백엔드에서도 3/9건 요구", + "source_postings": ["로민(CV)", "아이트럭(AI/ML)", "WATA(MLOps)", "컬리(데이터)", "쏘카(데이터)", "셀키(데이터)", "버핏서울(백엔드)"], + "conclusion": "Python은 전 직군 범용 언어로 완전 정착" + }, + { + "fact": "Spring Boot + Java 조합이 백엔드 공고 9건 중 4건 등장", + "source_postings": ["에프엘이에스", "에이프리카(풀스택)", "넥스트그라운드(인턴)", "넥슨"], + "conclusion": "Java + Spring은 여전히 국내 백엔드 표준, 특히 중견·대기업" + }, + { + "fact": "Node.js는 스타트업 백엔드 공고에서 주력 스택으로 등장 (Java와 동등 수준)", + "source_postings": ["아르고스아이덴티티코리아", "자란다", "풀림", "넥슨(선택지 중)", "아타드", "캔랩코리아"], + "conclusion": "스타트업 환경에서는 Node.js/Python이 Java와 경쟁 구도" + }, + { + "fact": "TypeScript는 프론트엔드 공고 전수에서 요구 또는 강력 우대", + "source_postings": ["아이트럭(FE)", "아이알엠", "에이프리카(풀스택)"], + "conclusion": "TypeScript 없이 프론트엔드 취업은 사실상 불가" + }, + { + "fact": "Airflow는 데이터엔지니어·MLOps 공고 전수(5/5건) 등장", + "source_postings": ["컬리", "쏘카", "셀키", "WATA(MLOps)", "아이트럭(AI/ML)"], + "conclusion": "데이터 파이프라인 오케스트레이션 도구로 Airflow 사실상 필수 표준" + }, + { + "fact": "LangChain + RAG 조합이 LLM 공고의 표준 스택으로 확인", + "source_postings": ["원티드긱스(GenOS AI Agent)"], + "conclusion": "2026년 AI Agent 개발 공고의 핵심 요구 스택" + }, + { + "fact": "DevOps 공고에서 단일 클라우드가 아닌 멀티클라우드(AWS+Azure+GCP+NCP) 동시 요구", + "source_postings": ["시어스랩 DevOps"], + "conclusion": "DevOps 엔지니어는 멀티클라우드 운영 경험이 필수" + }, + { + "fact": "MLOps 공고에서 Kubernetes 심화 운영이 '우대'가 아닌 '자격요건'으로 등장", + "source_postings": ["네이버클라우드 MLOps", "WATA MLOps(우대)"], + "conclusion": "대기업 MLOps는 K8s를 기본 요건으로 간주" + }, + { + "fact": "보안 엔지니어 공고에서 5개 이상 언어(C/C++/Java/Python/Go/C#) 동시 요구", + "source_postings": ["트래블월렛 보안엔지니어"], + "conclusion": "보안 직군은 다중 언어 능력 및 리버스 엔지니어링이 핵심" + }, + { + "fact": "신입 공고에서도 TypeScript + Next.js SSR 이해 요구", + "source_postings": ["아이알엠(병역특례 가능, 신입 or 1년 이상)"], + "conclusion": "프론트엔드 신입의 진입 장벽이 높아짐" + } + ] + }, + + "gap_analysis_from_real_data": { + "title": "실제 공고 기반 기대 vs 현실 갭", + "gaps": [ + { + "myth": "Java 백엔드는 낡았다", + "reality": "잡코리아 전체 공고의 32.1%, 점핏·원티드 파싱에서도 Java가 1위 언어로 확인. 대기업·중견기업은 여전히 Java 중심", + "verdict": "Java는 유효하지만, 스타트업은 Node.js/Python으로 분기됨" + }, + { + "myth": "React만 알면 프론트엔드 취업 가능", + "reality": "실제 공고에서 React + TypeScript + Next.js + 상태관리(Zustand/Redux/React-Query) 세트 요구. React 단독으로는 부족", + "verdict": "TypeScript·Next.js 필수, 성능 최적화 지식 추가 필요" + }, + { + "myth": "AI 개발자는 Python만 잘하면 된다", + "reality": "LLM 공고는 LangChain+RAG+Vector DB, AI/ML 공고는 MLflow+Airflow+Docker까지 요구. 단순 Python 코딩이 아닌 인프라 이해 필수", + "verdict": "Python + MLOps 도구 + 클라우드 필수" + }, + { + "myth": "DevOps는 한 가지 클라우드만 잘하면 된다", + "reality": "시어스랩 공고에서 AWS+Azure+GCP+NCP+KTC 5개 클라우드 운영 경험 요구", + "verdict": "AWS 기본 + 멀티클라우드 이해 필요" + } + ] + }, + + "company_size_stack_pattern": { + "title": "기업 규모별 스택 패턴 (실제 공고 기반)", + "대기업_네이버_넥슨_카카오계열": { + "backend": ["Java", "Kotlin", "Python", "Spring Boot"], + "mlops": ["Kubernetes", "Go", "Python", "Rust"], + "data": ["AWS Aurora", "GCP BigQuery", "Airflow", "Kafka"], + "특징": "자체 인프라 + 다중 언어 옵션 제공, 경력 3년 이상 선호" + }, + "스타트업_시리즈A_B": { + "backend": ["Node.js", "Python", "Django/FastAPI", "MySQL/PostgreSQL"], + "frontend": ["React", "TypeScript", "Next.js"], + "infra": ["AWS", "Docker", "GitHub Actions"], + "특징": "빠른 개발 속도 중시, 풀스택 능력 우대, 0→1 경험 중시" + }, + "핀테크_결제": { + "backend": ["Java Spring Boot", "Node.js", "PostgreSQL", "Redis"], + "security": ["보안 취약점 진단", "OWASP", "모의해킹"], + "특징": "보안·안정성 최우선, 결제·정산 시스템 경험 중시" + }, + "AI_스타트업": { + "core": ["Python", "LangChain", "PyTorch/TensorFlow", "Docker"], + "mlops": ["MLflow", "Airflow", "AWS/GCP"], + "특징": "LLM 앱 개발, RAG 구현, AI 에이전트 워크플로우 설계" + } + }, + + "emerging_stacks_confirmed": { + "title": "실제 공고에서 확인된 신흥 기술스택", + "items": [ + { "stack": "LangChain / LangGraph", "status": "실제 공고 등장 확인", "postings": 2, "trend": "AI Agent 표준 프레임워크" }, + { "stack": "RAG (Retrieval-Augmented Generation)", "status": "실제 공고 등장 확인", "postings": 2, "trend": "LLM 앱 핵심 패턴" }, + { "stack": "MLflow", "status": "실제 공고 등장 확인", "postings": 4, "trend": "ML 실험 관리 표준" }, + { "stack": "dbt (data build tool)", "status": "마이리얼트립 공고에서 확인(WebSearch)", "postings": 1, "trend": "데이터 엔지니어 성장세" }, + { "stack": "Tailwind CSS", "status": "실제 공고 태그 등장 확인 (아이트럭)", "postings": 1, "trend": "프론트엔드 스타일링 표준화" }, + { "stack": "Zustand", "status": "실제 자격요건에서 확인 (아이알엠)", "postings": 1, "trend": "Redux 대체 경량 상태관리" }, + { "stack": "XGBoost / LightGBM", "status": "실제 공고 등장 확인", "postings": 2, "trend": "ML 공고 전통 모델 스택 건재" } + ] + }, + + "action_plan_updated": { + "title": "실제 데이터 기반 갱신된 직군별 필수 스택 세트", + "백엔드": { + "core": ["Java + Spring Boot (대기업·금융)", "또는 Node.js/NestJS + TypeScript (스타트업)"], + "database": ["MySQL / PostgreSQL", "Redis (캐싱)"], + "infra": ["Docker", "AWS 기본", "Git"], + "plus": ["Python (AI API 연동)", "REST API 설계", "CI/CD (GitHub Actions 또는 Jenkins)"] + }, + "프론트엔드": { + "core": ["React + TypeScript (필수 세트)"], + "framework": ["Next.js (App Router / SSR)"], + "state": ["React Query (서버상태)", "Zustand (클라이언트상태)"], + "style": ["Tailwind CSS 또는 Styled-components"], + "plus": ["성능 최적화 (Web Vitals)", "Git + PR 협업"] + }, + "AI_ML": { + "core": ["Python", "PyTorch 또는 TensorFlow", "scikit-learn"], + "mlops_basic": ["MLflow", "Docker", "Airflow"], + "cloud": ["AWS 또는 GCP"], + "plus": ["LangChain + RAG (LLM 앱)", "XGBoost/LightGBM (전통 ML)"] + }, + "데이터엔지니어": { + "core": ["Python + SQL"], + "pipeline": ["Airflow (필수)", "Kafka (이벤트)", "Spark (대규모)"], + "cloud_data": ["AWS(S3/Athena/Redshift) 또는 GCP(BigQuery)"], + "plus": ["dbt", "Docker", "Git"] + }, + "DevOps": { + "core": ["Docker + Kubernetes (필수 세트)"], + "cloud": ["AWS (필수)", "Azure/GCP (이해 필요)"], + "iac": ["Terraform"], + "cicd": ["GitHub Actions 또는 Jenkins + GitLab CI"], + "scripting": ["Python + Bash"], + "monitoring": ["Prometheus + Grafana"] + } + } +} diff --git a/DATASET/webdataset/14_linkareer_job_postings.json b/DATASET/webdataset/14_linkareer_job_postings.json new file mode 100644 index 0000000..b13473f --- /dev/null +++ b/DATASET/webdataset/14_linkareer_job_postings.json @@ -0,0 +1,275 @@ +{ + "meta": { + "title": "링커리어(linkareer.com) 실제 채용공고 파싱 데이터", + "site": "https://linkareer.com", + "site_characteristics": "대외활동·공모전·채용 통합 플랫폼, 신입·인턴·경력 혼합, 대기업 공채 비중 높음", + "access_result": "✅ 개별 공고 페이지 HTML 파싱 성공 (단, 이미지 업로드 공고는 내용 추출 불가)", + "collected_date": "2026-06-01", + "total_postings_parsed": 18, + "note": "일부 공고는 이미지(PNG/PDF) 형식으로 업로드되어 기술스택 텍스트 추출 불가" + }, + + "postings": [ + { + "id": "linkareer_315565", + "url": "https://linkareer.com/activity/315565", + "company": "이지케어텍", + "role": "SW개발 / 의료 AI 솔루션 개발", + "role_category": ["백엔드", "AI_ML"], + "type": "신입 (채용연계형 인턴)", + "deadline": "2026-04-30", + "stacks": { + "SW개발_프론트엔드": ["WPF", "JavaScript", "C#", "EmberJS"], + "SW개발_백엔드": ["C#", ".NET"], + "SW개발_DB": ["Oracle", "MySQL"], + "의료AI": ["Python", "SQL", "PyTorch", "TensorFlow", "LangChain", "NLP", "RAG", "Docker", "K3s", "CUDA"] + }, + "key_requirements": "의료정보시스템(HIS) 개발, LLM 기반 의료 문서 자동 요약, AI 모델 HIS 연동", + "notable": "의료 도메인 특화. K3s(경량 Kubernetes) 등장이 특이점" + }, + { + "id": "linkareer_291855", + "url": "https://linkareer.com/activity/291855", + "company": "LG전자", + "role": "AI 엔지니어", + "role_category": ["AI_LLM"], + "type": "경력", + "deadline": "2026-01-11", + "required_stacks": ["Python", "Node.js", "SQL", "LangChain", "LangGraph", "CrewAI"], + "required_experience_years": 3, + "key_requirements": "AI 서비스·솔루션 개발, 데이터 파이프라인 설계, LLM 기반 에이전트 개발, AI-Readable 데이터 체계 구축", + "notable": "대기업(LG전자)에서 LangChain + LangGraph + CrewAI 세트 공식 요구 — AI 에이전트 프레임워크 표준화 확인" + }, + { + "id": "linkareer_300309", + "url": "https://linkareer.com/activity/300309", + "company": "센드버드(Sendbird Korea)", + "role": "AI Agent Engineer (Intern)", + "role_category": ["AI_LLM"], + "type": "인턴 (정규직 전환 가능)", + "deadline": "채용 시 마감", + "required_stacks": ["Python", "Django", "FastAPI", "Express"], + "preferred_stacks": ["LangChain", "AWS Lambda", "Vercel", "GCP"], + "key_requirements": "프롬프트 엔지니어링으로 마이크로 API 개발, AI 에이전트 프로토타이핑, 웹/채팅 환경 임베드", + "notable": "외국계 스타트업. 신입/인턴 공고에서도 LangChain 우대 확인" + }, + { + "id": "linkareer_314416", + "url": "https://linkareer.com/activity/314416", + "company": "마이다스그룹", + "role": "백엔드 개발자 (채용서비스 ATS)", + "role_category": ["백엔드"], + "type": "경력", + "deadline": "2026-04-19", + "required_stacks": ["Java", "Spring Framework", "JPA", "RDBMS", "NoSQL", "AWS", "TDD"], + "preferred_stacks": ["비동기 처리", "메시지 기반 아키텍처", "대규모 시스템 설계", "LLM 기반 에이전트 서비스"], + "key_requirements": "채용서비스(ATS·역량검사) 백엔드 서버 개발, AWS 기반 대규모 아키텍처 설계", + "notable": "중견 기업 백엔드 공고에서 'LLM 기반 에이전트 서비스 우대' 등장 — AI 연동 기대치 전 직군 확산" + }, + { + "id": "linkareer_260703", + "url": "https://linkareer.com/activity/260703", + "company": "그로들", + "role": "프론트엔드 개발자 (인턴)", + "role_category": ["프론트엔드"], + "type": "인턴 3개월 채용연계형", + "deadline": "채용 시 마감", + "required_stacks": ["JavaScript", "TypeScript", "React", "Git"], + "preferred_stacks": ["Vue", "Angular"], + "key_requirements": "AI 솔루션 웹 프로덕트 프론트엔드 개발, SPA 개발, 반응형 웹", + "notable": "인턴 공고에서도 TypeScript 필수, React 경험 필수 확인" + }, + { + "id": "linkareer_319020", + "url": "https://linkareer.com/activity/319020", + "company": "에스티씨랩 (STC Lab)", + "role": "DevOps Engineer (Intern)", + "role_category": ["DevOps"], + "type": "인턴 채용연계형", + "deadline": "채용 시 마감", + "required_stacks": [], + "note": "공고 내용이 이미지(PNG) 형식으로 업로드되어 기술스택 추출 불가", + "notable": "이미지 업로드 공고 비율 높음 — 링커리어 플랫폼의 한계" + }, + { + "id": "linkareer_313836", + "url": "https://linkareer.com/activity/313836", + "company": "업스테이지", + "role": "AI DevOps Internship (정규직 전환형)", + "role_category": ["DevOps", "AI_ML"], + "type": "인턴 → 정규직 전환", + "deadline": "상시모집", + "required_stacks": ["Python", "JavaScript", "TypeScript", "Docker", "Linux", "CI/CD"], + "preferred_stacks": ["AWS", "GCP", "Azure", "Kubernetes", "Java (Spring/Tomcat)", "Prometheus", "Grafana", "Jira", "Slack"], + "key_requirements": "CI/CD 파이프라인 구축, 인프라 배포 자동화, 모니터링/알림 시스템, B2B 고객사 시스템 연계", + "notable": "AI 회사의 DevOps 인턴 공고. Python/TypeScript + Docker가 신입 기준선" + }, + { + "id": "linkareer_294812", + "url": "https://linkareer.com/activity/294812", + "company": "단군소프트", + "role": "DevOps 엔지니어 (신입/경력)", + "role_category": ["DevOps"], + "type": "신입/경력", + "deadline": "2026-01-21", + "required_stacks": [], + "note": "기술스택 미명시 (컨설팅 위주 DevOps 기업, 6개월 이상 IT 교육 이수자 우대)", + "notable": "DevOps 컨설팅 전문 기업 — 기술보다 커뮤니케이션 역량 강조" + }, + { + "id": "linkareer_288352", + "url": "https://linkareer.com/activity/288352", + "company": "마키나락스 (Makinarocks)", + "role": "Forward Deployed Engineer - MLOps", + "role_category": ["MLOps"], + "type": "상시모집", + "deadline": "상시모집", + "required_stacks": ["PyTorch", "ONNX", "Docker", "Kubernetes", "Git"], + "preferred_stacks": ["MLflow", "Triton Server", "Airflow", "Kubeflow", "vLLM", "Multi-GPU LLM fine-tuning"], + "key_requirements": "AI 서비스 시스템 아키텍처 설계·구축, 데이터 파이프라인, 모델 서빙 환경, ML 인프라 운영", + "notable": "vLLM(고성능 LLM 추론 라이브러리) 우대 등장 — 2026년 MLOps 신흥 스택" + }, + { + "id": "linkareer_267784", + "url": "https://linkareer.com/activity/267784", + "company": "아마존웹서비스 (AWS)", + "role": "Professional Services A2C (DevOps/Cloud/Data/Security/App 개발)", + "role_category": ["DevOps", "클라우드", "보안", "데이터"], + "type": "신입", + "deadline": "채용 시 마감", + "required_stacks": ["AWS (IAM, GuardDuty, Shield, KMS, CloudTrail, CloudHSM, Inspector)", "DevOps", "API", "NoSQL", "ML/AI"], + "key_requirements": "AWS 클라우드 네이티브 아키텍처 설계, CI/CD 파이프라인, 클라우드 보안, BigData+ML/AI", + "notable": "외국계 빅테크(AWS) 신입 공채. 다양한 직군을 하나의 공고로 통합 모집" + }, + { + "id": "linkareer_292926", + "url": "https://linkareer.com/activity/292926", + "company": "선시안", + "role": "SRE/DevOps 엔지니어", + "role_category": ["DevOps", "SRE"], + "type": "신입/경력", + "deadline": "채용 시 마감", + "required_stacks": ["AWS", "Kubernetes", "Linux"], + "preferred_stacks": ["Python", "Go", "Prometheus", "Grafana", "ELK", "Terraform", "Ansible"], + "key_requirements": "AWS + K8s 기반 인프라 설계·운영, 모니터링·로깅 시스템 구축, 자동화 도구 개발", + "notable": "게임 회사 인프라 직군. SRE 타이틀로 DevOps 채용 증가 트렌드 확인" + }, + { + "id": "linkareer_259023", + "url": "https://linkareer.com/activity/259023", + "company": "네이버 (NAVER)", + "role": "플레이스 AI MLOps Engineer (체험형 인턴)", + "role_category": ["MLOps", "AI_LLM"], + "type": "인턴", + "deadline": "2025-08-05", + "required_stacks": ["SQL", "Vector Database", "RAG", "LLM"], + "preferred_stacks": ["LangChain", "LlamaIndex", "메타데이터 수집·정제", "자연어 SQL 생성"], + "key_requirements": "Data Catalog 시스템, Vector DB 검색 시스템, AI Assistant + RAG 연동, 데이터 대시보드", + "notable": "네이버 인턴 공고에서 Vector DB + RAG 기본 이해 요구 — LLM 스택의 신입 기준선화 확인" + }, + { + "id": "linkareer_290789", + "url": "https://linkareer.com/activity/290789", + "company": "액션파워", + "role": "안드로이드 개발자 (신입)", + "role_category": ["모바일_Android"], + "type": "신입 (학력무관)", + "deadline": "2026-01-22", + "required_stacks": ["Kotlin", "Coroutine", "Flow", "Jetpack Compose", "Room", "Hilt", "Ktor"], + "preferred_stacks": ["FP(함수형 프로그래밍)", "DDD", "TDD"], + "key_requirements": "다글로 안드로이드 앱 설계·개발, 앱 성능·안정성 개선, 포트폴리오 필수", + "notable": "신입 Android 공고에서 Jetpack Compose + Hilt + Coroutine/Flow 세트 요구 — Android 현대 스택 기준선 확인" + }, + { + "id": "linkareer_297680", + "url": "https://linkareer.com/activity/297680", + "company": "CJ올리브영", + "role": "Back-end / Front-end / iOS / Android 개발 (대규모 채용)", + "role_category": ["백엔드", "프론트엔드", "모바일_iOS", "모바일_Android"], + "type": "경력", + "deadline": "채용 시 마감", + "required_stacks": [], + "note": "대규모 공채로 직군별 상세 기술스택은 별도 공고 페이지에 기재", + "units": ["코어플랫폼유닛", "커머스플랫폼유닛", "엔터프라이즈플랫폼유닛"], + "location": "서울 용산", + "notable": "대기업 대규모 공채. iOS/Android/BE/FE 전 직군 동시 채용" + }, + { + "id": "linkareer_313213", + "url": "https://linkareer.com/activity/313213", + "company": "iMBC", + "role": "iOS 앱개발", + "role_category": ["모바일_iOS"], + "type": "신입/경력", + "deadline": "2026-04-17", + "required_stacks": [], + "note": "공고 내용이 이미지 형식으로 업로드되어 기술스택 추출 불가", + "location": "서울 마포" + }, + { + "id": "linkareer_287237", + "url": "https://linkareer.com/activity/287237", + "company": "윈스테크넷", + "role": "보안관제 신입 / 보안컨설팅 신입", + "role_category": ["보안"], + "type": "신입", + "deadline": "2026-01-05", + "required_stacks": [], + "required_knowledge": ["네트워크 기본 지식", "정보보안 기본 지식"], + "preferred": ["정보보호 관련 자격증", "보안 분야 대회 수상"], + "sub_roles": { + "보안관제": "보안장비 이벤트 로그 분석, 보안 솔루션 운영, 장애 대응", + "보안컨설팅": "웹/정보 시스템 취약점 진단, 웹/모바일 모의 해킹" + }, + "notable": "보안 신입 공고는 특정 기술스택보다 기본 네트워크·보안 지식 + 자격증 중심" + }, + { + "id": "linkareer_290881", + "url": "https://linkareer.com/activity/290881", + "company": "데이타솔루션", + "role": "데이터 사이언티스트 (신입/경력)", + "role_category": ["데이터사이언티스트"], + "type": "신입/경력", + "deadline": "채용 시 마감", + "required_stacks": ["Python", "R", "SQL", "딥러닝 라이브러리"], + "preferred_stacks": ["Dataiku", "Altair", "SPSS", "SAS", "Brightics", "FabriX", "Watson.ai", "RAG", "LLM Fine-tuning", "프롬프트 엔지니어링"], + "key_requirements": "빅데이터 분석, 데이터마이닝, 예측모델링, 생성형 AI 컨설팅, 데이터마트 설계", + "notable": "데이터 사이언티스트 공고에서 생성형 AI 컨설팅 + RAG + Fine-tuning 우대 — AI 기술이 DS 직군까지 침투" + }, + { + "id": "linkareer_221194", + "url": "https://linkareer.com/activity/221194", + "company": "에코마케팅", + "role": "데이터 엔지니어(DE) 신입사원 대규모 채용", + "role_category": ["데이터엔지니어"], + "type": "신입", + "deadline": "2025-02-02", + "required_stacks": ["SQL", "Python"], + "detailed_stacks": { + "data_transformation": ["Pentaho", "Python", "PySpark (Databricks)"], + "dashboard": ["Tableau", "Looker Studio", "Redash"], + "database": ["AWS S3", "Google BigQuery"] + }, + "key_requirements": "ETL 데이터 추출·가공, 데이터 마트 설계·구축, 대시보드·리포트 설계", + "notable": "데이터 엔지니어 신입 공고에서 Databricks + Tableau + BigQuery 세트 요구 — 분석 도구 스택 표준화" + } + ], + + "linkareer_specific_findings": { + "platform_characteristics": [ + "신입·인턴·대외활동 공고 비중이 타 사이트 대비 높음", + "대기업 공채(LG전자, CJ올리브영, 네이버, AWS) 연계 공고 다수", + "일부 공고는 이미지(PNG/PDF) 업로드 형식으로 기술스택 텍스트 파싱 불가", + "의료·게임·마케팅 등 도메인 특화 개발 직군 공고 多" + ], + "notable_stacks_found": [ + "K3s (경량 Kubernetes) — 의료 AI 회사(이지케어텍) 공고에서 발견", + "CrewAI — LG전자 AI 엔지니어 공고에서 LangChain/LangGraph와 함께 요구", + "vLLM — 마키나락스 MLOps 공고에서 우대 스택으로 등장", + "Databricks — 데이터 엔지니어 신입 공고에서 PySpark 환경으로 요구", + "Ktor — Android 신입 공고(액션파워)에서 HTTP 클라이언트로 요구", + "ONNX — MLOps 공고에서 모델 경량화 표준으로 요구" + ], + "ai_stack_diffusion": "LLM/AI 스택이 순수 AI 직군을 넘어 백엔드(마이다스), DevOps(업스테이지), DS(데이타솔루션), 인턴(네이버, 센드버드)까지 전방위 확산 확인" + } +} diff --git a/DATASET/webdataset/15_bigtech_company_stacks.json b/DATASET/webdataset/15_bigtech_company_stacks.json new file mode 100644 index 0000000..922e52a --- /dev/null +++ b/DATASET/webdataset/15_bigtech_company_stacks.json @@ -0,0 +1,171 @@ +{ + "meta": { + "title": "한국 주요 IT 기업 실제 기술스택 (네카라쿠배당토 + 빅테크)", + "sources": [ + "velog 5년차 백엔드 개발자 빅테크 기술스택 리뷰", + "각 기업 테크블로그 (tech.kakao.com, toss.tech, medium/daangn)", + "각 기업 채용공고 (careers.kakao.com, toss.im, coupang.com)" + ], + "collected_date": "2026-06-01", + "note": "실제 서비스 운영 기준이며 공식 발표 또는 테크블로그 기반" + }, + + "companies": { + "naver": { + "name": "네이버 (NAVER)", + "scale": "대기업", + "backend": { + "languages": ["Kotlin", "Java", "Python", "Go"], + "frameworks": ["Spring Boot", "Spring Framework"], + "rpc": ["gRPC"] + }, + "databases": ["MySQL", "MongoDB", "Redis", "Elasticsearch"], + "data_pipeline": ["Kafka", "Hadoop", "Spark", "Flink"], + "monitoring": ["Grafana", "Prometheus", "Kibana"], + "infra": ["Docker", "Kubernetes", "Jenkins", "GitHub Actions"], + "cloud": ["NCP (Naver Cloud Platform)", "AWS"], + "notable": "자체 클라우드(NCP) 운영, LLM HyperCLOVA X 서비스" + }, + "kakao": { + "name": "카카오 (Kakao)", + "scale": "대기업", + "backend": { + "languages": ["Kotlin", "Java", "Python"], + "frameworks": ["Spring Boot", "Spring Framework", "Hibernate"], + "messaging": ["RabbitMQ", "Kafka"] + }, + "databases": ["MySQL", "PostgreSQL", "Redis", "MongoDB", "Elasticsearch"], + "data_pipeline": ["Kafka", "Hadoop", "Kibana"], + "monitoring": ["Grafana", "Prometheus", "Kibana"], + "infra": ["Docker", "Kubernetes", "Jenkins", "GitHub Actions"], + "cloud": ["AWS", "Kakao Cloud (자체)"], + "notable": "카카오뱅크: Java/Kotlin + Spring Boot 메인, Recoil 프론트 상태관리" + }, + "line": { + "name": "라인 (LINE / LY Corp)", + "scale": "대기업", + "backend": { + "languages": ["Kotlin", "Java", "Python", "Go"], + "frameworks": ["Spring Boot", "Armeria (자체 RPC 프레임워크)"] + }, + "databases": ["MySQL", "HBase", "Redis", "Elasticsearch"], + "data_pipeline": ["Kafka", "Flink", "Hadoop"], + "infra": ["Docker", "Kubernetes"], + "cloud": ["자체 데이터센터", "AWS 일부"], + "notable": "글로벌 서비스 운영, 자체 오픈소스 Armeria/Centraldogma 보유" + }, + "coupang": { + "name": "쿠팡 (Coupang)", + "scale": "대기업", + "backend": { + "languages": ["Kotlin", "Java"], + "frameworks": ["Spring Boot", "Spring Framework", "Hibernate", "Swagger/OpenAPI"] + }, + "databases": ["MySQL", "PostgreSQL", "Redis", "Elasticsearch"], + "data_pipeline": ["Kafka", "Hadoop", "Spark", "Kibana"], + "monitoring": ["Grafana", "Prometheus"], + "infra": ["Docker", "Kubernetes", "Jenkins"], + "cloud": ["AWS (메인)", "일부 자체 IDC"], + "notable": "AWS 의존도 높음, MSA 완전 전환, React 수요 3년 전 대비 244% 증가" + }, + "woowabros": { + "name": "우아한형제들 (배달의민족)", + "scale": "대기업", + "backend": { + "languages": ["Kotlin", "Java"], + "frameworks": ["Spring Boot", "Spring Framework", "Hibernate", "MyBatis", "RabbitMQ"] + }, + "databases": ["MySQL", "PostgreSQL", "Redis", "MariaDB", "MongoDB", "Elasticsearch", "InfluxDB"], + "data_pipeline": ["Kafka", "Kibana"], + "monitoring": ["Grafana", "Prometheus"], + "infra": ["Docker", "Kubernetes"], + "cloud": ["AWS"], + "notable": "다양한 DB 활용, 영향력 있는 기술 컨퍼런스 우아한테크토크 운영" + }, + "daangn": { + "name": "당근마켓 (Daangn)", + "scale": "유니콘 스타트업", + "backend": { + "languages": ["Kotlin", "Go", "Ruby"], + "frameworks": ["gRPC", "GraphQL"] + }, + "frontend": { + "languages": ["TypeScript"], + "frameworks": ["React.js", "Redux"] + }, + "databases": ["PostgreSQL", "Redis", "Elasticsearch"], + "data_pipeline": ["Kafka"], + "infra": ["Docker", "Kubernetes"], + "cloud": ["AWS"], + "notable": "Go + gRPC MSA 구조, 최근 Kotlin 전환 가속, GraphQL 활용" + }, + "toss": { + "name": "토스 (Toss / Viva Republica)", + "scale": "유니콘 스타트업", + "backend": { + "languages": ["Kotlin", "Java"], + "frameworks": ["Spring Boot", "gRPC", "REST API"] + }, + "frontend": { + "languages": ["TypeScript"], + "frameworks": ["React", "Next.js"], + "state": ["자체 상태관리 솔루션"] + }, + "mobile": { + "android": ["Kotlin"], + "ios": ["Swift"] + }, + "databases": ["MySQL", "PostgreSQL", "Redis"], + "infra": ["Docker", "Kubernetes", "GitHub Actions"], + "cloud": ["AWS"], + "notable": "금융 서비스 특성상 보안·안정성 최우선, SLASH 기술 컨퍼런스 운영" + }, + "kakaobank": { + "name": "카카오뱅크", + "scale": "대기업 (금융)", + "backend": { + "languages": ["Java 11+", "Kotlin"], + "frameworks": ["Spring Boot"] + }, + "mobile": { + "android": ["Kotlin", "Java"], + "ios": ["Swift"] + }, + "notable": "금융 규제 환경, Java/Kotlin 우선, 안정성·보안 최우선" + } + }, + + "common_stack_patterns": { + "언어_공통": { + "description": "네카라쿠배당토 공통 언어 패턴", + "backend_primary": "Kotlin (Java에서 빠르게 전환 중)", + "backend_secondary": "Java (레거시 유지보수)", + "data_ai": "Python", + "systems_cloud": "Go", + "web": "TypeScript" + }, + "인프라_공통": { + "container": "Docker (100% 사용)", + "orchestration": "Kubernetes (100% 사용)", + "monitoring": "Prometheus + Grafana (표준화)", + "pipeline": "Kafka (대기업 필수)", + "search": "Elasticsearch (모두 사용)" + }, + "클라우드": { + "dominant": "AWS", + "domestic": "NCP (네이버), Kakao Cloud", + "note": "국내 규제·공공 분야는 NCP/KTC 병행" + } + }, + + "key_insights": [ + "Java → Kotlin 전환이 대기업 전반에서 진행 중 (배민·카카오·토스·네이버 모두 Kotlin 채택)", + "Spring Boot는 여전히 대기업 백엔드 표준 프레임워크 (흔들림 없음)", + "Kafka는 대기업 데이터 파이프라인의 사실상 표준", + "당근마켓은 Go + gRPC 구조로 국내 빅테크 중 독특한 포지션", + "토스·당근은 TypeScript + React + Next.js 프론트엔드 표준", + "쿠팡은 AWS 의존도 가장 높음, React 수요 급증", + "Elasticsearch는 모든 대기업에서 검색/로그 분석에 활용", + "금융계(카카오뱅크·토스)는 Java/Kotlin + Spring Boot 고수" + ] +} diff --git a/DATASET/webdataset/16_stackoverflow_survey_2025.json b/DATASET/webdataset/16_stackoverflow_survey_2025.json new file mode 100644 index 0000000..c8baad0 --- /dev/null +++ b/DATASET/webdataset/16_stackoverflow_survey_2025.json @@ -0,0 +1,80 @@ +{ + "meta": { + "title": "Stack Overflow Developer Survey 2025 — 전문 개발자 기술스택 사용률", + "source": "https://survey.stackoverflow.co/2025/technology", + "collected_date": "2026-06-01", + "respondents": "49,000+명 (177개국)", + "scope": "전문 개발자(Professional Developer) 응답 기준", + "relevance_to_kr": "글로벌 데이터이나, 한국 시장은 글로벌 트렌드를 1~2년 후행 흡수하므로 방향성 지표로 활용" + }, + + "programming_languages": [ + { "name": "JavaScript", "pct": 68.8, "trend": "유지", "kr_relevance": "높음" }, + { "name": "HTML/CSS", "pct": 63.0, "trend": "유지", "kr_relevance": "높음" }, + { "name": "SQL", "pct": 61.3, "trend": "유지", "kr_relevance": "높음" }, + { "name": "Python", "pct": 54.8, "trend": "급증 (+7%p)", "kr_relevance": "매우높음" }, + { "name": "Bash/Shell", "pct": 48.8, "trend": "유지", "kr_relevance": "높음" }, + { "name": "TypeScript", "pct": 48.8, "trend": "급증", "kr_relevance": "매우높음 (FE 필수화)" }, + { "name": "Java", "pct": 30.3, "trend": "유지", "kr_relevance": "매우높음 (국내 BE 1위)" }, + { "name": "C#", "pct": 27.1, "trend": "유지", "kr_relevance": "중간" }, + { "name": "Go", "pct": 14.7, "trend": "증가", "kr_relevance": "높음 (빠르게 성장)" }, + { "name": "Rust", "pct": 12.6, "trend": "증가", "kr_relevance": "중간" }, + { "name": "Kotlin", "pct": 9.4, "trend": "증가", "kr_relevance": "매우높음 (국내 대기업 전환)" }, + { "name": "PHP", "pct": 18.2, "trend": "감소", "kr_relevance": "낮음 (신규 채용 감소)" } + ], + + "web_frameworks": [ + { "name": "Node.js", "pct": 49.1, "trend": "유지", "kr_note": "스타트업 백엔드 주류" }, + { "name": "React", "pct": 46.9, "trend": "유지", "kr_note": "한국 FE 표준 (44.7%)" }, + { "name": "jQuery", "pct": 24.1, "trend": "감소", "kr_note": "레거시 유지보수용만 잔존" }, + { "name": "Next.js", "pct": 21.5, "trend": "급증", "kr_note": "한국 32% 수요, SSR 표준화" }, + { "name": "Express", "pct": 20.3, "trend": "유지", "kr_note": "Node.js 생태계 핵심" }, + { "name": "Vue.js", "pct": 17.3, "trend": "유지", "kr_note": "국내 중소기업 여전히 활용 (18.5%)" }, + { "name": "Angular", "pct": 17.1, "trend": "감소", "kr_note": "공공·SI·레거시 잔존, 신규 급감" }, + { "name": "FastAPI", "pct": 8.4, "trend": "급증 (+5%p)", "kr_note": "Python AI 백엔드 표준" }, + { "name": "Django", "pct": 13.0, "trend": "유지", "kr_note": "Python 백엔드 안정적 수요" }, + { "name": "Spring Boot", "pct": 12.1, "trend": "유지", "kr_note": "한국 BE 실질 1위 (국내 비중 >> 글로벌)" }, + { "name": "NestJS", "pct": 6.7, "trend": "증가", "kr_note": "TypeScript 스타트업 채택 급증" } + ], + + "databases": [ + { "name": "PostgreSQL", "pct": 58.2, "trend": "증가", "kr_note": "MySQL에서 전환 증가 추세" }, + { "name": "MySQL", "pct": 39.6, "trend": "유지", "kr_note": "국내 1위 RDBMS (MySQL+MariaDB)" }, + { "name": "SQLite", "pct": 36.9, "trend": "유지", "kr_note": "모바일/임베디드 로컬" }, + { "name": "MongoDB", "pct": 24.3, "trend": "유지", "kr_note": "NoSQL 1위" }, + { "name": "Redis", "pct": 30.7, "trend": "증가 (+8%p)", "kr_note": "캐싱/세션 표준, 모든 백엔드" }, + { "name": "Elasticsearch", "pct": 12.0, "trend": "유지", "kr_note": "검색/로그 분석 표준" }, + { "name": "Microsoft SQL Server", "pct": 30.9, "trend": "감소", "kr_note": "국내 공공·금융 일부" } + ], + + "cloud_and_tools": [ + { "name": "Docker", "pct": 73.8, "trend": "유지", "kr_note": "전 직군 필수 도구" }, + { "name": "npm", "pct": 59.3, "trend": "유지", "kr_note": "JS 생태계" }, + { "name": "AWS", "pct": 45.9, "trend": "유지", "kr_note": "국내 클라우드 1위 (48%)" }, + { "name": "Kubernetes", "pct": 30.1, "trend": "급증", "kr_note": "국내 DevOps/MLOps 필수화" }, + { "name": "Microsoft Azure", "pct": 27.2, "trend": "유지", "kr_note": "국내 기업 일부 사용" }, + { "name": "Google Cloud", "pct": 26.1, "trend": "증가", "kr_note": "국내 BigQuery 수요 증가 (GCP)" }, + { "name": "GitHub Actions", "pct": 47.8, "trend": "급증", "kr_note": "CI/CD 표준으로 빠르게 대체" }, + { "name": "Terraform", "pct": 18.9, "trend": "급증", "kr_note": "IaC 국내 필수화 진행 중" } + ], + + "ai_llm_tools": [ + { "name": "OpenAI GPT", "pct": 81.9, "trend": "필수", "kr_note": "개발자 AI 도구 1위" }, + { "name": "Claude Sonnet", "pct": 44.9, "trend": "급증", "kr_note": "프로 개발자 채택률 높음" }, + { "name": "Gemini Flash", "pct": 34.4, "trend": "증가", "kr_note": "Google 생태계" }, + { "name": "GitHub Copilot", "pct": 37.2, "trend": "증가", "kr_note": "IDE 통합 AI 코딩" }, + { "name": "Cursor", "pct": 19.3, "trend": "급증", "kr_note": "AI-first IDE" } + ], + + "notable_global_trends": { + "Python": "채용 공고 비중 15% → 18%, SO 사용률 7%p 급등 — AI/ML 수요 견인", + "TypeScript": "글로벌 48.8%, 한국 프론트엔드 78% — 사실상 필수화", + "Redis": "SO 기준 +8%p — 캐싱·마이크로서비스 확산 반영", + "FastAPI": "Python 프레임워크 중 가장 빠른 성장 (+5%p)", + "jQuery": "24.1%로 하락 지속 — 레거시 유지보수만 잔존", + "Angular": "17.1%로 하락 — React/Vue 대비 경쟁력 저하", + "AI_tools": "84%의 개발자가 AI 도구 활용 또는 계획 중", + "Go": "14.7% 사용률, 클라우드 네이티브·고성능 백엔드 성장", + "Kotlin": "9.4% 글로벌, 국내는 대기업 중심으로 더 빠른 채택" + } +} diff --git a/DATASET/webdataset/17_kr_roadmap_overlay.json b/DATASET/webdataset/17_kr_roadmap_overlay.json new file mode 100644 index 0000000..a51fa62 --- /dev/null +++ b/DATASET/webdataset/17_kr_roadmap_overlay.json @@ -0,0 +1,1002 @@ +{ + "meta": { + "title": "roadmap.csv 노드별 한국 채용시장 강조 오버레이", + "purpose": "기존 roadmap.csv의 각 노드 라벨에 한국 시장 기준 상태값을 매핑 → 다이어그램 강조표시용", + "sources": [ + "DATASET/11_raw_job_postings.json (27개 실제 공고)", + "DATASET/12_stack_frequency_realdata.json", + "DATASET/14_linkareer_job_postings.json (18개 링커리어 공고)", + "DATASET/15_bigtech_company_stacks.json (네카라쿠배당토)", + "DATASET/16_stackoverflow_survey_2025.json (SO 2025)", + "점핏 2025 상반기 개발자 채용 리포트", + "원티드 2026 채용 트렌드 리포트" + ], + "collected_date": "2026-06-01", + "status_legend": { + "필수": "대부분 공고에서 요구 (40%+ 등장 또는 직군 핵심)", + "급증": "수요가 빠르게 증가 중 (YoY 30%+ 성장)", + "증가": "점진적 수요 증가 (YoY 10~30% 성장)", + "유지": "수요 안정적 유지", + "감소": "수요 감소 중 (레거시 위주)", + "하락": "신규 채용에서 사실상 퇴출 수준" + }, + "usage_note": "node_label 값은 roadmap.csv의 topic_label 또는 subtopic의 topic_label과 정확히 매칭됨" + }, + "overlay": { + "languages_backend": [ + { + "node_label": "Java", + "kr_status": "필수", + "kr_demand_pct": 32.1, + "kr_demand_source": "잡코리아 전체 공고 중 1위", + "trend_direction": "유지", + "roles": [ + "android", + "backend", + "computer-science", + "data-engineer" + ], + "badge_color": "green", + "kr_note": "대기업·금융·SI 백엔드 표준. Spring Boot와 함께 국내 1위 유지" + }, + { + "node_label": "Python", + "kr_status": "필수", + "kr_demand_pct": 74, + "kr_demand_source": "실제 공고 74% 등장 (전 직군)", + "trend_direction": "급증", + "roles": [ + "backend", + "blockchain", + "computer-science", + "cyber-security", + "data-engineer", + "devops", + "game-developer", + "machine-learning", + "mlops", + "software-architect" + ], + "badge_color": "green", + "kr_note": "AI·ML·데이터·백엔드·DevOps 전 직군 범용 언어. SO 기준 +7%p 급등" + }, + { + "node_label": "JavaScript / TypeScript", + "kr_status": "필수", + "kr_demand_pct": 95, + "kr_demand_source": "프론트엔드 공고 사실상 전수", + "trend_direction": "유지", + "roles": [ + "software-architect" + ], + "badge_color": "green", + "kr_note": "TypeScript 필수화 진행 중. JavaScript 단독 공고는 사실상 소멸" + }, + { + "node_label": "TypeScript", + "kr_status": "급증→필수", + "kr_demand_pct": 78, + "kr_demand_source": "프론트엔드 공고 78%, 신입 공고에서도 필수", + "trend_direction": "급증", + "roles": [ + "frontend" + ], + "badge_color": "orange", + "kr_note": "2025~2026 프론트엔드 공고 전수 등장. JavaScript만으론 탈락 위험" + }, + { + "node_label": "Go", + "kr_status": "증가", + "kr_demand_pct": 6.2, + "kr_demand_source": "잡코리아 백엔드 기준", + "trend_direction": "증가", + "roles": [ + "backend", + "blockchain", + "computer-science", + "cyber-security", + "data-engineer", + "devops", + "mlops", + "software-architect" + ], + "badge_color": "yellow", + "kr_note": "고성능 마이크로서비스·클라우드 네이티브. 쏘카·풀림·네이버클라우드 요구 확인" + }, + { + "node_label": "Rust", + "kr_status": "관심", + "kr_demand_pct": 2, + "kr_demand_source": "네이버클라우드 MLOps 등 소수", + "trend_direction": "증가", + "roles": [ + "backend", + "blockchain", + "computer-science", + "devops", + "game-developer" + ], + "badge_color": "gray", + "kr_note": "국내 수요 아직 낮으나 글로벌 성장세로 관심 증가. 시스템 프로그래밍" + }, + { + "node_label": "Java / Kotlin / Scala", + "kr_status": "필수", + "kr_demand_pct": 40, + "kr_demand_source": "JVM 생태계 전체 합산", + "trend_direction": "유지", + "roles": [ + "software-architect" + ], + "badge_color": "green", + "kr_note": "Java → Kotlin 전환 가속 중. 네카라쿠배당토 모두 Kotlin 채택" + } + ], + "frontend_frameworks": [ + { + "node_label": "React", + "kr_status": "필수", + "kr_demand_pct": 44.7, + "kr_demand_source": "한국 프론트엔드 시장 점유율 1위", + "trend_direction": "유지", + "roles": [ + "blockchain", + "frontend", + "full-stack" + ], + "badge_color": "green", + "kr_note": "국내 프론트엔드 사실상 표준. React 없이 취업 불가 수준" + }, + { + "node_label": "Next.js", + "kr_status": "급증", + "kr_demand_pct": 32, + "kr_demand_source": "원티드·점핏 프론트엔드 공고", + "trend_direction": "급증", + "roles": [ + "frontend" + ], + "badge_color": "orange", + "kr_note": "SSR·SEO 중시 기업 증가. 신입 공고에서도 등장. 2026년 사실상 필수화" + }, + { + "node_label": "Vue", + "kr_status": "유지", + "kr_demand_pct": 18.5, + "kr_demand_source": "잡코리아·점핏", + "trend_direction": "감소", + "roles": [ + "blockchain" + ], + "badge_color": "gray", + "kr_note": "중소기업·스타트업 일부 사용. React로 대체 추세지만 여전히 2위" + }, + { + "node_label": "Vue.js", + "kr_status": "유지", + "kr_demand_pct": 18.5, + "kr_demand_source": "잡코리아·점핏", + "trend_direction": "감소", + "roles": [ + "frontend" + ], + "badge_color": "gray", + "kr_note": "Vue와 동일. 중소기업 레거시 유지 수요" + }, + { + "node_label": "Angular", + "kr_status": "감소", + "kr_demand_pct": 6.3, + "kr_demand_source": "잡코리아 기준", + "trend_direction": "하락", + "roles": [ + "blockchain", + "frontend" + ], + "badge_color": "red", + "kr_note": "공공·SI·금융권 레거시만 잔존. 신규 프로젝트 채택 거의 없음" + } + ], + "databases": [ + { + "node_label": "MySQL", + "kr_status": "필수", + "kr_demand_pct": 41, + "kr_demand_source": "잡코리아 RDBMS 1위", + "trend_direction": "유지", + "roles": [ + "backend", + "data-engineer" + ], + "badge_color": "green", + "kr_note": "국내 1위 RDBMS. MariaDB 포함 시 더 높음" + }, + { + "node_label": "PostgreSQL", + "kr_status": "증가", + "kr_demand_pct": 28, + "kr_demand_source": "잡코리아·점핏", + "trend_direction": "증가", + "roles": [ + "backend", + "data-engineer", + "full-stack" + ], + "badge_color": "yellow", + "kr_note": "MySQL에서 전환 증가. 글로벌 SO 기준 1위(58.2%)로 국내도 빠른 성장" + }, + { + "node_label": "MongoDB", + "kr_status": "유지", + "kr_demand_pct": 18, + "kr_demand_source": "잡코리아 기준", + "trend_direction": "유지", + "roles": [ + "backend", + "data-engineer" + ], + "badge_color": "gray", + "kr_note": "NoSQL 1위. 비정형 데이터 처리용" + }, + { + "node_label": "Redis", + "kr_status": "필수", + "kr_demand_pct": 35, + "kr_demand_source": "잡코리아·점핏 (캐싱 표준)", + "trend_direction": "유지", + "roles": [ + "backend", + "data-engineer", + "full-stack" + ], + "badge_color": "green", + "kr_note": "캐싱·세션·분산락 표준. 대기업 전체 사용. SO 기준 +8%p 증가" + }, + { + "node_label": "Google BigQuery", + "kr_status": "급증", + "kr_demand_pct": 22, + "kr_demand_source": "데이터엔지니어 공고 집계", + "trend_direction": "급증", + "roles": [ + "data-engineer" + ], + "badge_color": "orange", + "kr_note": "쏘카·컬리 등 데이터엔지니어 공고에 등장. GCP 생태계 확산" + }, + { + "node_label": "Apache Kafka", + "kr_status": "증가", + "kr_demand_pct": 12, + "kr_demand_source": "실제 공고 11% (대기업·스타트업 모두)", + "trend_direction": "증가", + "roles": [ + "data-engineer" + ], + "badge_color": "yellow", + "kr_note": "이벤트 드리븐·MSA 확산으로 수요 증가. 대기업 파이프라인 표준" + }, + { + "node_label": "Kafka", + "kr_status": "증가", + "kr_demand_pct": 12, + "kr_demand_source": "실제 공고 집계", + "trend_direction": "증가", + "roles": [ + "backend", + "mlops" + ], + "badge_color": "yellow", + "kr_note": "Apache Kafka와 동일" + }, + { + "node_label": "Apache Spark", + "kr_status": "유지", + "kr_demand_pct": 15, + "kr_demand_source": "데이터엔지니어 공고", + "trend_direction": "유지", + "roles": [ + "data-engineer", + "software-architect" + ], + "badge_color": "gray", + "kr_note": "대규모 데이터 처리 표준. Databricks로 추상화 증가" + }, + { + "node_label": "Spark", + "kr_status": "유지", + "kr_demand_pct": 15, + "kr_demand_source": "데이터엔지니어 공고", + "trend_direction": "유지", + "roles": [ + "data-analyst", + "mlops" + ], + "badge_color": "gray", + "kr_note": "Apache Spark와 동일" + } + ], + "devops_infra": [ + { + "node_label": "Docker", + "kr_status": "필수", + "kr_demand_pct": 63, + "kr_demand_source": "실제 공고 63% 등장 (전 직군)", + "trend_direction": "유지", + "roles": [ + "data-engineer", + "devops", + "mlops" + ], + "badge_color": "green", + "kr_note": "모든 서버사이드 직군 필수 도구. 2026년 기준 없으면 서류 탈락" + }, + { + "node_label": "Kubernetes", + "kr_status": "급증", + "kr_demand_pct": 26, + "kr_demand_source": "실제 공고 26% (DevOps·MLOps 필수)", + "trend_direction": "급증", + "roles": [ + "data-engineer", + "devops", + "mlops" + ], + "badge_color": "orange", + "kr_note": "DevOps·MLOps 공고에서 필수 요건화. 대기업은 기본 전제" + }, + { + "node_label": "AWS", + "kr_status": "필수", + "kr_demand_pct": 48, + "kr_demand_source": "실제 공고 48%", + "trend_direction": "유지", + "roles": [ + "cyber-security", + "devops" + ], + "badge_color": "green", + "kr_note": "국내 클라우드 1위. 모든 직군에서 기본 지식 요구" + }, + { + "node_label": "AWS / Azure / GCP", + "kr_status": "필수", + "kr_demand_pct": 48, + "kr_demand_source": "실제 공고 집계", + "trend_direction": "유지", + "roles": [ + "mlops" + ], + "badge_color": "green", + "kr_note": "DevOps 공고에서 멀티클라우드(AWS+Azure+GCP+NCP) 동시 요구 등장" + }, + { + "node_label": "GCP", + "kr_status": "증가", + "kr_demand_pct": 22, + "kr_demand_source": "실제 공고 22%", + "trend_direction": "증가", + "roles": [ + "cyber-security" + ], + "badge_color": "yellow", + "kr_note": "BigQuery·GKE 수요로 증가. 데이터 직군에서 AWS와 멀티 클라우드 요구" + }, + { + "node_label": "Azure", + "kr_status": "유지", + "kr_demand_pct": 18, + "kr_demand_source": "DevOps 공고", + "trend_direction": "유지", + "roles": [ + "cyber-security", + "devops" + ], + "badge_color": "gray", + "kr_note": "국내 기업 일부 사용. 멀티클라우드 DevOps 공고에서 등장" + }, + { + "node_label": "Terraform", + "kr_status": "급증", + "kr_demand_pct": 58, + "kr_demand_source": "DevOps 공고 58% (요구 증가)", + "trend_direction": "급증", + "roles": [ + "data-engineer", + "devops", + "full-stack" + ], + "badge_color": "orange", + "kr_note": "IaC 도구 1위. DevOps 공고에서 필수화 진행. 2026년 핵심 요건" + }, + { + "node_label": "Ansible", + "kr_status": "유지", + "kr_demand_pct": 35, + "kr_demand_source": "DevOps 공고", + "trend_direction": "유지", + "roles": [ + "devops", + "full-stack", + "postgresql-dba" + ], + "badge_color": "gray", + "kr_note": "구성 관리 도구. Terraform과 함께 사용" + }, + { + "node_label": "GitHub Actions", + "kr_status": "급증", + "kr_demand_pct": 55, + "kr_demand_source": "CI/CD 도구 통계", + "trend_direction": "급증", + "roles": [ + "data-engineer", + "devops", + "full-stack", + "ios" + ], + "badge_color": "orange", + "kr_note": "Jenkins 대체 CI/CD 표준. 스타트업 사실상 필수" + }, + { + "node_label": "Jenkins", + "kr_status": "유지", + "kr_demand_pct": 42, + "kr_demand_source": "CI/CD 도구 통계", + "trend_direction": "감소", + "roles": [ + "devops", + "ios", + "qa" + ], + "badge_color": "gray", + "kr_note": "대기업·중견기업 기존 파이프라인 유지. GitHub Actions로 점진 교체 중" + }, + { + "node_label": "GitLab CI", + "kr_status": "유지", + "kr_demand_pct": 32, + "kr_demand_source": "CI/CD 도구 통계", + "trend_direction": "유지", + "roles": [ + "data-engineer", + "devops", + "qa" + ], + "badge_color": "gray", + "kr_note": "자체 GitLab 서버 운영 기업 사용" + }, + { + "node_label": "ArgoCD", + "kr_status": "급증", + "kr_demand_pct": 28, + "kr_demand_source": "DevOps 공고", + "trend_direction": "급증", + "roles": [ + "data-engineer", + "devops" + ], + "badge_color": "orange", + "kr_note": "GitOps 방법론 확산으로 빠른 성장. K8s 환경 표준 배포 도구" + }, + { + "node_label": "Nginx", + "kr_status": "유지", + "kr_demand_pct": 45, + "kr_demand_source": "백엔드·DevOps 공고", + "trend_direction": "유지", + "roles": [ + "backend", + "devops" + ], + "badge_color": "gray", + "kr_note": "리버스 프록시·웹서버 표준. 안정적 수요 유지" + }, + { + "node_label": "Airflow", + "kr_status": "필수", + "kr_demand_pct": 55, + "kr_demand_source": "데이터엔지니어·MLOps 공고 100% 등장", + "trend_direction": "급증", + "roles": [ + "mlops" + ], + "badge_color": "green", + "kr_note": "데이터 파이프라인 오케스트레이션 사실상 표준. 전수 등장 확인" + }, + { + "node_label": "Apache Airflow", + "kr_status": "필수", + "kr_demand_pct": 55, + "kr_demand_source": "데이터엔지니어·MLOps 공고", + "trend_direction": "급증", + "roles": [ + "data-engineer" + ], + "badge_color": "green", + "kr_note": "Airflow와 동일" + }, + { + "node_label": "AWS ECS / Fargate", + "kr_status": "증가", + "kr_demand_pct": 20, + "kr_demand_source": "백엔드·DevOps 공고", + "trend_direction": "증가", + "roles": [ + "devops" + ], + "badge_color": "yellow", + "kr_note": "컨테이너 서비스 수요 증가" + }, + { + "node_label": "AWS EKS", + "kr_status": "증가", + "kr_demand_pct": 22, + "kr_demand_source": "DevOps·MLOps 공고", + "trend_direction": "증가", + "roles": [ + "data-engineer" + ], + "badge_color": "yellow", + "kr_note": "Kubernetes 관리형 서비스. K8s 채택 증가와 연동" + }, + { + "node_label": "AWS Lambda", + "kr_status": "증가", + "kr_demand_pct": 20, + "kr_demand_source": "백엔드·DevOps 공고", + "trend_direction": "증가", + "roles": [ + "devops" + ], + "badge_color": "yellow", + "kr_note": "서버리스 아키텍처 도입 증가" + }, + { + "node_label": "AWS Sagemaker", + "kr_status": "증가", + "kr_demand_pct": 15, + "kr_demand_source": "MLOps·AI 공고", + "trend_direction": "증가", + "roles": [ + "ai-engineer" + ], + "badge_color": "yellow", + "kr_note": "ML 워크로드 AWS 통합 관리" + } + ], + "api_protocols": [ + { + "node_label": "GraphQL", + "kr_status": "유지", + "kr_demand_pct": 15, + "kr_demand_source": "백엔드·프론트엔드 공고", + "trend_direction": "유지", + "roles": [ + "backend", + "computer-science", + "frontend", + "ios", + "software-architect", + "system-design" + ], + "badge_color": "gray", + "kr_note": "당근마켓 등 일부 활용. REST 대비 복잡성으로 대중화 제한적" + }, + { + "node_label": "gRPC", + "kr_status": "증가", + "kr_demand_pct": 10, + "kr_demand_source": "MSA 백엔드 공고", + "trend_direction": "증가", + "roles": [ + "backend", + "computer-science", + "software-architect", + "system-design" + ], + "badge_color": "yellow", + "kr_note": "MSA 내부 통신 표준으로 증가. 대기업·핀테크 도입 증가" + } + ], + "security_auth": [ + { + "node_label": "JWT", + "kr_status": "필수", + "kr_demand_pct": 80, + "kr_demand_source": "백엔드 인증 공고 전반", + "trend_direction": "유지", + "roles": [ + "backend" + ], + "badge_color": "green", + "kr_note": "토큰 기반 인증 표준. REST API 인증의 기본" + }, + { + "node_label": "OAuth", + "kr_status": "필수", + "kr_demand_pct": 75, + "kr_demand_source": "백엔드 인증 공고", + "trend_direction": "유지", + "roles": [ + "backend" + ], + "badge_color": "green", + "kr_note": "소셜 로그인·외부 API 연동 표준" + } + ], + "ai_ml": [ + { + "node_label": "PyTorch", + "kr_status": "증가", + "kr_demand_pct": 58, + "kr_demand_source": "AI·ML 직군 공고", + "trend_direction": "급증", + "roles": [ + "machine-learning" + ], + "badge_color": "orange", + "kr_note": "딥러닝 모델 개발 1위. 연구·산업 양쪽 선호" + }, + { + "node_label": "Pytorch", + "kr_status": "증가", + "kr_demand_pct": 58, + "kr_demand_source": "AI·ML 직군 공고", + "trend_direction": "급증", + "roles": [ + "data-analyst" + ], + "badge_color": "orange", + "kr_note": "PyTorch와 동일" + }, + { + "node_label": "TensorFlow", + "kr_status": "유지", + "kr_demand_pct": 45, + "kr_demand_source": "AI·ML 직군 공고", + "trend_direction": "유지", + "roles": [ + "machine-learning" + ], + "badge_color": "gray", + "kr_note": "PyTorch 대비 하락세. 기존 프로덕션 서비스 유지보수" + }, + { + "node_label": "Tensorflow", + "kr_status": "유지", + "kr_demand_pct": 45, + "kr_demand_source": "AI·ML 직군 공고", + "trend_direction": "유지", + "roles": [ + "data-analyst" + ], + "badge_color": "gray", + "kr_note": "TensorFlow와 동일" + }, + { + "node_label": "Langchain", + "kr_status": "급증", + "kr_demand_pct": 45, + "kr_demand_source": "AI 엔지니어·LLM 공고", + "trend_direction": "급증", + "roles": [ + "ai-engineer" + ], + "badge_color": "orange", + "kr_note": "LLM 앱 개발 de-facto 표준. LG전자·네이버·센드버드 등 대기업 공고 확인" + }, + { + "node_label": "LangChain for Multimodal Apps", + "kr_status": "급증", + "kr_demand_pct": 30, + "kr_demand_source": "AI 엔지니어 공고", + "trend_direction": "급증", + "roles": [ + "ai-engineer" + ], + "badge_color": "orange", + "kr_note": "LangChain 멀티모달 확장. 신흥 수요" + }, + { + "node_label": "ReAct Prompting", + "kr_status": "급증", + "kr_demand_pct": 25, + "kr_demand_source": "AI 엔지니어 공고", + "trend_direction": "급증", + "roles": [ + "ai-engineer" + ], + "badge_color": "orange", + "kr_note": "프롬프트 엔지니어링 기법. AI 에이전트 공고 필수 지식" + }, + { + "node_label": "Google's Gemini", + "kr_status": "증가", + "kr_demand_pct": 20, + "kr_demand_source": "AI 엔지니어 공고", + "trend_direction": "증가", + "roles": [ + "ai-engineer" + ], + "badge_color": "yellow", + "kr_note": "Google AI API 채택 증가. GPT·Claude와 함께 멀티 LLM 활용" + }, + { + "node_label": "Azure AI", + "kr_status": "증가", + "kr_demand_pct": 15, + "kr_demand_source": "AI·DevOps 공고", + "trend_direction": "증가", + "roles": [ + "ai-engineer" + ], + "badge_color": "yellow", + "kr_note": "기업 AI 솔루션 Azure 활용 증가" + } + ], + "version_control": [ + { + "node_label": "GitHub", + "kr_status": "필수", + "kr_demand_pct": 52, + "kr_demand_source": "실제 공고 52%", + "trend_direction": "유지", + "roles": [ + "android", + "backend", + "blockchain", + "devops", + "frontend", + "full-stack", + "ios", + "mlops", + "qa", + "software-architect" + ], + "badge_color": "green", + "kr_note": "협업 및 버전 관리 표준. PR 코드리뷰 문화 정착" + }, + { + "node_label": "GitLab", + "kr_status": "유지", + "kr_demand_pct": 30, + "kr_demand_source": "백엔드·DevOps 공고", + "trend_direction": "유지", + "roles": [ + "android", + "backend", + "blockchain", + "devops", + "frontend", + "ios", + "qa" + ], + "badge_color": "gray", + "kr_note": "온프레미스 환경 기업 선호" + } + ], + "mobile": [ + { + "node_label": "React Native", + "kr_status": "유지", + "kr_demand_pct": 28, + "kr_demand_source": "모바일 공고", + "trend_direction": "유지", + "roles": [ + "frontend" + ], + "badge_color": "gray", + "kr_note": "크로스플랫폼 2위. Flutter에 추격 당하는 중" + }, + { + "node_label": "What is React Native?", + "kr_status": "유지", + "kr_demand_pct": 25, + "kr_demand_source": "모바일 공고", + "trend_direction": "유지", + "roles": [ + "react-native" + ], + "badge_color": "gray", + "kr_note": "React Native 개념" + } + ], + "data_tools": [ + { + "node_label": "Google Cloud", + "kr_status": "증가", + "kr_demand_pct": 22, + "kr_demand_source": "데이터·DevOps 공고", + "trend_direction": "증가", + "roles": [ + "devops" + ], + "badge_color": "yellow", + "kr_note": "GCP BigQuery 중심으로 데이터 직군 채택 증가" + }, + { + "node_label": "Google Cloud GKE", + "kr_status": "증가", + "kr_demand_pct": 15, + "kr_demand_source": "DevOps 공고", + "trend_direction": "증가", + "roles": [ + "data-engineer" + ], + "badge_color": "yellow", + "kr_note": "K8s 관리형 서비스 GCP 버전" + }, + { + "node_label": "Hadoop, Spark, MapReduce", + "kr_status": "감소", + "kr_demand_pct": 20, + "kr_demand_source": "데이터엔지니어 공고", + "trend_direction": "감소", + "roles": [ + "software-architect" + ], + "badge_color": "red", + "kr_note": "대기업 레거시 잔존. 신규는 Databricks/클라우드 관리형으로 대체" + } + ], + "declining_tech": [ + { + "node_label": "Angular Velocity", + "kr_status": "해당없음", + "kr_demand_pct": 0, + "trend_direction": "해당없음", + "roles": [ + "game-developer" + ], + "badge_color": "gray", + "kr_note": "물리 엔진, IT 채용 관련 없음" + } + ] + }, + "role_priority_matrix": { + "description": "직군별로 '필수' 상태 기술스택 우선순위", + "backend": { + "must_have": [ + "Java 또는 Python 또는 TypeScript/Node.js", + "Spring Boot 또는 NestJS 또는 FastAPI", + "MySQL/PostgreSQL", + "Redis", + "Docker", + "AWS 기본", + "Git/GitHub" + ], + "growing": [ + "Kotlin", + "Go", + "Kafka", + "Kubernetes", + "TypeScript", + "FastAPI" + ], + "declining": [ + "PHP 신규", + "SVN", + "jQuery 백엔드" + ] + }, + "frontend": { + "must_have": [ + "React", + "TypeScript", + "HTML/CSS", + "Git/GitHub" + ], + "growing": [ + "Next.js", + "Zustand", + "React Query", + "Tailwind CSS" + ], + "declining": [ + "Angular 신규", + "jQuery", + "SVN" + ] + }, + "devops": { + "must_have": [ + "Docker", + "Kubernetes", + "AWS", + "Terraform", + "GitHub Actions 또는 Jenkins", + "Linux/Bash" + ], + "growing": [ + "ArgoCD", + "GitOps", + "Prometheus+Grafana", + "FinOps" + ], + "declining": [ + "SVN", + "물리 서버 직접 관리" + ] + }, + "ai_engineer": { + "must_have": [ + "Python", + "LangChain", + "RAG", + "OpenAI/Claude API", + "Docker" + ], + "growing": [ + "LangGraph", + "CrewAI", + "Vector DB", + "vLLM", + "프롬프트 엔지니어링" + ], + "declining": [] + }, + "machine_learning": { + "must_have": [ + "Python", + "PyTorch", + "Scikit-learn", + "MLflow", + "Docker" + ], + "growing": [ + "ONNX", + "Triton", + "Airflow", + "Kubeflow" + ], + "declining": [ + "TensorFlow (PyTorch 대비)" + ] + }, + "data_engineer": { + "must_have": [ + "Python", + "SQL", + "Airflow", + "AWS 또는 GCP" + ], + "growing": [ + "dbt", + "Kafka", + "Databricks", + "BigQuery" + ], + "declining": [ + "Hadoop 신규", + "MapReduce 직접 구현" + ] + } + }, + "kr_market_signals_2026": { + "all_roles_baseline": [ + "Python — 전 직군 범용화 완료 (74% 등장)", + "Docker — 서버사이드 전 직군 필수 (63%)", + "Git/GitHub — 협업 기본 인프라 (52%)", + "AI 도구 활용 능력 — 직종 무관 우대 (84% 개발자 사용)" + ], + "fastest_growing_2025_2026": [ + "LangChain / LangGraph — AI 에이전트 표준 프레임워크", + "TypeScript — 프론트엔드 필수화 완료", + "Next.js — SSR 표준, 신입도 요구", + "Kubernetes — DevOps·MLOps 필수화", + "Terraform — IaC 도구 사실상 필수", + "Airflow — 데이터 파이프라인 오케스트레이션 표준", + "FastAPI — Python AI 백엔드 표준", + "Kotlin — Java 대체 대기업 채택 가속" + ], + "declining_2025_2026": [ + "Angular — 신규 채용 사실상 없음", + "jQuery — 레거시 유지보수만 잔존", + "PHP 신규 채용 — 레거시 위주", + "SVN — Git으로 전면 대체", + "Hadoop 직접 구현 — Databricks·관리형 서비스로 대체", + "Jenkins 신규 — GitHub Actions로 대체 가속" + ] + } +} \ No newline at end of file diff --git a/app/api/v1/roadmap.py b/app/api/v1/roadmap.py new file mode 100644 index 0000000..27bac11 --- /dev/null +++ b/app/api/v1/roadmap.py @@ -0,0 +1,49 @@ +from __future__ import annotations + +from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException + +from app.api.dependencies import verify_internal_key +from app.jobs.store import create_job, get_job +from app.schemas.job import JobStatusResponse +from app.schemas.roadmap import AssessRequest +from app.services.roadmap_assess import run_assess_task + +router = APIRouter( + prefix="/roadmap", + tags=["roadmap"], + dependencies=[Depends(verify_internal_key)], +) + + +@router.post("/assess", response_model=JobStatusResponse) +async def assess( + req: AssessRequest, + background_tasks: BackgroundTasks, +) -> JobStatusResponse: + if not req.code_analysis_urls: + raise HTTPException(status_code=400, detail="code_analysis_urls가 비어 있습니다.") + if len(req.code_analysis_urls) > 10: + raise HTTPException(status_code=400, detail="code_analysis_urls는 최대 10개입니다.") + + job = create_job() + background_tasks.add_task( + run_assess_task, + job_id=str(job.job_id), + ai_job_id=req.ai_job_id, + code_analysis_urls=req.code_analysis_urls, + merge=req.merge, + ) + return JobStatusResponse(job_id=str(job.job_id), status=job.status) + + +@router.get("/jobs/{job_id}", response_model=JobStatusResponse) +def get_assess_status(job_id: str) -> JobStatusResponse: + job = get_job(job_id) + if job is None: + raise HTTPException(status_code=404, detail=f"job_id '{job_id}'를 찾을 수 없습니다.") + return JobStatusResponse( + job_id=str(job.job_id), + status=job.status, + result=job.result, + message=job.message, + ) diff --git a/app/main.py b/app/main.py index f2e772d..6439419 100644 --- a/app/main.py +++ b/app/main.py @@ -9,12 +9,14 @@ from app.api.v1.cover_letter import router as cover_letter_router from app.api.v1.jobs import router as jobs_router from app.api.v1.portfolio import router as portfolio_router +from app.api.v1.roadmap import router as roadmap_router app = FastAPI(title="Passfolio AI", version="1.0.0") app.include_router(cover_letter_router, prefix="/api/v1") app.include_router(portfolio_router, prefix="/api/v1") app.include_router(jobs_router, prefix="/api/v1") +app.include_router(roadmap_router, prefix="/api/v1") @app.exception_handler(HTTPException) diff --git a/app/schemas/roadmap.py b/app/schemas/roadmap.py new file mode 100644 index 0000000..cc29920 --- /dev/null +++ b/app/schemas/roadmap.py @@ -0,0 +1,9 @@ +from __future__ import annotations + +from pydantic import BaseModel + + +class AssessRequest(BaseModel): + ai_job_id: str + code_analysis_urls: list[str] + merge: bool = False diff --git a/app/services/_rag_utils.py b/app/services/_rag_utils.py index 29f41c3..f54d489 100644 --- a/app/services/_rag_utils.py +++ b/app/services/_rag_utils.py @@ -486,16 +486,30 @@ def _fetch_code_analysis(url: str) -> dict: def _fetch_code_analyses(urls: list[str]) -> list[dict]: - """복수의 코드 분석 URL을 fetch해 list[dict]로 반환. 개별 실패는 건너뜀.""" - results = [] - for url in urls: - if not url: - continue - try: - results.append(_fetch_code_analysis(url)) - except Exception as e: - logger.warning("[코드 분석 fetch 실패] %s — %s", url, e) - return results + """복수의 코드 분석 URL을 병렬 fetch해 list[dict]로 반환. 개별 실패는 건너뜀.""" + import concurrent.futures + valid_urls = [u for u in urls if u] + if not valid_urls: + return [] + + results = [None] * len(valid_urls) + + def _fetch(idx: int, url: str) -> None: + for attempt in range(3): + try: + results[idx] = _fetch_code_analysis(url) + return + except Exception as e: + logger.warning("[코드 분석 fetch 실패] %s (시도 %d/3) — %s", url, attempt + 1, e) + if attempt < 2: + import time; time.sleep(2 ** attempt) + + with concurrent.futures.ThreadPoolExecutor(max_workers=len(valid_urls)) as executor: + futures = [executor.submit(_fetch, i, u) for i, u in enumerate(valid_urls)] + for f in futures: + f.result() + + return [r for r in results if r is not None] def _build_code_analyses_block(code_analyses: list[dict]) -> str: diff --git a/app/services/roadmap/__init__.py b/app/services/roadmap/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/roadmap/llm_analyzer.py b/app/services/roadmap/llm_analyzer.py new file mode 100644 index 0000000..290f0fc --- /dev/null +++ b/app/services/roadmap/llm_analyzer.py @@ -0,0 +1,418 @@ +""" +LLM-based roadmap assessment using Google Gemini API. + +인증: GEMINI_API_KEY 환경변수 + +수정 이력 (분석 근거): + [FIX #1] market_brief 프롬프트에 프로젝트 evidence(user_role/core_perf/skills) 주입 + → "전문가에게 기초부터 배우라"는 조언 + 본문-시장 톤 충돌 해결 + [FIX #2] 필드명 폴백(analysis_form|analysis, contribute_percent|contribute_share_percent) + → 조용히 빈 값이 되던 core_feat/core_perf/contribute 복구 + [FIX #3] strong/covered에 subtopic 포함 (topic 롤업 의존 제거) + → SSE·Redis 등 subtopic 증거가 LLM에 전달되도록 + [FIX #4] declining/trending/priority를 dev_type 직군으로 한정 (프론트 스택 혼입 방지) + [FIX #5] core_feat/core_perf를 title만이 아니라 description까지 전달 + [FIX #6] data.get("level") → coverage_level 폴백, 하드 인덱싱 → .get 방어 + [FIX #7] market_brief는 환각 위험이 큰 수치를 생성하므로 모델 분리(상향 권장) +""" + +from __future__ import annotations +import json +import os +from typing import Any + +from google import genai +from google.genai import types + +MODEL = "gemini-3.1-flash-lite" # "gemini-3.5-pro + +# [FIX #7] market_brief는 연봉/수요율 등 수치를 생성하므로 환각 위험이 큼. +# 사용 가능한 더 강한 모델명으로 교체 권장 (예: 주석의 gemini-3.5-pro 계열). +# 기본값은 호환성을 위해 MODEL과 동일하게 둠. +MARKET_BRIEF_MODEL = MODEL + +SYSTEM_PROMPT = """당신은 시니어 개발자 멘토입니다. +사용자의 GitHub 프로젝트 분석 결과와 개발자 로드맵 데이터를 바탕으로 +현재 기술 수준을 진단하고, 로드맵 순서에 맞는 구체적인 학습 경로를 제시합니다. + +반드시 아래 JSON 스키마 형식으로만 응답하세요. 마크다운 코드블록 없이 순수 JSON만 출력합니다. + +{ + "overall_level": "Beginner | Junior | Mid-level | Senior | Expert", + "level_rationale": "수준 판단 근거 (2-3문장)", + "strong_areas": [ + {"area": "영역명", "reason": "근거"} + ], + "gap_areas": [ + {"area": "영역명", "priority": "High | Medium | Low", "reason": "왜 중요한지"} + ], + "roadmap_path": [ + { + "priority": 1, + "topic": "로드맵 토픽명 (roadmap_path에서 가져올 것)", + "tier": "core | support", + "subtopics_to_learn": ["배울 세부 항목"], + "why": "현재 수준에서 이 단계가 필요한 이유", + "how": "구체적인 학습 방법 또는 실습 아이디어" + } + ], + "summary": "전체 평가 요약 (3-4문장)" +}""" + + +_DEVTYPE_KO: dict[str, str] = { + "backend": "백엔드", + "frontend": "프론트엔드", + "devops": "DevOps", + "android": "Android", + "ios": "iOS", + "machine-learning": "ML", + "ai-engineer": "AI", + "data-engineer": "데이터", + "fullstack": "풀스택", +} + + +def _flatten_skills(skills: Any) -> list[str]: + """skills가 list[dict], list[str], dict 어떤 형태든 이름 문자열 리스트로 반환.""" + if not skills: + return [] + if isinstance(skills, dict): + out = [] + for v in skills.values(): + out += v if isinstance(v, list) else [v] + return out + if isinstance(skills, list): + return [s.get("name") if isinstance(s, dict) else str(s) for s in skills] + return [] + + +def _to_devtype_ko(devtype: str) -> str: + """영문 role 키면 한글로, 이미 한글이면 그대로.""" + if not devtype: + return "" + if any("가" <= c <= "힣" for c in devtype): + return devtype + return _DEVTYPE_KO.get(devtype, devtype) + + +def _build_client() -> genai.Client: + api_key = os.environ.get("GEMINI_API_KEY") + if api_key: + return genai.Client(api_key=api_key) + + raise EnvironmentError("GEMINI_API_KEY 환경변수를 설정하세요.") + + +# ────────────────────────────────────────────────────────────────────── +# 공통 추출 헬퍼 +# ────────────────────────────────────────────────────────────────────── +def _extract_project_core(project: dict[str, Any]) -> dict[str, Any]: + """ + 프로젝트 dict에서 평가에 필요한 핵심 정보를 추출한다. + + [FIX #2] 필드명 폴백: + - analysis_form ↔ analysis + - contribute_percent ↔ contribute_share_percent + raw request.json과 정규화된 dict를 모두 지원한다. + [FIX #5] core_feat/core_perf는 title뿐 아니라 description까지 담는다. + """ + analysis = project.get("analysis_form") or project.get("analysis") or {} + if not analysis: + # 키 누락을 조용히 넘기지 않고 경고 (디버깅용) + print("[llm_analyzer] WARNING: analysis_form/analysis 가 비어 있습니다. " + "프로젝트 dict 필드명을 확인하세요.") + + contribute = project.get("contribute_percent") + if contribute is None: + contribute = project.get("contribute_share_percent") + + core_feat = [ + {"title": f.get("feat_title"), "description": f.get("description")} + for f in analysis.get("core_feat", []) + ] + core_perf = [ + {"title": p.get("perf_title"), "description": p.get("description")} + for p in analysis.get("core_perf", []) + ] + + return { + "service_name": project.get("service_name"), + "service_description": project.get("service_description"), + "dev_type": project.get("dev_type"), + "frameworks": project.get("frameworks"), + "skills": project.get("skills"), + "user_role": project.get("user_role"), + "contribute_percent": contribute, + "core_feat": core_feat, + "core_perf": core_perf, + "contribute_titles": analysis.get("contribute", {}).get("contribute_titles", []), + } + + +def _role_nodes(role_data: dict[str, Any], status: str) -> list[dict[str, Any]]: + """ + role_data에서 주어진 status의 노드를 반환. + + [FIX #6] 두 스키마를 모두 지원: + - 신규: role_data["nodes"] = [{..., "status": "covered"}, ...] + - 구버전: role_data["covered"|"partial"|"uncovered"] = [...] + """ + nodes = role_data.get("nodes") + if isinstance(nodes, list): + return [n for n in nodes if n.get("status") == status] + return role_data.get(status, []) or [] + + +def _label_items(nodes: list[dict[str, Any]], topic_only: bool = False) -> list[dict[str, Any]]: + """노드 리스트 → {label, type, tier} 리스트.""" + out = [] + for n in nodes: + if topic_only and n.get("type") != "topic": + continue + out.append({ + "label": n["label"], + "type": n.get("type", "subtopic"), + "tier": n.get("tier", "support"), + }) + return out + + +# ────────────────────────────────────────────────────────────────────── +# 1) 메인 평가 (overall_level / strong / gap / roadmap) +# ────────────────────────────────────────────────────────────────────── +def _build_user_prompt(project: dict[str, Any], filter_result_dict: dict[str, Any]) -> str: + project_core = _extract_project_core(project) # [FIX #2][FIX #5] + + roadmap_summary: dict[str, Any] = {} + for role, data in filter_result_dict.get("per_role", {}).items(): + covered_nodes = _role_nodes(data, "covered") # [FIX #6] + partial_nodes = _role_nodes(data, "partial") + uncovered_nodes = _role_nodes(data, "uncovered") + + roadmap_summary[role] = { + "weighted_score_pct": data.get("coverage_pct"), + # [FIX #6] level → coverage_level 폴백 + "level": data.get("coverage_level") or data.get("level"), + "topic_coverage": data.get("topic_coverage"), + # [FIX #3] covered는 topic+subtopic 모두 포함 → SSE/Redis 등 증거 손실 방지 + "covered": _label_items(covered_nodes), + "partial_topics": _label_items(partial_nodes, topic_only=True), + "uncovered_topics": _label_items(uncovered_nodes, topic_only=True), + "roadmap_path": data.get("roadmap_path", []), + } + + # primary role의 roadmap_path를 별도로 추출 (LLM 프롬프트에 강조) + primary_role = filter_result_dict.get("primary_roles", ["backend"])[0] + primary_path = filter_result_dict.get("per_role", {}).get(primary_role, {}).get("roadmap_path", []) + + return ( + "## 프로젝트 분석 결과\n" + + json.dumps(project_core, ensure_ascii=False, indent=2) + + "\n\n## 로드맵 매핑 결과\n" + + json.dumps(roadmap_summary, ensure_ascii=False, indent=2) + + "\n\n## 추천 학습 경로 (roadmap.csv order_index 기준 순서)\n" + + "아래 경로는 로드맵 순서대로 정렬된 미학습 토픽입니다. " + + "roadmap_path 필드는 반드시 이 순서와 토픽명을 그대로 사용하세요.\n" + + json.dumps(primary_path, ensure_ascii=False, indent=2) + + "\n\n## 작성 지침\n" + + "- 'covered'에 있는 항목(subtopic 포함)은 이미 구현·학습한 강점입니다. " + + "이를 '아직 모르는 것'으로 취급하지 마세요.\n" + + "- gap_areas/roadmap_path는 partial_topics·uncovered_topics 중심으로 제시하세요.\n" + + "\n위 데이터를 분석하여 JSON 형식으로 평가를 제공하세요." + ) + + +# ────────────────────────────────────────────────────────────────────── +# 2) 시장 브리핑 (market_brief) +# ────────────────────────────────────────────────────────────────────── +_MARKET_BRIEF_SCHEMA = """{ + "market_overview": "현재 한국 {role} 시장 현황 요약 (3-4문장, 수치 포함)", + "trending_stacks": [ + {"stack": "기술명", "trend": "급증|증가|필수화", "kr_demand_pct": 숫자, "reason": "왜 뜨는지"} + ], + "declining_stacks": [ + {"stack": "기술명", "reason": "왜 줄어드는지"} + ], + "company_patterns": { + "startup": "스타트업 주류 스택 패턴 (1-2문장)", + "enterprise": "대기업 주류 스택 패턴 (1-2문장)" + }, + "salary_context": "현재 역할의 연봉 맥락 (신입~시니어 범위, 고연봉 스택 언급)", + "user_market_position": "유저의 현재 스택이 시장에서 차지하는 위치 (2-3문장, 강점과 공백 언급)", + "strategic_direction": "시장 흐름을 고려한 나아갈 방향 전략 (3-4문장)", + "priority_skills": [ + { + "skill": "기술명", + "urgency": "urgent|important|nice-to-have", + "market_demand": "높음|중간|낮음", + "reason": "유저 수준 + 시장 수요를 결합한 우선순위 근거" + } + ] +}""" + + +def _build_market_brief_system(framework: str, devtype: str) -> str: + devtype_ko = _to_devtype_ko(devtype) + return ( + f"당신은 30년 경력의 시니어 {framework} {devtype_ko} 개발자이자 아키텍트 그리고 전문 커리어 어드바이저이다.\n" + "유저의 현재 기술 수준 평가 데이터와 한국 시장 데이터를 분석하여\n" + "설명 탭에 보여줄 시장 흐름 분석 + 개인 맞춤 방향을 제시한다.\n\n" + "반드시 아래 JSON 스키마 형식으로만 응답하라. 마크다운 코드블록 없이 순수 JSON만 출력한다.\n\n" + + _MARKET_BRIEF_SCHEMA + ) + + +def _build_market_brief_prompt( + filter_result_dict: dict[str, Any], + market_ctx: dict[str, Any], + primary_role: str, + project: dict[str, Any] | None = None, # [FIX #1] evidence 주입용 + devtype: str = "", # [FIX #4] 직군 한정용 +) -> str: + role_data = filter_result_dict.get("per_role", {}).get(primary_role, {}) + + covered_nodes = _role_nodes(role_data, "covered") # [FIX #6] + partial_nodes = _role_nodes(role_data, "partial") + uncovered_nodes = _role_nodes(role_data, "uncovered") + + # [FIX #3] strong_areas에 subtopic 포함 → 실제 구현 역량(SSE/Redis 등)이 전달되게 + strong_areas = [n["label"] for n in covered_nodes] + gap_areas = [ + {"area": n["label"], "tier": n.get("tier", "support")} + for n in (uncovered_nodes + partial_nodes) + if n.get("type") == "topic" + ] + + user_summary = { + "role": primary_role, + "coverage_level": role_data.get("coverage_level") or role_data.get("level"), # [FIX #6] + "coverage_pct": role_data.get("coverage_pct"), + "strong_areas": strong_areas, + "gap_areas": gap_areas[:10], + } + + # [FIX #1] 프로젝트에서 실제 구현한 핵심 기술/경험을 evidence로 추가 + evidence_block = "" + if project: + pc = _extract_project_core(project) + evidence = { + "service_description": pc["service_description"], + "user_role": pc["user_role"], + "skills": _flatten_skills(pc["skills"]), + "frameworks": [f.get("name") if isinstance(f, dict) else str(f) for f in (pc["frameworks"] or [])], + "implemented_features": [f["title"] for f in pc["core_feat"]], + "implemented_perf": [ + {"title": p["title"], "description": p["description"]} + for p in pc["core_perf"] + ], + "contribute_percent": pc["contribute_percent"], + } + evidence_block = ( + "\n\n## 유저가 이미 구현한 핵심 기술 (강점 근거)\n" + + json.dumps(evidence, ensure_ascii=False, indent=2) + ) + + devtype_ko = _to_devtype_ko(devtype) or primary_role + + return ( + "## 유저 현재 평가 결과\n" + + json.dumps(user_summary, ensure_ascii=False, indent=2) + + evidence_block + + "\n\n## 한국 시장 데이터 (2026년 기준)\n" + + json.dumps(market_ctx, ensure_ascii=False, indent=2) + + "\n\n## 작성 지침\n" + # [FIX #4] 직군 한정 + + f"- 분석 대상 직군은 '{devtype_ko}'입니다. trending_stacks·declining_stacks·" + + "priority_skills는 모두 이 직군 범위의 기술로만 한정하세요. " + + "타 직군 전용 기술(예: 백엔드 분석에 jQuery/Angular 같은 프론트엔드 스택)을 포함하지 마세요.\n" + # [FIX #1] 증거 우선 + 기초 권유 방지 + + "- '유저가 이미 구현한 핵심 기술'에 나타난 역량은 강점으로 인정하고, " + + "이를 '기초부터 배우라'고 권하지 마세요. priority_skills는 유저가 아직 약한 " + + "영역(gap_areas) 중심으로, 현재 강점 위에 쌓을 수 있는 다음 단계를 제시하세요.\n" + + "- coverage_pct/coverage_level은 '로드맵 횡단 폭' 지표일 뿐 구현 깊이가 아닙니다. " + + "구현 깊이는 위 evidence로 판단하세요.\n" + + "- kr_demand_pct 등 수치는 위 '한국 시장 데이터'에 근거가 있을 때만 제시하고, " + + "근거가 없으면 추정임을 reason에 명시하세요.\n" + + "\n위 데이터를 바탕으로 시장 흐름 분석과 개인 맞춤 방향을 JSON으로 제시하세요." + ) + + +def generate_market_brief( + filter_result_dict: dict[str, Any], + primary_roles: list[str], + market_ctx: dict[str, Any], + framework: str = "", + devtype: str = "", + project: dict[str, Any] | None = None, # [FIX #1] 호출부에서 프로젝트 dict 전달 +) -> dict[str, Any]: + """rule_filter 데이터 + 시장 데이터 → 설명 탭용 시장 흐름 + 개인 방향 생성. + + [FIX #1] project를 함께 받아 실제 구현 역량(evidence)을 프롬프트에 주입한다. + 호출부에서 project(=분석 대상 프로젝트 dict)를 넘기도록 업데이트할 것. + """ + primary_role = primary_roles[0] if primary_roles else "backend" + system_prompt = _build_market_brief_system( + framework or primary_role, + devtype or primary_role, + ) + client = _build_client() + prompt = _build_market_brief_prompt( + filter_result_dict, market_ctx, primary_role, + project=project, devtype=devtype or primary_role, + ) + + response = client.models.generate_content( + model=MARKET_BRIEF_MODEL, # [FIX #7] + contents=prompt, + config=types.GenerateContentConfig( + system_instruction=system_prompt, + max_output_tokens=4096, + temperature=0.4, + ), + ) + + if response.text is None: + candidates = getattr(response, "candidates", []) + reason = getattr(candidates[0], "finish_reason", "UNKNOWN") if candidates else "UNKNOWN" + raise RuntimeError(f"Gemini market_brief 응답 없음. finish_reason={reason}") + + raw = response.text.strip() + try: + return json.loads(raw) + except json.JSONDecodeError: + clean = raw.replace("```json", "").replace("```", "").strip() + return json.loads(clean) + + +def analyze(project: dict[str, Any], filter_result_dict: dict[str, Any]) -> dict[str, Any]: + client = _build_client() + user_prompt = _build_user_prompt(project, filter_result_dict) + + response = client.models.generate_content( + model=MODEL, + contents=user_prompt, + config=types.GenerateContentConfig( + system_instruction=SYSTEM_PROMPT, + max_output_tokens=8192, + temperature=0.3, + ), + ) + + # response.text가 None이면 finish_reason 출력 후 원인 안내 + if response.text is None: + candidates = getattr(response, "candidates", []) + if candidates: + reason = getattr(candidates[0], "finish_reason", "UNKNOWN") + raise RuntimeError( + f"Gemini 응답이 비어있습니다. finish_reason={reason}\n" + "safety filter 차단이거나 max_output_tokens 초과일 수 있습니다." + ) + raise RuntimeError("Gemini 응답이 비어있습니다 (candidates 없음).") + + raw = response.text.strip() + try: + return json.loads(raw) + except json.JSONDecodeError: + clean = raw.replace("```json", "").replace("```", "").strip() + return json.loads(clean) \ No newline at end of file diff --git a/app/services/roadmap/market_loader.py b/app/services/roadmap/market_loader.py new file mode 100644 index 0000000..dd06a54 --- /dev/null +++ b/app/services/roadmap/market_loader.py @@ -0,0 +1,224 @@ +""" +market_loader.py — DATASET/webdataset에서 role별 시장 데이터를 추출·압축 + +LLM 프롬프트에 포함하기 위해 필요한 핵심 수치만 추출한다. +전체 JSON을 그대로 넘기면 토큰 낭비이므로 role에 맞는 데이터만 선별한다. +""" +from __future__ import annotations + +import json +from functools import lru_cache +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[3] +WEB_DS_DIR = ROOT / "DATASET" / "webdataset" + + +def _load(filename: str) -> dict: + path = WEB_DS_DIR / filename + with open(path, encoding="utf-8") as f: + return json.load(f) + + +# role → 상세 스택 파일 +_ROLE_DETAIL_FILE: dict[str, str] = { + "backend": "02_backend_stacks.json", + "frontend": "03_frontend_stacks.json", + "devops": "04_devops_cloud_stacks.json", + "machine-learning": "05_ai_ml_data_stacks.json", + "ai-engineer": "05_ai_ml_data_stacks.json", + "data-engineer": "05_ai_ml_data_stacks.json", + "android": "06_mobile_stacks.json", + "ios": "06_mobile_stacks.json", + "cyber-security": "07_security_game_stacks.json", +} + + +def _condense_role_detail(role: str, data: dict) -> dict: + """role별 상세 파일에서 핵심 수치만 추출.""" + out: dict[str, Any] = {} + + if role == "backend": + out["top_languages"] = data.get("languages", [])[:5] + out["top_frameworks"] = data.get("frameworks", [])[:5] + out["top_databases"] = data.get("databases", [])[:5] + out["infrastructure"] = data.get("infrastructure", [])[:5] + out["must_have"] = data.get("common_requirements", {}).get("must", []) + out["nice_to_have"] = data.get("common_requirements", {}).get("preferred", []) + out["salary"] = data.get("salary_by_stack_万KRW", {}) + + elif role == "frontend": + out["top_frameworks"] = data.get("frameworks_libraries", [])[:5] + out["state_mgmt"] = data.get("state_management", [])[:4] + out["build_tools"] = data.get("build_tools", [])[:3] + out["must_have"] = data.get("common_requirements", {}).get("must", []) + out["nice_to_have"] = data.get("common_requirements", {}).get("preferred", []) + out["salary"] = data.get("salary_by_level_万KRW", {}) + + elif role == "devops": + out["top_cloud"] = data.get("cloud_platforms", [])[:3] + out["container"] = data.get("container_orchestration", [])[:4] + out["cicd"] = data.get("cicd_tools", [])[:4] + out["iac"] = data.get("iac_config_management", [])[:3] + out["monitoring"] = data.get("monitoring_observability", [])[:3] + out["must_have"] = data.get("common_requirements", {}).get("must", []) + out["salary"] = data.get("salary_by_level_万KRW", {}) + + elif role in ("machine-learning", "ai-engineer", "data-engineer"): + sub = data.get("sub_roles", {}) + role_key_map = { + "machine-learning": "ML_엔지니어", + "ai-engineer": "AI_엔지니어", + "data-engineer": "데이터_엔지니어", + } + key = role_key_map.get(role, "") + if key and key in sub: + out["sub_role_stacks"] = sub[key] + out["ml_frameworks"] = data.get("ml_frameworks", [])[:5] + out["llm_stacks"] = data.get("llm_genai_stacks", [])[:5] + out["pipeline_tools"] = data.get("data_pipeline_tools", [])[:4] + out["salary"] = data.get("salary_by_role_万KRW", {}) + + elif role in ("android", "ios"): + platform = data.get(role, data.get("android" if role == "android" else "ios", {})) + out["primary_language"] = platform.get("primary_language") + out["key_frameworks"] = platform.get("key_frameworks", [])[:5] + out["architecture"] = platform.get("architecture", []) + out["must_have"] = platform.get("common_requirements", {}).get("must", []) + out["salary"] = data.get("salary_by_level_万KRW", {}) + + return out + + +def _get_real_postings_summary(roles: list[str], realdata: dict) -> dict: + """12_stack_frequency_realdata에서 role별 실제 공고 스택 요약 추출.""" + by_role = realdata.get("by_role_category", {}) + result: dict[str, Any] = {} + + role_key_map = { + "backend": "백엔드", + "frontend": "프론트엔드", + "devops": "DevOps", + "machine-learning": "AI_ML", + "ai-engineer": "AI_LLM", + "data-engineer": "데이터엔지니어", + "android": "모바일_Android", + "ios": "모바일_iOS", + } + + for role in roles: + key = role_key_map.get(role) + if key and key in by_role: + entry = by_role[key] + result[role] = { + "sample_size": entry.get("sample_size"), + "top_stacks": entry.get("top_stacks", []), + "notable": entry.get("notable"), + } + + return result + + +def _get_gap_analysis(roles: list[str], deep: dict) -> list[dict]: + """13_deep_analysis_v2_realdata에서 gap 분석 + 기업유형별 패턴 추출.""" + gaps = deep.get("gap_analysis_from_real_data", {}).get("gaps", []) + action = deep.get("action_plan_updated", {}) + result = [] + + role_key_map = { + "backend": "백엔드", + "frontend": "프론트엔드", + "machine-learning": "AI_ML", + "ai-engineer": "AI_ML", + "data-engineer": "데이터엔지니어", + "devops": "DevOps", + } + + for role in roles: + key = role_key_map.get(role) + if key and key in action: + result.append({ + "role": role, + "must_have": action[key].get("core", []), + "growing": action[key].get("plus", []), + }) + + return result + + +@lru_cache(maxsize=8) +def load_market_context(primary_roles_tuple: tuple[str, ...]) -> dict[str, Any]: + """ + primary_roles 기반으로 관련 DATASET 데이터를 로드·압축하여 반환. + lru_cache를 위해 list 대신 tuple로 받는다. + """ + roles = list(primary_roles_tuple) + ctx: dict[str, Any] = {} + + # ── 공통: 시장 개요 ────────────────────────────────────────────── + overview = _load("01_market_overview.json") + ctx["market_overview"] = { + "top_demanded_roles": overview.get("top_demanded_roles", [])[:6], + "hiring_quality_shift": overview.get("hiring_quality_shift", {}), + "ai_related_growth": overview.get("ai_related_demand_growth", {}), + "salary_overview": overview.get("salary_overview", {}), + } + + # ── role 상세 스택 ──────────────────────────────────────────────── + ctx["role_details"] = {} + for role in roles: + fname = _ROLE_DETAIL_FILE.get(role) + if fname: + raw = _load(fname) + ctx["role_details"][role] = _condense_role_detail(role, raw) + + # ── 실제 공고 기반 스택 빈도 ────────────────────────────────────── + try: + realdata = _load("12_stack_frequency_realdata.json") + ctx["real_postings_top_stacks"] = { + k: v for k, v in realdata.get("total_stack_frequency", {}).items() + if v.get("pct", 0) >= 15 # 15% 이상만 + } + ctx["real_postings_by_role"] = _get_real_postings_summary(roles, realdata) + ctx["key_findings"] = realdata.get("key_findings_from_real_data", []) + except Exception: + pass + + # ── 갭 분석 + 액션 플랜 ────────────────────────────────────────── + try: + deep = _load("13_deep_analysis_v2_realdata.json") + ctx["gap_analysis"] = _get_gap_analysis(roles, deep) + ctx["company_patterns"] = deep.get("company_size_stack_pattern", {}) + ctx["emerging_stacks"] = deep.get("emerging_stacks_confirmed", {}).get("items", []) + except Exception: + pass + + # ── 빅테크 기업 스택 ────────────────────────────────────────────── + try: + bigtech = _load("15_bigtech_company_stacks.json") + ctx["bigtech_common"] = bigtech.get("common_stack_patterns", {}) + ctx["bigtech_insights"] = bigtech.get("key_insights", [])[:5] + except Exception: + pass + + # ── 연봉 데이터 (role별) ────────────────────────────────────────── + try: + salary = _load("10_salary_comprehensive.json") + ctx["salary_by_role"] = salary.get("by_role", {}) + ctx["salary_insights"] = salary.get("insights", [])[:4] + except Exception: + pass + + # ── 글로벌 트렌드 (한국 관련성 주석 포함) ───────────────────────── + try: + so = _load("16_stackoverflow_survey_2025.json") + ctx["global_trends"] = { + "notable": so.get("notable_global_trends", {}), + "top_languages": so.get("programming_languages", [])[:6], + "top_frameworks": so.get("web_frameworks", [])[:5], + } + except Exception: + pass + + return ctx diff --git a/app/services/roadmap/market_tier.py b/app/services/roadmap/market_tier.py new file mode 100644 index 0000000..db8b6e5 --- /dev/null +++ b/app/services/roadmap/market_tier.py @@ -0,0 +1,363 @@ +""" +market_tier.py — DATASET 기반 국내 시장 기술 티어 분류 + +5개 티어 (우선순위 높은 순): + 필수 — 국내 채용공고 필수 요구 기술 (높은 빈도 + 안정적 수요) [다이어그램 강조] + 급부상 — 빠르게 성장 중인 기술 (높은 수요 증가율) [다이어그램 강조] + 주류 — 검증된 표준 기술 (안정적 수요, 보편화) + 성장 — 신흥 확인 기술 (낮은 빈도이나 증가세) + 중간 — 그 외 (틈새·하락·미분류) + +우선순위: 필수 > 급부상 > 주류 > 성장 > 중간 +""" +from __future__ import annotations +import json +import re +from functools import lru_cache +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[3] +DATASET_DIR = ROOT / "DATASET" + +ESSENTIAL = "필수" +RISING = "급부상" +MAINSTREAM = "주류" +GROWING = "성장" +MODERATE = "중간" + +HIGHLIGHT_TIERS = {ESSENTIAL, RISING} + +# ── topic-level 노드 수동 매핑 (데이터셋에 직접 등장하지 않는 개념형 토픽) ── +_TOPIC_TIER: dict[str, str] = { + # ── 공통 ── + "Internet": ESSENTIAL, + "Version Control Systems": ESSENTIAL, + "Repo Hosting Services": ESSENTIAL, + "VCS Hosting": ESSENTIAL, + + # ── kr_roadmap.csv: 백엔드 ── + "Git / 협업": ESSENTIAL, + "프로그래밍 언어": ESSENTIAL, + "HTTP / 웹 기초": ESSENTIAL, + "웹 프레임워크": ESSENTIAL, + "관계형 데이터베이스": ESSENTIAL, + "인증 / 보안": ESSENTIAL, + "API 설계": ESSENTIAL, + "테스트": MAINSTREAM, + "컨테이너 / 배포": ESSENTIAL, + "클라우드 기초": ESSENTIAL, + "NoSQL / 캐싱": MAINSTREAM, + "메시지 브로커": MAINSTREAM, + "아키텍처 패턴": MAINSTREAM, + "성능 / 스케일링": GROWING, + "AI 연동 (선택)": GROWING, + + # ── kr_roadmap.csv: 프론트엔드 ── + "HTML5 / CSS3 기초": ESSENTIAL, + "JavaScript (ES6+)": ESSENTIAL, + "TypeScript": RISING, + "React": MAINSTREAM, + "Next.js": RISING, + "상태 관리": MAINSTREAM, + "스타일링": MAINSTREAM, + "빌드 도구": MAINSTREAM, + "성능 최적화": GROWING, + "백엔드 연동": MAINSTREAM, + + # ── kr_roadmap.csv: DevOps ── + "Linux / 서버 운영": ESSENTIAL, + "네트워크 기초": ESSENTIAL, + "버전 관리": ESSENTIAL, + "컨테이너화": ESSENTIAL, + "클라우드 - AWS": ESSENTIAL, + "클라우드 - 멀티클라우드": MAINSTREAM, + "컨테이너 오케스트레이션": RISING, + "IaC (인프라 코드화)": RISING, + "CI/CD 파이프라인": MAINSTREAM, + "모니터링 / 관측성": MAINSTREAM, + "보안": MAINSTREAM, + "스크립팅 / 자동화": MAINSTREAM, + "SRE 실무": GROWING, + + # ── kr_roadmap.csv: AI Engineer ── + "Python 심화": ESSENTIAL, + "LLM API 활용": RISING, + "RAG 파이프라인": RISING, + "AI 에이전트": RISING, + "프롬프트 엔지니어링": RISING, + "Fine-tuning": GROWING, + "배포 / 서빙": MAINSTREAM, + "데이터 처리": MAINSTREAM, + + # ── kr_roadmap.csv: Machine Learning ── + "Python + 수학 기초": ESSENTIAL, + "전통 ML": MAINSTREAM, + "딥러닝 - PyTorch": MAINSTREAM, + "딥러닝 응용": GROWING, + "실험 관리": GROWING, + "모델 서빙 / 최적화": MAINSTREAM, + "ML 인프라": GROWING, + + # ── kr_roadmap.csv: Data Engineer ── + "SQL 심화": ESSENTIAL, + "Python 데이터 처리": ESSENTIAL, + "파이프라인 오케스트레이션": MAINSTREAM, + "이벤트 스트리밍": GROWING, + "대규모 처리": GROWING, + "클라우드 데이터 플랫폼": MAINSTREAM, + "데이터 변환 / 품질": MAINSTREAM, + + # ── kr_roadmap.csv: Android ── + "Kotlin 기초": ESSENTIAL, + "Android 기본": ESSENTIAL, + "Jetpack 컴포넌트": MAINSTREAM, + "비동기 / 반응형": MAINSTREAM, + "네트워크 연동": MAINSTREAM, + "배포 / CI/CD": MAINSTREAM, + + # ── kr_roadmap.csv: iOS ── + "Swift 기초": ESSENTIAL, + "UIKit / SwiftUI": MAINSTREAM, + "반응형 / 비동기": MAINSTREAM, + "로컬 데이터": MAINSTREAM, + "테스트 / 배포": MAINSTREAM, + + # ── 백엔드 ── + "Pick a Language": ESSENTIAL, + "Learn about APIs": ESSENTIAL, + "Relational Databases": ESSENTIAL, + "Containerization vs Virtualization": ESSENTIAL, + "Web Security": ESSENTIAL, + "Caching": MAINSTREAM, + "NoSQL Databases": MAINSTREAM, + "Testing": MAINSTREAM, + "CI / CD": MAINSTREAM, + "More about Databases": MAINSTREAM, + "Architectural Patterns": MAINSTREAM, + "Message Brokers": MAINSTREAM, + "Web Servers": MAINSTREAM, + "Design and Development Principles": MAINSTREAM, + "Scaling Databases": GROWING, + "Search Engines": GROWING, + "Real-Time Data": GROWING, + "Building For Scale": GROWING, + + # ── 프론트엔드 ── + "HTML": ESSENTIAL, + "CSS": ESSENTIAL, + "JavaScript": ESSENTIAL, + "Pick a Framework": ESSENTIAL, + "Package Managers": MAINSTREAM, + "Build Tools": MAINSTREAM, + "Linters and Formatters": MAINSTREAM, + "Module Bundlers": MAINSTREAM, + "Authentication Strategies": MAINSTREAM, + "Web Security Basics": MAINSTREAM, + "Type Checkers": RISING, + "SSR": RISING, + "Writing CSS": MODERATE, + "CSS Architecture": MODERATE, + "CSS Preprocessors": MODERATE, + "GraphQL": GROWING, + "Static Site Generators": GROWING, + "PWAs": MODERATE, + "Mobile Apps": MODERATE, + "Desktop Apps": MODERATE, + "Web Components": MODERATE, + + # ── DevOps ── + "Learn a Programming Language": ESSENTIAL, + "Operating System": ESSENTIAL, + "Terminal Knowledge": ESSENTIAL, + "Containers": ESSENTIAL, + "Cloud Providers": ESSENTIAL, + "Networking & Protocols": ESSENTIAL, + "CI / CD Tools": MAINSTREAM, + "What is and how to setup X ?": MAINSTREAM, + "Provisioning": RISING, + "Configuration Management": MAINSTREAM, + "Secret Management": MAINSTREAM, + "Infrastructure Monitoring": MAINSTREAM, + "Logs Management": MAINSTREAM, + "Container Orchestration": RISING, + "Artifact Management": MODERATE, + "GitOps": GROWING, + "Service Mesh": GROWING, + "Cloud Design Patterns": GROWING, + "Application Monitoring": GROWING, + "Serverless": GROWING, +} + +# ── 기술명 → 티어 (subtopic 매칭용, 소문자 정규화 키) ── +# 데이터셋에서 추출한 분류 + 보완 +_TECH_TIER: dict[str, str] = { + # 필수 ───────────────────────────────────────────────────────── + "git": ESSENTIAL, + "github": ESSENTIAL, + "linux": ESSENTIAL, + "bash": ESSENTIAL, + "docker": ESSENTIAL, + "aws": ESSENTIAL, + "python": ESSENTIAL, + "java": ESSENTIAL, + "http": ESSENTIAL, + "https": ESSENTIAL, + "dns": ESSENTIAL, + "rest": ESSENTIAL, + "rest api": ESSENTIAL, + "sql": ESSENTIAL, + "mysql": ESSENTIAL, + "postgresql": ESSENTIAL, + "mariadb": ESSENTIAL, + "jwt": ESSENTIAL, + "oauth": ESSENTIAL, + "oauth2": ESSENTIAL, + "ssl": ESSENTIAL, + "tls": ESSENTIAL, + "cors": ESSENTIAL, + + # 급부상 ─────────────────────────────────────────────────────── + "typescript": RISING, + "next.js": RISING, + "nextjs": RISING, + "fastapi": RISING, + "kubernetes": RISING, + "k8s": RISING, + "terraform": RISING, + "langchain": RISING, + "langgraph": RISING, + "rag": RISING, + "vite": RISING, + "zustand": RISING, + "dbt": RISING, + "tailwind": RISING, + "tailwindcss": RISING, + "tailwind css": RISING, + + # 주류 ───────────────────────────────────────────────────────── + "react": MAINSTREAM, + "spring boot": MAINSTREAM, + "spring": MAINSTREAM, + "node.js": MAINSTREAM, + "nodejs": MAINSTREAM, + "nestjs": MAINSTREAM, + "express": MAINSTREAM, + "javascript": MAINSTREAM, + "redis": MAINSTREAM, + "mongodb": MAINSTREAM, + "elasticsearch": MAINSTREAM, + "nginx": MAINSTREAM, + "jenkins": MAINSTREAM, + "gitlab": MAINSTREAM, + "gcp": MAINSTREAM, + "azure": MAINSTREAM, + "graphql": MAINSTREAM, + "grpc": MAINSTREAM, + "websocket": MAINSTREAM, + "websockets": MAINSTREAM, + "kotlin": MAINSTREAM, + "swift": MAINSTREAM, + "go": MAINSTREAM, + "vue": MAINSTREAM, + "webpack": MAINSTREAM, + "jest": MAINSTREAM, + "junit": MAINSTREAM, + "microservices": MAINSTREAM, + "gradle": MAINSTREAM, + "maven": MAINSTREAM, + "jpa": MAINSTREAM, + "hibernate": MAINSTREAM, + "orm": MAINSTREAM, + "orms": MAINSTREAM, + + # 성장 ───────────────────────────────────────────────────────── + "kafka": GROWING, + "rabbitmq": GROWING, + "airflow": GROWING, + "mlflow": GROWING, + "xgboost": GROWING, + "lightgbm": GROWING, + "pytorch": GROWING, + "tensorflow": GROWING, + "bigquery": GROWING, + "hadoop": GROWING, + "spark": GROWING, + "ansible": GROWING, + "github actions": GROWING, + "event sourcing": GROWING, + "cqrs": GROWING, + "domain driven": GROWING, + "ddd": GROWING, + + # 중간 ───────────────────────────────────────────────────────── + "php": MODERATE, + "ruby": MODERATE, + "rust": MODERATE, + "c#": MODERATE, + "angular": MODERATE, + "svn": MODERATE, + "jquery": MODERATE, + "solidity": MODERATE, + "erlang": MODERATE, + "elixir": MODERATE, + "memcached": MODERATE, + "sqlite": MODERATE, +} + + +def _tokens(s: str) -> frozenset[str]: + return frozenset(re.findall(r"[a-z0-9#+.]+", s.lower())) + + +def _match_tech(label: str) -> str | None: + """라벨을 _TECH_TIER에서 토큰 기반으로 찾는다. 없으면 None.""" + label_l = label.lower().strip() + + # 완전 일치 우선 + if label_l in _TECH_TIER: + return _TECH_TIER[label_l] + + lt = _tokens(label_l) + best: str | None = None + best_len = 0 + + for tech, tier in _TECH_TIER.items(): + tt = _tokens(tech) + if not tt: + continue + if tt <= lt or lt <= tt: + if len(tt) > best_len: + best = tier + best_len = len(tt) + + return best + + +@lru_cache(maxsize=None) +def get_tier(label: str, node_type: str = "subtopic") -> str: + """ + roadmap 노드 라벨 → 시장 티어 반환. + + topic 타입은 _TOPIC_TIER 우선, subtopic은 _TECH_TIER 우선. + """ + if node_type == "topic": + if label in _TOPIC_TIER: + return _TOPIC_TIER[label] + # topic인데 매핑 없으면 기술명으로도 시도 + matched = _match_tech(label) + return matched if matched else MODERATE + + # subtopic + matched = _match_tech(label) + if matched: + return matched + + # subtopic인데 미매핑이면 topic 테이블도 확인 + if label in _TOPIC_TIER: + return _TOPIC_TIER[label] + + return MODERATE + + +def is_highlighted(tier: str) -> bool: + return tier in HIGHLIGHT_TIERS diff --git a/app/services/roadmap/rule_filter.py b/app/services/roadmap/rule_filter.py new file mode 100644 index 0000000..c5f1010 --- /dev/null +++ b/app/services/roadmap/rule_filter.py @@ -0,0 +1,899 @@ +""" +rule_filter.py — 프로젝트 분석 → 로드맵 노드 매칭 (covered / partial / uncovered) + +[입력 스키마] (고정) + service_name, service_description, dev_type, frameworks, skills, + user_role, contribute_percent, period(start/end/days), + analysis_form: { + core_feat: [{feat_title, description}], + core_perf: [{perf_title, description, about_feat_title}], + feedback: [{feedback_title, feedback, about_perf_title}], + contribute: {contribute_titles: [...]}, + } + +[신호 강도] + strong — skills, core_feat, core_perf, contribute.contribute_titles (구현 증거) + weak — feedback (검증 제안일 뿐 구현 증거 아님 → partial 전용) + +[분류] covered = strong 적중 / partial = weak만 적중 / uncovered = 미적중 +[점수] core×2, support×1 / covered=1.0, partial=0.5, uncovered=0.0 + +[v2 변경점] + · 라벨 매칭을 substring → 토큰 집합 기반으로 교체 (java↔javascript, go↔mongodb 오탐 제거) + · parent_topic은 '명시값 + curated 사전'만 사용 (위치 추론 폴백 제거: Java→Internet 오귀속 방지) + · frontend/devops tier 테이블을 CSV 라벨과 동기화 + · 로드맵 순서 준수 점검(analyze_sequence) 추가 → per_role.sequence + +[v3 변경점] + · 한국 채용시장 기반 kr_roadmap.csv 지원 추가 (source='kr-market-2026') + · KR_TOPIC_TIERS: 8개 직군 (backend/frontend/devops/android/ios/ai-engineer/machine-learning/data-engineer) + · KR_SKILL_SYNONYMS: 한국 로드맵 라벨 기반 스킬 매핑 + · android/ios/data-engineer 신규 직군 지원 +""" +from __future__ import annotations +import csv +import re +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any + + +# ══════════════════════════════════════════════════════════════════════════════ +# 1. 설정 +# ══════════════════════════════════════════════════════════════════════════════ + +FRAMEWORK_TO_ROLES: dict[str, list[str]] = { + "spring_boot": ["backend"], "django": ["backend"], "fastapi": ["backend"], + "flask": ["backend"], "express": ["backend"], "nestjs": ["backend"], + "laravel": ["backend"], "rails": ["backend"], + "react": ["frontend"], "vue": ["frontend"], "angular": ["frontend"], + "nextjs": ["frontend"], "next": ["frontend"], + "flutter": ["mobile"], "react_native": ["mobile"], + "ios": ["ios"], "swift": ["ios"], "swiftui": ["ios"], + "android": ["android"], "kotlin": ["android"], +} + +SKILL_TO_ROLES: dict[str, list[str]] = { + "langchain": ["ai-engineer"], "langchain4j": ["ai-engineer"], + "langgraph": ["ai-engineer"], "crewai": ["ai-engineer"], + "tensorflow": ["machine-learning"], "pytorch": ["machine-learning"], + "scikit": ["machine-learning"], "mlflow": ["machine-learning"], + "docker": ["devops"], "kubernetes": ["devops"], "terraform": ["devops"], + "airflow": ["data-engineer"], "spark": ["data-engineer"], + "kafka": ["data-engineer"], "dbt": ["data-engineer"], +} + +VALID_PRIMARY_ROLES = {"backend", "frontend", "mobile", "android", "ios", "data-engineer"} + +# Role별 topic tier (정의 안 된 topic은 기본 support). CSV 라벨과 1:1로 동기화됨. +TOPIC_TIERS: dict[str, dict[str, str]] = { + "backend": { + "Internet": "core", "Pick a Language": "core", "Learn about APIs": "core", + "Relational Databases": "core", "NoSQL Databases": "support", + "More about Databases": "core", "Scaling Databases": "support", + "Caching": "core", "Web Security": "core", "Testing": "core", + "CI / CD": "support", "Architectural Patterns": "core", + "Message Brokers": "support", "Containerization vs Virtualization": "core", + "Web Servers": "support", "Version Control Systems": "support", + "Repo Hosting Services": "support", "Design and Development Principles": "core", + "Search Engines": "support", "Real-Time Data": "support", + "Building For Scale": "core", + }, + "frontend": { + "Internet": "core", "HTML": "core", "CSS": "core", "JavaScript": "core", + "VCS Hosting": "support", "Version Control Systems": "support", + "Package Managers": "support", "Pick a Framework": "core", + "Writing CSS": "support", "CSS Architecture": "support", + "CSS Preprocessors": "support", "Build Tools": "support", + "Linters and Formatters": "support", "Module Bundlers": "support", + "Testing": "core", "Authentication Strategies": "core", + "Web Security Basics": "core", "Web Components": "support", + "Type Checkers": "support", "SSR": "support", "GraphQL": "support", + "Static Site Generators": "support", "PWAs": "support", + "Mobile Apps": "support", "Desktop Apps": "support", + }, + "devops": { + "Learn a Programming Language": "core", "Operating System": "core", + "Terminal Knowledge": "core", "Version Control Systems": "core", + "VCS Hosting": "support", "What is and how to setup X ?": "support", + "Containers": "core", "Cloud Providers": "core", + "Networking & Protocols": "core", "Serverless": "support", + "Provisioning": "support", "Configuration Management": "support", + "CI / CD Tools": "core", "Secret Management": "support", + "Infrastructure Monitoring": "support", "Logs Management": "support", + "Container Orchestration": "support", "Artifact Management": "support", + "GitOps": "support", "Service Mesh": "support", + "Cloud Design Patterns": "support", "Application Monitoring": "support", + }, +} + +# ── 한국 채용시장 기반 로드맵 tier 정의 (kr-market-2026 소스) ────────────────── +KR_TOPIC_TIERS: dict[str, dict[str, str]] = { + "backend": { + "프로그래밍 언어": "core", "HTTP / 웹 기초": "core", "웹 프레임워크": "core", + "관계형 데이터베이스": "core", "인증 / 보안": "core", "API 설계": "core", + "테스트": "core", "컨테이너 / 배포": "core", "아키텍처 패턴": "core", + "성능 / 스케일링": "core", + "Git / 협업": "support", "NoSQL / 캐싱": "support", "클라우드 기초": "support", + "메시지 브로커": "support", "AI 연동 (선택)": "support", + }, + "frontend": { + "HTML5 / CSS3 기초": "core", "JavaScript (ES6+)": "core", "TypeScript": "core", + "React": "core", "상태 관리": "core", "Next.js": "core", + "테스트": "core", "성능 최적화": "core", + "Git / 협업": "support", "스타일링": "support", "빌드 도구": "support", + "백엔드 연동": "support", + }, + "devops": { + "Linux / 서버 운영": "core", "네트워크 기초": "core", "컨테이너화": "core", + "클라우드 - AWS": "core", "컨테이너 오케스트레이션": "core", + "IaC (인프라 코드화)": "core", "CI/CD 파이프라인": "core", + "스크립팅 / 자동화": "core", + "버전 관리": "support", "클라우드 - 멀티클라우드": "support", + "모니터링 / 관측성": "support", "보안": "support", "SRE 실무": "support", + }, + "android": { + "Kotlin 기초": "core", "Android 기본": "core", "Jetpack 컴포넌트": "core", + "비동기 / 반응형": "core", "아키텍처 패턴": "core", "네트워크 연동": "core", + "배포 / CI/CD": "support", + }, + "ios": { + "Swift 기초": "core", "UIKit / SwiftUI": "core", "반응형 / 비동기": "core", + "아키텍처 패턴": "core", "네트워크 연동": "core", + "로컬 데이터": "support", "테스트 / 배포": "support", + }, + "ai-engineer": { + "Python 심화": "core", "LLM API 활용": "core", "RAG 파이프라인": "core", + "AI 에이전트": "core", "프롬프트 엔지니어링": "core", "배포 / 서빙": "core", + "Fine-tuning": "support", "데이터 처리": "support", + }, + "machine-learning": { + "Python + 수학 기초": "core", "전통 ML": "core", "딥러닝 - PyTorch": "core", + "실험 관리": "core", "모델 서빙 / 최적화": "core", + "딥러닝 응용": "support", "ML 인프라": "support", + }, + "data-engineer": { + "SQL 심화": "core", "Python 데이터 처리": "core", + "파이프라인 오케스트레이션": "core", "클라우드 데이터 플랫폼": "core", + "이벤트 스트리밍": "support", "대규모 처리": "support", + "데이터 변환 / 품질": "support", "컨테이너 / 인프라": "support", + }, +} + +# 한국 로드맵 스킬 매핑: skill 소문자 키 → 한국 로드맵 라벨 토큰 +KR_SKILL_SYNONYMS: dict[str, list[str]] = { + # 언어 + "java": ["java"], "python": ["python"], "kotlin": ["kotlin"], + "typescript": ["typescript"], "javascript": ["javascript"], + "go": ["go"], "swift": ["swift"], "rust": ["rust"], "scala": ["scala"], + # 프론트엔드 + "react": ["react"], "react.js": ["react"], + "next.js": ["next"], "nextjs": ["next"], "next": ["next"], + "vue": ["vue"], "vue.js": ["vue"], + "html": ["html5"], "html5": ["html5"], + "css": ["css3"], "css3": ["css3"], + "flexbox": ["css3", "flexbox"], "grid": ["css3", "grid"], + "zustand": ["zustand"], + "react query": ["react", "query"], "tanstack": ["react", "query"], + "redux": ["redux"], "recoil": ["recoil"], + "vite": ["vite"], + "tailwind": ["tailwind"], "tailwind css": ["tailwind"], + "styled-components": ["styled", "components"], + "storybook": ["storybook"], + "jest": ["jest"], "cypress": ["cypress"], "playwright": ["playwright"], + "react testing library": ["react", "testing"], + "web vitals": ["web", "vitals"], + # 백엔드 프레임워크 + "spring boot": ["spring boot"], "spring": ["spring boot"], + "nestjs": ["nestjs"], "fastapi": ["fastapi"], + "express": ["express"], "django": ["django"], + # DB + "mysql": ["mysql", "mariadb"], "mariadb": ["mysql", "mariadb"], + "postgresql": ["postgresql"], "redis": ["redis"], + "mongodb": ["mongodb"], "elasticsearch": ["elasticsearch"], + "oracle": ["oracle"], + # ORM + "jpa": ["jpa", "prisma", "sqlalchemy"], "hibernate": ["jpa"], + "prisma": ["jpa", "prisma", "sqlalchemy"], + "sqlalchemy": ["jpa", "prisma", "sqlalchemy"], + # 인증 + "jwt": ["jwt"], "oauth2": ["oauth2"], "oauth": ["oauth2"], + "spring security": ["spring security"], + # 컨테이너 + "docker": ["docker"], "kubernetes": ["kubernetes"], "k8s": ["kubernetes"], + "helm": ["helm"], "argocd": ["argocd"], + # 클라우드 + "aws": ["aws"], "gcp": ["gcp"], "azure": ["azure"], + "ncp": ["ncp"], "lambda": ["lambda"], + "terraform": ["terraform"], "ansible": ["ansible"], + # CI/CD + "github actions": ["github actions"], "jenkins": ["jenkins"], + "gitlab": ["gitlab"], "gitops": ["argocd"], + # AI/LLM + "langchain": ["langchain"], "langgraph": ["langgraph"], + "crewai": ["crewai"], "openai": ["openai"], + "anthropic": ["claude"], "claude": ["claude"], + "hugging face": ["hugging face"], "rag": ["rag"], + "vector db": ["vector db"], "pinecone": ["pinecone"], + "weaviate": ["weaviate"], "chroma": ["chroma"], + # ML + "pytorch": ["pytorch"], "tensorflow": ["tensorflow"], + "keras": ["keras"], "scikit-learn": ["scikit-learn"], + "scikit": ["scikit-learn"], "xgboost": ["xgboost"], + "lightgbm": ["lightgbm"], "mlflow": ["mlflow"], + "onnx": ["onnx"], "triton": ["triton"], + # 데이터 엔지니어링 + "airflow": ["airflow"], "kafka": ["kafka"], + "spark": ["spark"], "flink": ["flink"], + "bigquery": ["bigquery"], "redshift": ["redshift"], + "dbt": ["dbt"], "databricks": ["databricks"], + # 모바일 Android + "jetpack compose": ["jetpack compose"], "compose": ["jetpack compose"], + "hilt": ["hilt"], "room": ["room"], + "coroutines": ["coroutines"], "flow": ["flow"], + "retrofit": ["retrofit"], "ktor": ["ktor"], + "mvvm": ["mvvm"], "mvc": ["mvc"], "mvi": ["mvi"], + "clean architecture": ["clean", "architecture"], + "repository": ["repository"], "viewmodel": ["viewmodel"], + "livedata": ["livedata"], "stateflow": ["stateflow"], + "navigation": ["navigation"], "workmanager": ["workmanager"], + "activity": ["activity"], "fragment": ["fragment"], + "recyclerview": ["recyclerview"], + "firebase": ["firebase"], "google play": ["google", "play"], + # 모바일 iOS + "swiftui": ["swiftui"], "uikit": ["uikit"], + "combine": ["combine"], "rxswift": ["rxswift"], + "alamofire": ["alamofire"], + "coordinator": ["coordinator"], + "core data": ["core", "data"], "keychain": ["keychain"], + "xctest": ["xctest"], "testflight": ["testflight"], + "async/await": ["async", "await"], + # 공통 + "git": ["git"], "github": ["github"], "gitlab ci": ["gitlab"], + "rest": ["rest"], "restful": ["restful"], "graphql": ["graphql"], + "grpc": ["grpc"], "nginx": ["nginx"], + "rabbitmq": ["rabbitmq"], +} + +# 한국 로드맵 키워드 → 라벨 추론 +KR_TEXT_KEYWORD_INFERENCES: dict[str, list[str]] = { + "트랜잭션": ["트랜잭션", "acid"], "transaction": ["트랜잭션", "acid"], + "인덱스": ["인덱스"], "index": ["인덱스"], + "캐시": ["캐싱"], "cache": ["캐싱"], "redis": ["redis"], + "비동기": ["비동기"], "async": ["비동기"], + "마이크로서비스": ["마이크로서비스"], "microservice": ["마이크로서비스"], + "이벤트 드리븐": ["이벤트 드리븐"], "event driven": ["이벤트 드리븐"], + "단위 테스트": ["단위 테스트"], "unit test": ["단위 테스트"], + "통합 테스트": ["통합 테스트"], "integration test": ["통합 테스트"], + "jwt": ["jwt"], "oauth": ["oauth2"], + "docker": ["docker"], "kubernetes": ["kubernetes"], + "terraform": ["terraform"], "airflow": ["airflow"], + "rag": ["rag"], "langchain": ["langchain"], + "pagination": ["인덱스"], "페이지네이션": ["인덱스"], + "샤딩": ["db 샤딩"], "sharding": ["db 샤딩"], + "복제": ["db 샤딩"], "replicat": ["db 샤딩"], + "웹소켓": ["websocket"], "websocket": ["websocket"], + "ddd": ["ddd"], "도메인 주도": ["ddd"], + "cqrs": ["cqrs"], "event sourcing": ["cqrs"], +} + +# 빈 parent_topic 보정 사전 (위치 추론 대신 명시적으로). 필요 시 확장. +CURATED_PARENTS: dict[str, dict[str, str]] = { + "backend": { + "Rust": "Pick a Language", "PHP": "Pick a Language", "Go": "Pick a Language", + "JavaScript": "Pick a Language", "Java": "Pick a Language", + "Python": "Pick a Language", "C#": "Pick a Language", "Ruby": "Pick a Language", + "GitHub": "Repo Hosting Services", + "Authentication": "Web Security", "Basic Authentication": "Web Security", + "Token Authentication": "Web Security", "JWT": "Web Security", + "OAuth": "Web Security", "OpenID": "Web Security", "Cookie Based Auth": "Web Security", + "SAML": "Web Security", + }, +} + +# skill 문자열 → 로드맵 라벨(소문자). 매핑 값은 실제 노드 라벨이어야 토큰 매칭됨. +SKILL_SYNONYMS: dict[str, list[str]] = { + "java": ["java"], "python": ["python"], "javascript": ["javascript"], + "typescript": ["typescript"], "go": ["go"], "rust": ["rust"], + "ruby": ["ruby"], "php": ["php"], "c#": ["c#"], + "spring boot": ["java", "rest"], + "spring security": ["authentication", "web security", "jwt"], + "spring data jpa": ["orms", "relational databases"], + "langchain4j": [], "langchain": [], + "mariadb": ["mariadb", "relational databases"], + "mysql": ["mysql", "relational databases"], + "postgresql": ["postgresql", "relational databases"], + "oracle": ["oracle", "relational databases"], + "mongodb": ["mongodb", "nosql databases"], + "redis": ["redis", "server side", "caching"], + "sqlite": ["sqlite"], + "jpa/hibernate": ["orms"], "hibernate": ["orms"], + "querydsl": ["orms"], + "caffeine cache": ["server side", "caching"], "caffeine": ["server side", "caching"], + "memcached": ["memcached", "caching"], + "jwt": ["jwt", "token authentication", "authentication"], + "oauth": ["oauth", "authentication"], "oauth2": ["oauth", "authentication"], + "docker": ["containerization vs virtualization"], + "kubernetes": ["containerization vs virtualization", "container orchestration"], + "git": ["git"], "github": ["github"], "gitlab": ["gitlab"], + "rest": ["rest"], "restful": ["rest"], "graphql": ["graphql"], + "grpc": ["grpc"], "soap": ["soap"], "websocket": ["websockets"], + "kafka": ["kafka"], "rabbitmq": ["rabbitmq"], "nginx": ["nginx"], +} + +# 구현 텍스트 키워드 → 로드맵 라벨(소문자). +TEXT_KEYWORD_INFERENCES: dict[str, list[str]] = { + "transaction": ["transactions", "acid"], "트랜잭션": ["transactions", "acid"], + "pessimistic": ["transactions"], "optimistic lock": ["transactions"], + "cache": ["caching", "server side"], "캐시": ["caching", "server side"], + "pagination": ["n+1 problem"], "페이지네이션": ["n+1 problem"], + "n+1": ["n+1 problem"], + "rate limit": ["throttling"], "throttl": ["throttling"], "레이트": ["throttling"], + "circuit breaker": ["circuit breaker"], + "backoff": ["graceful degradation"], "백오프": ["graceful degradation"], + "retry": ["graceful degradation"], "재시도": ["graceful degradation"], + "monitoring": ["monitoring", "observability"], + "telemetry": ["telemetry", "observability"], + "scheduler": ["ci / cd"], "cron": ["ci / cd"], "스케줄러": ["ci / cd"], + "migration": ["migrations"], "마이그레이션": ["migrations"], + "index": ["database indexes"], "인덱스": ["database indexes"], + "shard": ["sharding strategies"], "샤딩": ["sharding strategies"], + "replicat": ["data replication"], "복제": ["data replication"], + "websocket": ["websockets"], "웹소켓": ["websockets"], + "unit test": ["unit testing", "testing"], "단위 테스트": ["unit testing", "testing"], + "integration test": ["integration testing", "testing"], + "통합 테스트": ["integration testing", "testing"], + "cors": ["cors"], "ssl": ["ssl/tls"], "https": ["https"], + "microservice": ["microservices"], "마이크로서비스": ["microservices"], + "twelve factor": ["twelve factor apps"], + "event sourcing": ["event sourcing"], "cqrs": ["cqrs"], + "domain driven": ["domain driven design"], "ddd": ["domain driven design"], + "design pattern": ["gof design patterns"], "디자인 패턴": ["gof design patterns"], + "semaphore": ["building for scale"], "세마포어": ["building for scale"], + "virtual thread": ["building for scale"], "가상 스레드": ["building for scale"], + "async": ["building for scale"], "비동기": ["building for scale"], + "동시성": ["building for scale"], "concurren": ["building for scale"], + "rest": ["rest"], "http": ["internet", "what is http?"], + "dns": ["dns and how it works?"], + "sse": ["server sent events", "real-time data"], + "server sent": ["server sent events", "real-time data"], + "server-sent": ["server sent events", "real-time data"], + "실시간 알림": ["server sent events", "real-time data"], + "heartbeat": ["server sent events", "real-time data"], + "하트비트": ["server sent events", "real-time data"], + "message broker": ["message brokers", "rabbitmq"], + "메시지 브로커": ["message brokers"], + "pub/sub": ["message brokers"], "pubsub": ["message brokers"], +} + +_LEVEL_THRESHOLDS = [ + (0.75, "시니어 진입 단계"), + (0.55, "중급 (실무 가능) 단계"), + (0.35, "초중급 단계"), + (0.0, "입문 단계"), +] + +_STATUS_SCORE = {"covered": 1.0, "partial": 0.5, "uncovered": 0.0} +_TIER_WEIGHT = {"core": 2, "support": 1} + + +# ══════════════════════════════════════════════════════════════════════════════ +# 2. 데이터 모델 +# ══════════════════════════════════════════════════════════════════════════════ + +@dataclass +class RoadmapNode: + node_id: str + topic_label: str + parent_topic: str + node_type: str + order_index: int + roadmap_role: str + + +@dataclass +class FilterResult: + service_name: str + primary_roles: list[str] + secondary_roles: list[str] + per_role: dict[str, dict] = field(default_factory=dict) + + +def load_roadmap(csv_path: str | Path) -> list[RoadmapNode]: + nodes: list[RoadmapNode] = [] + with open(csv_path, newline="", encoding="utf-8") as f: + for row in csv.DictReader(f): + oi = row.get("order_index", "") + nodes.append(RoadmapNode( + node_id=row["node_id"], + topic_label=row["topic_label"], + parent_topic=row["parent_topic"], + node_type=row["node_type"], + order_index=int(oi) if oi.isdigit() else 0, + roadmap_role=row["roadmap_role"], + )) + return nodes + + +# ══════════════════════════════════════════════════════════════════════════════ +# 3. 토큰 기반 라벨 매칭 (substring 오탐 제거) +# ══════════════════════════════════════════════════════════════════════════════ + +def _tokens(s: str) -> frozenset[str]: + return frozenset(re.findall(r"[a-z0-9#+]+", s.lower())) + + +def _word_in(needle: str, haystack: str) -> bool: + """needle이 haystack 안에 완전한 단어(word boundary)로 존재하는지 확인.""" + return bool(re.search(r"(? bool: + """node 라벨 토큰집합이 어떤 신호 라벨과 부분집합 관계일 때만 매칭.""" + lt = _tokens(node_label) + if not lt: + return False + for sig in signal_labels: + st = _tokens(sig) + if st and (lt <= st or st <= lt): + return True + return False + + +# ══════════════════════════════════════════════════════════════════════════════ +# 4. 신호 수집 (고정 스키마 기준) +# ══════════════════════════════════════════════════════════════════════════════ + +def _infer_labels(text: str, kr_mode: bool = False) -> set[str]: + """텍스트에서 SKILL_SYNONYMS + TEXT_KEYWORD_INFERENCES 로 로드맵 라벨 추론.""" + t = text.lower() + out: set[str] = set() + synonyms = KR_SKILL_SYNONYMS if kr_mode else SKILL_SYNONYMS + keyword_map = KR_TEXT_KEYWORD_INFERENCES if kr_mode else TEXT_KEYWORD_INFERENCES + for key, mapped in synonyms.items(): + if _word_in(key, t): + out.update(m.lower() for m in mapped) + for key, mapped in keyword_map.items(): + if _word_in(key, t): + out.update(m.lower() for m in mapped) + return out + + +def collect_signal_labels(project: dict[str, Any], kr_mode: bool = False) -> tuple[set[str], set[str]]: + """Returns (strong_labels, weak_labels).""" + form = project.get("analysis_form", {}) + synonyms = KR_SKILL_SYNONYMS if kr_mode else SKILL_SYNONYMS + + # strong ── skills (명시 기술) + strong: set[str] = set() + for vals in project.get("skills", {}).values(): + for v in (vals if isinstance(vals, list) else [vals]): + sl = str(v).lower() + for key, mapped in synonyms.items(): + if _word_in(key, sl) or _word_in(sl, key): + strong.update(m.lower() for m in mapped) + + # strong ── 구현 텍스트 (core_feat / core_perf / contribute_titles) + impl: list[str] = [] + for feat in form.get("core_feat", []): + impl.append(f"{feat.get('feat_title','')} {feat.get('description','')}") + for perf in form.get("core_perf", []): + impl.append(f"{perf.get('perf_title','')} {perf.get('description','')}") + for title in form.get("contribute", {}).get("contribute_titles", []): + impl.append(str(title)) + strong |= _infer_labels(" ".join(impl), kr_mode=kr_mode) + + # weak ── feedback (검증 제안) + weak_parts: list[str] = [] + for fb in form.get("feedback", []): + weak_parts.append(f"{fb.get('feedback_title','')} {fb.get('feedback','')}") + weak = _infer_labels(" ".join(weak_parts), kr_mode=kr_mode) - strong + + return strong, weak + + +# ══════════════════════════════════════════════════════════════════════════════ +# 5. parent_topic (명시값 + curated 만) +# ══════════════════════════════════════════════════════════════════════════════ + +def build_parent_map(role_nodes: list[RoadmapNode], role: str) -> dict[str, str]: + curated = CURATED_PARENTS.get(role, {}) + pmap: dict[str, str] = {} + for n in role_nodes: + if n.node_type != "subtopic": + continue + if n.parent_topic: + pmap[n.topic_label] = n.parent_topic + elif n.topic_label in curated: + pmap[n.topic_label] = curated[n.topic_label] + # 그 외 빈 parent subtopic은 부모 전파 제외 (과대평가 방지) + return pmap + + +# ══════════════════════════════════════════════════════════════════════════════ +# 6. 분류 (직접 매칭 + subtopic→parent 전파) +# ══════════════════════════════════════════════════════════════════════════════ + +def classify_nodes(role_nodes: list[RoadmapNode], strong: set[str], weak: set[str], + parent_map: dict[str, str]) -> dict[str, str]: + status: dict[str, str] = {} + for n in role_nodes: + if _label_matched(n.topic_label, strong): + status[n.topic_label] = "covered" + elif _label_matched(n.topic_label, weak): + status[n.topic_label] = "partial" + else: + status[n.topic_label] = "uncovered" + + # subtopic이 있는 topic은 모든 subtopic이 covered일 때만 covered + parent_to_subs: dict[str, list[str]] = {} + for sub, parent in parent_map.items(): + parent_to_subs.setdefault(parent, []).append(sub) + + for parent, subs in parent_to_subs.items(): + if not subs: + continue + sub_statuses = [status.get(s, "uncovered") for s in subs] + if all(s == "covered" for s in sub_statuses): + status[parent] = "covered" + elif any(s in ("covered", "partial") for s in sub_statuses): + status[parent] = "partial" + else: + status[parent] = "uncovered" + return status + + +# ══════════════════════════════════════════════════════════════════════════════ +# 7. 점수 / 레벨 +# ══════════════════════════════════════════════════════════════════════════════ + +def _get_tier_map(role: str, kr_mode: bool) -> dict[str, str]: + if kr_mode: + return KR_TOPIC_TIERS.get(role, {}) + return TOPIC_TIERS.get(role, {}) + + +def compute_score(role_nodes: list[RoadmapNode], status: dict[str, str], + role: str, kr_mode: bool = False) -> tuple[float, str]: + tier_map = _get_tier_map(role, kr_mode) + total = earned = 0.0 + for n in role_nodes: + if n.node_type != "topic": + continue + w = _TIER_WEIGHT[tier_map.get(n.topic_label, "support")] + total += w + earned += _STATUS_SCORE[status.get(n.topic_label, "uncovered")] * w + pct = earned / total if total else 0.0 + level = next(lbl for th, lbl in _LEVEL_THRESHOLDS if pct >= th) + return round(pct, 3), level + + +# ══════════════════════════════════════════════════════════════════════════════ +# 8. 로드맵 순서 준수 점검 (신규) +# ══════════════════════════════════════════════════════════════════════════════ + +def analyze_sequence(role_nodes: list[RoadmapNode], status: dict[str, str], + role: str, kr_mode: bool = False) -> dict: + """order_index = 로드맵 의도 순서. 전선(frontier) 이전의 미학습 core를 '건너뜀'으로 표시.""" + tier_map = _get_tier_map(role, kr_mode) + topics = sorted([n for n in role_nodes if n.node_type == "topic"], + key=lambda n: n.order_index) + if not topics: + return {} + + covered_idx = [t.order_index for t in topics if status.get(t.topic_label) == "covered"] + frontier = max(covered_idx) if covered_idx else None + + contiguous_until = None + for t in topics: + if status.get(t.topic_label) == "covered": + contiguous_until = t.topic_label + else: + break + + skipped_core, skipped_support = [], [] + before_total = before_covered = 0 + for t in topics: + if frontier is None or t.order_index >= frontier: + continue + before_total += 1 + if status.get(t.topic_label) == "covered": + before_covered += 1 + else: + tier = tier_map.get(t.topic_label, "support") + (skipped_core if tier == "core" else skipped_support).append(t.topic_label) + + in_order_ratio = round(before_covered / before_total, 3) if before_total else 1.0 + + if not covered_idx: + verdict = "아직 로드맵 진입 전 단계입니다." + elif not skipped_core: + verdict = "핵심 토픽을 로드맵 순서에 맞게 빠짐없이 밟아왔습니다." + elif len(skipped_core) <= 2: + verdict = ("앞선 핵심 토픽 일부를 건너뛴 채 뒷 단계로 진행했습니다 " + f"(건너뛴 core: {', '.join(skipped_core)}). 보강이 권장됩니다.") + else: + verdict = ("로드맵 순서를 상당 부분 건너뛰고 특정 영역만 깊게 파고든 형태입니다 " + f"(건너뛴 core {len(skipped_core)}개). 기초 토픽 보강이 필요합니다.") + + frontier_label = next((t.topic_label for t in topics + if t.order_index == frontier), None) + return { + "frontier_topic": frontier_label, + "contiguous_until": contiguous_until, + "in_order_ratio": in_order_ratio, + "skipped_core_prereqs": skipped_core, + "skipped_support_prereqs": skipped_support, + "verdict": verdict, + } + + +# ══════════════════════════════════════════════════════════════════════════════ +# 9. 앞으로 배울 경로 +# ══════════════════════════════════════════════════════════════════════════════ + +def build_roadmap_path(role_nodes: list[RoadmapNode], status: dict[str, str], + parent_map: dict[str, str], role: str, + kr_mode: bool = False) -> list[dict]: + tier_map = _get_tier_map(role, kr_mode) + parent_to_subs: dict[str, list[RoadmapNode]] = {} + for n in role_nodes: + if n.node_type == "subtopic": + p = parent_map.get(n.topic_label, n.parent_topic) + if p: + parent_to_subs.setdefault(p, []).append(n) + + todo = sorted([n for n in role_nodes + if n.node_type == "topic" + and status.get(n.topic_label) in ("uncovered", "partial")], + key=lambda n: n.order_index) + + path = [] + for i, topic in enumerate(todo, 1): + subs = sorted(parent_to_subs.get(topic.topic_label, []), key=lambda n: n.order_index) + path.append({ + "step": i, + "topic": topic.topic_label, + "tier": tier_map.get(topic.topic_label, "support"), + "status": status.get(topic.topic_label, "uncovered"), + "subtopics_to_learn": [s.topic_label for s in subs + if status.get(s.topic_label) != "covered"], + }) + return path + + +# ══════════════════════════════════════════════════════════════════════════════ +# 10. 입력 정규화 (새 CDN JSON 스키마 → 내부 스키마 변환) +# ══════════════════════════════════════════════════════════════════════════════ + +_KR_DEV_TYPE_MAP: dict[str, str] = { + "백엔드": "backend", "backend": "backend", + "프론트엔드": "frontend", "frontend": "frontend", + "풀스택": "fullstack", "fullstack": "fullstack", + "모바일": "mobile", "mobile": "mobile", + "android": "android", "안드로이드": "android", + "ios": "ios", + "devops": "devops", "데브옵스": "devops", "클라우드": "devops", + "ai": "ai-engineer", "ai/ml": "ai-engineer", "ai엔지니어": "ai-engineer", + "머신러닝": "machine-learning", "machine-learning": "machine-learning", + "데이터": "data-engineer", "data-engineer": "data-engineer", + "데이터엔지니어": "data-engineer", + "보안": "cyber-security", "security": "cyber-security", + "게임": "game-developer", "game": "game-developer", +} + + +def normalize_project(raw: dict[str, Any]) -> dict[str, Any]: + """ + CDN JSON 스키마(새 형식) → rule_filter 내부 스키마로 변환. + + 변환 항목: + - dev_type : list[str] 또는 str (한글 포함) → str (영문 단일값) + - frameworks : list[{name, category}] → list[str] + - skills : list[{name, category}] → dict[category, list[str]] + - analysis : 'analysis' 키 → 'analysis_form' 키 + - contribute_share_percent → contribute_percent + - analysis_period → period + """ + p = dict(raw) + + # dev_type: list or str → single English string + dt = p.get("dev_type", "") + if isinstance(dt, list): + dt = dt[0] if dt else "" + dt_key = str(dt).lower().strip().replace(" ", "").replace("/", "") + p["dev_type"] = _KR_DEV_TYPE_MAP.get(dt_key, dt_key) + + # frameworks: [{name, category}] → [str] + fws = p.get("frameworks", []) + if fws and isinstance(fws[0], dict): + p["frameworks"] = [f["name"] for f in fws if "name" in f] + + # skills: [{name, category}] → {category: [name, ...]} (이미 dict이면 skip) + skills_raw = p.get("skills", []) + if isinstance(skills_raw, list) and skills_raw and isinstance(skills_raw[0], dict): + skills_dict: dict[str, list[str]] = {} + for s in skills_raw: + cat = s.get("category", "etc") + skills_dict.setdefault(cat, []).append(s["name"]) + p["skills"] = skills_dict + + # analysis → analysis_form + if "analysis" in p and "analysis_form" not in p: + p["analysis_form"] = p.pop("analysis") + + # contribute_share_percent → contribute_percent + if "contribute_share_percent" in p and "contribute_percent" not in p: + p["contribute_percent"] = p.pop("contribute_share_percent") + + # analysis_period → period + if "analysis_period" in p and "period" not in p: + p["period"] = p.pop("analysis_period") + + return p + + +# ══════════════════════════════════════════════════════════════════════════════ +# 11. Role 감지 +# ══════════════════════════════════════════════════════════════════════════════ + +def _flatten_skills(skills: dict[str, Any]) -> list[str]: + out: list[str] = [] + for v in skills.values(): + out.extend(v if isinstance(v, list) else [v]) + return [str(s) for s in out if s] + + +def detect_roles(project: dict[str, Any]) -> tuple[list[str], list[str]]: + primary: list[str] = [] + secondary: list[str] = [] + + dev_type = str(project.get("dev_type", "")).lower().strip() + if dev_type in VALID_PRIMARY_ROLES: + primary.append(dev_type) + + frameworks = project.get("frameworks", []) + if isinstance(frameworks, str): + frameworks = [frameworks] + for fw in frameworks: + key = str(fw).lower().replace("-", "_").replace(" ", "_") + for r in FRAMEWORK_TO_ROLES.get(key, []): + if r not in primary: + primary.append(r) + + for skill in _flatten_skills(project.get("skills", {})): + sl = skill.lower() + for key, roles in SKILL_TO_ROLES.items(): + if key in sl: + for r in roles: + if r not in primary and r not in secondary: + secondary.append(r) + + if not primary: + primary = ["backend"] + return primary, secondary + + +# ══════════════════════════════════════════════════════════════════════════════ +# 11. 진입점 +# ══════════════════════════════════════════════════════════════════════════════ + +def _is_kr_roadmap(all_nodes: list[RoadmapNode]) -> bool: + """CSV source 필드로 한국 로드맵 여부 자동 감지.""" + # node_id 접두사로 판별 (kr_ 로 시작하면 한국 로드맵) + return any(n.node_id.startswith("kr_") for n in all_nodes[:5]) + + +def run(project: dict[str, Any], roadmap_csv: str | Path, + kr_mode: bool | None = None) -> FilterResult: + """kr_mode=None 이면 CSV에서 자동 감지 (node_id 접두사 kr_ 기준).""" + project = normalize_project(project) + + all_nodes = load_roadmap(roadmap_csv) + if kr_mode is None: + kr_mode = _is_kr_roadmap(all_nodes) + + primary, secondary = detect_roles(project) + strong, weak = collect_signal_labels(project, kr_mode=kr_mode) + + result = FilterResult( + service_name=project.get("service_name", ""), + primary_roles=primary, + secondary_roles=secondary, + ) + + for role in primary + secondary: + _seen: dict[str, RoadmapNode] = {} + for n in sorted((n for n in all_nodes if n.roadmap_role == role), + key=lambda n: n.order_index): + if n.topic_label not in _seen: + _seen[n.topic_label] = n + role_nodes = list(_seen.values()) + if not role_nodes: + continue + + parent_map = build_parent_map(role_nodes, role) + status = classify_nodes(role_nodes, strong, weak, parent_map) + score, level = compute_score(role_nodes, status, role, kr_mode=kr_mode) + tier_map = _get_tier_map(role, kr_mode) + + def entry(n: RoadmapNode, _tm=tier_map, _pm=parent_map, _st=status) -> dict: + return { + "label": n.topic_label, "type": n.node_type, + "parent": _pm.get(n.topic_label, n.parent_topic), + "order": n.order_index, + "tier": _tm.get(n.topic_label, "support"), + "status": _st.get(n.topic_label, "uncovered"), + } + + topics = [n for n in role_nodes if n.node_type == "topic"] + ordered = sorted(role_nodes, key=lambda n: n.order_index) + + covered_list = [entry(n) for n in ordered if status.get(n.topic_label) == "covered"] + partial_list = [entry(n) for n in ordered if status.get(n.topic_label) == "partial"] + uncovered_list = [entry(n) for n in ordered if status.get(n.topic_label) == "uncovered"] + + result.per_role[role] = { + "total": len(role_nodes), + "topic_coverage": f"{sum(1 for t in topics if status.get(t.topic_label)=='covered')}/{len(topics)}", + "weighted_score": score, + "coverage_pct": round(score * 100, 1), + "coverage_level": level, + "sequence": analyze_sequence(role_nodes, status, role, kr_mode=kr_mode), + "roadmap_path": build_roadmap_path(role_nodes, status, parent_map, role, kr_mode=kr_mode), + "covered": covered_list, + "partial": partial_list, + "uncovered": uncovered_list, + "covered_count": len(covered_list), + "partial_count": len(partial_list), + "uncovered_count": len(uncovered_list), + } + + return result + + +if __name__ == "__main__": + import json + + # 고정 스키마 샘플 (Learning Crew 백엔드 발췌) + sample = { + "service_name": "Learning Crew", + "dev_type": "backend", + "frameworks": ["Spring Boot"], + "skills": { + "languages": ["Java"], + "frameworks": ["Spring Boot", "Spring Security", "Spring Data JPA", "LangChain4j"], + "data_stores": ["MariaDB", "JPA/Hibernate", "QueryDSL", "Caffeine Cache"], + "auth": ["JWT"], "deployment": ["Docker"], "build": ["Gradle"], + }, + "analysis_form": { + "core_feat": [ + {"feat_title": "JWT 인증/토큰 관리", "description": "로그인·리프레시 토큰 순환, Caffeine 캐시 이중 저장"}, + {"feat_title": "스터디 그룹 검색", "description": "QueryDSL 동적 쿼리 키워드 검색·페이지네이션"}, + ], + "core_perf": [ + {"perf_title": "AI 퀴즈 다층 동시성 제어", "description": "Semaphore·ReentrantLock·가상 스레드·지수 백오프 재시도", + "about_feat_title": "AI 퀴즈 생성"}, + {"perf_title": "QueryDSL 조인 조회", "description": "다중 엔터티 조인, N+1 문제 관련 leftJoin 패턴", + "about_feat_title": "스터디 그룹 검색"}, + ], + "feedback": [ + {"feedback_title": "테스트 자동화 필요", "feedback": "JUnit 단위 테스트로 동시성 검증 권장", + "about_perf_title": "AI 퀴즈 다층 동시성 제어"}, + ], + "contribute": {"contribute_titles": ["JWT 인증 모듈 구현", "스터디 그룹 도메인 구현"]}, + }, + } + + res = run(sample, "/mnt/user-data/uploads/roadmap.csv") + be = res.per_role["backend"] + print(f"service: {res.service_name} | primary={res.primary_roles} secondary={res.secondary_roles}") + print(f"backend: {be['topic_coverage']} topics, score {be['coverage_pct']}% — {be['level']}") + print() + print("[sequence]"); print(json.dumps(be["sequence"], indent=2, ensure_ascii=False)) + print() + print("[covered topics]", + [e["label"] for e in be["covered"] if e["type"] == "topic"]) + print("[next path]", + [p["topic"] for p in be["roadmap_path"]]) \ No newline at end of file diff --git a/app/services/roadmap_assess.py b/app/services/roadmap_assess.py new file mode 100644 index 0000000..6ca665f --- /dev/null +++ b/app/services/roadmap_assess.py @@ -0,0 +1,198 @@ +"""로드맵 평가 태스크 — BackgroundTasks에서 호출.""" +from __future__ import annotations + +import logging +from concurrent.futures import ThreadPoolExecutor, as_completed +from pathlib import Path +from typing import Any + +from app.services.roadmap import rule_filter, llm_analyzer, market_tier, market_loader +from app.services.roadmap_merger import run_merged +from app.services._rag_utils import _fetch_code_analysis as _fetch_project +from app.jobs.store import update_job +from app.services.webhook import notify_be + +logger = logging.getLogger(__name__) + +ROADMAP_CSV = Path(__file__).resolve().parents[2] / "DATASET" / "roadmap.csv" + +_COVERAGE_TO_NUM = { + "입문 단계": 1, "초중급 단계": 2, "중급 (실무 가능) 단계": 3, "시니어 진입 단계": 4, +} +_LLM_TO_NUM = {"Beginner": 1, "Junior": 2, "Mid-level": 3, "Senior": 4, "Expert": 5} +_NUM_TO_FINAL = [(4.5, "Senior"), (3.5, "Mid-level"), (1.5, "Junior"), (0.0, "Beginner")] + + + +def _calc_reliability(project: dict) -> dict: + pct = project.get("contribute_percent") or 0 + try: + pct = float(pct) + except (TypeError, ValueError): + pct = 0.0 + if pct >= 70: + grade, note = "high", "단독·주도 개발로 평가 대표성이 높습니다." + elif pct >= 40: + grade, note = "medium", "공동 개발이 포함되어 일부 신호가 협업 결과일 수 있습니다." + else: + grade, note = "low", "기여도가 낮아 평가 신뢰도가 제한됩니다." + return {"grade": grade, "contribute_pct": pct, "note": note} + + +def _reconcile_level(assessment: dict, filter_result: Any) -> dict: + llm_label = assessment.get("overall_level", "") + primary_roles = filter_result.primary_roles + coverage_label = filter_result.per_role.get(primary_roles[0], {}).get("coverage_level", "") \ + if primary_roles else "" + llm_num = _LLM_TO_NUM.get(llm_label, 0) + cov_num = _COVERAGE_TO_NUM.get(coverage_label, 0) + if llm_num and cov_num: + weighted = llm_num * 0.7 + cov_num * 0.3 + final = next(lbl for th, lbl in _NUM_TO_FINAL if weighted >= th) + else: + final = llm_label or coverage_label + return { + "final_level": final, + "skill_level": llm_label, + "coverage_level": coverage_label, + "note": "skill_level(구현 깊이 기준 70%) + coverage_level(로드맵 폭 기준 30%) 가중 합산", + } + + +def _assess_one( + project: dict[str, Any], + filter_result: Any = None, + filter_dict: dict | None = None, +) -> dict[str, Any]: + project = rule_filter.normalize_project(project) + + if filter_result is None: + filter_result = rule_filter.run(project, ROADMAP_CSV) + if filter_dict is None: + filter_dict = { + "primary_roles": filter_result.primary_roles, + "secondary_roles": filter_result.secondary_roles, + "per_role": filter_result.per_role, + } + + raw_fws = project.get("frameworks") or [] + framework = (raw_fws[0].get("name", "") if isinstance(raw_fws[0], dict) else raw_fws[0]) \ + if raw_fws else "" + raw_dt = project.get("dev_type", "") + devtype = (raw_dt[0] if raw_dt else "") if isinstance(raw_dt, list) else raw_dt + + market_ctx = market_loader.load_market_context(tuple(filter_result.primary_roles)) + + with ThreadPoolExecutor(max_workers=2) as pool: + fut_assessment = pool.submit(llm_analyzer.analyze, project, filter_dict) + fut_market = pool.submit( + llm_analyzer.generate_market_brief, + filter_dict, filter_result.primary_roles, market_ctx, + framework, devtype, project, + ) + assessment = fut_assessment.result() + market_brief = fut_market.result() + + def _with_tier(node: dict) -> dict: + t = market_tier.get_tier(node["label"], node["type"]) + return {**node, "market_tier": t, "highlighted": market_tier.is_highlighted(t)} + + per_role_out: dict[str, Any] = {} + for role, data in filter_result.per_role.items(): + nodes = ( + [_with_tier(dict(n, status="covered")) for n in data["covered"]] + + [_with_tier(dict(n, status="partial")) for n in data["partial"]] + + [_with_tier(dict(n, status="uncovered")) for n in data["uncovered"]] + ) + roadmap_path = [ + {**step, + "market_tier": market_tier.get_tier(step["topic"], "topic"), + "highlighted": market_tier.is_highlighted(market_tier.get_tier(step["topic"], "topic"))} + for step in data.get("roadmap_path", []) + ] + per_role_out[role] = { + "coverage_level": data["coverage_level"], + "coverage_pct": data["coverage_pct"], + "topic_coverage": data["topic_coverage"], + "sequence": data.get("sequence", {}), + "roadmap_path": roadmap_path, + "nodes": nodes, + "covered_count": data["covered_count"], + "partial_count": data["partial_count"], + "uncovered_count": data["uncovered_count"], + } + + return { + "service_name": project.get("service_name"), + "dev_type": project.get("dev_type"), + "primary_roles": filter_result.primary_roles, + "secondary_roles": filter_result.secondary_roles, + "assessment_reliability": _calc_reliability(project), + "final_level": _reconcile_level(assessment, filter_result), + "per_role": per_role_out, + "llm_assessment": assessment, + "market_brief": market_brief, + } + + +def run_assess_task( + job_id: str, + ai_job_id: str, + code_analysis_urls: list[str], + merge: bool, +) -> None: + update_job(job_id, status="running") + try: + projects: list[dict[str, Any]] = [] + with ThreadPoolExecutor(max_workers=min(len(code_analysis_urls), 4)) as pool: + futures = {pool.submit(_fetch_project, url): url for url in code_analysis_urls} + for future in as_completed(futures): + url = futures[future] + exc = future.exception() + if not exc: + p = future.result() + p["_source_url"] = url + projects.append(p) + else: + logger.warning("[로드맵] URL fetch 실패: %s — %s", url, exc) + + if not projects: + update_job(job_id, status="failed", message="모든 URL fetch 실패") + return + + if merge: + merged_project, filter_result = run_merged(projects) + filter_dict = { + "primary_roles": filter_result.primary_roles, + "secondary_roles": filter_result.secondary_roles, + "per_role": filter_result.per_role, + } + result = _assess_one(merged_project, filter_result, filter_dict) + result["source_urls"] = [p["_source_url"] for p in projects] + results = [result] + else: + results = [] + with ThreadPoolExecutor(max_workers=min(len(projects), 4)) as pool: + futures = {pool.submit(_assess_one, p): p for p in projects} + for future in as_completed(futures): + p = futures[future] + if not future.exception(): + r = future.result() + r["source_url"] = p.get("_source_url", "") + results.append(r) + else: + logger.warning("[로드맵] 평가 실패: %s", future.exception()) + + update_job(job_id, status="done", result=results) + try: + notify_be(ai_job_id=ai_job_id, result=results) + except Exception as webhook_err: + logger.warning("[Webhook] 콜백 실패 (결과는 저장됨): %s", webhook_err) + + except Exception as e: + update_job(job_id, status="failed", message=str(e)) + logger.error("[로드맵] 평가 태스크 실패: %s", e) + try: + notify_be(ai_job_id=ai_job_id, error_message=str(e)) + except Exception as webhook_err: + logger.warning("[Webhook] 콜백 실패: %s", webhook_err) diff --git a/app/services/roadmap_merger.py b/app/services/roadmap_merger.py new file mode 100644 index 0000000..9cd6193 --- /dev/null +++ b/app/services/roadmap_merger.py @@ -0,0 +1,142 @@ +""" +여러 프로젝트 rule_filter 결과 → 합산된 단일 평가 입력 생성 + +합산 규칙: +- topic/subtopic status: covered > partial > uncovered (any 프로젝트에서 covered이면 covered) +- skills / core_feat / core_perf: 전 프로젝트 union +- coverage_pct: weighted average +""" +from __future__ import annotations + +from pathlib import Path +from typing import Any + +from app.services.roadmap import rule_filter as rf + +ROADMAP_CSV = Path(__file__).resolve().parents[2] / "DATASET" / "roadmap.csv" +_RANK = {"covered": 2, "partial": 1, "uncovered": 0} + + +def _merge_status(status_list: list[dict[str, str]]) -> dict[str, str]: + merged: dict[str, str] = {} + for status in status_list: + for label, st in status.items(): + if _RANK.get(st, 0) > _RANK.get(merged.get(label, "uncovered"), 0): + merged[label] = st + return merged + + +def _merge_projects(projects: list[dict[str, Any]]) -> dict[str, Any]: + skills_seen: set[str] = set() + skills: list[dict] = [] + frameworks_seen: set[str] = set() + frameworks: list[dict] = [] + core_feat: list[dict] = [] + core_perf: list[dict] = [] + service_names: list[str] = [] + + for p in projects: + p = rf.normalize_project(p) + if p.get("service_name"): + service_names.append(p["service_name"]) + + for s in (p.get("skills") or []): + name = s.get("name") if isinstance(s, dict) else str(s) + if name and name not in skills_seen: + skills_seen.add(name) + skills.append(s if isinstance(s, dict) else {"name": name}) + + for f in (p.get("frameworks") or []): + name = f.get("name") if isinstance(f, dict) else str(f) + if name and name not in frameworks_seen: + frameworks_seen.add(name) + frameworks.append(f if isinstance(f, dict) else {"name": name}) + + analysis = p.get("analysis_form") or {} + core_feat.extend(analysis.get("core_feat", [])) + core_perf.extend(analysis.get("core_perf", [])) + + return { + "service_name": " / ".join(service_names) or "merged", + "service_description": f"{len(projects)}개 프로젝트 합산 평가", + "dev_type": projects[0].get("dev_type", ""), + "frameworks": frameworks, + "skills": skills, + "user_role": projects[0].get("user_role", ""), + "contribute_share_percent": 100, + "analysis_form": { + "core_feat": core_feat, + "core_perf": core_perf, + "feedback": [], + "contribute": {"contribute_titles": []}, + }, + } + + +def run_merged(projects: list[dict[str, Any]]) -> tuple[dict[str, Any], rf.FilterResult]: + all_nodes = rf.load_roadmap(ROADMAP_CSV) + kr_mode = rf._is_kr_roadmap(all_nodes) + + merged_project = _merge_projects(projects) + merged_project = rf.normalize_project(merged_project) + + primary, secondary = rf.detect_roles(merged_project) + strong, weak = rf.collect_signal_labels(merged_project, kr_mode=kr_mode) + + for p in projects: + p_norm = rf.normalize_project(p) + s, w = rf.collect_signal_labels(p_norm, kr_mode=kr_mode) + strong |= s + weak |= (w - strong) + + filter_result = rf.FilterResult( + service_name=merged_project.get("service_name", ""), + primary_roles=primary, + secondary_roles=secondary, + ) + + for role in primary + secondary: + _seen: dict[str, rf.RoadmapNode] = {} + for n in sorted((n for n in all_nodes if n.roadmap_role == role), + key=lambda n: n.order_index): + if n.topic_label not in _seen: + _seen[n.topic_label] = n + role_nodes = list(_seen.values()) + if not role_nodes: + continue + + parent_map = rf.build_parent_map(role_nodes, role) + status = rf.classify_nodes(role_nodes, strong, weak, parent_map) + score, level = rf.compute_score(role_nodes, status, role, kr_mode=kr_mode) + tier_map = rf._get_tier_map(role, kr_mode) + + def entry(n: rf.RoadmapNode, _tm=tier_map, _pm=parent_map, _st=status) -> dict: + return { + "label": n.topic_label, + "type": n.node_type, + "parent": _pm.get(n.topic_label, n.parent_topic), + "order": n.order_index, + "tier": _tm.get(n.topic_label, "support"), + "status": _st.get(n.topic_label, "uncovered"), + } + + topics = [n for n in role_nodes if n.node_type == "topic"] + ordered = sorted(role_nodes, key=lambda n: n.order_index) + + filter_result.per_role[role] = { + "total": len(role_nodes), + "topic_coverage": f"{sum(1 for t in topics if status.get(t.topic_label)=='covered')}/{len(topics)}", + "weighted_score": score, + "coverage_pct": round(score * 100, 1), + "coverage_level": level, + "sequence": rf.analyze_sequence(role_nodes, status, role, kr_mode=kr_mode), + "roadmap_path": rf.build_roadmap_path(role_nodes, status, parent_map, role, kr_mode=kr_mode), + "covered": [entry(n) for n in ordered if status.get(n.topic_label) == "covered"], + "partial": [entry(n) for n in ordered if status.get(n.topic_label) == "partial"], + "uncovered": [entry(n) for n in ordered if status.get(n.topic_label) == "uncovered"], + "covered_count": sum(1 for n in ordered if status.get(n.topic_label) == "covered"), + "partial_count": sum(1 for n in ordered if status.get(n.topic_label) == "partial"), + "uncovered_count": sum(1 for n in ordered if status.get(n.topic_label) == "uncovered"), + } + + return merged_project, filter_result From 865eac9c99a1a2616d78d907257c205a0eb07bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A4=80=EC=9A=B0?= Date: Thu, 4 Jun 2026 07:31:29 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=A1=9C=EB=93=9C=EB=A7=B5=20=EC=9D=B4?= =?UTF-8?q?=EC=8B=9D=20=ED=9B=84=20=EC=9B=B9=20=ED=9B=85=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0=20=EC=88=98=EC=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/schemas/job.py | 4 +- app/services/roadmap_assess.py | 105 +++++++++++++++++---------------- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/app/schemas/job.py b/app/schemas/job.py index 06df07a..1fac322 100644 --- a/app/schemas/job.py +++ b/app/schemas/job.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import Any + from pydantic import BaseModel from app.jobs.store import JobStatus @@ -8,5 +10,5 @@ class JobStatusResponse(BaseModel): job_id: str status: JobStatus - result: dict | None = None + result: Any = None message: str | None = None diff --git a/app/services/roadmap_assess.py b/app/services/roadmap_assess.py index 6ca665f..2a37dc6 100644 --- a/app/services/roadmap_assess.py +++ b/app/services/roadmap_assess.py @@ -6,16 +6,20 @@ from pathlib import Path from typing import Any +import anyio + from app.services.roadmap import rule_filter, llm_analyzer, market_tier, market_loader from app.services.roadmap_merger import run_merged from app.services._rag_utils import _fetch_code_analysis as _fetch_project -from app.jobs.store import update_job from app.services.webhook import notify_be +from app.jobs.store import JobStatus, update_job logger = logging.getLogger(__name__) ROADMAP_CSV = Path(__file__).resolve().parents[2] / "DATASET" / "roadmap.csv" + + _COVERAGE_TO_NUM = { "입문 단계": 1, "초중급 단계": 2, "중급 (실무 가능) 단계": 3, "시니어 진입 단계": 4, } @@ -135,64 +139,65 @@ def _with_tier(node: dict) -> dict: } -def run_assess_task( +async def run_assess_task( job_id: str, ai_job_id: str, code_analysis_urls: list[str], merge: bool, ) -> None: - update_job(job_id, status="running") + update_job(job_id, JobStatus.RUNNING) + results: list[dict[str, Any]] | None = None + error_message: str | None = None try: - projects: list[dict[str, Any]] = [] - with ThreadPoolExecutor(max_workers=min(len(code_analysis_urls), 4)) as pool: - futures = {pool.submit(_fetch_project, url): url for url in code_analysis_urls} - for future in as_completed(futures): - url = futures[future] - exc = future.exception() - if not exc: - p = future.result() - p["_source_url"] = url - projects.append(p) - else: - logger.warning("[로드맵] URL fetch 실패: %s — %s", url, exc) - - if not projects: - update_job(job_id, status="failed", message="모든 URL fetch 실패") - return - - if merge: - merged_project, filter_result = run_merged(projects) - filter_dict = { - "primary_roles": filter_result.primary_roles, - "secondary_roles": filter_result.secondary_roles, - "per_role": filter_result.per_role, - } - result = _assess_one(merged_project, filter_result, filter_dict) - result["source_urls"] = [p["_source_url"] for p in projects] - results = [result] - else: - results = [] - with ThreadPoolExecutor(max_workers=min(len(projects), 4)) as pool: - futures = {pool.submit(_assess_one, p): p for p in projects} + def _run() -> list[dict[str, Any]]: + projects: list[dict[str, Any]] = [] + with ThreadPoolExecutor(max_workers=min(len(code_analysis_urls), 4)) as pool: + futures = {pool.submit(_fetch_project, url): url for url in code_analysis_urls} for future in as_completed(futures): - p = futures[future] - if not future.exception(): - r = future.result() - r["source_url"] = p.get("_source_url", "") - results.append(r) + url = futures[future] + exc = future.exception() + if not exc: + p = future.result() + p["_source_url"] = url + projects.append(p) else: - logger.warning("[로드맵] 평가 실패: %s", future.exception()) - - update_job(job_id, status="done", result=results) - try: - notify_be(ai_job_id=ai_job_id, result=results) - except Exception as webhook_err: - logger.warning("[Webhook] 콜백 실패 (결과는 저장됨): %s", webhook_err) - + logger.warning("[로드맵] URL fetch 실패: %s — %s", url, exc) + + if not projects: + raise RuntimeError("모든 URL fetch 실패") + + if merge: + merged_project, filter_result = run_merged(projects) + filter_dict = { + "primary_roles": filter_result.primary_roles, + "secondary_roles": filter_result.secondary_roles, + "per_role": filter_result.per_role, + } + r = _assess_one(merged_project, filter_result, filter_dict) + r["source_urls"] = [p["_source_url"] for p in projects] + return [r] + else: + out = [] + with ThreadPoolExecutor(max_workers=min(len(projects), 4)) as pool: + futures = {pool.submit(_assess_one, p): p for p in projects} + for future in as_completed(futures): + p = futures[future] + if not future.exception(): + r = future.result() + r["source_url"] = p.get("_source_url", "") + out.append(r) + else: + logger.warning("[로드맵] 평가 실패: %s", future.exception()) + return out + + results = await anyio.to_thread.run_sync(_run) + update_job(job_id, JobStatus.DONE, result=results) except Exception as e: - update_job(job_id, status="failed", message=str(e)) + error_message = str(e) logger.error("[로드맵] 평가 태스크 실패: %s", e) + update_job(job_id, JobStatus.ERROR, message=error_message) + finally: try: - notify_be(ai_job_id=ai_job_id, error_message=str(e)) + await notify_be(ai_job_id=ai_job_id, output_pdf_url=None, error_message=error_message) except Exception as webhook_err: - logger.warning("[Webhook] 콜백 실패: %s", webhook_err) + logger.warning("[Webhook] 콜백 실패 (결과는 저장됨): %s", webhook_err) From ab09354244e7c350c46e65374a9978ae4ff00072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A4=80=EC=9A=B0?= Date: Thu, 4 Jun 2026 07:34:47 +0900 Subject: [PATCH 3/3] =?UTF-8?q?sse=20=EC=8A=A4=ED=8A=B8=EB=A6=AC=EB=B0=8D?= =?UTF-8?q?=20=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/v1/roadmap.py | 27 ++++++++++++++++++++++++++- requirements.txt | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/api/v1/roadmap.py b/app/api/v1/roadmap.py index 27bac11..0961d26 100644 --- a/app/api/v1/roadmap.py +++ b/app/api/v1/roadmap.py @@ -1,9 +1,13 @@ from __future__ import annotations +import asyncio +import json + from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException +from sse_starlette.sse import EventSourceResponse from app.api.dependencies import verify_internal_key -from app.jobs.store import create_job, get_job +from app.jobs.store import JobStatus, create_job, get_job from app.schemas.job import JobStatusResponse from app.schemas.roadmap import AssessRequest from app.services.roadmap_assess import run_assess_task @@ -47,3 +51,24 @@ def get_assess_status(job_id: str) -> JobStatusResponse: result=job.result, message=job.message, ) + + +@router.get("/jobs/{job_id}/stream") +async def stream_assess(job_id: str) -> EventSourceResponse: + async def generator(): + if get_job(job_id) is None: + yield {"event": "error", "data": f"job_id '{job_id}'를 찾을 수 없습니다."} + return + + while True: + job = get_job(job_id) + if job.status == JobStatus.DONE: + yield {"event": "done", "data": json.dumps(job.result, ensure_ascii=False)} + break + if job.status == JobStatus.ERROR: + yield {"event": "error", "data": job.message or "error"} + break + yield {"event": "status", "data": job.status.value} + await asyncio.sleep(1) + + return EventSourceResponse(generator()) diff --git a/requirements.txt b/requirements.txt index 70ef029..1550e88 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,6 +10,7 @@ kiwipiepy_model==0.23.0 rank-bm25==0.2.2 boto3==1.43.14 httpx==0.28.1 +sse-starlette==2.3.6 requests==2.34.2 numpy==2.4.5 pg8000==1.31.5