최근 수정 시각 : 2022-11-26 01:27:20

정보기술/기능경기대회

1. 개요2. 국제 대회3. 국내대회 구성
3.1. 국제대회의 크나큰 장벽3.2. 각 선수간 커뮤니케이션의 부재3.3. 직종 개선이 지속될 것인지?
4. 정보기술 훈련 팁5. 1과제 스프레드시트
5.1. 필요 지식
5.1.1. 엑셀 기능5.1.2. 엑셀 차트5.1.3. 엑셀 수식 활용5.1.4. VBA
6. 2, 3과제 자바 프로그래밍
6.1. 필요 지식
정보기술(IT Software Solutions for Business)
분과 전기/전자/정보
개최 1994 ~

1. 개요

정보기술은 JAVA, Excel을 이용하여 정보를 처리하는 프로그램을 개발하는 직종이다.
현재 직종 개편으로 Word, PPT의 문서화 과제가 없어질 예정이다.
이제 곧 Excel도 없어지고 C#으로 변경될 예정이다.(2024년)

기능올림픽의 많은 직종 중 국제기능올림픽대회가 있는 직종이며 전국대회 1, 2위 입상자는 높은 확률로 삼성전자에 입사가 가능하다.
이는 국제기능올림픽 국가대표 후보군 훈련의 목적으로 정보기술 직종 선수를 양성하기 때문이다.
(국제대회에서의 직종 명은 IT Software Solutions for Business (비즈니스를 위한 IT SW 솔루션))

현재 정보기술 취지에 맞지 않는 굉장히 뒤쳐진 직종이다.
정보기술이라는 직종 환경은 데이터 처리 기술이 과거 2000년대 초반과 현재 아예 다른 직종으로 보일정도로 발전 되었지만,
실제 기능경기대회는 사무 자동화 수준의 기술과 타자 빠름 겨루기 대회를 치루고 있다.
2021년 직종 개편으로 프로그래밍 비중이 높아질 확률이 높다.

그러나, 2015년 직종 개편의 첫 단추가 잘못 끼워진 문제로
여전히 Swing 프로그래밍을 해야하는 문제가 아직 남아있다.
매년 지속적인 직종 개편을 통해 해소될 여지가 보인다.
Excel/VBA 과제는 실무에 적응하기 좋은 과제로 개편 이후에도 계속 해야될 과제로 될 가능성이 높다.

참고로 국내대회와 국제대회의 환경이 완전히 다르다. 국제대회는 지속적으로 개편되고 있는 반면 국내대회는 시궁창이다.
기능경기대회 관리 규정안에는 국제대회와 경기 방식을 맞추어 항상 최신화로 적용하라고 명시 되어 있다.

2. 국제 대회

국제대회는 어플리케이션을 Visual Studio로 개발하며 웹 어플리케이션 서버까지 구축하게 된다.
Java로 Desktop Application을 개발해도 된다. 다만 Java를 선택한 선수는 통계적으로 입상한 이력이 전무하다.
안드로이드 App 개발은 자마린 또는 안드로이드 스튜디오를 선택하는데,
이 경우 대회에서 안드로이드 플랫폼 디바이스에서 채점하므로 전략적으로는 안드로이드 스튜디오 선택을 추천한다.
자마린은 IOS와 안드로이드, Desktop PC 등 다양한 빌드를 지원하는 크로스 플랫폼이라 환경적 불이익이 있을 수 있으나,
반대로 생각하면 C# 언어 하나로 국제대회 과제를 모조리 해결 가능하다는 뜻이기도하다.
-다만, Xamarin을 이용한 선수들은 개발 환경 문제로 모두 망했다.-

DBMS의 선택 폭도 있다. MySQL 또는 SQL Server를 선택할 수 있다.
이외 모바일 애플리케이션을 만드는 과제까지 있다.

2021년도에는 웹 애플리케이션을 개발하는 부분이 추가 되었다.
vue.js, react, angular 등 프레임워크 중 하나를 택하여 과제를 만들 수 있다.

