IT 자격증 정보의 모든 것



개발에 사용되는 프로그래밍 언어는 사실 수십, 수백가지나 된다는 사실!

프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하는 언어인데요.

컴퓨터와 인간을 이어주는 매개체라고 볼 수도 있어요.


초기 어셈블리같은 저급 언어부터 C언어 같은 고급 언어까지 

프로그래밍 언어에는 굉장히 많은 종류가 있는데요.


오늘은 그 중에서도 펄(Perl)에 대해 알아보려고 해요!





▲ 이렇게나 많은 종류의 프로그래밍 언어가 존재하고 있답니다.




펄은 래리 월이 만든 인터프리터 방식의 프로그래밍 언어로 

고급 언어, 범용 언어, 인터프리터 언어, 동적 언어 범주에 속합니다.


펄(Perl)Practical Extraction and Reporting Language의 약자로 

C언어와 구문이 비슷하다고 볼 수 있느넫요.

유닉스 기능을 포함하는 스크립트 프로그래밍 언어입니다.



▲ 펄 프로그래밍 언어 개발자 래리 월(Larry Wall)



펄은 래리 월(Larry Wall)이 1987년 개발하였고

텍스트 파일로부터 필요한 정보들을 추출하고 그 정보를 바탕으로 새로운 문서를

구성하는데에 적합해요.

특히 텍스트 처리 기능이 뛰어나 CGI(Common Gateway Interface) 프로그램을 개발하는 데에

많이 사용된답니다.







펄츼 특징은 C언어의 형태를 띄면서도 텍스트를 처리하는 기능이나

문자열의 일치 여부 검색, 치환 등의 기능이 뛰어날 뿐만 아니라 

코딩도 쉽다는 점인데요.



인터프리터형 언어로 c언어처럼 컴파일할 필요가 없어 코딩한대로

바로 실행이 가능합니다. 코딩의 최적화나 실행 속도에 있어선

C언어보다 다소 떨어지지만 컴파일을 반복할 필요가 없기 때문에

프로그램 구현과 디버깅은 훨씬 쉽답니다.








유닉스와 윈도NT 등 여러가지 OS에 사용할 수 있으므로 소스 파일을

이식하기도 쉬워서 서버를 변경할 경우나 OS를 바꿀 경우에도 

부담이 되지 않구요!


또한 펄은 인터넷 상에서 무료로 자신의 시스템에 맞는 펄 인터프리터를

구할 수 있으므로 비용면에서도 장점을 지닙니다.








이렇게 펄 프로그래밍언어에 대해서 알아보았는데요!

다음에는 다른 프로그래밍언어에 대해서 자세히 알아보도록 하겠습니다~



안녕하세요! 오늘은 자료구조에 대해서 알아봅시다.

찾고자하는 물건이 있을 때, 어지럽혀져 있는 상태에서 찾는 것 보다

정리되어 있는 상태에서 찾는 것이 훨씬 쉽다는 사실 아시죠?

자료구조는 많은 양의 자료를 어떻게 정리하고 효율적으로 활용하기 위한 방법이라고

보시면 될 것 같은데요~ 더 자세하게 자료구조의 개념은 무엇이고 배우기 위해서는 어떻게 해야할지

알아볼까요?




자료구조의 모든 것



자료구조는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화하는 작업인데요.

다시 말해, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라 분류하여 구성하고

저장 및 처리하는 모든 작업을 의미한답니다.

컴퓨터의 의미를 짚어보자면 

현실 세계에 존재하는 반복적이거나 복잡한 자료처리를 효율적으로 처리하기 위한 전자장치라고

할 수 있는데요. 컴퓨터를 이용하여 자료처리를 하기 위해서는 무엇보다도

먼저 자료를 컴퓨터가 다룰 수 있도록 컴퓨터 내에 표현해 주어야만 합니다.

그리고 이렇게 표현된 자료를 컴퓨터는 일정한 절차를 통해 처리하게 되는 것이죠~






자료구조는 자료 처리의 성능과 효율에 직접적인 영향을 미치는데요.

따라서 자료구조는 현실 세계의 실제 자료들의 관계를 잘 반영할 수 있어야 하고,

효율적으로 자료 처리를 수행할 수 있도록 간단명료해야만 해요.



이렇게 자료구조로 표현된 자료들을 이용하여 자료들을 처리하는 절차들의 모임을

알고리즘이라 하고, 대부분의 언어는 일정 수준의 모듈 개념을 갖고 있으며

