IT 자격증 정보의 모든 것

오늘은 네트워크에 대해서 알아봅시다!

많은 부분이 있지만 그 중에서도 네트워크 프로그래밍에서

기본적으로 알아야 할 부분인 TCP/IP 소켓 프로그래밍에서 알아보아요



네트워크 프로그래밍이란?


멀리 떨어져있는 호스트들이 서로 데이터를 주고 받을 수 있도록 프로그램을 구현하는 것




TCP : Transmission Control Protocol의 약자

IP : Internet Protocol의 약자



TCP/IP는 통신규약




소켓이란?


네트워크 프로그래밍 과정에서 대상이 멀리 떨어져 있기 때문에 

소프트웨어 차원에서 호스트들간을 연결해주는 장치



즉, 소켓을 사용하는 목적은 네트워크로 연결된

두 개 이상의 호스트간의 데이터를

송수신 할 수 있도록 하는 것인데요.

TCP/IP를 데이터를 가지고 달리는 자전거라고 가정하면

소켓은 자전거가 달릴 수 있도록 깔아놓은 도로인 것이죠!



소켓 프로그래밍 환경 구축하기


개발 환경을 구축하려면 Visual Studio에서 새 프로젝트를 만들어야 하는데요.

통신에서는 서버와 클라이언트 2대의 구성이 필요하기 때문에

2개의 프로젝트를 생성해야 합니다.

서버와 클라이언트의 프로그래밍 절차는 각각 다른데, 

TCP 클라이언트의 과정만 보자면, 소켓을 생성한 뒤 서버로 연결을 해줍니다.

접속이 성공됐다면 read와 write 함수를 통해 서버와 패킷을 주고 받으며

사용을 마치면 close로 소켓을 닫아주면 된답니다.




소켓 프로그래밍 주의해야 하는 점


우선 TCP소켓의 연결 종료가 감지되면 반드시 close해야 합니다. 

TCP 소켓은 자동으로 닫히는 것이 아니기 때문에

상대편이 소켓 연결을 종료한다면 같이 종료해줘야만 합니다.

SIGPIPE는 기본 동작이 프로세스의 종료이므로 

해당 시그널을 처리하지 않으면

프로세스는 즉시 종료된다는 사실!


마지막으로 '재전송' 또한 주의해야 하는데요.

TCP를 NONBLOCKING 모드로 사용하면 호출 시 일부만 전송되는 경우가

있기 때문에 꼼꼼하게 확인을 하고 재전송이 가능한지 감지한 뒤 전송해야 합니다.




안녕하세요!

오늘은 PC파일 정리하는 방법에 대해 알려드리려고 합니다.




제 컴퓨터 바탕화면 상태만 이런 걸까요?.....

그래도 몇몇분은 공감하실거라 생각해요 ㅠㅠ

어느 순간부터 아무 생각 없이 저장하다보면

파일들이 복잡하게 쌓이기 마련인데요.

몇 가지 규칙을 세워둔다면 쉽게 파일을 정리할 수 있어요





PC 파일 정리하는 방법




파일 날짜를 통일하자!



가끔 날짜를 넣어서 문서를 저장하다보면

2017로 쓸때도 있고 20을 생략하고

17만 쓸때도 있는데요


무조건 한가지로만 통일을 해서 파일명을 

더욱 보기 쉽게 만드는 거예요!


저는 2017로 해서 정리를 했답니다.









파일명 규칙 세우기


다음은 파일명에 규칙을 세워서

굳이 파일을 열어보지 않더라도

파일명만 보고도 원하는 문서를 찾을 수 있도록 하는 방법이에요!


저는 날짜_업무분야_상세내용_미/완

이렇게 규칙을 정했는데요


끝에 이 파일 작업이 완전히 다 끝난 파일인지 아닌지

체크 하는 것이 중요해요!


항상 이게 최종본인지, 하던 업무인지 헷갈려서

파일 여러개를 열기 쉽상이었거든요 








바탕화면은 깔끔하게 폴더 정리



바탕화면에 파일들을 늘어놓는 순간..

피씨가 지저분해지는 건 다들 아시죠?

