IT 자격증 정보의 모든 것



안녕하세요! 

오늘은 애자일에 대해서 얘기해볼텐데요.

애자일에 대해서 알고 계신가요?

삼성에서 갤럭시S7 모델부터 애자일 개발 프로세스를 적용한다고 발표하여

알고 계신 분들이 많을 것 같습니다.

간단하게 애자일을 설명하자면 

소프트웨어 개발 방법에 있어 아무런 계획이 없는 개발 방법과

계획이 지나치게 많은 방법들 사이에서 

타협점을 찾고자 만들어진 개념입니다.


고전적인 방법론인 폭포수 모델과 구별되는 가장 큰 차이점은

아무래도 문서가 아닌 로딩을 통한 실질적인 방법론이라는 것이겠죠?





Agile 1. 날렵한, 민첩한 2. (생각이) 재빠른, 기민한


애자일은 ‘민첩한’, ‘기민한’ 이라는 의미를 갖고 있습니다. 

애자일 개발 방법론 또한 그 본래 의미를 따릅니다. 

정해진 계획만 따르기보다, 개발 주기 혹은 소프트웨어 개발 환경에 따라 

유연하게 대처하는 방식을 뜻하고 있습니다. 

애자일은 무슨 뜻이고 어떻게 사용되는지 더 자세하게 알아보도록 하겠습니다!




애자일이란?


애자일은 문서작업 및 설계에 집중하던 개발 방식에서 벗어나 

좀 더 프로그래밍에 집중하는 개발 방법론입니다. 

쉽게 예를 들자면 고객이 소프트웨어를 제작해달라고 요청했을 때, 

일정한 주기를 정해 프로토 타입의 프로그램을 만들어 고객의 참여를 유도해 

즉각적인 피드백을 받아 수정을 통해 점진적으로 나아가는 방법을 뜻합니다. 

이 과정 속에서 고객의 요구를 즉각적이고 민첩하게 반응하기 때문에 애자일이라고 부르는 것이죠.





애자일 특징


애자일 방식은 소프트웨어 개발 방법론으로 쓰이지만, 

그 자체가 독립된 개념으로 사용되기도 합니다. 

본래 형용사 의미를 활용해 ‘좀 더 가볍고 기민한 작업’을 

이르는 표현으로 확장된 셈인데요. 

그래서 개발에 집중한 세부적인 애자일 방법론이 따로 존재합니다. 

‘익스트림 프로그래밍’과 ‘스크럼’, ‘크리스탈 패밀리’, ‘피처 드리븐 개발’ 등이 여기에 포함됩니다. 

2000년대 초반 성공 사례가 널리 알려지면서 애자일 방법론을 

활용한 여러 개발 방식이 생겨나기도 했죠. 







애자일을 지원하는 소프트웨어 도구들


애자일의 인기가 높아짐에 따라 일부 업체에서는 

애자일 개발 방식을 지원하는 소프트웨어 개발도구(SDK)를 따로 출시하고 있습니다. 

그 대표적인 사례로 ‘아틀라시안’, ‘액소소프트’가 있습니다. 

국내에서는 한국HP가 애자일 방법론을 국내에 도입시키기 위해 

‘HP 애자일 컨설팅 서비스 및 소프트웨어’를 내놓기도 했고, 

쿠팡은 ‘애자일 프로세스’를 업계에서 제일 먼저 도입하여 

모바일 응용프로그램(앱)의 사용자 환경(UI)를 개선했습니다. 






안녕하세요! 컴파일 언어, 인터프리터 언어, 스크립트 언어 등 여러 종류의 언어가 있는데요. 

오늘은 각 언어들의 차이점에 대해서 알아봅시다! 



프로그래밍 언어


먼저 가장 큰 개념인 프로그래밍 언어란 무엇인지 알아보아요.

프로그래밍 언어는 말 그대로 컴퓨터에서 일을 수행하는 프로그램을 작성하기 위해

사용하는 기호 체계를 의미하는데요. 굉장히 중요한 의미를 갖고 있습니다.

컴퓨터는 0과 1만을 이해하기 때문에 이러한 기계어 혹은 머신 코드와

인간의 언어 사이에서 중간 다리 역할을 해주는 것이 바로 프로그래밍 언어이기 때문입니다.

프로그래밍 언어는 프로그래밍의 방법에 큰 영향을 주며,

컴퓨터에 대한 이해와 활용에 매우 큰 영향을 끼쳐 왔어요.

사실상 프로그래밍 언어의 개발에 대한 개념과 연구는 컴퓨터 공학의

기본이 된다고 볼 수 있습니다. 때문에 컴퓨터 프로그래머는 물론 

컴퓨터 공학을 전공하는 학생들에게는 반드시 필요한 역량이에요.

프로그래밍 언어는 크게 저급 언어와 고급 언어로 나뉘는데요.

저급 언어에서는 어셈블리 언어가 대표적이고, 

고급 언어에는 알골, 포트란, 코볼, 베이식, 파스칼, 에이다 등이 있어요.

또한 C언어와 C++, C#는 고급 언어임에도 불구하고 어셈블리 언어 수준으로

하드웨어 제어가 가능하기 때문에 ‘중급 언어’로 분류되기도 합니다.

그렇다면 컴파일 언어와 인터프리터 언어는 어떻게 분류된 언어일까요?




컴파일 언어와 인터프리터 언어