이는 자료구조가 검증된 구현은 감춘 채 인터페이스만을 이용하여 다양한 프로그램에서

사용되는 것을 가능하게 해준답니다.


C++나 자바와 같은 객체지향 프로그래밍 언어는 특별히 이러한 목적으로 객체로 사용하는데요.

이러한 자료구조의 중요성 때문에 최근의 프로그래밍 언어 및 개발 환경은

다양한 표준 라이브러리를 제공하고 있어요.

예로, C++의 표준 템플릿 라이브러리나 자바의 자바 API, 마이크로소프트의 .NET과 같은 것을 들 수 있지요~






컴퓨터가 효율적으로 문제를 처리하기 위해서는 자료를 보관하고 정리하는 기술이 필요한데요.

컴퓨터는 자료의 특성에 따라 다양한 자료구조 기법을 사용하고 있습니다.

자료구조에는 단순구조, 선형구조, 비선형구조가 있어요.


단순구조는 정수, 실수, 문자, 문자열 등 자료의 형태를 말하고,

선형 구조는 자료 간의 연결 관계가 [1:1] 관계를 가지는 형태로 자료들이

긴 선처럼 연결되어 있는 구조입니다.

비선형구조는 자료 간의 연결 관계가 [하나:여러 개] 또는 [여러개 : 여러개]의

관계를 가지는 형태로, 나뭇가지 모양이나 그물 모양처럼 얽혀있는 구조입니다.


예를 들어, 엑셀로 각 과목 점수를 정리하는 표를 만들 때 사용하는 자료구조는

선형구조 중에서 '리스트'라는 구조인데요. 

리스트는 순서가 정해져있는 목록의 자료구조랍니다.






지하철 노선도를 정리할 때 사용하는 자료 구조는 비선형 구조의 '그래프'라는 구조예요.

다양하고 복잡한 연결 구조들을 표현할 때 사용하게 된답니다.


대부분의 컴퓨터 프로그램은 알고리즘+자료구조의 형태로 이뤄지는데요.

알고리즘이 특정한 목적을 달성하기 위한 절차라고 한다면,

자료구조는 알고리즘에 필요한 데이터의 집합이에요.

동일한 알고리즘이라도 자료구조가 달라지면 전혀 다른 프로그램이 될 수 있기 때문에

자료에 알맞은 자료구조를 만드는 것이 매우 중요하답니다!




네트워크, 인터넷 연결 시에 자주 봤던 단어이죠? 네트워크의 정확한 뜻은 무엇일까요? 생각보다 IT 업계에서의 네트워크는 전문적이고 그 의미가 포괄적이기 때문에 관련 용어들과 함께 정확히 알아두는 것이 좋습니다. 그럼 오늘은 네트워크 기초 용어에 대해서 알아볼까요?


인터넷은 연구소, 기업, 학교 등의 소규모 조직에서 사용한 작은 단위의 네트워크를 서로 연결하면서 발전하였습니다. 그 과정에서 자연스럽게 연결 방식이 표준화되었고 전 세계로 확산되어 오늘 날처럼 거대한 인터넷이 된 것이죠. 네트워크를 정확히 이해하기 위해선 시스템, 인터페이스, 전송 매체, 프로토콜, 네트워크, 인터넷 같은 용어를 먼저 알아두는 것이 좋습니다. 네트워크는 전송 매체로 서로 연결해 데이터를 교환하는 시스템의 모음입니다. 이렇게 말하니 조금 어려워보이죠? 다시 말하자면 시스템과 전송 매체의 연결 지점에 대한 규격을 인터페이스라고 하고, 시스템이 데이터를 교환할 때 임의의 통신 규칙을 따르는데 이 규칙을 프로토콜이라고 합니다. 서로 다른 시스템이 상호 연동해 동작하려면 연동 형식의 통일이 필요하고 이 통일을 표준화라고 합니다. 더 자세히, 하나 하나 네트워크 용어를 알아보도록 합시다!





시스템 

시스템은 곧 체제로, 내부 규칙에 따라 능동적으로 동작하는 대상입니다. 자동차, 커피 자판기, 컴퓨터, 마이크로 프로세서, 하드 디스크 같은 물리적인 대상뿐만 아니라, 신호등으로 교통을 제어하는 운영 시스템, MS 윈도우 등의 운영체제, 프로그램의 실행 상태를 의미하는 프로세스 같은 논리적인 대상도 시스템입니다. 