폴더를 이용해서 정리하면 깔끔하게 정리할 수 있습니다.


이렇게 PC파일 정리 방법에 대해서 알아보았습니다!

모두 미니멀리즘 라이프 트랜드에 맞춰

깔끔한 PC이용 하세요!







윈도우 운영체제(32bit/64bit) 확인하는 방법


안녕하세요! 오늘은 윈도우 운영체제 확인하는 방법에 대해서

알아볼까 합니다~


사실 하루종일 컴퓨터를 사용하면서도

내가 사용하는 컴퓨터의 운영체제가 무엇인지 확인해봐야겠다는

생각을 한 적이 별로 없었어요....

굳이 필요한 상황이 없었어서..!!


그러다 얼마 전에 영상 편집하려고 

영상편집 프로그램 설치하려고 보니

운영체제를 확인해야 하더라구요


64bit부터 지원하는 프로그램이었어서 

32bit인 내 컴퓨터에는 다운받을 수 없었던....ㅠㅠ

허탈감이 훅...!

이미 다운 받아놓은 상태였는데 ㅠㅠ


저처럼 고생하지 마시라구

윈도우 운영체제 확인하는 방법에 대해서 알려드리려구요!





윈도우 운영 체제 확인하는 방법



1. 시작 → 제어판


시작 클릭 후, 제어판을 열어주세요!






2. 시스템 및 보안 클릭






3. 시스템 클릭





4. 윈도우 운영 체제 확인 완료!


시스템 종류를 보면 32비트 운영체제인지

64비트 운영체제인지 곧바로 확인할 수 있어요.

정말 간단하게 확인이 가능하죠?


이렇게 오늘은 윈도우 운영체제 확인방법에 대해서

알아보았는데요~ 다음 번엔 더 유용한 TIP으로 찾아오겠습니다!





오늘은 민앤지 휴대폰번호도용방지 서비스에 대해 소개해 드릴까 해요 

개인정보 유출 사례가 워낙 많다 보니 이제는 개인 스스로 개인 정보 관리가 

필요한데요  






그런 점 에서 개인정보를 보호할 수 있는 

민앤지 휴대폰번호도용방지 서비스 가입 방법에 대해 알려 드릴게요~ 

가입을 위해서는 민앤지 휴대폰번호도용방지 홈페이지 또는 고객센터 1599-0274를 통해서 가능 합니다. 






민앤지 휴대폰번호도용방지 서비스는 차단 기능이 있는데요 

휴대폰 본인 인증 시, 설정한 비밀번호 입력 후 승인번호를 확인 합니다 

비밀번호를 모르는 타인은 본인인증을 할 수 없습니다. 








두번째로 민앤지 휴대폰번호도용방지 서비스는 알림기능이 있는데요 

휴대폰 본인인증 사용 시마다 실시간 SMS 알림을 받는 서비스 입니다. 

본인이 하지 않은 불법 본인인증 확인 시 즉각 대처 할 수 있습니다. 






민앤지 휴대폰번호도용방지 서비스를 사용 하다가 해지하고 싶다면 

1599-0274 또는 홈페이지를 통해서 해지가 가능 합니다. 

당일 해지 시 요금이 부과 되지 않으니 참고해 주세요~^^








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

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

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


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

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


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





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




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

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


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

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

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



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



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

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

구성하는데에 적합해요.

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

많이 사용된답니다.







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

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

코딩도 쉽다는 점인데요.



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

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

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

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








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

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

부담이 되지 않구요!


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

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








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

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



개발자를 미치게하는 프로그래밍 언어 10가지 2편!

저번 1편을 통해서 개발자들을 미치게하는

파이썬, 랩뷰, 자바스크립트, Tcl, 코볼에 대해서 알아보았는데요.

오늘은 나머지 5개 프로그래밍 언어는 무엇인지 알려드리겠습니다!



개발자를 미치게하는 프로그래밍 언어 6. C++


C++는 C의 확장으로 개발죈 중간 수준의 언어라고 할 수 있는데요.

객체 지향 프로그래밍을 지원하죠~