각 프로그래밍 언어들은 컴파일러와 번역기를 사용하여 

머신 코드로 바뀌어 컴퓨터에서 실행됩니다.

컴파일 언어의 실행 단계 특징은 컴파일러를 거친다는 점이에요.



컴파일 언어는 작성된 코드를 컴파일러를 통해 머신 코드로 변환하고 

변환된 파일을 컴퓨터에서 실행시키는 단계를 거칩니다.

C++로 예를 들었을 때, 소스 코드(.cpp)를 컴파일러를 통해 머신코드(.exe)로 변경하고

컴퓨터에서 실행이 가능한 exe파일로 변환된 파일이 

컴퓨터에서 실행되는 것이죠!

즉, 컴파일 언어를 실행시키기 위해선 ‘컴파일러’라는 중간 단계가 필요해요.

반면 인터프리터 언어는 내가 작성한 코드(소스 코드)를

별도의 컴파일 과정 없이 바로 실행시킬 수 있다는 것이 특징입니다.


인터프리터(번역기)에 의해 입력과 동시에 머신 코드로 번역되어 실행되기 때문에

생산 속도가 굉장히 빨라요.

또한 컴파일 언어보다 훨씬 더 단순하고 배우기 쉽답니다.

그렇다면 컴파일 언어와 인터프리터 언어의 차이점을 자세히 알아볼까요?



컴파일 언어와 인터프리터 언어의 차이점


1. 실행 단계의 차이


앞서 말했듯 컴파일 언어는 ‘컴파일러’ 단계가 필요하고 

인터프리터 언어는 별도의 ‘컴파일러’ 과정이 필요하지 않아요.




2. 생산 속도의 차이


1번과 같은 맥락인데요. 컴파일 언어의 경우 ‘컴파일러’ 과정이 들어가기 때문에

인터프리터 언어보다 생산 속도가 느립니다. 

인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르죠.




3. 소스 코드 작성 제약사항


컴파일형 언어에는 소스 코드 작성을 위한 제약사항이 스크립트형 언어보다 더 많답닏.

따라서 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 해요.

또한 각종 문법에 따른 제약 사항 들도 알아야 하구요.




4. 디버깅


하지만 인터프리터 언어는 간편한 만큼 잃는 것도 있답니다.

소스 코드가 실행되기 전까지는 소스 코드의 버그를 인지하는 것이 어려워요.

물론, 인지할 순 있지만 컴파일 언어에 비해 오류 인지 시점이 늦습니다.

또한 컴파일 언어가 디버깅 작업이 훨씬 수월해요.




5. 실행 속도


생산 속도는 인터프리터 언어가 더 좋았다면

실행 속도는 컴파일 언어가 훨씬 더 빠르답니다.

컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에

번역기에 의해 번역이 되고 실행되는 인터프리터 언어에 비해 훨씬 빨라요.

실행 속도는 

C언어, C++ -> Java -> Python 순으로 느려지기 때문에

연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않아요.



이렇게 컴파일 언어와 인터프리터 언어의 차이점에 대해서 알아보았는데요.
각 언어마다 특징이 있기 때문에
자신에게 필요한 조건에 맞춰 프로그래밍 언어를 선택하는 것이
가장 중요할 것 같아요.
다만 꼭 하나를 추천하자면 인터프리터 언어에서는 배우기 쉽고
범용적인 목적으로 널리 사용 중인 파이썬을 추천하고
컴파일 언어에서는 다른 컴파일 언어에 비해 쉽게 배울 수 있고
현장에서 가장 많이 사용하고 있는 자바를 추천합니다!




안녕하세요! 

IT 기술이 나날이 발전하면서 사람들의 생활 양식이나 직업에도 

큰 변화가 나타나고 있는데요. 

특히 결제나 거래가 대부분 온라인에서 이뤄지다 보니 

정보해킹이나 보이스피싱과 같은 피해도 늘어나는 추세입니다. 

때문에 해킹을 분석하고 방어할 수 있는 장비와 소프트웨어 

그리고 이를 다룰 수 있는 인재가 필요한 상황으로 IT관련하여 

많은 직업들이 새롭게 생겨나고 있습니다. 

오늘은 그 중에서도 미래 유망직업 1위로 꼽힌 

정보보안전문가에 대해서 알아보겠습니다. 





정보보안전문가란?


먼저 정보보안전문가는 어떤 일을 수행하는 사람인지 알아보도록 하겠습니다. 

정보보안전문가는 해커의 침입과 각종 바이러스 발생에 대비해 

전산망을 전문적으로 보안 및 유지하는 사람을 뜻합니다. 

또한 서버의 하드웨어와 소프트웨어에 대한 기술을 바탕으로 

향후 일어날 수 있는 보안상 문제를 해결하고 예방합니다. 

이러한 정보보안전문가가 되기 위해선 운영체제, 데이터베이스, 

시스템 관리, C언어, 네트워크 프로그래밍 등에 대한 지식이 필요하며 

윤리성을 반드시 갖춰야 합니다. 

정보보안전문가는 화이트해커라고도 불리는데요. 

순수하게 공부와 학업을 목적으로 해킹을 하는 사람으로, 

개인적인 목적을 노려 악의적으로 해킹하는 ‘블랙해커’와는 구분되는 개념입니다. 

서버의 취약점을 연구하여 해킹방어 전략을 구상하는 것이 목적이기 때문이죠.