인터페이스 

인터페이스는 시스템과 시스템을 연결하기 위한 표준화된 접근 방법입니다. 예를 들어 컴퓨터 본체와 키보드를 연결하려면 키보드의 잭을 본체의 정해진 위치에 꽂아야 하는데요. 이를 위해서 상호간의 데이터 교환을 위한 RS-232C, USB 같은 논리적인 규격뿐만 아니라, 잭의 크기, 모양 같은 물리적인 규격도 표준화되어야 합니다. 인터페이스를 이용해 연결하는 시스템은 능력과 권한이 같은 경우도 있지만 서비스를 주고받는 상하 관계일수도 있어요.






프로토콜

프로토콜은 상호 연동되는 시스템이 전송 매체를 통해 데이터를 교환할 때는 특정 규칙을 따르는데, 이 규칙을 프로토콜이라 합니다. 일반적으로 프로토콜은 주종 관계가 아닌 동등한 위치에 있는 시스템 사이의 규칙이라는 측면이 강조되어 인터페이스와 구분되는데요. 인터페이스는 두 시스템이 연동하기 위한 특정한 접촉 지점을 의미하는 경우가 많지만, 프로토콜은 주고받는 정보의 형식과 그 과정에서 발생하는 일련의 절차적 순서에 무게를 둡니다.



인터넷

인터넷은 전 세계의 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크입니다. 인터넷으로 연결된 시스템, 인터페이스, 전송 매체, 프로토콜 등은 종류가 매우 다양하지만 데이터 전달 기능에 한해서는 공통적으로 IP 프로토콜을 사용합니다. 인터넷이라는 용어는 IP의 첫 번째 단어인 Internet에서 유래되었고요!







4차 산업혁명이 무엇인가요?

4차 산업혁명부터 막히는 분들 많으시죠? 관련 용어를 알아보기 전에 먼저 4차 산업혁명은 무엇인지 알고 넘어갑시다. 4차 산업혁명이란 인공 지능, 사물 인터넷, 빅데이터, 모바일 등 첨단 정보통신기술이 경제·사회 전반에 융합되어 혁신적인 변화가 나타나는 차세대 산업혁명을 말합니다. 지능정보기술이 기존 산업 혹은 서비스와 융화되거나 여러 분야의 신기술과 결합되어 실세계 모든 제품 그리고 서비스를 네트워크로 연결하고 사물을 지능화하는 시대인데요. 기존 1차, 2차, 3차와 비교했을 때 4차 산업혁명의 핵심키워드는 바로 인공지능이 아닐까 싶습니다. 모든 사물을 네트워크로 연결시켜 별도의 명령을 입력하지 않아도 스스로! 기계 스스로! 일을 처리하는 세상이 온 거죠. 그럼 본격적으로 4차 산업혁명과 관련된 용어를 차근차근 알아볼까요?






사물 인터넷

"사물과 사물이 인터넷으로 대화를 나눈다"


사물 인터넷의 시대를 머릿 속에 그려보자면 아마 공상과학 영화에서 보던 장면을 떠올려야 하지 않을까요? 기계와 기계가 대화를 나누는 시대라뇨! 거짓말같지만 실제로 현재에도 이용되고 있는 기술 중 하나랍니다. 사물인터넷은 사물에 센서를 부착해 실시간으로 데이터를 인터넷으로 주고받는 기술이나 환경을 일컫는데요. 앞서 말한 것처럼 현재 우리 주변에서도 적지 않게 볼 수 있어요. 외출 시엔 자동으로 가스가 차단된다거나, 매일 운동량을 체크하여 몸의 건강을 분석해준다거나 등등 예전에는 기기들이 정보를 주고받기 위해선 인간의 조작이 필요했습니다. 카메라로 찍은 영상을 컴퓨터로 옮기기 위해 USB선으로 연결하는 것 처럼요. 하지만 사물 인터넷 시대가 열리면 인터넷에 연결된 기기는 별도의 절차가 필요 없이 기기 스스로 정보를 주고 받을 수 있게 됩니다. 블루투스나 근거리무선통신, 센서데이터, 네트워크가 이들의 자율적인 소통을 돕는 기술이 되는 것이죠. 미국은 현재 사물인터넷을 적극적으로 활용하고 있는 나라로 유명한데요. 디즈니 사의 놀이공원은 미키마우스 인형의 눈과 코, 팔, 배 곳곳에 적외선 센서와 스피커를 탑재하여 놀이공원 정보를 수집합니다. 습득된 정보는 관람객에게 특정 놀이기구의 줄이 긴지 짧은지, 지금 위치가 어디인지 등 편리하게 제공되죠.