AT&T 벨 연구소에서 일하던 비야네 스트롭스트룹이 만든 언어로

원래 이름은 C with Classes였으나 증간 연사자(++) 기능을 더하면서

1984년에 이름이 C++로 바뀌었다고 해요.


C의 대부분의 특징을 포함하고 있으므로 시스템 프로그래밍에 적합할 뿐만 아니라

클래스, 연산자 중복, 가상 함수 등과 같은 특징을 갖추고 있어 객체 지향 프로그래밍에

적합한 언어예요. 또한 C와 일치하는 부분이 C++를 널리 대중적인 언어가

되는 데에 도움을 주기도 하였구요.


개발자들의 C++에 대한 공통적은 불만으로는 지나치게 많은 기능,

수동 메모리 관리, 느린 컴파일 속도, 프로그래머가 같은 프로그램 내에서 

객체 지향과 절차적 코드 사이를 전환할 수 있다는 점을 꼽았답니다.

하지만 어도비, 구글 또는 게임 업계에서 널리 사용중인 언어이기 때문에

피하기가 힘들다는 점..!






개발자를 미치게하는 프로그래밍 언어 7. PHP



PHP는 동적으로 HTML 페이지를 생성하기 위해 서버 측 스크립팅에 주로 사용되는

인터프리터 언어인데요. 많은 운영체제에서 독립형 스크립팅 언어로 사용할 수 있답니다.

별도의 실행 파일을 만들 필요 없이 HTML 문서 안에 직접 포함시켜 사용하면서

C, 자바, 펄 언어 등에서 많은 문장 형식을 준용하고 있어 동적인 웹 문서를 빠르고

쉽게 작성할 수 있게 도와주는 프로그래밍 언어입니다.

이런 PHP에 개발자들이 공통적으로 꼽는 불만은 

많은 함수에 대한 일관성 없는 명명규칙, 보안 결함, 유니코드에 대한

네이티브 지원 결여, 프레젠테이션 코드(예:HTML, CSS)와 섞이는 경우가 많다는 점이 있습니다.




개발자를 미치게하는 프로그래밍 언어 8. 자바


8번째 프로그래밍 언어는 자바인데요!

자바는 인터렉티브 텔레비전용으로 개발된 객체 지향 언어로

현재 가장 널리 사용되고 있는 프로그래밍 언어 중 하나예요.

자바 코드는 바이트코드로 컴파일되며, 바이트코드는 각 플랫폼별 자바 가상 머신에 의해

인터프리트되는데요. 즉, 자바 프로그램은

한번 작성하면 어디서나 실행할 수 있다는 장점이 있습니다.

하지만 구문이 너무 장황하다는 점, 속도가 느린 점, 함수를 전달하기 쉽지 않은 점,

API가 필요 이상으로 복잡한 점에서 개발자들을 미치게하는 프로그래밍 언어로 꼽힌다네요.








개발자를 미치게하는 프로그래밍 언어 9. 펄


펄은 고수준의 다목적 인터프리트 언어인데요.

스위스 군용 칼, 인터넷의 강력접착테이프로 불리기도 합니다.

펄은 CGI 스크립팅부터 시스템 및 네트워크 관리에 이르기까지 모든 분야에 사용된답니다.

하지만 펄에 대한 가장 큰 비판은 작업을 수행하는 방법이 너무 많다는 것이에요.

사실상 쓰기 전용 언어라는 말이 있을 정도로 그 방법이 어마어마하답니다.

즉, 펄 코드는 읽기가 불가능하다고 볼 수 있는데요 

따라서 유지 보수도 불가능하겠죠?






안녕하세요! 오늘은 개발자를 미치게하는 언어 10가지에 대한 내용을 가져왔어요~

소프트웨어 개발자라면 각자 선호하는 프로그래밍 언어가 다를텐데요.

저마다 왜! 이 프로그래밍 언어를 싫어하고, 어려워하는지 그 이유에 대해서

알아보면 좋을 것 같아서 알려드리려구요!






개발자를 미치게하는 프로그래밍 언어 1. 파이썬


많은 기업 그리고 개발자들이 사용하고 있는 파이썬!