정보보안전문가가 되기 위해선


정보보안전문가는 단어 뜻 그대로 정보의 보안을 지키고 

불법적인 침투나 침해에 대응하고 이러한 공격을 사전에 예방하는 등 

실시간으로 감지, 탐지하는 역할을 합니다. 

따라서 블랙해커가 어떤 루트로 어떤 방식으로 

공격을 할지 모르기 때문에 철저한 대비가 기본이며, 

다양한 공격 기법과 그에 대한 대응 방법을 알아야 합니다. 

그래서 다른 자격증 시험보다도 정보보안전문가와 관련된 

자격증 시험들은 난이도가 높은 편이죠. 

정보보안전문가와 관련된 자격증은 

시스템 – LPIC, MCITP가 있고 

네트워크 – CCNA, CCNP가 있습니다. 

뿐만 아니라 프로그래밍, 시스템, 네트워크 교육이 필요하고 

리버싱, 포렌식, 악성코드분석 등 필요한 정보보안 교육도 필요합니다. 





위에서 알려드린 자격증 외에도 정보보안기사 자격증도 따로 있습니다. 
정보보안전문가 자격증의 시험과목을 자세히 살펴보면 
시스템 보안, 네트워크 보안, 어플리케이션 보안과 암호학과 
보안요소기술을 다루는 정보보안일반, 관련법규를 다루는 정보보안 관리 및 법규로 구성됩니다. 
필기도 엄청나게 어렵지만 어떻게 간신히 통과한다고 해도 
실기는 필기 합격생의 10~20% 남짓이라고 하네요. 
즉 실제로 필기, 실기를 모두 합격하여 정보보안전문가 자격증을 
손에 쥐는 사람은 시험 응시자 중 2~5% 수준으로 굉장히 낮은 편입니다. 


결코 쉽지 않지만 자격증을 취득한다면 자신의 실력을 
제대로 인정받을 수 있는 시험들이기 때문에 
정보보안전문가를 꿈꾸는 학생들이라면 
반드시 자격증 취득을 목표로 하는 것이 좋습니다. 





IT기술이 발전하면서 우리 생활의 많은 부분이 변화하였습니다. 교육 또한 예외는 아닌데요. 기존 교실의 모습에서 IT 기술을 만난 현재의 교실은 어떤 모습일까요? 오늘은 IT 기술이 도입된 교육 시스템 중 하나인 플립러닝 (flipped learning)에 대해 알아보겠습니다! 


플립러닝이란 온라인을 통한 선행학습 뒤 오프라인 강의를 통해 교수와 토론식 강의를 진행하는 '역진행 수업 방식'을 뜻합니다. 기존 전통적인 수업 방식과는 정반대로, 수업에 앞서 학생들이 교수가 제공한 강연 영상을 미리 학습하고, 강의실에서는 토론이나 과제 풀이를 진행하는 형태의 수업 방식이죠. 우리나라의 경우 카이스트(KAIST), 울산과학기술원(UNIST), 서울대가 이 방식을 도입하여 시행하고 있습니다. 그러나 플립러닝을 도입한 미국 캘리포니아 소재 일부 대학의 경우 강연은 하버드 대학이나 메사추세츠 공과대학(MIT) 교수 수업으로 대체하고 담당 교수는 보조적인 역할만 하는 형태로 운영되는 경우까지 발생하기도 해 교육계에 기회이자 위협이라는 평가를 받고 있습니다. 





플립러닝은 흔히 거꾸로 교실, 거꾸로 수업이라고 많이 칭하는데요. 전통적 교육방법과 반대되는 교육방법이라고 하여 붙여진 이름입니다. 기존 수업 방식이 선생님의 수업을 일방적으로 듣고, 자습이나 문제풀이를 통해 복습을 하는 학습형태 대신에 플립러닝은 먼저 자습을 통해 예습을 하고 (인터넷 강의 활용) 그 후 교실에서 만난 친구들과 학생 중심의 발표, 토론, 질의 등으로 학생 참여형 수업이 이뤄집니다. 기존 수업 방식을 떠올린다면 정말 거꾸로 수업이라고 칭할만 하겠죠?



그렇다면 우리나라에서는 이 플립러닝이 어떻게 적용되었는지 사례를 살펴볼까요?




플립러닝 사례 1 ) 카이스트의 '에듀케이션 3.0'


카이스트의 '에듀케이션 3.0'은 강의 없앤 강의실로 불립니다. 좌·우·정면이 칠판과 화이트보드로 둘러 싸여 있는 특이한 구조를 보이고 있는데요. 2012년 13개 과목으로 시작된 에듀케이션 3.0 수업은 2016년 141개 과목으로 확대되었고, 수강생은 488명에서 3291명으로 급격하게 증가했습니다. 또한 올해는 더욱 더 늘어날 추세라고 합니다. 같은 과목 수업을 강의식으로 했을 때와 3.0 방식으로 헀을 때 학생들의 점수를 비교해보면 평균 약 10점 가량이 높아졌다고 합니다. 토론과 협력 중심의 수업이 학생들 간의 편차를 줄이고 성적을 고루 끌어올리는 데에 효과적으로 작용한 것이죠.



플립러닝 사례 2) 유투엠(U2M)의 '말하는 수학'