소물 인터넷

"저속, 저전력, 저성능의 특징을 갖는 사물들로 구성"


사물 인터넷과 소물 인터넷. 벌써부터 용어들이 헷갈리기 시작합니다. 사물 인터넷을 구성하는 사물들 중에는 네트워크를 통해 교환해야 하는 데이터의 양이 많은 사물들과 그렇지 않은 사물들이 있습니다. 이중에서 교환해야하는 데이터의 양이 많지 않은 사물들을 소물(Small Thing)이라 하고, 소물들로 구성된 네트워크를 소물 인터넷이라고 합니다. 대표적인 예로는 수도·전기·가스 원격 검침용 기기, 저전력 블루투스 비컨 등이 있습니다. 교환해야할 데이터 양이 적기 때문에 일반적으로 저성능 프로세서를 이용하고 배터리 하나로도 수년간 작동된다는 특징이 있죠. 이러한 소물들을 상호로 연결시켜주기 위해선 블루투스, 지그비, 지웨이브 같은 기술이 필요합니다. 이 외에도 저전력 단거리 무선망과 로라, 시그폭스, 협대역 사물 인터넷 등과 같은 저전력 광역 통신망 기술도 있구요!






다크 데이터

"일단 저장, 분석은 NO"


다크 데이터는 쉽게 말하자면 사용하지 않는(쓸모는 없는데 언젠간 쓸모가 있을 것 같은?...) 데이터라고 할 수 있습니다. 자세히 알아보자면 기업 내에 저장은 되어 있으나 분석되지 않은 데이터를 의미하는데요. 혹은 저장 공간이 없어서 몇 달 정도 보관만 했다가 지워지는 데이터를 뜻하기도 합니다. 이러한 데이터는 만에하나 이용 가치가 생길 가능성을 대비하여 축적되는 것인데 문제는 이러한 데이터를 분석할 가치가 있는지에 관해 의견이 양쪽으로 팽팽합니다. 가치는 분석이 되어야 판단이 되는 것인데, 분석을 하기 위해선 인력, 비용, 시간이 필요하므로 다크 데이터를 분석하기 위해선 우선 데이터의 가치가 내부적으로 인정되어야 합니다. 최근 들어서는 빅데이터 기술을 이용하여 분석에 대한 인력, 비용, 시간을 많이 줄였기 때문에 다크 데이터라도 분석을 해야한다는 의견이 높아지고 있긴 한데요. 결국 처리되지 않은 채 미래에 사용할 가능성이 있다는 이유만으로 삭제되지 않고 방치되어 저장 공간만 차지하고 보안 위험까지 초래할 수 있어 결과가 어떻게 될지 모르겠습니다.




필터 버블

"필터 버블 속에서 살아가는 사람들"


필터 버블은 구글과 야후 등 세계적인 인터넷 검색 업체와 페이스북 등 소셜 미디어 기업들이 제공하는 정보에 의존해 정보 편식을 하는 이용자들이 점점 자신만의 울타리에 갇히고 있다는 것을 설명하기 위해 등장한 말입니다. 미국의 온라인 시민단체 무브온의 이사장인 엘리 프레이저가 자신의 저서 '생각 조종자들'에서 제시한 개념이기도 하죠. 필터 버블 현상을 불러온 선구자는 단연 세계 최대의 온라인 서점인 아마존이라고 할 수 있습니다. 단골의 취향을 파악해 책을 추천해주는 동네 서점의 방식을 그대로 온라인에서 구현해냈는데요. 아마존은 개인의 취향과 기호를 분류하는 필터링을 사용해 크게 성공을 누렸는데, 빅데이터 시대가 시작되면서 이곳 저곳 모두 맞춤형 정보 제공을 제공하게 되었죠. 검색 서비스도 개별화 전략으로 진화하고 있습니다. 사람의 마음을 읽는 검색엔진을 강조하고 있는 구글의 지식 그래프와 소셜 검색을 전면에 내세운 페이스북의 그래프 서치가 바로 그렇습니다. 한국의 네이버 역시 맞춤형 정보를 제공하고 있죠. 이러한 현상을 두고 필터 버블의 세상 속에서 우린 듣기 좋은 뉴스만 편식하고 있다고 우려하는 것이 바로 필터 버블입니다.