고수준의 다목적 프로그래밍 언어로써 가독성을 장점으로 내세우고 있는데요.

컴파일도 가능하지만 스크립팅 언어로 사용되는 경우가 많죠

파이썬에 대한 개발자들의 공통적인 불만은 블록 구조를 지정하는데

대괄호나 중괄호 대신 들여쓰기를 사용하는 점, 

콜론과 밑줄의 과도한 사용, 모듈/변수 이름 충돌을 꼽았어요.

그리고 파이썬을 피하는 방법은?

구글, 야후, 나사에서 일하지 않는 방법이라네요 ㅎㅎㅋ





개발자를 미치게하는 프로그래밍 언어 2. 랩뷰


랩뷰는 앞서 나온 파이썬보다 조금 생소한 프로그래밍 언어이죠?

랩뷰는 측정 및 제어 시스템에 사용되는 시각적인 데이터 흐름 프로그래밍 언어인

G를 위한 개발 환경이에요. 프로그래머는 랩뷰를 사용해서 "와이어"를 통해 기능 노드를 연결하여

실행을 확인합니다.

이 랩뷰에 대한 공통적인 불만으로는 GUI 프로그래밍 방식은 아주 단순한 작업 외에

모든 작업을 극도로 복잡하게 만든다는 점!

랩뷰를 피하는 방법으로는 장비 제어(특히 실험실) 또는 산업 자동화 프로그래밍 관련 직장을 피하고

아이의 레고 마인드스톰 프로젝트를 돕겠다고 나서지 않는 것 이래요 ㅋㅋ








개발자를 미치게하는 프로그래밍 언어 3. 자바스크립트



자바스크립트는 넷스케이프에서 처음 개발한 인터프리터 언어로, 

주로 웹 페이지에서 클라이언트측 스크립팅 언어로 사용되는데요.

서버 측 웹 스크립팅가 임베디드 스크립팅 언어로도 구현됩니다.

자바스크립트에 대한 공통적인 불만으론 대/소문자에 민감하다는 점,

브라우저마다 다른 구현, 디버깅 기능의 부재, 이상한 상속 규칙 등을 들었어요.

자바스크립트를 피하는 방법은 웹 개발자로 일하지 않는 방법...!!!

이렇게 보니 자바스크립트가 얼마나 많은 기업과 환경에서 

사용되고 있는 프로그래밍 언어인지 확 와닿네요 ㅎㅎ






개발자를 미치게하는 프로그래밍 언어 4. TCL


TCL은 Tool Control Language의 약자로 임베디드 명령 언어로 개발되었지만

웹 어플리케이션, 네트워크 관리 및 테스트 자동화와 같은 분야에 사용되는

범용 스크립팅 언어로 발전했어요.

TCL에 대한 공통적인 불만으로는 구문이 너무 단순하다는 점, 

포인터가 없으므로 참조를 전달할 방법이 없다는 것, 배열이 문자열로 저장되는 것,

목록 의미론에 취약하고, 변수 범위 지정이 혼란스럽다는 점이에요.

TCL을 피하는 방법은 시스코, AOL 또는 CNET이나 기타 AOLserver 또는 OpenACS 플랫폼을 사용하는 곳에

취직하지 않는 방법이 있다네요 ㅎㅎ








개발자를 미치게하는 프로그래밍 언어 5. 코볼


코볼의 특징은 1969년에 처음 설계되었으며 주로 비지니스 어플리케이션 정부 관리 기능을

지원하도록 만들어진 코볼 (COBOL : Common Business-Oriented Language) 레거시 시스템은

지금도 여전히 널리 사용되고 있답니다.

코볼에 대한 공통적인 불만으로는 극히 장황한 구문인데요. 프로그래머가 아닌

사람이 읽을 수 있는 언어를 목적으로 만들어졌기 때문이에요. 또한 버전간 호환이 되지 않는 점,

코볼 2002 이전에는 객체 지향 프로그래밍과 함수, 포인터를 지원하지않는 점입니다.

피하는 방법으로는 정부, 금융 서비스 또는 군대에서 일하지 않는 방법이 있네요