유투엠 역시 강의실의 좌,우,정면이 칠판으로 둘러 싸여 있는데요. 교실의 주인공은 선생님이 아닌, 바로 학생들입니다. 학생들 중심으로 수업이 이뤄지기 때문에 다른 생각에 빠져있거나 조느라 수업에 참여하지 못하는 학생 없이 강의실에 있는 모든 학생들이 끊임없이 고민하고 생각하고 문제에 대해 토론합니다. 서로 아는 것에 대해 설명해주고 또 친구에게 배우면서 정말 학습의 열정이 가득찬 모습을 볼 수 있는데요. 그만큼 수업 효과도 기존 방식보다 훨씬 좋아졌다고 합니다.





이렇게 플립러닝의 가장 큰 장점은 무엇보다 학생들의 참여도가 높게 작용한다는 사실이 아닐까 싶습니다. 수업 시간을 헛으로 낭비하지 않고 집중하여 좋은 효율을 보여주는 수업 방식이기 때문에 여러 교육 업계에서 관심이 높아지고 있는데요. 오래 전부터 비판의 대상이 되어왔던 주입식 교육을 뒤집을 수 있는 가장 현실적인 대안이 바로 플립러닝이라고 생각합니다. 또한 국내 대학에서 꾸준하게 플립러닝 방식을 채택한 강의를 늘려나가고 있는 추세이기 때문에 우리나라 교육 시스템에 큰 변화가 생기지 않을까란 추측도 해봅니다. 





안녕하세요! 오늘은 머신러닝에 대해서 이야기해보려고 합니다.

최근 인공지능이나 사물 인터넷 등에 대한 이슈가 커지면서 IT 기술에 관심이 점점 더 커지고 있는데요그 중에서도 인공지능의 한 분야로 4차 산업혁명의 핵심 키워드로 꼽히는 머신러닝은 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법을 뜻합니다. 하지만 머신러닝 기술은 최근에 새롭게 만들어진 것이 아니랍니다. 60년 전부터 진행해오던 연구였죠. 실제로 머신러닝이란 용어는 1959아서 사무엘의 논문에서 최초로 정의된 바 있습니다. 이후 계속해서 연구를 통해 80~90년대까지 발전해오다가 2000년대 중반에 들어서면서 급속한 발전을 이루게 되었습니다. 그렇다면 머신러닝이 급속하게 발전하게 된 이유는 무엇일까요?

 




머신러닝의 발전 계기

머신러닝이 급속도로 발전하게 된 계기에는 먼저 기술의 발달이 있겠죠? 특히 사물인터넷이 발달하면서 막대한 양의 데이터가 발생하기 시작했습니다. 사람이 처리할 수 있는 정보의 양을 뛰어넘어 버린 것이죠. 컴퓨터의 성능이 그 방대한 양의 데이터를 처리할 수 있을 만큼 발전하면서 머신러닝 기술 또한 발전하게 되었습니다. 또한 머신러닝 기술 줄 하나인 딥 러닝기술이 탄생하면서 인공 신경망 분야가 두드러진 발전을 보여주었죠.




 

딥 러닝의 발전

딥 러닝이란 머신 러닝의 하위 개념으로서 모델을 학습하고 데이터를 분류한다는 공통점을 갖습니다. 딥 러닝에 대해서 자세히 살펴볼까요? 딥러닝은 사물이나 데이터를 군집화하거나 분류하는 데 사용하는 기술입니다. 예를 들어 컴퓨터는 사진만으로 개와 고양이를 구분해내지 못하죠. 하지만 사람은 아주 쉽게 구분해낼 수 있습니다. 컴퓨터에게 인간의 이런 능력을 부여하기 위해 고안된 기술이 바로 머신 러닝이고 데이터를 어떻게 분류할 것인가를 놓고 마련된 알고리즘 중 하나가 바로 딥 러닝입니다. ‘의사결정나무베이지안망’, ‘서포트벡터머신’, ‘인공신경망등이 대표적이었지만 딥 러닝은 그 중에서도 인공신경망의 후예라고 볼 수 있습니다. 인공신경망의 한계를 극복하고자 제안된 학습 방법인 딥 러닝의 핵심은 바로 분류를 통한 예측인데요. 수많은 데이터 속에서 패턴을 발견해 인간이 사물을 구분하듯 컴퓨터가 데이터를 나누는 것을 말합니다. 이 분류 방식은 지도 학습비지도 학습으로 나뉩니다. 지도 학습 방법은 컴퓨터에 먼저 정보를 입력하여 학습하게 하는 방법입니다. 컴퓨터에게 고양이 사진을 주면서 고양이 사진으로 인식할 수 있도록 정보를 먼저 입력해주는 것이죠. 컴퓨터는 이러한 학습 절차를 통해 고양이 사진을 분류해내게 됩니다. 반면 비지도 학습은 말 그대로 학습 절차가 없답니다. 이 사진은 고양이라는 별도의 학습 없이 컴퓨터가 스스로 고양이 사진을 분류하도록 합니다. 때문에 지도학습보다 더 진보된 학습 기술이며 컴퓨터의 높은 연산 능력이 요구되는 기술입니다






머신 러닝의 미래