국제대회의 문서 작성은 실제 개발에 필요한 문서 산출물을 작성하는 과제로 되어 있다.
예를들어 테스팅 문서 작성, ERD, Class Diagram 등이다. Word, PPT 이외에도 Visio를 사용한다.
국내대회는 잘못된 지역간 경쟁 문제로 아예 office를 제거하려고 한다.
점수 비중이 작고, 대부분 선수들이 문서 작성에서 점수 차이를 내지 않기에 그냥 직종 특성상 하는 과제이다.

국제대회의 경우 과제가 1, 2, 3, 4과제로 딱딱 나뉘어지는게 아니다.
총 4일간 오전/오후로 나뉜 8개 과제를 어떤 날에 무엇을 하게 될지 모르는 상태에서 진행하게된다.

3. 국내대회 구성

2021년 개편 이후, 프로그래밍 과제 위주로 구성되어 있다.
Excel/VBA 과제 1개와 Java Programming 과제 2개이다.
Excel 과제가 남아 있는 이유는 데이터를 이해하는 안목과
실제 실무에서 가장 유용하게 쓰이는 도구로 오히려 Java 프로그래밍보다 더 메리트가
있는 기술이고, 고등학생들이 쉽게 접할 수 있기 때문이라고 볼 수 있다.
과제명 시간 내용
1과제 스프레드시트 4시간엑셀 기본 도구와 VBA를 이용해 스프레드시트 작성 과제
2과제 자바프로그래밍 4시간 JDBC, Swing으로 개발하는 Desktop App 개발 과제
3과제

3.1. 국제대회의 크나큰 장벽

기능경기대회는 국제 기술 동향에 맞게 최신 수준의 기술을 국내에도 전파하여 그에 맞는 인재를 육성하는 대회이다.
하지만, 국내대회와 국제대회의 차이가 매우 극심하다.

정보기술 국제대회는 웹 애플리케이션 서버/클라이언트(윈도우/안드로이드) 개발이 도입 되었으며 그에 맞는 소프트웨어 관리를 위한 문서 작성으로 대회를 진행한다.
나름 국제대회 과제는 서버/클라이언트를 구성하기 위한 여러 아키텍처도 직접 설계하도록 가이드 되어 있으며 이에 선수는 주어진 도구와 툴을 활용하여 과제를 해결하면 된다. (과제를 해결하기 위해 툴이 추가로 필요할 시 요청할 수도 있다!)

국내대회 환경은 국가대표 선발전까지 Java와 엑셀/VBA을 하고 있다.
자바 과제는 쌩 SQL을 이용한 Java Swing GUI 만들기를 하고 있다.
Swing을 제대로 지원하는 도구 조차 제공이 안되고 있어
선수들이 일일이 코드로 UI 컴포넌트를 배치하고 직접 실행하여 위치를 확인한다.
이를 지원하는 도구로는 WindowBuilder가 있다.
국제대회는 Java Swing 작업 시, WindowBuilder를 기본적으로 설치해준다.

그리고 DB를 운용하기 위한 프레임워크 제공도 안 되어 있으며 저수준 SQL 코딩을 JDBC로 하게된다.
저수준 Native SQL을 직접 코딩할 수 있다는건 매우 중요한 일이긴 하다.
대부분의 선수들은 Native SQL을 제대로 숙지하지 못한 상태로
간단한 SQL로 짜지 못해 Java에서 직접 처리하거나, JOIN이나 INDEX에 대한 개념이 제대로 잡히지 않아
각 선수가 전국대회 출제하는 문제지를 보면, 문제지가 문제가 되는 경우가 많다.
-선수가 짠 프로그램에 ', % 등과 같은 SQL Injection 키워드를 넣으면?-

예로 들어 DB 스키마의 데이터 중복성 문제는 매우 빈번하게 발생한 상태로 출제하며 table 및 field의 naming도 엉성하고 인코딩에 대한 오류가 가끔 발생한다.

스프레드시트 과제는 Visual Basic을 이식한 애플리케이션을 개발한다. -2000년대 초반 VB6.0 개발 환경이다.-
이렇게 힘겹게 전국대회와 평가전을 통과 했더니, 완전 새로운 환경으로 국제대회 환경을 익혀야한다.

