개발언어별 SW 전문 인력
  • 김항규SW기반정책·인재연구실 선임연구원
날짜2023.07.05
조회수14404
글자크기
  • (단위 : 천 명)
    var chart_99; var chart_type_99 = "stack_column"; jQuery(document).ready(function () { {"data":{"data":[{"구분":"2019년","C\/C++":"99.8","C#":"52.0","Java":"134.2","Java Script":"83.2","PHP":"22.8","HTML5":"17.5","Object-C":"21.4","Visual 계열":"7.9","파이썬":"12.6","기타":"10.3"},{"구분":"2020년","C\/C++":"102.2","C#":"56.3","Java":"123.6","Java Script":"78.5","PHP":"20.5","HTML5":"14.8","Object-C":"17.9","Visual 계열":"5.9","파이썬":"10.2","기타":"7.3"},{"구분":"2021년","C\/C++":"118.1","C#":"64.3","Java":"137.5","Java Script":"89.3","PHP":"24.1","HTML5":"17.3","Object-C":"18.7","Visual 계열":"5.9","파이썬":"10.8","기타":"8.0"},{"구분":"2022년","C\/C++":"130.4","C#":"80.3","Java":"163.3","Java Script":"118.1","PHP":"39.1","HTML5":"32.5","Object-C":"26.5","Visual 계열":"14.4","파이썬":"16.8","기타":"18.2"}]},"use":{"animate":true,"aCrossLine":true,"multiYAxis":false},"animate":{"speed":100},"format":{ "yAxis": "priceDataFormat" },"func":{ "tip": function (tipElement, data, rect) { var date = data.xaxis; var tip = '
    '+ String(data.yaxisname) + ' / ' + String(data.yaxis)+'
    '; tipElement.html(tip).show(); tipElement.html(tipElement.html()).css({ left: rect.x - (tipElement.width() / 2), top: rect.y - 38 }); } }} var style = { "main": { "layout": { "paddingTop": 57, "paddingRight": 30, "color": "#ffffff", "line": { "color": "#eaeaea", "width": 1 } }, "graph": { "color": "#fff", "line": { "top": { "color": "#cccccc" }, "left": { "width": 0 }, "right": { "width": 0 }, "bottom": { "color": "#cccccc" } } }, "crossLine": { "color": "#465866" }, "xAxis": { "paddingTop": 13, "height": 30, "text": { "family": "Nanum Gothic", "size": 12, "color": "#666" }, "line": { "color": "#e3e3e3", "width": 1 } }, "yAxis": { "line": { "color": "#cccccc", "width": 1, "opacity": 1 }, "text": { "family": "Nanum Gothic", "size": 12, "color": "#666", "align": "right" }, "baseAtZero": true }, "tip": { "className": "tip" }, "series": { "s1": { "area": { "normal": { "color": "#1d64ac", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s2": { "area": { "normal": { "color": "#4abfca", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s3": { "area": { "normal": { "color": "#f9d33a", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s4": { "area": { "normal": { "color": "#ff8e1f", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s5": { "area": { "normal": { "color": "#7badff", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s6": { "area": { "normal": { "color": "#6763ff", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s7": { "area": { "normal": { "color": "#ff6e6e", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s8": { "area": { "normal": { "color": "#c5c5c5", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s9": { "area": { "normal": { "color": "#296a73", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, "s10": { "area": { "normal": { "color": "#80bc71", "over": { "color": { "src": "/lib/webponent/chart/webPonent-Chart-2.0.6/chart/sample/chart/img/over.png" } } } } }, } } }; var data_99 = data; var style_99 = style; var series_99 = series; if(color_style_99 == undefined){ var color_style_99 = []; } if(slider_99 == undefined ){ var slider_99 =true; } if (chart_type_99 == "pie") { chart_99 = webponent.visual.pie.init(jQuery('#webponent_chart_99'), style_99, data_99); jQuery("#chart_controller").remove(); } else if (chart_type_99 == "tree") { chart_99 = webponent.visual.treemap.init(jQuery('#webponent_chart_99'), style_99, data_99); jQuery("#chart_controller").remove(); } else if (chart_type_99 == "horizon") { chart_99 = webponent.visual.horizon.init(jQuery('#webponent_chart_99'), style_99, data_99); jQuery("#chart_controller").remove(); } else if (chart_type_99 == "scatter") { chart_99 = webponent.visual.scatterPlot.init(jQuery('#webponent_chart_99'), style_99, data_99); jQuery("#chart_controller").remove(); } else { if(chart_type_99 != "hloc"){ var count =0; jQuery.each(series_99.main, function (index, value) { if (index != "type") { if(chart_type_99 == "line"){ legend_count = count %5; jQuery("#chart_legends_99").append(legend_style[legend_count][0]+legend_color[count] +legend_style[legend_count][1]+ value.yaxis +'
  • '); }else if(chart_type_99 =="multi_series"){ if(value.series=="line"){ legend_count = count %5; jQuery("#chart_legends_99").append(legend_style[legend_count][0]+legend_color[count] +legend_style[legend_count][1]+ value.yaxis +''); }else{ jQuery("#chart_legends_99").append('
  • ' + value.yaxis + '
  • '); } }else{ if(color_style_99.length){ jQuery("#chart_legends_99").append('
  • ' + value.yaxis + '
  • '); }else{ jQuery("#chart_legends_99").append('
  • ' + value.yaxis + '
  • '); } } } count++; }); } chart_99= webponent.chart.init(jQuery('#webponent_chart_99'), data_99, style_99, series_99); if(slider_99){ if(chart_type_99=="line"||chart_type_99=="column"){ var tmp_x=[]; jQuery("#slider_div_99").attr("style",""); jQuery.each(data_99.data.data,function (index,value){ tmp_x.push(value[Object.keys(value)[0]]); }); jQuery("#slider-range_99").slider({ range: true, min: 0, max: tmp_x.length-1, values: [ 0, tmp_x.length-1 ], slide: function( event, ui ) { jQuery( "#slider-text_99" ).text( "범위 : " + tmp_x[ui.values[ 0 ]] + " - " + tmp_x[ui.values[ 1 ]] ); var tmp_data = JSON.parse(JSON.stringify(data_99)); //object 참조 복사 회피 tmp_data.data.data = tmp_data.data.data.splice(ui.values[ 0 ],ui.values[ 1 ]+1-ui.values[0]); chart_99.inquery( tmp_data,style_99, series_99); } }); jQuery("#slider-text_99").text( "범위 : "+tmp_x[0] + " - " + tmp_x[tmp_x.length-1]); } } } })
  • 학력별 SW전문 인력
    구분 2018년 2019년 2020년 2021년 2022년
    var table_91= jQuery("#grid_table_91"); var tmp_template_91 = jQuery("#grid_template_91").html(); if(tmp_template_91.split("/*").length>1){ tmp_template_91 =tmp_template_91.substring(13,tmp_template_91.length-7); } jQuery("#grid_template_91").html(tmp_template_91); var template_91 =jQuery("#grid_template_91"); var data_91 =[{"s0":"C\/C++","s1":"103.9","s2":"99.8","s3":"102.2","s4":"118.1","s5":"130.4"},{"s0":"C#","s1":"-","s2":"52.0","s3":"56.3","s4":"64.3","s5":"80.3"},{"s0":"Java","s1":"122.4","s2":"134.2","s3":"123.6","s4":"137.5","s5":"163.3"},{"s0":"Java Script","s1":"72.0","s2":"83.2","s3":"78.5","s4":"89.3","s5":"118.1"},{"s0":"PHP","s1":"25.0","s2":"22.8","s3":"20.5","s4":"24.1","s5":"39.1"},{"s0":"HTML5","s1":"13.8","s2":"17.5","s3":"14.8","s4":"17.3","s5":"32.5"},{"s0":"Object-C","s1":"16.5","s2":"21.4","s3":"17.9","s4":"18.7","s5":"26.5"},{"s0":"Visual 계열","s1":"21.3","s2":"7.9","s3":"5.9*","s4":"5.9*","s5":"14.4"},{"s0":"파이썬","s1":"8.5","s2":"12.6","s3":"10.2","s4":"10.8","s5":"16.8"},{"s0":"기타","s1":"11.6","s2":"10.3","s3":"7.3","s4":"8.0","s5":"18.2"}]; var grid_91; jQuery(document).ready(function () { jQuery.each(data_91 , function(idx,value){ var tmp_object = value; var objectKey = Object.keys(value); jQuery.each(objectKey,function(idx2,value2){ if(jQuery.isNumeric(value[idx2])){ tmp_object[value2]=parseFloat(value[idx2]).toLocaleString(); } }); }); if(1 == 1){ var grid_sortable = true; }else{ var grid_sortable = false; }; grid_91 = webponent.grid.init(table_91,template_91, {sortable:grid_sortable}); var collapseKeys_91 = Object.keys(data_91[0]); grid_91.event.on('dataRendered', function () { var dataList = grid_91.data; var renderingStartRowIndex = grid_91.settings.defferedRendering.renderingStartRowIndex; var renderingEndRowIndex = grid_91.settings.defferedRendering.renderingEndRowIndex; if (renderingStartRowIndex === null) { renderingStartRowIndex = 0; } if (renderingEndRowIndex === null) { renderingEndRowIndex = grid_91.data.length; } else { renderingEndRowIndex ++; } var prevTdMap = {}; var prevDataMap = {}; var prevRowspanMap = {}; for (var i = renderingStartRowIndex; i < renderingEndRowIndex; i ++) { var data = dataList[i]; _.each(collapseKeys_91 , function (collapseKey) { var row = jQuery(grid_91.rows[i]); var td = row.find('[data-name=' + collapseKey + ']'); var prevTd = prevTdMap[collapseKey]; if (!prevTd) { td.attr('rowspan', '1'); td.addClass('CI-GRID-BORDER-RIGHT'); prevTdMap[collapseKey] = td; prevDataMap[collapseKey] = data[collapseKey]; prevRowspanMap[collapseKey] = 1; } else { if (!jQuery.isNumeric(data[collapseKey])&&prevDataMap[collapseKey] === data[collapseKey]) { prevTdMap[collapseKey].attr('rowspan', prevRowspanMap[collapseKey] + 1); prevRowspanMap[collapseKey] ++; td.remove(); } else { td.attr('rowspan', '1'); td.addClass('CI-GRID-BORDER-RIGHT'); prevTdMap[collapseKey] = td; prevDataMap[collapseKey] = data[collapseKey]; prevRowspanMap[collapseKey] = 1; } } }); } }); grid_91.appendRow(data_91); grid_91.setGridHeight(395); //var header_caption_91 = grid_91.markup.main.header.table.createCaption(); //header_caption_91.innerHTML = "2-3-1-8 개발언어별 SW전문 인력"; //header_caption_91.className += " blind"; var header_td_91 = grid_91.markup.main.header.table; //console.log($(header_td_91).html()); $(header_td_91).find('.CI-GRID-SORTER').attr('title', '이 컬럼을 소트하려면 클릭 또는 엔터키를 눌러 주세요.\(쉬프트키를 누르면서 클릭 또는 엔터키를 눌러 주시면 멀티소팅이 됩니다.\) '); $('.CI-GRID-FOCUS-ESCAPER').remove(); });
    • 자료) 과학기술정보통신부 SW산업실태조사(2023.4)
      • 주1) 복수응답
      • 주2) 상대표준오차(RSE)의 범위가 30%~60%인 경우(*로 표시)는 주의와 함께 이용 가능한 수치이며, 60% 이상인 경우(**로 표시)는 이용에 주의가 필요
      • 주3) Visual 계열 : Visual Basic, Visual C++, .NET
      • 주4) 기타 : Assembly language, Delphi/Object Pascal, MATLAB, Pascal, R 등