머신 러닝은 사람이 처리할 수 없는 속도로 방대한 양의 데이터를 분석하고 또 예측까지 하는 기술이기 때문에 미래에 굉장히 다양한 분야에서 활용될 것이란 전망을 보이고 있습니다. 이미 이름이 잘 알려진 기업들은 머신 러닝 기술을 활용하고 또 연구하고 있는데요. 이젠 너무나도 익숙한 포털사이트의 검색어 자동완성기능, 페이스북 자동 태깅, 스팸메일 필터 등이 있습니다. 머신러닝에 대한 구글이나 타 IT 기업들의 투자가 어마어마하기 때문에 발전 속도가 앞으로 더욱 더 빨라질 것이란 예측도 나오고 있습니다. 영화 ‘Her’속에서 남자주인공이 인공지능과 대화하고 생각을 나누는 모습이 머지않아 현실에서도 가능할 것으로 보입니다



이렇게 머신러닝과 딥 러닝에 대해서 알아보았습니다. 4차 산업혁명이 시작되면서 기술 발전의 속도도 더욱 더 빨라진 것 같아요. 특히 구글 포토나 클라우드 서비스를 이용하면서 컴퓨터가 정말 똑똑해졌다는 느낌이 많이 드는데요. 이러한 기술에 뒤쳐지지 않도록 IT 공부에 더욱 더 힘써야겠습니다! 



안녕하세요! 오늘은 개발자가 갖춰야 할 필수 역량에 대해서 알아볼까 합니다.

특히 4차 산업혁명의 시대가 열리면서 프로그래머, 즉 IT 개발자에 대한 관심이 점점 더 높아지고 있는데요.

그럼 프로그래머(IT개발자)가 갖춰야 할 필수 역량은 무엇인지 알아볼까요?




개발자 필수 역량





1. 커뮤니케이션 능력


가장 먼저, 개발자에게 필요한 능력은 커뮤니케이션이 아닐까 생각됩니다. 프로그램은 혼자서 만들어내는 것이 아니라 여러 사람들의 의견이 모아 만들어지는 것이기 때문에 반드시 커뮤니케이션 능력이 좋아야 좋은 개발자가 될 수 있는데요. 개발자뿐만 아니라 모든 직무가 커뮤니케이션 능력을 중요시하는 만큼 반드시 갖춰야 할 필수 역량이랍니다. 또한 프로그램은 만들어 낸 사람이 아닌, 프로그램을 사용하는 사람이 만족해야 하는 구조이기 때문에 이용자들의 의견을 잘 수용하려는 자세가 필요해요. 또한 기획자, 개발자, 디자이너 간의 원활한 커뮤니케이션이 이뤄져야 완벽한 프로그램이 탄생하게 된답니다.





2. 학습 역량


IT 기술은 빠르게 변화하는 기술 중 하나로 꼽히는데요. 기술 변화의 속도가 매우 빠르기 때문에 새로운 기술에 대한 습득력이 좋아야합니다. 따라서 IT 환경 변화에 따라 계속해서 공부하는 자세를 가져야겠죠? 조금이라도 공부에 소홀해진다면 뒤쳐지는 것은 시간 문제랍니다. 여기서 공부란 그저 이론 학습이 아닌 실무에서 활용가능한 업무 능력을 뜻하는 것으로 이론뿐만 아니라 실무능력 향상 능력까지 필요합니다. 






3. 프로그래밍 언어


사실상 가장 기본적인 필수역량이 될 것 같은데요. 프로그램을 만들기 위해선 프로그래밍 작업이 필요하고, 또 프로그래밍 작업을 수행하기 위해선 프로그래밍 언어를 알아야합니다! C언어, 자바, 파이썬 등 여러 종류의 프로그래밍 언어가 있고 기업마다 사용하는 프로그래밍 언어가 다르기 때문에 선호하는 기업에 맞춰 프로그래밍 언어를 배우면 될 것 같습니다. 특히 C언어 같은 경우, 대학교 전공 수업으로도 접하는 사람이 많기 때문에 가장 널리 이용되고 있는 프로그래밍 언어가 아닐까 생각이 드는데요. 기본적으로 한 가지의 프로그래밍 언어를 마스터하고 부가적으로 다른 프로그래밍 언어도 다룰 줄 안다면 좋은 개발자가 될 수 있지 않을까요?



네 이렇게 프로그래머(IT개발자)의 필수역량에 대해서 알아보았습니다. 개발자를 꿈꾸지만 프로그래밍에 대한 지식이 없다면 결코 전문가가 될 수 없겠죠! 따라서 지속적은 지식 습득과 실무 경험이 최고의 프로그래머로 만들어주는 발판이 될 것 같습니다. 프로그래머로 진로를 선택한 분들, 목표를 정해두고 꼭 이룰 수 있도록 꾸준한 학습과 의지를 응원합니다!




안녕하세요! 오늘은 얼마 전에 미국 샌프란시스코에서 열렸던 ‘세계개발자회의(WWDC) 2017’ 소식을 가져왔습니다. 애플은 올 가을 신제품과 함께 업데이트 예정인 ‘iOS11’을 미리 그 자리에서 공개하여 사람들의 이목을 끌었는데요. 과연 어떤 점이 더 좋아졌고, 어떻게 변했는지 그 주요 기능에 대해서 알아볼까 합니다.






1. iOS11 주요 기능 - Offload Unused Apps

용량 제한의 노예가 되셨던 분들이라면 환호할 기능이 아닐까 생각되는데요. 바로 사용하지 않는 앱들을 자동으로 삭제해주는 기능이 생겼기 때문입니다. 저장공간 확보와 불필요한 프로그램 충돌을 막기 위해 생겨났는데요. 특이한 점은 문서나 데이터 정보들은 그대로 유지가 되기 때문에 재설치를 하면 그대로 사용할 수 있습니다. 