이렇게 개발자들을 미치게하는 프로그래밍 언어 10가지 중 5가지를 먼저 알아보았는데요.

나머지 5개는 다음 편에서 말씀드리겠습니다! 




안녕하세요! 오늘은 인공지능 활용 분야에 대해서 알아보기로 해요!

제 4차 산업혁명의 주요 키워드가 바로 '인공지능'인 것은 모두들 아시죠?

따라서 인공지능을 활용한 사례가 굉장히 많은데요.

오늘은 인공지능 활용 분야에 대해서 몇 가지로 간단히 추려서 알아봅시다~!



인공지능 활용 사례 1) 아마존의 드론 택배





세계 최대의 온라인 쇼핑몰, 아마존에서는 재밌는 택배 서비스를 시작했는데요.

인공지능을 활용한 드론 배달 서비스가 바로 그 주인공입니다.


아마존 프라임 에어라는 이름의 택배 서비스는

드론기를 이용하여 구매자에게 물건을 배송해주는 서비스랍니다.


실제 구매자에게 배송을 마치기도 했죠!

영국 케임브리지 인근에 사는 사람이 주문한 TV 셋톱박스와 팝콘 한 봉지를

성공적으로 배달한 사례가 있는데요.

당시 배송 물품의 총 무게는 2KG이 조금 넘는 수준이었다고 하는데요.

아마존은 영국 케임브리지 인근을 대상으로 서비스를 진행했고

차츰 더 넓힐 계획이라고 발표했답니다.





인공지능 활용 사례 2) 우버 자율주행차



출처: 연합뉴스


드론 택배가 영국이었다면, 이번엔 미국입니다.

우버는 미국 샌프란시스코에서 자율주행차 서비스를 시작했는데요.

볼보 XC90 자동차 위에 레이더와 카메라를 부착한 형태의 자율주행차 서비스를 선보였답니다.


우버는 공식 홈페이지를 통해서 샌프란시스코를 시작으로 더욱 서비스 영역을

확대할 예정이라고 발표했습니다.


손으로 운전대를 잡지 않아도 저절로 목적지까지 데려다주는 차가 

실제로 등장하다니 정말 인공지능의 능력이 놀랍지 않나요?






인공지능 활용 사례 3) 로봇 저널리즘



기사 작성, 작곡, 그림 그리기 등 예술 분야까지 인공지능의 영향이 끼친다면

어떻게 될까요?

이제는 더이상 상상이 아닌, 현실로 다가오게 되었습니다.

실제로 우리가 읽는 기사들의 많은 부분을 로봇이 작성하고 있기 때문입니다.

이미 2006년부터 기업의 수익관련 기사 작성을 시작으로 

미국의 오토메이티드 인사이트사 로봇기자 '워드 스미스'는 초당 9.5개의 기사를 작성하는 

놀라운 능력을 보여주고 있습니다.

워드 스미스는 2013년 기준 월 평균 15,000개의 기사를 AP통신 등에 판매했다고 하네요.


국내에서도 테크홀릭의 '테크봇'이 인기 기사들의 조회 수나 SNS 공유 수치 등을 분석하여

기술 동향 등에 관한 기사를 작성했습니다.


로봇 저널리즘의 장점은 무엇보다 

방대한 DB를 바탕으로 객관적이고 정확한 정보의 전달이 가능하다는 점입니다.

또한 신속하게 정보 전달이 가능하기 때문에

재난에 대비할 수 있는 방책이 되겠죠?







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

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

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

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

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

알아볼까요?




자료구조의 모든 것



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

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

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

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

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

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

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

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






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

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

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



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

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

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

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


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

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

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

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






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

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

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


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

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

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

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

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


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

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

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






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

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


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

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

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

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

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




안녕하세요~ 여름방학에 곧 수시가 시작되는 만큼

오늘은 대학 입시에 대해서 얘기해보려 하는데요~

아무래도 IT 업계 그리고 개발 직무가 핫하게 떠오르고 있는 만큼

컴퓨터공학 전공을 지원하는 학생들이 높아지는 추세라고 합니다.