국가대표 선발이 되고 나서 짧으면 반년, 길면 1년의 준비 기간이 주어지는데
이 기간으로 높은 역량으로 국제대회 수준의 과제 풀이를 기대하기는 힘들다.
다른 국가의 선수는 이미 현대식 개발 환경으로 국내대회부터 차근히 준비를 해왔기때문에 국제대회 적응이 힘들지 않다.

한국의 경우 국내대회부터 국제대회와 담쌓고 대회를 진행 했기에
국가대표 선발된 이후 국제대회 준비 시 매우 힘든 길을 걷게 된다.

국내대회에 매우 부정적인 입장으로 쓰였지만,
1, 2위 입상자를 보면 매우 끈기 있게게 훈련할 자세가 되어있다는 부분을 볼 수는 있다.
다만, 프로그래머로서 역량이나 재능을 판단한다면,
수준이 높지가 않아 새로운 기술들을 하나하나 배워야 한다.
무엇보다 이 분야는 영어를 많이 읽고 작문을 해야하므로 이 부분에서도 떨어지는 모습이 보인다.
국가대표 준비로 삼성에 입사하면 영어의 압박과 고수준의 문제 해결 능력에 시달리게 된다.

3.2. 각 선수간 커뮤니케이션의 부재

소프트웨어 개발 분야는 매우 빠르게 발전하는 직종이다. 이렇게 빠르게 발전하게된 이유는 환경 조성에 있다. 개발자 커뮤니티에서 개발자들을 위해 개발 툴/프레임워크등을 직접 만들고 공유한다. 발생된 이슈는 빠르게 커뮤니티를 통해 퍼져 공유되고 함께 해결한다. 이러한 환경 속에서 개발을 하다보면 함께 기술스택을 더욱 높게 쌓아주고 지속적으로 학습하는 환경이 조성된 것을 볼 수 있다.
다만, 이 정도 수준을 기대하기에는 대회를 준비하는 고등학생의 입장에서는 참여하기 힘든 수준의 레벨이긴하다.

그렇지만 직종의 발전을 위한 환경으로 정보기술 대회를 위한 커뮤니티 환경이 필요하다.
현재 정보기술 직종의 매년 전국 대회 수준은 발전하고 있지 않다. 학교에서 훈련하는 선수들은 대회를 먼저 준비한 선배들의 자료를 참고하여 훈련을 하게 되고 더욱이 이미 선배들이 기반을 다져 놓은 학교는 어느정도 훈련은 할 수 있겠지만 그 이상 발전하기가 힘든 부분이 있다.

이런 선배들이 만든 기반조차 없는 학교 선수들은 독학하기가 힘들다.
정보기술 직종에 대한 교육 환경이 부실하기에 직종 개편을 거부하는 현상까지 나타나고 있다.
몇몇 학교는 강사를 불러 교육을 받지만,
기초 수준에서는 도움이 되나 넓게 응용된 과제를 풀이할 수준까지 끌어올리기는 부족한 면이 있다.

정보기술 직종을 훈련하는 선수들이 스스로 학습하고 정보를 공유할 수 있는 사이트가 필요하고,
모르는 것이 생겼을 때 서로 이슈를 공유하여 해결할 수 있는 커뮤니티가 필요하다.
현재 Discord 방이 하나 있지만, 대화가 활성화 되어 있지는 않다.
디스코드 참여 링크

특히나 소프트웨어 직종의 발전을 위해서 가장 필요한 것이 커뮤니티이다.
한국식 경쟁에 찌든 정보기술 기능경기대회는 학교간 불신, 견제, 과도한 경쟁으로 전국대회에서 지역간 팀을 맺고 과제를 작정하고 출제하는 등 매우 안타까운 모습이 많이 보여진다.

커뮤니티가 한창 활성화 되었을 때도 학교간 과도한 경쟁으로 피를 보는 일이 많았다.
대표적인 예는 정보 교환을 전제로 문제에 대한 해답을 받고 잠수를 타거나,
질문에 대한 답변을 받고 질문을 지워버리는 등의 과도한 경쟁 현상이 있었다.