2. iOS11 주요 기능 – Scan QR Codes

아이폰을 이용하면서 살짝 불편했던 점! 바로 QR코드를 인식하는 기본 어플이 없었다는 점인데요. iOS 11부터는 기본 카메라 어플에서 QR코드를 스캔할 수 있답니다. 


3. iOS11 주요 기능 – Screen Record 

이제 스크린샷으로 만족하지 않아도 된답니다! 정지된 화면이 아니라 Gif 파일로 움직이는 화면 레코드가 가능해졌기 때문이죠. 이제 원하는 동영상이나 행동들을 이 기능을 통해 레코딩할 수 있고 또 다른 사람들에게 공유가 가능해졌습니다. 친구가 사용 방법을 물어보면 하나하나 스크린 캡쳐해서 설명하기 여간 귀찮았는데 이 기능이라면 이제 한번에 가능하겠네요 




4. iOS11 주요 기능 – Do Not Distub While Driving 

방해금지모드의 업그레이드 버전? ‘운전 중 방해금지모드’가 생겼습니다. 안전한 운전을 위하여 생겨났는데요. 사용자가 운전 중일 때를 감지하여 자동으로 방해 금지 모드에 돌입하게 된답니다. 아이폰 화면이 밝아져서 운전 중인 사용자의 시야에 해가 되지 않도록 알림을 음소거 모드로 바꾸고, 즐겨찾기에 지정된 연락처에서 연락이 올 경우엔 자동 회신을 보내 목적지에 도착한 다음 응답할 수 있게 하는 기능입니다. 무엇보다 자동으로 운전 중 방해금지모드로 전환된다는 점이 정말 신기하네요.






5. iOS 11 주요 기능 – Share Your Wi-Fi

기존에 있던 핫스팟 기능은 사용자의 데이터를 다른 사람과 공유하는 것이라면, 이번엔 데이터가 아닌 와이파이를 다른 사람들과 공유할 수 있는 기능입니다. 이 기능을 이용한다면 따로 다른 사람들에게 와이파이 비밀번호를 알려주지 않아도 되는 것이죠. 개인적으로 카페 같은 공공장소에서 유용할 것 같은데요. 만약 비밀번호를 모라도 친구가 와이파이에 연결되어 있다면 저는 카운터까지 가지 않아도 친구의 와이파이 공유 기능을 활용하여 사용할 수 있겠죠!


6. iOS11 주요 기능 – Siri

아이폰하면 떠오르는 가장 특징적인 기능 중 하나인 시리는 더 유용하고 자연스러워졌습니다. iOS11을 사용하면 최신 머신러닝 및 인공지능(AI) 기술을 통해 개인비서 ‘시리’의 대화 능력을 향상할 수 있는데요. 표현력이 기존 버전보다 풍부해져서 더욱 더 자연스럽다고 합니다. 또 영어 단어 및 구문을 중국어, 프랑스어, 독일어, 이탈리아어, 스페인어로 번역이 가능하다고 하네요. 그리고 개인 비서라는 호칭을 가진 만큼 시리는 더욱 더 똑똑해진 모습을 볼 수 있었는데요. 사용자의 사파리, 뉴스, 메일, 메시지 사용을 기반으로 사용자에게 알맞은 맞춤형 기능을 제공하기 때문입니다. 예를 들어 사용자가 사파리에서 검색했던 내용을 시리가 관심사로 기억해줬다가 사용자가 이메일이나 메시지를 작성할 때 그 내용을 제안하는 식인 거죠. 





가을 쯤 신제품과 함께 공개될 것으로 예상되는 iOS11! 과연 기존 iOS10 보다 좋은 평가를 받을 수 있을지 기대가 됩니다.


안녕하세요 

오늘은 4차 산업혁명에서 빼놓을 수 없는 핵심 키워드, 사물 인터넷에 대해 알아봅시다!


사물 인터넷은 간단히 말하자면 말 그대로 사물 대부분이 인터넷으로 연결되어 서로 정보를 주고받는 형태라고 볼 수 있습니다.

사물에 센서를 부착하여 실시간으로 데이터를 주고 받는 것이죠. 

물론 지금도 인터넷에 연결된 사물은 많지만 지금의 형태와 ‘사물인터넷’은 중요한 점이 다릅니다.

바로 인간의 ‘조작’이 필요 없다는 것이에요. 

사물인터넷 시대가 열리면 인터넷에 연결된 기기는 

사람이 별도로 조작을 하지 않아도 알아서 정보를 주고 받으며 일을 수행합니다.

블루투스나 근거리무선통신, 센서데이터, 네트워크가 이들의 자율적인 소통을 돕는 것이죠.






옛날 인터넷이 보급되기 전, 플로피 디스크로 컴퓨터와 소통했던 방식이

인터넷이 발달하면서 컴퓨터와의 소통 방식이 달라졌었는데요. 

사물 인터넷 또한 컴퓨터와의 소통방식 변화의 연장선이라고 보면 될 것 같습니다.

예전엔 직접 정보를 보내고 받고 했지만 지금은 사물이 알아서 소통을 하는 것이죠!






사물인터넷은 최근 구글이 발표한 ‘구글글래스’나 나이키의 ‘퓨얼밴드’로 예를 들 수 있습니다.