그렇다면 어떻게 준비해야 컴퓨터공학과에 진학할 수 있는지,

또 컴퓨터공학과를 졸업한 뒤 향후 전망이 어떠한지 차근차근 알아보도록 하겠습니다.





컴퓨터공학과, 어떤 걸 배우나요?


학교마다 커리큘럼은 조금씩 다르겠지만,

통상적으로 컴퓨터공학과는 우리사회 전반에서 사용되는 컴퓨터에 대한

가장 기초적인 구조부터 응용프로그램까지의 전반을 공부하는 학문으로써,

컴퓨터가 이용되는 모든 분야에서 필요한 기초학문을 배우게 되는데요.


시스템의 분석 및 설계로부터 시스템 운영을 위한 소프트웨어 및 멀티미디어 기반

엔터테인먼트와 초고속 통신망 구성에 이르기까지 

컴퓨터 전반에 걸친 종합적인 지식을 익히게 됩니다.


크게 과목을 분류하자면

디지털 컴퓨터의 하드웨어적인 구성과 그 동작원리를 이해할 수 있도록

컴퓨터 구조의 기초 개념을 배우는 

컴퓨터 구성,


컴퓨터를 실제 사용하기 위해서 필수적인 운영체제에 대해서 구체적인

구조와 구성, 그리고 발생하는 문제를 해결하기 위한 해결법을 배우는

운영체제,


정보기술 분야의 세부 전문 분야를 개괄적으로 이해할 수 있도록 

컴퓨터 시스템, 컴퓨터 네트워크, 정보 처리 기술, 멀티미디어와 응용 등의 기초 개념을 배우는

정보기술 개론,


주어진 문제를 효과적으로 해결하는 데 자주 사용되는 여러가지 자료구조를 살펴보고

이를 실제적을 구현하는 방법과 기본적인 알고리즘에 대해 배우는 

자료구조,


규모가 크고 쓸모가 있는 소프트웨어를 개발하기 위하여 필요한 여러 가지 설계 방법과 

프로그래밍 기술 및 도구에 대해 배우는

소프트웨어 공학,


정보 시스템에서 데이터를 가공하여 파일이나 데이터 베이스에 저장하고 필요에 따라 

정보를 검색하여 제공하는 기능에 대해 배우는 

정보검색 등이 있습니다.






컴퓨터 공학과 관련 자격증

컴퓨터공학과와 관련된 자격증으로는
실기교사 자격증, 정보기술자격(ITQ), 디지털정보활용능력(DIAT),
문서실무사, 정보처리기사, 컴퓨터활용능력평가 등이 있습니다.


컴퓨터공학과 수시 준비, 어떻게?

컴퓨터공학과 수시를 위해 준비하는 학생들이라면
가장 먼저 코딩 공부를 시작하는 것이 좋습니다.
가능한 일찍 진로를 설정하여 구체적인 계획을 세워나가는 것이 
좋기 때문에 코딩 공부를 시작으로 교내 활동이나
교외 활동, 대회, 자격증 등 컴퓨터 공학에 얼마나
관심을 갖고 있는지 생활기록부에 기록을 남겨 보여주는 것이
좋기 때문인데요. 이 뿐만 아니라 내신 성적 관리도 중요하답니다.





컴퓨터공학과 전망, 괜찮을까?

정보통신기술의 융합으로 이뤄지는 차세대 산업혁명의 시대!

바로 4차 산업혁명이 가장 이슈인 만큼

IT 영역의 가장 기본적인 학문인 컴퓨터공학과는

당연히 전망이 좋을 수 밖에 없지 않을까요?

특히 코딩 교육이 중요시되는 이 시점에서 굉장히 경쟁력을 갖춘

학과라고 생각됩니다. 컴퓨터공학과를 졸업하고 나면

IT계열 중에서도 컴퓨터와 관련된 모든 분야에 취업이 가능해요.

 


 

이렇게 컴퓨터공학과, 어떤 공부를 하고 어떻게 준비해야 하는지에

대해 알아보았는데요. 컴퓨터공학과 진학을 희망하는 학생들, 모두 원하는 목표 이루시길 바랍니다!