3.3. 직종 개선이 지속될 것인지?

현재 직종은 정보기술 직종이라 불릴만큼 정보기술 직종을 다루는 대회가 아니다.
수년간 발전해온 IT 직종의 환경과 너무 달라 개선되어야 하지만 개선에 있어서 문제점이 너무 많다.
2021년도 기준으로, Word/PPT 과제가 제거되어 어느정도 프로그래밍 역량이 더 집중되었긴 하였다.
하지만 아직까지 더 개편되어야 할 내용이 많다.

한국의 직업계 고등학교 교육 체계에서 높은 수준의 소프트웨어 기술을 낼 수 없다는 것도 문제다.
만약 지금 이 상태에서 안드로이드 과제가 출제되거나, 서버/클라이언트 과제를 출제된다고 보자.
어떤 고등학생들이 이 기능대회를 참가할 수 있을까?
S/W 특성화 마이스터고의 일부 학생들은 가능할 수는 있지만,
그들만을 위해 개편한 꼴이 되어버리고 형평성 문제가 생길 것이다.

그래서 현재까지는 고등학생 눈높이에서 수준이 높다고 생각하는 컴퓨터활용능력 1급 수준의 문제가 출제되는 것이다.
-컴퓨터활용능력 1급 시험 자체도 Access 부분에 논란이 많다. 실무에서 절대 안 쓴다.-

급하게 직종을 개선해버린다면 직종이 아예 폐부될 정도의 소수의 인원만 출전하게 될 것으로 보이기에
이것은 이 직종의 문제라고 볼 수 없고, IT에 대한 한국 교육 과정의 문제로 보인다.
현재 한국은 프로그래밍 기술에 대해서는 적어도 대학에서 전산 전공해야한다는 인식이 강하게 깔려있기에
고졸에 대한 IT 취업 여건도 좋지 않다는 것이 현실이다.

국제대회는 나이 제한이 만22세로, 한국 기준으로 초대졸이거나 대졸이라면 출전하기 힘들다.
-재학 중이라면 가능하나,, 대학 학점은?-
외국의 선수들은 대학을 일찍 들어가기 때문에 만22세면 대부분 대학교의 졸업 예정이거나 이미 졸업한 선수들이 많다.

현재 이러한 분위기가 지속되어 국제대회에서 정보기술 직종이 높은 역량으로 우승할 가능성이 보이지 않는다.
-타자 속도는 한국이 제일 빠르긴함-

결국 이러한 환경 속에 국제대회 동향을 따라가지 못하여
'17년도와 '19년도 국제대회에서 메달은 획득하지 못하는 안타까운 결과를 보였다.

4. 정보기술 훈련 팁

기능을 알고 모르고에 따라 막히는 부분도 있지만, 시간 내에 작성하기 힘든 게 대부분의 준비생들이 겪는 문제이다.
사용하는 S/W의 단쿡키 사용, 타자 빠르게 치기 등으로 피지컬 적인 속도를 향상 해야하고,
알고리즘, 자료구조 훈련으로 논리적인 프로그래밍 능력 향상, 그리고
다양한 API 학습을 통해 라이브러리 지식을 늘려야 한다.

자바의 경우 자신 만의 기본 라이브러리를 만들면 소스 코드를 많이 단축 시킬 수 있다.
SQL Select Query를 2차원 Array로 변환해주는 HelperMethod를 만들거나,
SQL을 JTable로 만들어 주는 class를 만드는 등, 재사용성이 높은 API을 미리 준비하여 대회를 준비하면 자바 개발 속도가 매우 빨라진다.

엑셀의 경우 단축키를 외우거나 많이 사용하는 기능을 자기만의 단축키를 지정하여 과제를 풀면 풀이 시간이 훨씬 단축된다.
바로 가기 키 빠른 실행 도구 모음 추가
마우스로 해당 리본 메뉴나 특정 버튼을 누르는 것보다 키보드 위에 얹어진 손가락으로 단축키(Alt + ~~~)를 즉각 입력할 수 있도록 습관을 기르자. 마우스로 커서를 옮기는 시간은 과제 시간 관리에서 크나큰 오버헤드다.