구글 글래스는 통화부터 사진 및 동영상 촬영, 네비게이션 등 스마트폰과 비슷한 기능들을 

안경에 축약하여 담아낸 디지털 안경인데요. 

모니터 역할을 하는 프리즘이 돌출된 안경 형태의 모바일 기기로 우측테 내부에

적외선 기반의 안구 추적 카메라가 있어 사람의 시선이 마우스의 역할을 한다고 합니다.

구글 글래스를 착용 중이라면 사진을 남기고 싶은 순간에 “사진을 찍어줘”라고 지시를 내리면

바로 사진 촬영이 되기 때문에 굉장히 편리하죠

또한 네비게이션 기능이 있기 때문에 내가 원하는 목적지에 대해

잘 가고 있는지, 어떤 길로 가야 빠르게 도착하는 지 경로에 대한 모든 정보를

실시간으로 받아볼 수 있습니다.

뿐만 아니라 번역, 지역 정보 제공 등 여러가지 기능이 있으니 정말 스마트한 기기라 할 수 있겠죠?


이렇게 스마트한 기기들 모두, 사물 인터넷이 적용된 결과물이라고 볼 수 있습니다.

IT 발전의 속도는 날이 갈수록 빨라지고 다양해져서 

이제 넋놓고 얼마나 발전하는지 지켜보기에는 위험한 시대가 아닐까란 생각이 들어요!

IT가 발전하는 만큼 자신이 갖는 IT역량을 더욱 더 키워야겠죠?






안녕하세요! 오늘은 4차 산업혁명에 대해서 얘기해볼텐데요.

4차 산업혁명, 여기 저기서 많이들 얘기하는 주제죠~

정확히 4차 산업혁명의 정의는 무엇일까요?


4차 산업혁명이란 인공지능, 로봇기술, 생명과학이 주도하는 차세대 산업혁명을 말해요.

1차 산업혁명이 1784년 영국에서 증기기관과 기계화로 시작되었다면

2차 산업혁명은 1870년 전기를 이용한 대량생산이 본격화되면서 시작되었고

3차 산업혁명은 1969년 인터넷이 이끈 컴퓨터 정보화 및 자동화 생산시스템이 주도하였다고

볼 수 있는데요. 이 3차 산업혁명을 뒤이어 로봇이나 인공지능(AI)를 통해

실재와 가상이 통합돼 사물을 자동적, 지능적으로 제어할 수 있는 가상 물리 시스템의

구축이 기대되는 산업상의 변화를 우리는 4차 산업혁명이라고 부릅니다


4차 산업혁명은 인공지능(AI), 사물 인터넷(IoT), 클라우드 컴퓨팅, 빅데이터, 모바일 등 지능정보기술이 

기존 산업과 서비스에 융합되거나 3D 프린팅, 로봇공학, 생명공학, 나노기술 등 여러 분야의 신기술과 결합되어 

실세계 모든 제품, 서비스를 네트워크로 연결하고 사물을 지능화합니다.  

또한 초연결과 초지능을 특징으로 하기 때문에 기존 산업혁명에 비해 더 넓은 범위에 더 빠른 속도로 크게 영향을 끼치기도 하고요. 



‘제 4차 산업혁명’이라는 용어는 2016년 세계 경제 포럼에서 처음 언급되었으며, 
정보 통신 기술(ICT) 기반의 새로운 산업 시대를 대표하는 용어가 되었어요. 
이렇게 이미 진행되어온 4차 산업혁명, 우리 미래에 어떤 영향을 끼칠까요? 
가장 먼저 생각해 볼 점은 일자리 문제예요. 인공지능의 등장은 인간의 일자리 문제에 있어서 아주 큰 이슈로 떠올랐는데요. 
세계경제포럼에서는 4차 산업혁명으로 2020년까지 약 710만 개의 일자리가 줄어들 것이라고 예상했습니다. 
고도의 인공지능을 탑재한 로봇이 이제는 육체적 노동을 뛰어 넘어 
인간의 지적 활동까지 대체하려고 하니 전혀 없는 말은 아닌 것 같아요. 
또한 한국고용정보원이 발간한 2017 한국직업전망에 따르면, 단순 사무직과 기계로 대체가 가능한 직업들은 
고용이 감소할 것이라고 말합니다. 
하지만 4차 산업 기술직, ICT 융합직업, 사업서비스 전문직 그리고 안전관련 직종, 의료와 복지 분야의 일자리는 
고용이 증가할 것이라는 예측을 하고 있습니다. 
어찌보면 일자리가 사라지는 것 같지만 동시에 새로운 직업이 뜬다고 봐야할 것 같은데요. 
따라서 지금까지는 그저 ‘지식’을 쌓아오는 지식 중심 교육이었다면 지금은 이를 어떻게 활용하고 응용할 것인지 
생각하는 역량 중심의 교육이 필요한 시점인 것 같네요.

그렇다면 4차 산업혁명에서 인공지능과 대체될 확률이 낮은 일자리은 무엇일까요? 
비교적 전문성, 창의성이 돋보이는 직종이 일자리 대체 확률이 낮다고 합니다. 
그렇다면 개발자나 보안전문가 등 IT업계의 일자리 변화는 크게 일어나지 않을 것 같아요.
물론 인공지능의 발달이 날이 갈수록 계속해서 빨라지고 있는 만큼
인공지능은 결국 인간의 손에서 탄생한 것이니 이 능력을 어떻게 이용하면 좋을지
개발자만의 역량을 키우는 것이 가장 큰 문제일 것 같습니다.