타자를 빠르게 치기 위해서는 왼손/오른손 할 것 없이 두벌식에 맞게 교정하여 입력할 수 있어야 한다. 타자 키 교정이 필요한지 판단하는 기준은 자신의 손가락이 타자 입력시 왼손 오른손 손가락이 좌우로 심하게 교차된다면 교정이 필요하다. (예: 왼 손가락으로 U, Y, O, P등의 입력을 한다면 교정이 필요하다. 그것은 오타를 많이 야기하는 타자법이다. 그런 입력은 오른손가락으로도 충분하다)

한컴타자연습을 이용하여 교정할 수 있다. 관련 블로그 포스트(한컴타자연습 다운로드)

중요한건 과제를 연습하며 손에 익혀 자연스럽게 단축키가 나오도록 만드는 것이다.

5. 1과제 스프레드시트

스프레드시트(엑셀)
과제 시간 : 4시간
배점 : 30점

주어진 데이터를 처리할 수 있는 데이터 시트를 작성하는 과제이다. 엑셀은 데이터 실무의 기본이 되는 프로그램으로 사무 업무/프로그램 개발 모든 업무에 올라운더로 도움이 되는 소프트웨어 도구이다. 정보기술의 역사 처음부터 지금까지 쭉 함께 해왔던 과제인만큼 중요도는 높으며 엑셀을 잘 다룰 줄 아는 사람은 회사 업무를 굉장히 빨리 처리할 뿐만 아니라 데이터에 대한 이해도가 높아진다.

과제는 주로 엑셀로 작업하기 위한 기본 데이터가 주어지고, 해당 데이터 형식에 맞는 데이터의 추가/읽기/편집/삭제(CRUD)의 기능이나 해당 데이터를 차트/피벗 테이블 등의 도구로 시각화하여 나타내는 과제와 VBA를 이용한 자동화 처리 등이 있다.
2015년 직종 개편 이전 2과제 였던 액세스와 더불어 정보기술에서 가장 중요한 과제였으며 아직까지도 중요도는 높은 과제이다.

다만, 과제에서 요구하는 고급 수준의 지식은 현업에서는 요구하지 않는다. 오히려 소프트웨어 개발 업무를 한다면 웬만한 자동화 데이터 처리는 자기가 활용할 수 있는 스크립트 언어로 처리한다. (주로 Python을 이용한다. 데이터 사이언스를 전공했다라면 R이나 MatLab을 활용한다.)

대부분의 한국 기업은 데이터 처리를 전부 엑셀로 하기 때문에 요긴하게 써먹을 수 있는 지식이 된다.

5.1. 필요 지식

5.1.1. 엑셀 기능

셀 서식, 차트, 도형 삽입, 하이퍼 링크, 부분합, 고급 필터 등의 엑셀에 기본적으로 내장된 기능을 뜻하며 아래 책을 통해서 학습하는 것을 추천한다.
엑셀 기본 기능을 이해하기 위한 추천 책-1
엑셀 기본 기능을 이해하기 위한 추천 책-2

5.1.2. 엑셀 차트

차트를 만드는 다양한 고급 기술이 서술되어 있다. 다만 10년이상의 된 책들이 대부분이라 절판되어 있다.
엑셀 고급 차트 추천 책-1
엑셀 고급 차트 추천 책-2

5.1.3. 엑셀 수식 활용

수식을 응용하여 계산할 수 있는 대부분을 소개하고 있다. 수식을 잘 활용하는 것만으로도 VBA 사용을 절반이상 줄일 수 있다.
아쉽게도 대두분 절판되어 있다. 중고로 구매하거나 책방에서 찾을 수 있다면 훈련하기에 딱 좋다.
엑셀 고급 수식 활용 추천 책-1
엑셀 고급 수식 활용 추천 책-2

5.1.4. VBA

VBA는 다양한 MS Application을 자동화 프로그래밍이 가능하게 하는 도구이다. 엑셀에서 제공되는 다양한 기능을 Visual Basic으로 프로그래밍 할 수 있다. 여기서 사용되는 Excel API는 대부분의 Excel 기능을 프로그래밍 할 수 있도록 강력하게 제공되어 있다. 프로그래밍 과제의 단점으로 대부분의 선수들이 자기만 아는 라이브러리를 독학하여 전국대회 과제에 출제하려는 것이 현실이다.
이는 과제 직종 규정으로 강력이 제재 해야하지만 직종 관리가 제대로 되고 있지 않아, 그들만의 리그가 펼쳐치고 있다.
추천하는 책으로는 아래가 있다.
엑셀 VBA 학습용 추천 책-1
엑셀 VBA 학습용 추천 책-2
엑셀 VBA 학습용 추천 책-3


6. 2, 3과제 자바 프로그래밍

자바 프로그래밍
과제 시간 : 4시간
배점 : 35점

주어진 문제를 해결하기 위한 데이터베이스를 구축하고 데이터베이스의 데이터를 처리(CRUD)하는 어플리케이션을 만드는 과제이다.

'15년에 처음으로 도입된 과제이다.
기존의 2과제-Database 과제는 MS-Access로 간단한 Local 데이터베이스를 구축하고 바로 연동하여 응용 프로그램을 개발하는 환경이였다.
'13년 국제대회까지는 Office를 이용한 응용 프로그램 개발이였으나 '15년부터 국제대회부터 닷넷/Java 환경을 도입함에 따라 국내대회도 2과제만 Java를 이용한 응용 프로그램 개발로 개편이 되었다.

정보기술 과제 중 가장 중요한 과제이다.
서버를 개발하기 위해 가장 많이 쓰이는 언어 중 하나이기도 하다.관련자료
다만 국내대회에서의 Java 과제는 서버 개발이 아닌 GUI개발로 쓰이고 있으며, 현업에서 GUI 개발을 위해 Java 언어를 쓰는 경우는 매우 드물다.

2018년 전국대회 기준, Java 과제에서 13점을 넘는 선수가 10명도 되지 않았다.

2021년 기준, 직종 개편으로 2, 3과제 모두 Java를 하게 될 예정이다.

6.1. 필요 지식

자바 기본 문법을 필히 알고 있어야 한다.
각종 블로그 포스트, 사이트에서 조잡하게 나와 있는 튜토리얼을 따르는 것보다는 책을 구매하는 것을 추천한다.
자바의 신 (자바8까지의 모든 문법을 설명하는 완벽한 책이다. Swing에 대한 강의는 없으나, JavaFx에 대한 강의는 수록되어 있다.)

MySQL의 기본 지침서로 아래 책을 추천한다. WorkBench라는 유용한 툴의 설명까지 다룬다.
이것이 MySQL이다
오픈 튜토리얼 - Workbench 활용 모델링 실습

아래는 Java에서 MySQL에 적재된 데이터를 처리하는 것을 알려주는 도서이다.
JDBC 데이터베이스 프로그래밍

자바의 기본 문법과 기본 JDBC, Swing에 관련된 강의가 수록된 도서이다.
다만, 상위 JDK의 문법은 수록되어 있지 않다. 자바 과제에서 이용될 Swing과 JDBC 입문용.
퍼펙트 자바

Swing을 이용한 Java GUI 만들기 강좌. (Swing은 잘 사용하지 않는 영역이라 국내서적을 찾아 보기 힘들다.)
영문 자료
한글 자료

Swing을 이용한 GUI 학습은 Google에 꾸준히 검색하면서 찾아봐야하며 국내 자료는 찾기 힘드니 관련 문제를 영어로 검색하여 해결하는 방법을 익혀야한다.
보통 이를 위해 How to + 동사 + 관련 문제 해결을 위한 명사 + in java swing를 검색하면 80%이상의 확률로 원하는 자료를 찾을 수 있으니 참고.
예를 들어 Chart 따위를 만들고 싶다면 How to create a chart in java swing 이렇게 검색하면 된다.