이렇게 제가 생각하는 4차 산업혁명에 대해서 이야기 해보았는데요!
앞으로도 IT와 관련된 주제를 가지고 이야기하는 시간 갖도록 하겠습니다.




안녕하세요~ 오늘은 자바 스크립트에 대해 알아볼텐데요
2017년 5월 프로그래밍 언어 순위를 보면 알 수 있듯이


프로그래밍 언어 순위 1위가 바로 자바, 7위가 자바 스크립트인 것을 확인할 수 있어요

차마 프로그래밍 언어에 익숙하지 않으신 분들이라면

자바와 자바 스크립트가 같은 언어라고 생각하셨던 분들이 많을 것 같은데요~

자바와 자바스크립트는 개발자부터 특징 그리고 사용법까지 전!혀! 다른 별개의 프로그래밍 언어랍니다.


그렇다면 자바와 자바스크립트, 어떤 점이 다르고 또 자바스크립트는 무엇일까요?

좀 더 자세하게 살펴볼까요?




1. 자바 스크립트란?


우리가 매일 사용하는 웹 사이트는 크게 3가지 요소로 구성이 돼요. HTML, CSS 그리고 자바 스크립트입니다!

HTML은 웹 페이지의 큰 뼈대를 제공하고, CSS는 색이나 폰트같은 디자인 요소를 관리해요.

자바 스크립트는 크로스 플랫폼, 객체 지향 스크립트 언어로 웹 페이지의 동작을 담당합니다.

예를 들어 자바 스크립트를 이용하면 이 버튼을 클릭하면 그림을 띄워줘 라는 식의 명령을 내릴 수 있어요.


사실 2000년대까지만 해도 자바스크립트는 개발자들에게 조금 무시당하는 언어였어요.

별다른 기능도 없고 성능도 좋지 않았기 때문이죠. 하지만 최근 몇 년 사이에 다양한 자바스크립트 프레임워크와

라이브러리가 생기면서 자바스크립트는 더욱 더 발전하고 있습니다.



2. 자바와 자바스크립트의 차이점


자바스크립트는 브랜든 아이크라는 사람이 1995년 넷스케이프에 근무하면서 개발한 개념이예요. 

처음에 모카라는 이름으로 불리었지만 당시 자바가 큰 인기를 끌자 마케팅 효과를 노려 이름을

자바스크립트로 변경하는데요. 마케팅 효과를 본 것인지 이후 자바 스크립트의 기술은 다양하게 발전했고

지금은 많은 사람들이 사용하는 프로그래밍 언어가 되었답니다.


자바와 자바스크립트의 차이, 가장 큰 차이점은 역시 특징이 아닐까 싶어요.


자바스크립트는 객체 지향언어로 객체의 형 간에 차이가 없답니다. 프로토타입 메커니즘을 통한 상속, 

그리고 속성과 메서드는 어떤 객체든 동적으로 추가될 수 있구요. 

하지만 자바는 클래스 기반 언어로 객체는 클래스 계층구조를 통한 모든 상속과 함께 클래스와 

인스턴스로 나뉘는데요. 클래스와 인스턴스는 동적으로 추가된 속성이나 메소드를 가질 수 없답니다.

또한 자바스크립트는 변수 자료형이 선언되지 않지만 자바는 변수 자료형이 반드시 선언되어야 한다는 점,

자바스크립트는 하드 디스크에 자동으로 작성이 불가하지만 자바는 자동으로 작성이 가능하다는 점이

가장 큰 차이점이네요.




3. 자바 스크립트의 장단점

자바스크립트는 다양한 장단점을 갖는데요. 자바스크립트는 컴파일 과정이 없기 때문에 
다른 언어와 비교했을 때 빠른 시간 안에 스크립트 코드를 작성할 수 있게 도와준답니다. 
기존 C언어나 자바 언어와 달리 굉장히 단순한 구조와 원칙을 가지고 있기 때문에 초보 개발자들이
쉽게 배우고 이해할 수 있어요!
하지만 성능이나 보안 측면이 단점이에요. 내부에서 제공되는 기능이 제한적이고 관련된 개발도구도 
적은 편인데다가, 자바스크립트는 HTML 소스코드에 함께 작성되면서 소스코드가 외부로 공개되는데,
이 과정에서 보안 취약점이 발생할 수 있기 때문이에요.


하지만~ 개발자가 가장 관심을 많이 갖는 언어로 꼽힌 '자바 스크립트'

개발자들의 대표 커뮤니티인 스택오버플로우는 2015년 157개국에 있는 사용자 2만 6천여명에게

다양한 기술 관련 설문조사를 실시했어요. 그 결과 자바스크립트는 '스위프트'와 함께 개발자들이 가장 관심을

가지는 언어로 뽑히게 됩니다! 또한 최근에는 자바스크립트 관련 라이브러리나 프레임 워크가 개발자들 사이에서

큰 화제로 떠오르면서 더욱 주목을 받고 있습니다.



이렇게 자바 스크립트에 대해서 알아보았는데요

자바와 자바스크립트를 구분하는 데에 도움이 되었나요?

계속해서 여러 프로그래밍 언어를 알려드리겠습니다!~