안녕하세요 기형쌤입니다.

한동안 포스팅을 못 하다가 오랜만에 컴퓨터 앞에 앉네요.

어느새 2021년이 되었습니다. 다들 새해 복 많이받으세요!

새해가 되었음에도 아직도 코로나는 가라앉을 생각을 하지 않네요.

이대로 코로나가 생활의 일부가 되는게 아닌가 걱정이 되는 요즘입니다.

 

상황이 이렇다보니 취업시장은 점점 더 얼어붙고, 비대면 면접이니 뭐니 하며

일상적으로 아는 취업준비가 어려워지고 있죠.

심지어 취업에 성공하더라도 바로 자택근무를 시작하는 경우가 다반사라고 하더라구요.

 

상황이 이렇다보니 많은 사람들이 집에서도 할 수 있는 일을 찾기 시작했고,

그에따라 IT업계로 뛰어드는 분들도 많아졌습니다.

누가 뭐라해도 프로그래밍은 집에서도 할 수 있는 작업들이 맞으니까요.

 

오늘 제가 들고 온 이야기는 HTML에 관한 이야기 입니다.

HTML이란?

일단 HTML은 프로그래밍 언어가 아닙니다. HyperText Mark-up Language의 약자인 HTML은

그 이름에서 볼 수 있듯이 Mark-up Language 입니다.

그렇다면 마크업 언어는 어떤 것을 뜻할까요?

마크업 언어는 문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한

규칙들을 정의한 언어의 일종입니다. 데이터를 기술한 언어라는 점에서 프로그래밍 언어와는 분명한 차이가 있습니다.

본래는 교정 부호 등을 표기하는데에 사용했지만, 점차 용도가 확장되어 문서의 구조를 표현하도록 발전한 언어입니다.

 

마크업 언어에 대해 자세히 설명하자면

실제 책을 하나의 프로그램이라고 생각하면 편하다.

그리고 사람이 그 책에 볼펜으로 밑줄을 긋거나 볼펜으로 필기를 하는 행위가 마크업의 일종이라고 할 수 있습니다.

또는 그래픽 디자이너들한테

'책 표지는 배경을 무지개 그라데이션으로 넣어주시고 제목은 중앙에 검은색 굴림체로 크게 박아주세요'

라고 말하는 것 또한 자연언어 기반 마크업 언어라고 할 수 있습니다.

 

우리가 흔히 웹사이트에서 보는 로그인 시스템이나 계정에 따라 다르게 보이는 프로필 등은

모두 프로그래밍 언어가 조합된 웹사이트 입니다.다.

일반적인 마크업 언어만으로는 이러한 기능을 구현하는 것이 불가능합니다.

 

보다 컴퓨터 상의 실제 사례를 보자면, 우선 한컴오피스 한글에서 수식 입력기를 들 수 있습니다.

한글의 수식입력기에서는 마우스로 기호를 하나하나 찾아 골라서 클릭을 하는 식으로도 수식을 입력을 할 수 있지만,

수식이 나타나는 화면의 아래창에 몇가지 명령어들을 규칙에 맞춰 직접 타이핑하며

마우스를 사용하지 않고도 여러가지 수식들을 입력할 수도 있습니다.

이때 사용되는 명령어들도 한컴오피스 한글 문서에서 수식 문자가 화면에 표시되는

모양과 형식을 결정하는 마크업 언어에 해당하게 됩니다.

 

돌아와서

HTML 언어는 웹 페이지의 모습을 기술하기 위한 프로그래밍 언어가 아니라 마크업 언어 입니다.

웹사이트에서 흔히 볼 수 있는 htm이나 html 확장자의 문서가 바로 이 언어로 작성된 문서입니다.

 

HTML은 프로그래밍 언어에 비하여 문법 오류에 관대한 편입니다.

그래서 닫는 태그를 누락하거나 태그에 오타가 나거나 하는 오류가 발생해도 어느 정도 무시하고 작동할 수 있습니다.

다만 <div> 태그 등 중요한 태그에서 오타가 난다면 사이트 레이아웃이 깨져버리기도 하니

오타나 누락이 없는게 가장 좋겠죠?

 

예를 들어

<h1>Hello World!라고만 써도

(<!DOCTYPE> 선언문 누락, <html> 선언 태그 누락, <head>, <body> 태그 누락, 닫는 태그 </h1> 누락)

웬만해서는 의도한 바대로 출력이 됩니다.

 

HTML은 서버에서 보내오는 정보대로 페이지를 그려내는 것에는 강하지만

반대로 사용자의 입력에 민감하게 반응하여 페이지를 그리는 것에는 약한 편입니다.

또한 동적인 화면 구성이 힘들다는 약점도 있습니다.

이러한 약점을 보완하기 위하여 JavaScript 등의 각종 스크립트의 도움을 받으며,

요즘 유행하는 AJAX도 그런 면을 보완하기에 적합합니다.

 

그 외에 멀티미디어 지원을 위하여 외부 프로그램을 불러올(embedding) 수 있습니다.

다만 브라우저 의존적인 면이 강하기 때문에

한 쪽 브라우저로 잘 표시되는 페이지가 다른 브라우저로는 완전 엉망이 되는 경우도 있습니다.

 

HTML5는 비디오/오디오 처리를 위한 별도의 <video><audio> 태그를 추가하고

동적인 그래픽은 <svg>와 <canvas> 태그를 통해 사용할 것을 권고하고 있으며

외부 플러그인은 가급적 사용하지 않으려 하고 있습니다.

그러나 아직은 <embed> 태그와 <object> 태그를 통해 외부 플러그인을 제한적으로 실행할 수는 있습니다.

하지만 2021년부터 어도비가 대표적인 플러그인인 플래시의 지원을 종료하면서 사용하지 않을 것을 권고하고 있습니다.

그래서 이전에 플래시로 할 수 있던 기능을 HTTP,CSS,JavaScript (혹은 Node.js) 등으로 통폐합 시키게 됩니다.

태그

태그는 HTML의 근간이라 불립니다.

HTML을 기술하기 위하여 사용하는 명령어의 집합을 태그(Tag)라고 합니다.

태그는 기본적으로 여는 태그와 닫는 태그로 구성되며, 닫는 태그 없이 단독으로 이용하는 태그도 있습니다.

태그에 주는 다양한 옵션은 모두 여는 태그에 지정하며,

닫는 태그는 태그 효과가 적용되는 범위의 끝을 나타내는 기능만을 합니다.

 

HTML은 웹 브라우저마다 지원하는 태그가 조금씩 다르며,

같은 태그라도 작동하는 방법이 다르지만 대체로 비슷한 태그를 지원합니다.

 

그래서 태그 종류가 수십 가지가 넘는 데다가,

지정가능한 옵션까지 일일이 열거하면 책 한 권 분량의 엄청난 분량이 됩니다.

따라서 일반적으로는 사용빈도가 높은 일부 태그만 암기하고,

나머지는 '태그사전(또는 레퍼런스)'이라고 하는 도움말 파일을 참고하는 편이 대부분 입니다.

물론 암기 범위는 고급 사용자 내지는 프로페셔널(흔히 웹 퍼블리셔라라 불리는 사람들)로 갈수록 넓어지겠죠?

 

웹 퍼블리셔, 웹 디자이너, 웹 프로그래머에게 태그는 기본 소양이라고 할 수 있습니다.

'태그 사전'의 도움을 받으면, 약간의 교육만으로 누구나 간단한 웹 사이트는 만들 수 있습니다.

물론 복잡한 사이트는 경험이 필요하기 때문에 입문자들은 만들기 어렵습니다.

 

사실 HTML 규격에는 HTML이 어떻게 표시돼야 할지에 대해서

큰 틀만 정해져 있고 구체적으로는 설명하지 않고 있습니다.

예를 들어 테이블의 경우 선을 이용해서 줄과 칸을 구별하는 식으로 정해져 있지만,

선의 모양을 구체적으로 정의하지는 않은 것처럼 생각하시면 편합니다.

애초에 HTML은 화면 구성보다는 의미 표현에 치중하고 있기 때문에

결국 한 HTML 파일도 브라우저마다 다르게 보이는 경우가 존재합니다.

이로 인해 최근의 추세는 HTML에는 표시하고자 하는 문서의 구조를 중심으로 기술하고,

구체적인 표시 방법은 CSS에서 정의하는 방향으로 나아가고 있습니다.

 

HTML 문서를 만드는 방법

HTML 문서의 장점은 언어를 알고있다면 작성은 쉽다는 것에 있습니다.

타 프로그래밍 언어들처럼 언어를 만들기 위한 고유의 환경이 필요하다던지

리눅스라는 OS에서 개발해야한다던지 하는 제약이 없고

간단하게 메모장에 작업을 진행해도 됩니다.

 

HTML 문서를 작성한 후 메모장에서 저장할 시, 다른 이름으로 저장을 선택한 뒤,

파일 형식을 '모든 파일 (*.*)'로 지정하고 파일명 끝에 .html이나 .htm을 추가하면 HTML 문서가 됩니다.

이렇게 하지 않으면 그냥 메모장으로 열리게 되겠죠?

 

.html로 바꾸고 난 이후에 수정하고 싶다면, .html 확장자 파일을 오른쪽 클릭 후,

연결 프로그램을 선택하고 Notepad(메모장)을 선택하거나, .html 파일을 메모장에 끌어다 놓기 하면 됩니다.

다시 확장자를 .txt로 바꿔도 동일하게 작동 합니다.

참고로 윈도우즈의 메모장으로 HTML 문서를 편집하면, 각 줄마다 CRLF가 달라붙어서 문제가 되기도 합니다.

그러니 웬만하면 Editplus나 vim, Notepad++ 같은 에디터로 편집하도록 하는것을 추천드립니다.

이런 에디터의 경우 HTML이나 서버 사이드 스크립트 코딩에 최적화되어 있기 때문에

구문에 따라 색상 구분도 되는 등 여러 가지 장점이 있습니다.

 

작성하는 방식은 크게 텍스트 에디터를 이용해 직접 코드를 편집하는 방법과

WYSIWYG 편집기를 사용하는 방법이 있습니다.

WYSIWYG 방식은 드림위버 나모 웹에디터가 지원하는데 현재의 WYSIWYG 방식은

거의 온라인 에디터로 대체되었으며, 본격적인 웹 개발에는 사용되지 않고 있습니다.

이유는 구조화된 HTML을 강조하는 HTML5와는 심히 궁합이 안 맞기 때문입니다.

 

제로보드 스킨 등을 만들거나 혹은 기타 다른 홈페이지용 게시판을 자신의 홈페이지에 맞게 만들기 위하여

필요한 PHP나 CGI 파일의 이미지 수정을 위해서는 어느 정도 메모장으로 HTML을 구성하는 능력이 필요합니다.

 

마지막으로, 이렇게 저장한 .html 파일을 더블클릭해서 실행할 경우

HTML 파일 내부에서 다른 외부 리소스들을 불러오는 데 제약이 가해집니다.

사실상 HTML 파일 하나만 로딩되는 수준인데 이는 브라우저의 보안 모델이 로컬 컴퓨터의 리소스(파일)를

읽지 못하게 제약이 걸려있기 때문으로, 이 문제를 피하려면 웹 서버를 실행해서

http://localhost 또는 http://127.0.0.1 로 접근해야 합니다.

그냥 더블클릭했을 때의 URL은 file:// 로 시작하는 걸로 구분할 수 있습니다.

간단한 페이지를 만든다면 로컬 웹 서버를 실행하는 것보다 저렴한 웹호스팅 계정을 개설한 뒤

FTP를 통해 이용하는 방법이 더 간편하므로 이 방법을 추천드리는 편입니다.

 

컴파일러

2016년 즈음부터는 웹 환경이 나날이 대형화되고 복잡해짐에 따라 웹 사이트의 근간을 이루는

HTML, CSS, JavaScript는 모두 대안 언어나 기술이 존재합니다.

HTML은 열고 닫는 태그를 일일이 오타 없이 쓰는 게 불편하고 마크업 언어인 탓에

템플릿 지원이 되지 않고 객체 지향적으로 작성이 불가능한 등의 여러 단점이 있었습니다.

 

그래서 이것을 극복하고자 Pug(구 JADE)라는 컴파일러(트랜스컴파일러)가 만들어졌습니다.

들여쓰기로 블럭을 구분하고 변수나 템플릿 기능을 추가하고 자주 사용하는 id, class 속성을

특수 문법을 통해 간편하게 지원하는 등 여러가지 기능을 제공합니다.

 

그렇지만 Pug 자체는 컴파일러이고 컴파일 결과가 HTML로 나오는 것입니다.

어디까지나 정적 HTML 문서를 만들어내는 데 특화된 언어 및 유틸리티이기 때문에

Pug만으론 홈페이지에 동적인 기능을 삽입하기는 어렵습니다.

 

그리고 Pug는 트랜스컴파일러이지 Virtual DOM의 일종이 아닙니다.

그래서 최종 결과물인 홈페이지의 렌더링 속도를 가속해주지는 못합니다.

엄격하게 구조화된 HTML을 생성하기 때문에 HTML 문서 자체의 파싱 속도는 빠르지만

DOM 조작 속도를 개선하지는 못한다고 이해하시면 됩니다.

 

어디서 배울까?

HTML은 다른 프로그래밍 언어들과는 확실히 다르고 배우기 쉬워보이지만

이 또한 문법이 존재하는 언어입니다.

그래서 혼자 시작하시는 분들께는 제대로 배워보시는걸 추천드립니다.

현재 웹 개발자 관련하여 전문가 과정을 진행하고 있습니다.

확실하게 배우시고 취업까지 하셔서 코로나 시국임에도 불구하고

취업과 성공 모두 잡으시길 바랍니다.

오픈 카톡 링크를 남겨놓으니 그 쪽으로 문의 주시면 빠르게 안내드리겠습니다.

 

open.kakao.com/o/sHczZCIc

 

개발자로 취직의 빠른길. IT전문가과정 무료상담 진행중

#IT#취업#국비지원#국민취업지원제도#국비#화이트해커#정보보안#Java#C언어#웹개발자#스펙#무료#취업준비#빅데이터#시스템엔지니어#앱개발

open.kakao.com

 

안녕하세요! 기형쌤입니다.

벌써 12월 31일. 한 해의 마지막 날이네요.

다들 잘 지내고 계신가요?

이전에도 물론 시간이 빠른 것 같다는 생각이 들었지만

올 해는 유난히 아무것도 안했는데 한 해가 다 갔다는 느낌이 듭니다.

이것도 코로나의 여파이려나요ㅠㅠ

 

제 주변의 친구들에게 물어보니 올 해 취업시장은 더 힘들고

취업한다 해도 출근이 불투명해서 아예 스펙을 하나라도 더 쌓으려고

자격증 공부나 영어 공부 등을 하더라구요.

 

그래서 오늘 제가 포스팅해볼 자격증은 네트워크 관리사 2급 자격증입니다.

네트워크 관리사란?

네트워크관리사란 서버를 구축하고 보안 설정, 시스템 최적화 등

네트워크 구축 및 이를 효과적으로 관리할 수 있는 인터넷 관련 기술력에 대한 자격증입니다.

 

네트워크 관리사 2급은 국가자격증이지만 1급은 민간자격증이므로

무리하셔서 1급을 취득하실 필요는 없으십니다.

2급만 국가공인인 이유는 1급은 난이도가 높아 응시자가 너무 적어서라고 합니다.

2급 응시자는 1년에 1.5만명 정도인데, 1급 응시자는 1년에 200명도 안되는 수준입니다.

 

네트워크관리사 2급 시험은?

2급 시험의 과목은 네트워크 일반, TCP/IP, NOS, 네트워크 운용 기기의 4 과목으로 구성되어 있습니다.

 

네트워크 관리사 시험 또한 필기와 실기로 나뉘어져 있는데

1차 필기는 50문제를 50분안에 푸는 사지선다 형이고, 커트라인은 1급과 2급 모두 60점입니다.

컴퓨터로 시험을 치루고 메모가 금지되어 있기 때문에 필기도구는 소지할 필요 없으십니다.

 

필기 시험을 치르다 보면 기출문제와 비슷한 문제들이 많이 나오고

가, 나, 다, 라 순서만 바꿔서 나오는 경우도 있다고 합니다.

 

그래도 기출 문제를 어느정도 풀어보셔야 문제 유형에 익숙해지시기도 하니

기출문제를 많이 풀어보시는걸 추천드립니다.

 

실기시험★

실기시험은 총 18문제가 출제되며

케이블 작업, 윈도우 서버, 리눅스 명령어, 네트워크 지식, 라우터 명령어 등이 출제됩니다.

 

시험시간은 총 80분이며 배점은 케이블 작업형이 6.5점이고 나머지는 5.5점입니다.

커트라인은 필기와 마찬가지로 1급과 2급 모두 60점이므로 11문제 이상 맞춰야 합니다.

 

역시 컴퓨터로 시험을 치지만 계산이 필요한 문제가 한두문제 있으므로 필기도구를 지참할 것을 추천드리는 편입니다.

 

케이블 작업은 제한시간 10분 내에 RJ-45 케이블을 만드는 것으로

평소에 본인께서 쓰시는 스트리퍼와 랜툴을 지참하는 것이 좋습니다.

기본적인 랜툴이 제공되나 잘 듣지 않는다는 평이 대부분입니다.

 

문제는 다이렉트 케이블이나 크로스 케이블 중에 하나를 만들어라 라는 형식으로 나오는데,

직접적으로 어떤 것을 만들라고 나오는 것이 아니라

 

'PC와 허브를 연결하는 케이블을 만들어라'

 

라는 식으로 나오므로, 어떨때 어떤 케이블이 필요한지 알아두셔야 합니다.

 

윈도우 서버 문제는 윈도우를 다룰 줄 알고 있다면 쉽습니다.

문제 조건을 지정해 주고 '서버를 위와 같이 설정해라' 라는 형식으로 출제됩니다

ICQA 홈페이지에 검정용 프로그램이 올라와 있으니 어떤 형식으로 나오는지 한번씩 풀어보시는 것이 좋습니다.

 

총 8문제가 출제되는데, 가끔 새 유형이 나오기도 합니다만

문제 유형이 약 12종류 정도 밖에 없어서 기출을 보면 전에 봤던 문제들이 계속 나옵니다.

 

리눅스 명령어는 캡처 화면을 보여주고 어떤 명령어를 사용한 화면인지 묻거나,

상황을 설정하고 이런 경우 어떤 명령어를 사용해야 하느냐고 묻는 형식의 문제가 출제됩니다

보통 man, pwd, chmod, passwd 등의 기초적인 명령어가 출제되므로

조금만 공부하시면 푸시는데 많은 어려움은 없으실겁니다.

 

네트워크 지식은 OSI 계층에 대한 문제, 사설망 클래스 문제, 네트워크 ID 문제, IPv6문제 정도가 단골로 출제됩니다.

리눅스 명령어와 합쳐 총 6문제가 출제됩니다.

 

라우터 명령어도 별도의 검정프로그램으로 실시하는데,

이 예시문제도 홈페이지에 올라와 있으니 한번씩 시도해보시고 풀어보시는 것이 좋습니다.

쉬운 2문제와 변별력을 위한 1문제가 출제되는 편입니다.

응시료는?

응시료가 타 시험들 보다는 조금 비싼 편입니다.

(물론 해외기반 자격증들보다는 저렴합니다)

1, 2급 필기는 43000원이고 실기는 1급 100000원, 2급 78000원 입니다.

 

응시 방법은 인터넷 개인 접수와 단체 접수가 있습니다.

개인 접수는 말 그대로 혼자서 지원하는 방식이고,

단체 접수는 단체 검정을 위한 접수로 주로 학교에서 하는 방식인데 정보통신계열 학과에서는

학점 등의 이유로 취득하는 자격증인만큼 2급의 접수율이 높은 편입니다.

그리고 군 검정도 가능한 것이 네트워크관리사 자격증입니다.

군부대 지휘관 등에게 건의 후 시험을 보러 가는 것도 가능하기 때문에

군 생활 중 이 자격증을 취득하고 싶다면 한번 도전해 보시는것도 좋을듯 합니다.

 

어디서 배울 수 있나요?

네트워크 관리사도 국가자격증이기 때문에 제대로 배우고 시험을 치루시는 것을 추천드립니다.

일각에서는 쉬우니 혼자 해도 괜찮아요~라고 하는 분들도 있지만

제 개인적인 생각으로는 홀로 하시는건 그래도 조금 어렵지 않을까 싶습니다.

현재 IT 전문가 과정이 진행되고 있습니다

네트워크 전문가 과정을 진행하시면 이 네트워크관리사 정도는 쉽게 취득하실 수 있을거라 생각합니다.

관심있으시다면 문의 주세요. 아래의 네임카드를 클릭하시면 바로 문의 가능합니다.

 

안녕하세요 기형쌤입니다.

12월 30일이네요.

오늘이 지나면 2020년의 마지막날이 올거라는 생각에 마음이 싱숭생숭합니다.

다들 한 해 마무리 잘 하시고 다가오는 2021년을 맞이합시다!!

 

오늘 제가 들고 온 이야기는 정보보안기사에 대한 이야기입니다.

어제 설명드렸던 정보처리기사 자격증과 함께 기사급의 자격증인데요

정보보안기사 또한 과학기술정보통신부에서 주관하고 한국인터넷진흥원에서 시행하는

국가자격 시험 및 그 자격증을 의미합니다.

 

2012년 6월 7일 개정되고 2013년 1월 1일부터 시행되는 고용노동부고시 제2012-49호

"국가기술자격의 종목별 관련학과 고시에서 IT 계열은 '전기·전자'와 '정보통신' 분야가 있고,

'정보통신' 분야는 '정보기술', '방송·무선', '통신'의 3개의 분야가 있습니다.

해당 고시에 따르면 그 중 '정보기술' 분야에 포함되는

 

정보관리기술사, 컴퓨터시스템응용기술사, 전자계산기조직응용기사, 정보처리기사,

정보보안기사, 사무자동화산업기사, 정보처리산업기사, 정보보안산업기사

 

이렇게 8개 자격은 모든 학과가 응시 가능하게끔 되어있습니다.

즉, 4년제 대학교만 졸업하면 관련 학과를 졸업했다고 인정한다는 의미이다.

 

따라서 정보보안기사 또한 정보처리기사와 함께 학과에 상관없이 대학만 졸업하면

취득할 수 있는 기사급 자격증이 되는 셈입니다.

 

2013년부터 시작하여 1년에 2회씩 시험 응시가 가능합니다.

응시 자격은 앞서 말한 것 처럼 정보처리기사와 동일하게 관련학과의 제한이 없고 4학년이면 볼 수 있습니다.

 

"4년제 대학 졸업자 혹은 졸업예정자"

"3년제는 졸업 + 동일 및 유사직종 실무 경력 1년"

"2년제는 졸업 + 동일 및 유사직종 실무경력 2년"

"동일 및 유사직종 4년 경력"

 

의 조건이 충족되었다면 응시가 가능합니다.

지역은 5개 지역으로 서울, 부산, 대전, 대구, 광주에서 응시할 수 있으며 응시료는 기존의 기사 시험과 동일합니다.

 

정보처리기사 자격증의 때에도 말씀을 드렸던 내용이지만

비전공자에게 기사 시험 응시 자격을 없애자는 말이 여러번 나오고 있습니다.

그러므로 전공자이신 분들은 기회가 될 때 정보처리기사 정보보안기사 

전공에 상관없이 취득하실 수 있는 기사 자격증을 따놓는 게 좋습니다.

설령 비전공자에게 기사 시험 응시 자격을 박탈하더라도

기사 자격 소지자는 다른 기사 시험에 응시할 자격이 주어지기 때문에

나중에 타 기사과정 자격증을 준비하실 때에 용이합니다.

시험 방식

시험은 필기와 실기로 나뉘어 있습니다.

필기는 총 5과목으로 각 과목당 30분의 시험시간을 제공하고 있습니다.

타 기사시험과 동일하게 각 과목 40점 이상 취득에,

5과목 평균점수 60점 이상의 점수를 받아야 합격을 하실 수 있습니다.

 

실기는 필답형입니다.

총 180분의 시간이 주어지며

단답형 10문항(30점), 서술형 3문항(42점), 작업형 3문항 중 2문항 선택(28점)

으로 이루어져 있습니다.

 

정보처리기사와는 달리 완벽한 순수 단답형 + 서술형 주관식이라고 할 수 있습니다.

 

정보보안기사는 기출 문제가 공개되지 않는 시험입니다.

따라서 대부분의 CBT사이트에서도 정보보안기사 문제는 제공하지 않습니다.

일부 웹상에 존재하는 문제들은 물론, 수험서에 포함된 기출문제들도

모두 임의로 복원한 문제이므로 정확하지 않습니다.

필기 시험

시스템 보안: 운영체제, 클라이언트 보안, 서버보안 등 인프라 보안관리의 전반적인 부분을 다루는 과목입니다.

 

네트워크 보안: 네트워크 일반, 네트워크 활용, 네트워크기반 공격 이해, 네트워크 장비 활용 보안, 네트워크 보안 동향 을 묻는 과목입니다.

 

어플리케이션 보안: 인터넷 응용 보안, 전자상거래 보안, 기타 어플리케이션 보안에 관한 내용을 묻습니다.

 

정보보안 일반: 보안요소 기술, 암호학에 대해 다룹니다.

다만 암호학은 필기에서 가장 난해한 시험이라고 평가를 받는데요.

암호화 방식, 기초가 되는 알고리즘의 종류가 단골 출제 항목이고

SEED와 ARIA 같은 국산 알고리즘도 자주 등장하기 때문에 숙지해 두는 것이 좋습니다.

다행인 것은 암호학은 실기에서 출제 비중이 거의 없기 때문에 필기에서만 중점적으로 공부하시면 충분할 듯 합니다.

 

정보보안관리 및 법규: 말 그대로 정보보호 관리, 정보보호 관련 법규에 관한 문제들이 출제됩니다.

실기시험

사실 정보보안기사의 난이도는 상당히 높은 편입니다.

비전공자들도 시험에 응시할 수 있지만 그것이 응시할 수 있다 뿐이지

합격할 수 있다는 말과 일맥상통하진 않으니까요.

심지어 전공자들도 이 정보보안기사를 공부할 때 꽤나 애를 먹습니다.

 

그리고 그 이유는 이 실기시험에서 대부분 나타납니다.

정보보안 실무

1. 시스템 보안 (Windows, Unix, 리눅스)
2. 네트워크 보안 (OSI 7계층, TCP/IP)
3. 어플리케이션 보안 (HTTP, FTP, HTTPS, DB 등)
4. 주요정보통신기반시설 취약점 점검 및 보호대책 수립
5. 정보보호계획 수립, 위험분석
6. 정보통신망법, 개인정보보호법, 전자서명법, 정보통신기반보호법(4번 항목과 겹침), ISMS 인증심사 관련. (이하 법, 고시, 시행령을 포함하기 때문에 범위가 넓다.)
7. 그 외 사회적으로 대중에게 잘 알려진 보안이슈들

 

위에서 언급한 7가지의 내용들은 주로 출제되는 실기시험의 내용들입니다.

저 내용들이 대표적이다 뿐이지 전부는 아니며

7번 내용을 보시면 아시겠지만 범위는 아주 많이 무궁무진해질 수 있습니다.

 

단답형 10문제 x 3점, 서술형 3문제 x 14점, 실무형 2문제 x 14점으로 총 100점으로 이뤄져있습니다.

실무형 문제는 3개의 문항이 출제되는데 2개의 문항만 골라서 풀면 됩니다.

3 문항 모두 썼을 경우 앞에서부터 2개를 채점합니다.

유의하실 점이 3개 중 첫 문제를 풀지 않고 나머지 2개를 풀었을 때,

답안지에 첫 문제를 풀지 않는다는 표시를 하지 않으면 해당 문항을 백지로 낸 것으로 간주하여 채점이 되지 않습니다.

마지막 문제를 풀어도 아예 채점하지 않습니다.

이는 시험장에서 방송으로 안내 및 감독관들이 계속 안내를 해 주기 때문에

잘 인지하셔서 실수하지 않도록 하시는게 좋습니다.

 

각 포트의 번호를 보고 TCP/UDP의 포트 목록에 해당하는 서비스를 잘 아셔야 합니다.

SMTP(25), POP3(110), IMAP4(143), SNMP agent(161), SNMP manager (162), HTTPS(443) 등

서술형에 포트 번호와 포트 이름을 잘못 쓰면 감점되기 때문에 확실하게 암기를 하셔야 합니다.

 

해킹으로 인한 피해는 다음 식에 의해 좌우되는데 각 요소를 암기하고 있어야 합니다.

연간 예상손실 (ALE) = 단일 예상손실 (SLE) x 연간 발생률 (ARO), 단일 예상손실 (SLE) = 자산가치 (AV) x 손실 계수 (EF)

 

VPN의 보안 프로토콜에 대해서 AH, ESP, IPsec은 알고 계셔야 하고,

Windows의 암호화 방식 중 BitLocker는 알고 계셔야 시험을 치루시는데에 도움이 조금이라도 더 되실겁니다.

 

또한 각 공격에 대한 설명을 보고 이름을 맞출 수 있어야 합니다.

Slowloris, 공급망사슬 공격 등이 출제되었었던 전적이 있습니다.

특히 Blind SQL 주입에 대해서는 자세히 알고 있으셔야 할 것입니다.

문제에서 제시되는 스크린샷을 보고 공격의 유형과 대응 방법이 바로바로 대답하실 정도가 되어야

문제를 푸실 때에 어려움이 없습니다.

 

리눅스 명령어를 사용할 수 있어야 합니다.

다만 자잘한 리눅스 명령어의 활용법은 산업기사 수준에서 자주 출제되고,

기사 수준에서는 리눅스 명령어를 직접적으로 묻는 문제는 자주 출제되지 않습니다.

그래도 리눅스는 정보보안 쪽에 종사하고자 하신다면 알아놓으시는게 좋습니다.

 

KISA에서 공식적으로 밝힌 부분으로, 실기 시험에서는 부분 점수가 주어집니다.

만약 단답형 1문제에서 3개의 답안을 적어야 하는 문제가 있는데,

여기서 2개를 맞추고 1개를 틀리면 부분점수 2점이 주어집니다.

단 서술형이나 작업형의 경우에는 알려진 부분 점수의 기준이 없습니다.

본인이 생각하기에 어긋난 답변을 썼다면 배점을 기대하지는 않으시는것이 좋습니다.ㅜㅜ

정보보안 법규

주로 단답형 1~2문제, 서술형 1문제, 실무형 1문제 출제가 됩니다.

특이하게도 2019년 1회(13회)에서는 정보보안법규가 단답형에서 소수 문항만 출제되고

서술형 및 작업형에서는 전혀 출제되지 않았었습니다.

단 이는 13회가 특이한 케이스였고, 이후에는 언제든지 정보보안법규가 기습적으로 출제될 수 있기 때문에

준비를 철저히 하셔야 할 것입니다.

 

법규의 경우에는 개정이 자주 되기 때문에 국가법령정보센터에서 망법과 개인정보보호법 등의

법제 전문을 수시로 읽고, 필요하다면 필사를 해서라도 아예 익숙하게 만드는 것이

시험을 치루시는데에 도움이 많이 되실겁니다.

 

어떻게 준비해야할까요?

정보보안기사는 어렵습니다. 그것이 팩트이고 현실입니다.

그렇다면 더더욱 철저하게 준비하는 것 만이 합격하실 수 있는 지름길이 되실겁니다.

 

현재 IT 전문가 과정을 진행하고 있습니다.

전문가라 함은 한 분야의 지식과 실무에 있어 상당한 성취를 이룬 사람이라고 생각합니다.

그러한 전문가를 만드는 과정인데 정보보안기사 자격증에 대한 공부 또한

철저히 대비해드립니다.

 

관심있으시다면 아래의 네임카드를 클릭하여 문의 주세요.

연락 남겨주시면 확인 후 빠르게 무료상담 도와드리도록 하겠습니다.

 

네임카드를 클릭해주세요!!

 

안녕하세요 기형쌤입니다.

2020년이 저물어가네요.

다들 한 해 어떻게 마무리하고 계신가요?

 

요즘 제 주변을 보면 코로나 때문에 안그래도 어려운 취업이 더 안된다고 하며

안타까워 하더라구요.

그래서 그 친구는 아예 올 해 6월부터 본격적인 스펙 업그레이드에 들어갔답니다.

 

그 이야기를 듣고 저도 여러분께 어떤 이야기를 들려드릴까 하다가 오늘 가져온 이야기는

정보처리기사에 대한 이야기입니다!

 

정보처리기사는 과학기술정보통신부에서 주관하고 한국산업인력공단에서 시행하는

국가자격 시험 및 그 자격증을 의미합니다.

정보처리 라는 말이 무색하게 정보처리기사는 소프트웨어 개발 관련 자격증으로, 정보시스템의 생명주기 전반에 걸친

프로젝트 업무를 수행하는 직무로서 계획수립, 분석, 설계, 구현, 시험, 운영, 유지보수 등의 업무를

수행할 수 있는지에 대한 능력을 검증하는 시험이라고 보시면 됩니다.

 

IT업계가 그렇듯 정보처리기사 자격증의 주된 목적은

실무적인 능력이 있는 전문가를 양성하는데에 그 목적이 있습니다.

 

타 기사시험과는 다르게 정보처리기사는 대학의 어떠한 과를 나오더라도

응시가 가능하다는 것에 특이점이 있습니다.

기사자격증들이 그러하듯 관련학과의 졸업자여야 응시 가능하다고 쓰여있기는 하나

모든 학과를 관련학과로서 인정해주다보니 2019년도 까지 합격자의 80%가 비전공자였다

라는 약간은 머쓱한, 웃지 못 할 이야기도 나왔었습니다.

 

다만 2020년 시험이 전면 개정되며 그 양상이 상당히 바뀌게 되었는데요

국가기술자격법 시행규칙 개정(2018. 6. 22.)에 따라

NCS(국가직무능력표준)에 맞춰 2020년부터 시험 과목이 대폭 개편되었습니다.

2019년과 2020년의 정보처리기사 시험?

정보처리기사 자격증은 필기와 실기 두 과정으로 나뉘어 있는데요

2019년까지의 필기시험은 데이터베이스, 전자계산기구조, 운영체제, 소프트웨어공학, 데이터통신

이렇게 5과목에 각각 20문항씩 100문항을 150분동안 치루는 시험이었습니다.

 

그런데 2020년이 되면서 과목들이 많이 변경이 되었는데요,

앞선 과목들 중 데이터베이스만 남게되고, 나머지 과목들은 전부 소프트웨어 개발과 관련된 과목으로 변경되었습니다.

q-net에 공지된 출제 기준에 따르면 필기 과목은

소프트웨어 설계, 소프트웨어 개발, 데이터베이스 구축,

프로그래밍언어 활용, 정보시스템 구축 관리로 변경된다고 공지가 되었습니다.

 

또한 2019년도 까지의 실기시험의 경우 일정 기간마다 시험 유형을 변경했는데요,

2019년도 까지는 필답형으로 시행되고 있어 일반적인 필기시험과 크게 다르지 않았습니다.

단지 비전공자들도 어렵지 않게 자격증 취득을 했던 2016년도 까지와는 다르게

2017년 부터는 서술형이 생기며 프로그램 일부를 Java C언어로 작성해야 하는 등 변별력이 급격하게 올라갔었습니다.

그래서 비전공자들도 공부를 많이 하지 않으면 거의 취득하기 어려운 시험이었습니다.

 

2020년 시험이 개정이 될 때 실기시험은 변경이 없다고 알려졌으나,

그것은 시험 과목명에만 변경이 없다는 말과 일맥생통했습니다.

그러나 실제로는 실기시험 역시 이에 맞춰 신기술 동향과 전산영어가 빠지고

세부 기준이 변경되면서 소프트웨어 개발과 관련된 새로운 내용들이 추가되는 것으로 공지되었습니다.

 

NCS에 맞춰서 출제되므로 이론이나 시사적인 내용의 비중이 줄어들고

전공 및 직무와 관련된 내용들이 주로 시험 문제로 나오게 됩니다.

비전공자들 사이에서 이제는 취득하기 너무나도 어려운 난이도가 될 것으로 보이며

전공자들 사이에서도 개편 전에 비해서 변별력이 더욱 높아질 것으로 보입니다.

 

개정 후 첫 시험인 2020년 1·2차 문제를 보면 개정 전 유형 80% 신유형 20%정도로 섞여 출제되었던 것으로 보입니다.

아직은 조정기간이라 구유형이 좀 더 많이 나오는 것으로 생각됩니다.

시험을 위해 공부해야 하는것들?

필기

2020년 개정된 과목들은 어떻게 출제가 될까요?

 

소프트웨어 설계: 지엽적인 부분이 상당히 많이 나왔습니다.

2020년 1차 필기에서도 지엽적인 문제가 워낙 많아 어렵다는 평이 많았고,

참고서들을 봐도 외울 단어, 개념이 상당히 많습니다.

계산이나 코딩 관련 개념은 1도 없고 오로지 외우는 파트만 있습니다.
신유형 문제가 가장 많이 나온 파트이며 개정시험을 대비하는 수험서들도

60-70%정도의 적중률을 보여 해당 시험은 수정이 불가피할 듯 합니다.

 

소프트웨어 개발: 설계부분과 비슷하게 테스트 케이스나 개발 방법, 인터페이스, 개발 관련 프로그램등을 많이 묻습니다.
1과목처럼 지엽적인 부분이 많고, 실제 실무에서 쓰는 개발 기법들이 많다보니

NCS를 많이 참고했다는 것을 느낄 수 있습니다.

 

데이터베이스 구축: 그나마 예전 정보처리기사 시험범위와 꽤 겹치는 과목으로 SQL,DB 관련 문제들이 나옵니다.

구조를 이해하고 실기까지 생각하면 SQL에서 쓰이는 문장들을 이해하고 응용해야 하기 때문에

어렵게 느껴질수도 있으나 예전 기사 범위와 같기도 하고 머리에만 익혀진다면

오히려 앞선 과목들보다는 점수를 더 벌수도 있는 과목입니다.

 

프로그래밍 언어 활용: 실기에서는 직접 코딩하는 부분이 나올 테지만

필기부분에서는 코딩보다는 프로그래밍의 기초적인 개념과 특성이 출제됩니다.

프로그래밍 외에도 운영체제, TCP/IP, OSI 7계층등 네트워크 관련 개념도 많이 나오는 과목입니다.

 

정보시스템 구축 관리: 다른 과목들보다는 그나마 쉽게 느껴지는 과목이라는 평입니다.

그러나 여전히 외울게 많은 과목입니다.

Sw 및 hw 시스템 구축, 신기술 용어, 보안, 암호화 알고리즘 등이 출제됩니다.

단어와 단계적인 설명이 많아 실기쪽에서도 단답형이나 약술형으로 이따금씩 나올 수 있어보인다.

실기

2020년 2회차까지의 시험을 기준 NCS기반 시험범위로 명시한것 이외에도,

이전 필기 범위에서 문제가 출제된다거나 예전 기출, 혹은 시중에 나와있는

참고서들에서는 볼 수 없었던 신기술같은 몇몇 용어들이 시험에 등장했습니다.

참고서 위주의 공부보다는 좀 더 넓은 범위로의 공부가 더 필요해 보입니다.

 

12가지의 개념에 대해서 물어보는 시험을 치루는데

 

요구사항 확인, 데이터 입출력 구현, 통합 구현, 서버프로그램 구현, 인터페이스 구현,

화면설계, 애플리케이션 테스트 관리, SQL 응용, 소프트웨어 개발보안 구축, 프로그래밍 언어 활용,

응용 SW 기초기술 활용, 제품 소프트웨어 패키징

 

등의 시험을 치루게 됩니다.

정보처리기사 자격증의 활용도?

공무원 공채 시험에서 국가직과 전산직을 제외하고 무조건 가산점 1%을 얻을 수 있습니다.

때문에 응시하려는 응시자가 많은 편입니다.

9급 전산직은 그 자격증이 응시자격이기 때문에 모든 자격증의 가산점 자체가 없고,

대신 필수자격증이 하나라도 있으면 전산직 응시가 가능합니다.

 

상위 자격으로 정보관리기술사 컴퓨터시스템응용기술사가 있습니다.

기술사니까 당연한 말이지만, 정보처리기사와는 차원을 달리하는 난이도를 자랑합니다.

 

통신 분야는 정보통신 분야의 하위항목이므로 동일한 위치의 정보기술 자격을 취득하면

비전공자에게도 응시자격이 주어집니다.

정보처리기사를 취득하면 통신분야 기사인 무선설비기사, 정보통신기사 등의 응시자격이 주어지게 됩니다.

 

위에서도 서술했지만, 4년제 대학 모든 졸업자가 딸 수 있는 자격증 이라는 것이 큰 메리트입니다.

전공 불문 모두에게 개방된 대졸이상의 학력을 갖춘 사람들을 위한 자격증입니다.

정보처리기사를 취득하면 관련 기사 종목 응시 자격이 확립되고 여기에 산업안전기사 자격증을 더하면,

거의 모든 전문 공업관련 기사 자격증에 응시할 수 있는 응시자격이 충족됩니다.

이 경로를 통해 법학 전공자가 전기기사, 전기공사기사를 취득해 한국전력공사에 들어간 사례가 있을 정도입니다.

 

비전공자에게 기사 시험 응시 자격을 없애자는 말이 여러번 나오고 있으므로

전공자가 아닌 사람은 기회가 될 때 정보처리기사나 정보보안기사 

전공에 상관없이 딸 수 있는 기사 자격증을 취득해 놓는것을 추천드립니다.

설령 비전공자에게 기사 시험 응시 자격을 박탈하더라도,

기사 자격 소지자는 다른 기사 시험에 응시할 자격이 있기 때문에 빠르게 취득을 해놓으시는게 좋겠죠?

어디서 배울 수 있을까?

2020년 개정 이후 시험이 급격하게 어려워짐에 따라

비전공자가 심지어 전공자라 할지라도 정보처리기사 자격증을 취득하시는 것이

상당히 하드해졌습니다.

 

그래서 최대한 잘 배우고 시험 응시하시는걸 추천드립니다.

정보처리기사 자격증에 대한 수업 뿐 아니라

IT계열의 전문가 과정을 국비로 진행하실 수 있는 프로그램을 진행하고 있습니다.

요즘 어딜가나 코딩을 기본적으로 해야할 줄 알아야 한다고 하죠?

기초부터 제대로 배우고 전문가 과정까지 진행시면 취업하시는데 많은 도움이 될거라고 생각합니다.

 

관심있으시다면 문의주세요. 아래의 네임카드를 클릭해주시면 빠르게 무료상담 가능합니다.

 

네임카드를 클릭해주세요!!

 

안녕하세요! 기형쌤입니다.

이제 올 해가 일주일도 남지 않았네요ㅜㅜ

 

이번 한 해는 보냈다기보단 버텼다는 인상이 깊은 한 해였던 것 같습니다.

코로나 때문에 집 안에 꼼짝없이 박혀있는 신세가 되어 너무 답답하지만...

그래도 우리 이겨내 보자구요!ㅎㅎ

 

오늘 제가 가져온 이야기는 리눅스 마스터 자격증입니다.

 

리눅스 마스터? 이름부터가 거창해보이고 어려워 보이시나요?

하지만 그렇게 어렵게 접근하실 시험은 아닙니다ㅎㅎ

 

 

리눅스 마스터 자격증은 한국정보통신진흥협회가 운영하는 국가 공인 민간 자격증입니다.

마스터라는 이름까지 단 자격증이 민간자격증이어서 놀라셨나요?

국내에서 IT관련한 자격증이 많이 없다보니 민간자격증이어도 수요가 꽤나 있는 편이고,

매년 응시자도 늘어가는 추세입니다.

모두가 취득한다면 그만한 가치가 있는 자격증이겠죠?

 

리눅스 마스터는 리눅스 기반의 Desktop 활용 및 Server 운영 능력,

리눅스 시스템의 설계 개발 및 관리 능력, 리눅스 기반의 네트워크 및 서버 구축/운영 능력을 검정하는 자격증입니다.

리눅스 마스터는 2급과 1급으로 나뉘어져 있는데요,

시험은 1차와 2차 시험 두 가지로 구성되어 있습니다.

2급의 1차는 집에서 접수 후 원하는 날짜에 컴퓨터로 시험을 치르고 2차는 시험장에 가서 필기로 시험을 치룹니다.

즉 1차와 2차 모두 필기로 시험을 친다고 보시면 됩니다.

 

2급 1차는 온라인 시험이기에 난이도가 쉬운 편입니다.

시간은 60분이 주어지고 문항은 50문항 이어서 시간을 널널하게 사용하시며 시험을 치루실 수 있습니다.

합격은 여느 자격증들과 같이 60점 이상이면 합격인 시험이므로

공부를 어느정도 하셨다면 떨어지는 일은 없으실거에요~

 

보통 이런 온라인 CBT 시험의 경우 우클릭을 막거나 혹은 창을 내릴 수 없게 하는 등의 조치를 취하여

시험에 간섭 가능한 다른 행동을 억제하려고 하는데

리눅스 마스터 급 1차 시험은 그런것이 없어 구글링 해가시며 시험을 치루실 수도 있습니다.

다만 CBT에 기출문제에 없는 문제들이 생각보다 다량으로 출제가 됩니다.

이 때에는 정말 알고 있는 지식으로만 승부를 봐야하기에 어느정도의 공부는 필수업니다.

 

2급 2차 시험은 80문제를 100분 안에 푸는 객관식 사지선다형으로서 지정된 시험장에서 시험을 치루게 됩니다.

80문제 중에서도 60%인 48문제가 1과목으로 리눅스 운영 및 관리이고

나머지 32문제가 2과목인 리눅스 활용으로 나뉘어 있습니다.

합격은 타 자격증드로가 비슷하게 평균 60점 이상이고, 각 과목에서 40점 이상은 받으셔야합니다.

 

대체적으로 1과목은 리눅스에 대한 시험이 나오고

2과목은 리눅스와 관련된 것들이 시험에 나온다고 보시면 될 듯 합니다.

다른 IT 자격증 시험. 예를 들어 CCNA와 같이 덤프와 똑같이 나오는 경향의 문제는 없지만

덤프를 많이 푸는 게 합격의 지름길이긴 합니다.

다만 덤프(기출문제)를 푸실 때에도 기본적인 지식은 있으셔야 하겠죠?

어디서배우는게 좋은가?

 

기본적인 지식, 프로그래밍에 대한 기초부터 전문가 과정까지

지금 전부 수강이 가능하십니다.

국비 지원을 받으시며 전문가가 되실 수 있는 절호의 기회!

관심있으시다면 아래의 네임카드를 클릭해주세요.

확인 후 빠르게 안내 도와드리겠습니다.

 

네임카드를 클릭해주시면 빠르게 안내 가능합니다!

안녕하세요 기형쌤입니다.

겨울임에도 따듯한 기운이 돕니다. 너무 추울 것 처럼 시작한 겨울이

아직까지도 잠잠한 것을 보니 나중의 꽃샘추위가 두려워지지만

아직은 따듯한 날씨를 만끽해도 좋을 것 같아요.

 

오늘 제가 들고 온 이야기는 OCJP 자격증에 대한 이야기입니다.

 

IT쪽의 취업을 준비하시는 분들이라면 준비해놓으시면 좋은

Java 프로그래밍 언어의 활용 능력을 검증하는 자격증입니다.

 

자바 기술을 직접 개발한 썬 마이크로시스템즈에서 자바에 관련된 지식을 검증해 주는 시험으로

프로그래머가 되고자 한다면 취득을 위해 공부해보시는것도 좋다고 생각합니다.

 

제가 이렇게 말씀드리는 이유는 OCJP 자격증은 필수가 아닌 자격증이기도 하거니와

OCJP는 Java의 자격증 중 기초 입문단계에 해당하기 때문입니다.

아무리 입문단계의 자격증이라지만 없는것보다는 훨씬 좋겠죠?

 

그래서 향후 자바 관련 자격증 중의 최고 권위에 있는 SCEA자격증을 취득하려 공부하실 때에도

발판이 될 수 있습니다.

 

Java는 원래 썬 마이크로시스템즈라는 회사에 만들어졌지만 이 회사가 오라클에 인수합병되며

자격증의 이름도 OCJP(Oracle Certified Java Programmer)이 되어버렸습니다.

그러니 왜 오라클에서 인정해주는거지? 라고 생각하지 않으셔도 괜찮습니다^^

 

시험과목?

2018년 5월 31일 기준으로 853, 851 과목을 더 이상 치룰 수 없게 되었고,
803, 804 : Java Programming 7 (각 OCAJP, OCPJP에 해당)
808, 809 : Java Programming 8 (각 OCAJP, OCPJP에 해당)
으로 변경되었습니다.

 

851만 보고 OCJP를 바로 취득할 수 있었던 때도 있었지만 난이도에 대한 이야기가 나오고

자격증 취득자에 대한 분별력이 떨어진다는 이야기가 나와 난이도가 조금 올라갔습니다.

OCJP에 해당하는 OCPJP를 취득하려면, 시험비용도 2배를 내야되게 되었습니다.

 

2019년에는 Java Programming 11이 추가되었습니다.

과목은 815, 815. 이전 버전에서 8 버전 업그레이드 시험이 있었던 것처럼 업그레이드 시험 또한 존재합니다.

출제 방식

문제는 보통 '문제은행' 방식으로 출제가 됩니다. 난이도 자체는 그렇게 어려운 편이 아니며

시험 보기 전에 한글이나 영어 둘 중 하나의 언어로 시험을 볼 수가 있습니다.

다만 문제를 쉽게 풀기 위해 도와주는 덤프는 주로 영어판 밖에 존재하지 않아

대부분의 사람들은 영어로 시험을 치르는 편입니다.(프로그래머가 되려면 영어를 어느정도 할 줄 아셔야합니다)

 

시험에 소요되는 시간은 150분이고 합격 커트라인은 60%입니다.

국내의 자격증 시험과 이 점은 비슷하다고 생각해주시면 되겠네요.

합격 여부는 시험 종료 후 바로 확인이 가능하며 주어진 시간 안에 시험을 마쳤을 경우 바로 퇴실이 가능합니다.

 

다만 응시료가 살짝(이아니고 조금 많이) 비싼 편에 속합니다.

300달러의 응시료를 받고 있으며 이는 2020년 12월 기준 33만 2,700원 입니다.

국내의 컴퓨터 활용능력등의 시험들의 응시료가 약 2만원정도인 것을 감안하면

금액적인 차이가 많이 나는 편입니다.

 

OCJP를 치루는 이유?

비싸고 기초적인 이 자격증을 취득하는 이유는 뭐에 있을까요?

일단 첫 번째 이유는 아무래도 연습에 있습니다.

 

프로그래머는 창의력도 중요하지만 숙련도 또한 중요합니다.

그리고 아무리 기초 입문단계의 지식을 묻는 시험이긴 하지만

기초를 튼튼히 하는 의미로서도 많이 취득하시고,

실제로도 국내에서는 순수 자바 애플리케이션 개발업체 혹은

JSP(Java Server Pages)의 웹 프로그래머가 되고자 할 때 가산점을 받을 수 있는 자격증이어서

많은 분들이 취득을 희망하시곤 하십니다.

 

OCJP를 취득하신 후 자바 프로그래머로서 진로를 결정하신 분들은

자바 웹 개발자 및 프로그래머, 어플 개발자, ERP 기업용 솔루션 개발자, CRP 솔루션 개발자

쪽으로 진로를 정하여 취업 및 업무를 진행하시는게 대부분입니다.

OCJP를 배울 수 있는 곳?

OCJP를 따로 공부하려 하시는 것 보다 Java로 프로그래밍을 배우고

프로그래머가 되시는 과정중에 취득하시는 것으로 생각하시는게

OCJP를 취득하시는데에 좀 더 도움이 될 듯 합니다.

말씀드렸다시피 OCJP를 취득한다고 하여 무조건 취업이 되거나 하는 것은 아니니까요.

 

현재 IT 전문가 과정을 국비로 들으실 수 있는 프로그램이 진행중입니다.

이 과정을 들으신다면 OCJP의 취득은 물론이고 그 이후의 SCEA자격증 취득까지

무리없이 진행하실 수 있을거에요.

 

관심있으신 분들은 아래의 네임카드를 클릭해주시면

바로 무료상담 도와드리니 많은 문의 바랍니다.

네임카드를 클릭해주시면 바로 무료 상담 가능합니다!!

 

안녕하세요 기형쌤입니다.

겨울이 왔지만 아직은 그래도 따듯한 날씨를 유지하는듯 합니다.

그래도 감기 걸리실 수 있으니 몸 따뜻하게 입고 다니셔야 해요!

또 마스크도 항상! 끼고 다니셔야하는거 알죠? 다들 조심하자구요.

 

오늘 제가 들고 온 이야기는 비주얼 베이직 이라는 언어 이야기입니다.

 

비주얼 베이직(Visual Basic .NET)은 무엇인가?

비주얼 베이직은 마이크로소프트사에서 만든 .NET Framework 기반의 프로그래밍 언어입니다.

Visual Basic .NET 이전에 VIsual Basic 6.0 이라는 프로그램이 있었지만

6.0에서 파생되었다기에는 차이점이 조금 많아 6.0 버전을 사용하던 사람들이 많이 넘어오지 않아

초기에는 사용자의 수가 많이 적었습니다.

 

VB .NET은 객체 지향 언어라서 절차 지향인

VB 6.0 소스 코드가 VB.NET과 호환되지 않아 아예 처음부터 코딩해야 하는 번거로움이 있었습니다.

마이크로소프트도 이 문제를 몰랐던 건 아니었기에 모체 프로그램인 Visual Studio 2008까지는

VB 6.0 변환기를 포함했었으나 완전히 1:1로 변환할 수 있는 것도 아니었고

Visual Studio 2010부터는 변환기가 삭제되었습니다.

 

그러나 VB 6.0 지원이 중단이 되었고 최신 운영체제로 가면서

동작하지 않는 기능이 많아졌습니다. 그리고 강력해진 새로운 확장 라이브러리 및 기본 컨트롤도 개선되는 등

상당한 발전을 보여 많은 사용자들이 VB.NET으로 넘어오는 계기가 되었습니다.

 

.NET Framework 기반이지만 C#이라는

그야말로 .NET Framework를 위하여 새롭게 만들어진 언어가 존재하기 때문에

C#에 비해 인지도는 떨어지는편입니다.

그리고 VB.NET과 C#은 같은 .NET Framework 라이브러리를 사용하기 때문에

사실상 문법과 일부 런타임 라이브러리를 제외하면 기능적으로는 큰 차이가 없기도 합니다.

 

Visual Basic .NET의 특징?

VB.NET에서는 My namespace라는 기능을 제공하고 있습니다.

7가지의 기능들이 있는데

 

My.Computer : 당신의 컴퓨터에 대한 이름, 메모리, 시간, 네트워크 등의 정보를 제공

My.Application : 현재 응용프로그램의 실행경로, 이름이나 버전, 그리고 환경 변수들을 제공

My.User : 윈도우에 해당되어 있는 이름 같은 것을 가져옴. 또, 사용자가 특정 역할에 속하는지도 확인 가능

My.Forms : 프로젝트에 있는 모든 폼의 참조를 제공

My.WebServices : 웹 서비스에서 사용되는 프록시 서버에 대한 접근 권한을 얻는게 가능

My.Settings : 읽거나 저장하는 응용 프로그램 구성 설정이 가능

My.Resources : 현재 응용프로그램에서 사용중인 리소스 정보를 읽을 수 있음

 

이러한 기능들을 사용하실 수 있습니다.

또한 이전의 문법들에서 좀 더 가독성이 좋은 언어체계를 가지고 있기도 합니다.

ex) IsNot 연산자, WithEvent 선언자 등

 

또한 C#과 비슷하게 WPF의 프로젝트를 만들어서 활용이 가능합니다.

 

Visual Basic .NET과 C#

C# 언어는 .NET을 위해 만들어진 언어라고 봐도 무방하다는 평을 들을정도로

.NET과의 호환이 좋습니다. 물론 Visual Basic .NET 또한 .NET 프레임워크 기반이기에

.NET과의 호환성은 걱정하실 필요가 없습니다.

 

C#과 VB.NET은 같은 라이브러리를 사용합니다.

이는 C#과 VB.NET의 코드를 완벽하게 변환 가능하다는 것을 내포하는데

이를 이용하여 다양한 프로그래밍 방식을 진행해볼 수 있습니다.

 

그래서 .NET Core 환경에서의 개발은 프로페셔널하고 편리한 C#, 배우기 쉽고 간단하지만 강력한 Visual Basic.NET,

아직은 언급하지 않았었지만 연산에 특화된 F#, 이 세가지 언어로, 리눅스, 맥OS 개발을 할 수 있다는 말입니다.

그리고 웹 애플리케이션 개발용으로 ASP.NET Core를 사용 할 수 있습니다.

또한 .NET Standard를 통해 .NET Framework, Xamarin, Mono에도 호환이 됩니다.

 

단지 윈도우 운영체제 기반인 프로그램 언어인지라 윈도우 환경을 벗어나면 호환이 안된다는 단점 또한 있습니다.

윈도우 외의 운영체제에서도 실행할 수 있도록 하는 프로젝트이지만,

컴파일 시 결과물은 PE DLL 파일로 나오게 됩니다.

윈도우 비주얼 스튜디오에서 컴파일 시 EXE 파일도 나오지만,

실제 컴파일 결과물인 DLL 파일을 로드하여 실행하는 것에 불과하기 때문에

DLL 파일이 없으면 당연히 실행되지 않습니다.

다른 운영체제들은 터미널로 .NET Core 런타임을 설치한 후

dotnet (실행할 닷넷 DLL 파일)을 입력하고 실행하면 실행이 가능합니다.

 

배워봅시다!

프로그래밍 언어를 알아야 하는 것도 가짓수가 너무 많죠?

어디서 배워야 할까요?

 

현재 국비지원 받으시며 무료로 배우 실 수 있는 과정이 있습니다.

관심 있으시다면 아래의 네임카드를 클릭해주시면

바로 무료 상담 가능합니다!!

 

네임카드를 클릭해주세요!!

안녕하세요 기형쌤입니다.

하늘이 깨끗해지고 찬 바람이 이제는 쌩쌩부는 완연한 겨울이 되었습니다.

영하 10도의 너무 추운 날씨가 계속 되어가고 있어요.

다들 감기 걸리지 않게 조심하세요!!

 

오늘 제가 들고 온 이야기는 웹개발자에 대한 이야기입니다.

웹개발자를 지향하는 분들이 흔히 하시는 말들이

프론트엔드로 갈 것인지, 백엔드로 갈 것인지

풀 스텍 개발자를 목표로 할 것인지에 대한 것들이 많습니다.

 

그렇다면 우리는 물어볼 수 있겠죠?

도대체 프론트엔드는 뭐고 백엔드는 뭐지?

풀 스텍은 도대체 뭘 뜻하는거야?

 

개발자를 목표로 한다면 그래도 지향하고자 하는 것의 의미 정도는

어느정도 알고있어야하지 않겠어요?

 

프론트엔드 개발자?

그렇다면 프론트엔드 개발자는 어떤 일을 할까요?

프론트엔드는 프론트 즉 앞에 나와있는것들에 대한 개발을 하는 분들입니다.

흔히 우리가 웹상에 들어가면 보이는 버튼, 베너, 웹을 통해 보는 다양한 콘텐츠들이

사용자들의 요청에 잘 반응해서 잘 동작하게 만드는 일을 책임집니다.

 

즉 사용자가 직접 상호작용을 하는 부분들인 글꼴부터 색상,

드롭 다운 메뉴 및 슬라이더에 이르기까지 인터넷에서 보게되는 모든 것들을

브라우저의 제어를 받는 HTML, CSS, JAVASCRIPT를 이용하여 조합하여 개발하는 사람들 이라고 할 수 있습니다.

 

프론트엔드 개발자가 되기 위해 필요한 것?

앞서 말한 것처럼 프론트엔드 개발자는 웹 사이트에서 사용자가 직접 경험하는 부분과

그 경험의 아키텍처를 담당합니다.

이를 위해서 위에서 말한 HTML, CSS, JAVASCRIPT의 활용에 능숙할 줄 알아야합니다.

 

즉 프론트엔드 개발자는 프론트 영역 전반과 서버에 대한 이해력을 필요로 합니다.

프론트엔드 개발자가 담당하기도 하지만, 종종 업무 효율을 위해 디자인 영역(HTML, CSS)만

작업해주는 마크업 개발자가 따로 있는 경우도 있으며,

프론트엔드 개발자는 해당 작업 파일을 받아 포팅 작업을 하고, 프론트엔드 영역을 개발하게 됩니다.

즉 프론트엔드 개발자는 바닐라 JS와 HTTP 프로토콜, 웹팩 등도 활용할 줄 알아야합니다.

 

프론트엔드 개발자의 업무?

프론트엔드 개발자는 결국 사용자 시점에서의 문제점 및 개선점을 정확히 파악하는것이

가장 중요한 업무입니다.

디자인 수정에 관한 조언과 문제 해결을 위한 코드를 제공하고,

목표와 필요, 기회들을 정확히 이해하고 수행하기 위해서 팀원,

다른 팀들과 유연하게 협업하는 능력도 중요합니다.

 

사용자의 니즈를 파악하고 불편사항들을 고치는 말 그대로

웹 페이지 상에 보이는 모든것들에 대한 개발을 담당하는 것이

프론트엔드 개발자의 업무입니다.

백엔드 개발자?

프론트엔드 개발자는 눈에 보이는 모든 것들에 대한 개발을 담당한다면

백엔드 개발자는 눈에보이지 않는 것들을 개발한다고 보시면 됩니다.

백엔드는 프론트엔드 자체를 가능하게 하고, 데이터를 처리 및 저장하는 곳입니다.

 

사이트의 백엔드는 서버, 응용 프로그램 및 데이터베이스로 구성됩니다.

백엔드 개발자는 서버 영역을 관리 및 개발함으로써

이러한 구성 요소들이 작동할 수 있게 하는 기술을 만들고 유지합니다.

이러한 작업을 통해 프론트엔드, 즉 사용자에게 보여지는 측면이 나타날 수 있게 만듭니다.

 

프로그래밍에서 이야기하는 백엔드의 정의와 다르게, 제안 또는 기획 단계에서 백엔드는

관리자 페이지를 이야기하는 경우도 있습니다.

하지만 관리자 페이지마저도 백엔드, 프론트엔드가 분리될 수 있는 소프트웨어이기 때문에

이 것은 잘못된 용례입니다. 백엔드는 관리자 페이지가 아닙니다.

 

백엔드 개발자가 되기 위해 필요한 것?

백엔드 개발자는 프로그래밍, 데이터베이스, 웹 서버, 네트워크, 인프라 등에 대한 기술이 필요합니다.

백엔드 개발자는 기존 개발자라 불리는 스펙과 방식이 약간 다릅니다.

뷰단은 화면단이 아닌 API개발이 주가 되어

프론트에서 전달된 데이터의 포맷이나 데이터베이스 입출력 및 다양한 비즈니스 프로세스를

프로그래밍 코드로 구현하는 역할을 하게됩니다.

 

서버, 응용 프로그램, 데이터베이스가 서로 통신 할 수 있도록 만들기 위해

백엔드 개발자는 PHP,Ruby, Python, Java와 같은 서버 측 언어의 활용이 중요합니다.

또한 데이터를 검색, 저장 또는 변경하고 이를 프론트엔드 코드로 사용자에게 다시 제공하기 위해서는

MySQL, Oracle, SQL Server를 사용할 줄 아셔야 합니다.

 

PHP는 동적으로 HTML 데이터를 생성하여 동적 웹페이지를 제공하는 것을 주된 목적으로하는

서버 측 스크립트 언어이자 범용 프로그래밍 언어이고

Ruby는 인터프리터 방식의 객체 지향 스크립터 언어입니다.

 

일반적으로 프론트엔드 개발자보다 많은 것을 알고있어야 하고

서버 그 자체를 구성하는 필수요소에 대한 것들을 다루다보니

프론트엔드 개발자들보다는 평균급여가 높은 편입니다.

 

백엔드 개발자의 역할?

그렇다면 백엔드 개발자의 역할은 어떤것일까요?

백엔드 개발자는 비즈니스 이해 관계자와 소통하면서 구체적인 요청 사항을 정확히 파악해야 합니다.

그런 다음 이를 기술적 내용으로 변환하여 기술 설계를 위한 가장 효과적이고 효율적인 솔루션을

제시하여 개발을 이어갑니다.

 

풀스텍 개발자?

풀스텍 개발자는 백엔드와 프론트엔드 두 계열에 모두  능통한 웹개발자를 지칭하는 말입니다.

프론트엔드와 백엔드 두 분야에 전부 능통하니 어떤 회사에서던지 데려가려 하겠죠?

 

웹개발자가 되는 방법

이러한 웹개발자가 되는 방법은 무엇이 있을까요?

아무래도 웹개발자가 되려면 많은것을 알아야 하니

기본부터 차근차근 배워가시는게 좋습니다.

 

국비지원으로 전문가까지 가는 과정을 배우실 수 있는

프로그램이 준비되어있습니다!

아래의 네임카드를 클릭하시면 바로 상담 가능합니다!

상담은 무료이니 부담갖지 말고 연락 주세요!

네임카드를 클릭해주세요!!

 

안녕하세요 기형쌤입니다.

 

기분 좋은 주말이에요!

한 해를 마무리해가는 12월! 여러분은 잘 보내고 계신가요?

연말은 연말이라 바쁘고 연초는 연초라 바쁘고

바쁠일이 너무 많아 몸이 남아나질 않네요ㅠㅠ

 

오늘 제가 가져온 이야기는 빅데이터 프로세싱에 관한 이야기입니다.

 

빅데이터 프로세싱이란?

말 그대로 디지털 시대에서 폭증하는 너무나도 방대한 양의 정보(Big Data)를

관리하고 분석해서 유용한 정보로서 사용할 수 있게 만든는 기술을 지칭합니다.

 

과거에는 정보로서 기록되지 않았던 매우 사소한 정보까지도

디지털 정보로 기록되는 정보화 시대에서는 너무나도 정보의 양이 많아졌습니다.

 

내가 어디에 있는지에 대한 위치정보, 뭘 먹고 싶어서 검색했는지에 대한 정보,

어떤 음악을 플레이 했는지에 대한 정보, 운동을 위해 얼마나 달렸는지에 대한 정보까지

전부 데이터로서 기록이 되니 정보는 넘쳐날 수 밖에 없죠.

 

또한 거기에 더해 단순한 문자 데이터에서 벗어나

녹음, 사진, 동영상 등 데이터의 종류가 다양해지고 데이터의 용량 자체도 큰 폭으로 늘어났습니다.

이런 빅 데이터는 기존의 기술이나 도구로는 원활한 수집과 처리가 불가능할 정도로

성질이 달라졌으므로 빅 데이터에서 유용한 정보를 추합하거나 가치를 뽑아내기 위해서

고안된 기술이 바로 빅 데이터 프로세싱입니다.

 

빅데이터는 사람들의 마음 속을 어느 정도 계량화해서 데이터로 만들어 응용하는 것을

목적으로 만들어진 기술이기에 주요 대기업들 사이에서 독자적인 빅 데이터 응용 모델 만들기가 대유행 중입니다.

빅데이터를 활용할 수 있는 분야는?

그렇다면 이러한 빅데이터를 활용할 수 있는 분야는 어디일까요?

수많은 곳에서 빅데이터를 이용할 수 있지만 대표적으로 추천 엔진이 있습니다.

 

예를 들어 페이스북의 당신이 알 수도 있는 사람 이라던지

유튜브의 추천 영상 등에 활용되어 사용될 수 있습니다.

 

심리/동향 분석에도 사용되는데,

SNS 포스팅이나 인터넷 광고 클릭 성향 등을 통해 맞춤형으로 정보를 전달하는 등의 활용이 되고 있습니다.

 

인공지능의 구현에도 빅데이터가 기반이 되는 기술입니다.

대표적으로 알파고를 떠올리실 수 있습니다.

알파고 또한 과거 대국의 정보를 바탕으로 한 수 한 수에 대한 승률을 계산해 다음수를 착수하는 것 과 같이

아직은 스스로 생각할 수 없기에 과거의 빅데이터를 기반으로

가장 높은 확률로 정답인 것을 찾아가는 형태로 발전해나가고 있습니다.

 

기타 도시학 연구, 네트워크 모니터링, 인터넷 사기의 탐지 등 수많은 분야에 빅데이터는 사용될 수 있습니다.

 

국내의 빅데이터 분석기사 자격증?

2019년 국내에 빅데이터 분석기사 자격증이라는 것이 신설되었습니다.

기사급의 자격증으로 2020년 하반기 최초 시행되었습니다.

 

한국데이터산업진흥원에서 시행하는 빅데이터분석기사 시험에 합격하여 그 자격을 취득한 사람을 말합니다.

빅데이터분석기사 시험은 필기시험과 실기시험으로 이루어지며

필기시험은 객관식으로 100점을 만점으로하여 과목당 40점 이상, 전 과목 평균 60점 이상이면 합격이 인정됩니다.

실기시험은 실무 통합형 시험으로 100점을 만점으로 하여 평균 60점 이상이면 합격하게 됩니다.

 

아직 국내에서 시행된지 얼마 되지 않은 자격증이지만 수많은 사람들이 몰려

11월 사이트가 먹통이 되어 아무도 접수하지 못하고 일정이 늦춰졌습니다.

 

오는 12월 19일 첫 필기시험이 진행되어 아직 국내에 자격증 취득자는 없지만

워낙 유망한 직종인 빅데이터 관련 자격증이고

국가 자격증인지라 취득시 취업에 굉장히 유리해질 것으로 예측됩니다.

빅데이터 기술을 배우려면?

빅데이터 전문가가 되려면 기본적으로 Python언어를 알고있어야 합니다.

현재 프로그래밍 업계에서 가장 중요한 언어라고 한다면 단연 Python입니다.

쉬우면서도 범용성 넓은 Python은 제가 Python에 대해 설명해놓은 게시글이 있으니

그 글을 읽어보시면 이해하기 편하실겁니다.

kiihakjumcircle.tistory.com/entry/Python%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%94%94%EC%84%9C-%EB%B0%B0%EC%9A%B8-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94?category=909606

 

Python(파이썬)은 무엇이고 어디서 배울 수 있나요?

안녕하세요? 기형쌤입니다!! 오늘 제가 들고 온 것은 바로 Python입니다. Python은 수많은 프로그래머들의 기본소양이라고 할 정도의 언어입니다. Python은 그 기원이 굉장히 특이한 언어인데요. 바로

kiihakjumcircle.tistory.com

 

그리고 네트워크 기반의 기술이니 CCNA(네트워크 기초)정도도 알고 계시는게 좋겠죠?

또한 대용량 데이터를 분석, 처리할 수 있는 기술인 하둡 프로그래밍 또한 배우셔야 합니다.

 

배울게 너무 많죠?

 

그래서 빅데이터 전문가를 생각하시는 분들은 어느정도 프로그래밍에 대해

전반적인 기초 지식이 있어야 합니다.

하지만 걱정 마세요!

기초부터 차근차근 가르쳐드리는 전문가 과정을 소개해드리겠습니다.

 

아래의 네임카드를 클릭하시면 바로 상담해드릴 수 있으니 문의 주세요!

상담은 무료로 진행되니 부담없이 연락 남겨놔주시면

빠르게 전문가 과정으로 이끌어드리겠습니다▼

네임카드를 클릭해주시면 바로 상담 도와드리겠습니다!

안녕하세요! 기형쌤입니다.

날이 많이 흐려졌네요. 이제 눈이 오고 본격적으로 겨울이 시작되려나봅니다.

다들 감기 걸리지 않게 조심하셔요!

 

오늘 들고 온 이야기는 C++에 대한 이야기입니다.

 

C? C++? 둘이 뭐가 다른거지?

C랑 비슷한거 아닌가? C의 심화과정?

프로그래밍에 이제 막 입문하시려는 분들이라면 이런 생각들을 하실 수 있을 것 같습니다.

 

C++은 확실히 C를 부분집합으로서 가지고 있습니다.

다만 프로그래밍의 방향이 C와는 다릅니다.

C++은 객체 지향 및 일반화 프로그래밍과 같은

멀티 패러다임을 지원하는 프로그래밍 언어입니다.

 

C를 부분집합으로 가지고 있다는 말은

C언어의 문법과 기능을 모두 사용할 수 있기 때문이죠.

1979년에 C언어에서 직접적으로 파생된

C with Classes라는 이름의 언어로 시작되었다가, 1983년에 지금의 이름을 갖게 되었습니다.

C++의 특징

비아르네 스트로우스트루프 라는 사람이 C언어를 바탕으로 만든 언어입니다.

C 계열 언어에서 "++"라는 것은 1을 더해서 원래 변수에 대입하라는 뜻입니다.

C는 B 언어를 계승한다는 의미에서 C가 되었는데 왜 C++이 D가 아니라 C++이 된 이유는

C 언어를 거의 그대로 두고 필요한 만큼만 향상시켰기 때문입니다.

그렇기 때문에 C에서 가능한 것들이 C++에서도 가능한 것이지요.

 

C++는 프로그래머의 자유도가 높은 언어로써, 객체 지향이나 절차 지향 등의 설계에 제한을 두지 않습니다.

다만, 객체지향과 일반화 프로그래밍을 사실상 거의 주된 패턴으로 사용하기 때문에

객체지향 언어에 가깝게 여겨집니다.

 

한국에서 컴퓨터공학과를 다닐 경우 배울 수 있는 프로그래밍 언어 3개 중에 속합니다.

그러나 실상 C++11 이후의 모던 C++ 기능을 가르쳐주는 곳이 매우 드물어서

C++의 객체 지향만 조금 배울 수 있게 됩니다.

C++의 객체 지향은 다른 언어에 비해서 좀 더 복잡합니다.

제대로 다루기 위해서는 별도의 서적을 참고하는 것이 권장되며,

실제 프로젝트의 코드에 대해 탐구하고 경험해보는 것 또한 권장됩니다.

 

C와의 차이점?

그렇다면 C와는 어떤 차이가 있는걸까요?

C++의 개발이 C언어를 기반으로 이루어졌기 때문에

대부분의 C 프로그램은 C++ 컴파일러에서도 문제없이 컴파일됩니다.

 

초기의 C++은 C++의 언어로 프로그래밍을 한 코드를 C로 변환하고

그것을 C로 컴파일 하는 방식을 채택하여 사용했을 정도입니다.

물론 C를 기반으로 만들어졌기 때문에 그랬던거지만 말입니다.

다만, C가 항상 C++의 부분집합이었던 것은 아니라서 공통적인 부분에서 몇몇 차이점이 있으며,

순수 C 소스 코드를 C++로 컴파일 할 때 문제의 여지가 생길 가능성이 있습니다.

 

C++은 C와 프로그래밍 패러다임이 크게 다릅니다.

그래서 C로 작성된 프로그램에서 C++ 방식으로 코딩하려면

해당 코드에서 C++에 새로 도입된 것을 추가하는 게 아니라,

설계부터 시작해서 완전히 새로 해야 하는 경우가 많습니다.

 

이유는 C++의 객체지향이 다른 객체지향 언어들에 비해

이해하기가 조금 난해한 개념이기도 하고

C++의 객체지향은 C언어를 하위 요소로서 유지하면서

여러가지 문법적인 요소를 추가해야하기 때문에

신경쓸 부분이 많아집니다.

그래서 초심자분들의 경우 C와 C++은 다른 언어라고 생각하고 접근하셔서 공부하는게 좋습니다.

 

C++은 C에대한 이해와 객체지향 프로그래밍의 이해가 모두 필요하므로

C를 배우고, Java를 배우신 후 C++에 입문하시게 된다면

공부가 편하실거라 생각됩니다.

 

다만 C를 알고 있다고 C++를 쉽게 할 수 있는 것은 아닙니다.

두 언어는 추구하는 설계 구조가 상당히 다르기 때문이인데요,

C언어는 절차 지향이지만

C++는 절차 지향, 객체 지향, 일반화 프로그래밍, 함수형 프로그래밍을 모두 지원하는 언어입니다.

그래서 C언어를 알고 있는 사람이 C++ 초보자용 교재를 1권 끝내고 프로그램을 만들어 보라고 하면

대부분 C 방식에서 벗어나지 못하게 됩니다.

C++ 방식을 잘 활용하려면 STL까지 배운 다음

자료구조와 스트림, 템플릿 정도는 쓸 수 있어야 합니다.

C++이 C언어의 변형버전이라는 얘기는 어느정도는 맞는 이야기긴 합니다.

C++의 특

C++는 객체 지향 프로그래밍을 지원하지만,

C++의 객체지향은 다른 객체지향 언어에서와는 성격이 조금 다릅니다.

대부분의 객체지향 언어에서는 많은 부분을 런타임에 처리하며 메모리를 자동으로 관리하는 반면,

C++에서는 최대한 많은 것을 컴파일 타임에 처리하는 것을 지향하며

메모리 등을 프로그래머가 직접 관리하게 하기 때문에 전반적인 클래스 디자인 자체가 상당한 차이를 보이게 됩니다.

 

Java 등의 다른 객체지향 언어에서와 같은 방식으로 C++ 클래스를 디자인하면

거의 틀림없이 컴파일이 제대로 안 되거나 메모리 문제가 발생하게 됩니다.

그래서 Java에서 막 C++로 입문한 학생이 프로그램을 만든다면 초반에는

메모리가 새는 프로그램을 만들게될 확률이 상당히 높습니다.

 

반면 C++ 스타일로 다른 객체지향 언어에서 프로그래밍을 하는 경우는

특별히 안 될 것은 없지만, 해당 언어의 스타일로 작성한 코드에 비해

시간이 많이 걸리고 너저분해 보이며 클래스 구조가 경직되어 수정하기 어려워집니다.

 

C++에서는 템플릿을 이용한 일반화 프로그래밍(Generic Programming)이 매우 폭넓게 사용됩니다.

특히 C++11을 시작으로 하는 모던 C++는 일반화 프로그래밍을 빼고 이야기하는 것이 불가능할 정도입니다.

 

일반화 프로그래밍의 결과물으로는 C++ 표준 라이브러리의 일부분으로 포함된 컨테이너, STL 같은 것들이 있으므로,

C++ 표준 라이브러리를 사용하는 순간 일반화 프로그래밍의 도움을 받는 것입니다.

따라서 '나는 C++을 사용하지만 템플릿을 이용한 일반화 프로그래밍은 어려우니까 패스하겠다'는 말은

애초에 성립하지 않는 말이지요.

중급 이하 개발자는 이런 결과물을 일상적으로 쉽게 가져다 쓰면 되고, 직접 만들어 쓸 필요는 없습니다.

이는 중급 개발자 정도로는 템플릿을 사용한 일반화 프로그래밍 기법을 정확하게 적용하는 것이 무척 까다롭고,

디버깅할 때 이해 불가능한 컴파일러 메세지를 받게 되는 경우가 많아서 발견된 오류를 수정하기도 어렵기 때문입니다.

이런 이유로 C++ 학습 초반에 템플릿 프로그래밍을 직접 하는 것을 피하고

기껏해야 컨테이너 클래스만 사용하는 습관이 들다 보니,

C++은 객체지향 언어이고 STL이라는 템플릿 라이브러리를 덤으로 쓸 수 있는 정도라는

오해가 널리 퍼진 것이라 생각이 됩니다.

하지만, 특수 목적의 컨테이너를 설계하거나 범용 라이브러리를 설계하는 수준의

고급 개발자가 되려면 템플릿을 사용한 일반화 프로그래밍을 능숙히 할 줄 알아야합니다.

 

C++을 배워보자

그렇다면 C++을 배우려면 어떻게 해야할까요?

사실 C++은 프로그래밍 언어들 중에서도 상당한 난이도를 자랑하는 언어입니다.

일단 기본적으로 배워야할 양이 많다는 점과 활용할 수 있는 기능들이나 특성들이 많은만큼

잘 활용하는 법 또한 어렵습니다.

사실 이전에 설명드렸던 C나 Java, Python같은 경우 입문을 하시는 경우라면

혼자 시작을 하셨다가 난이도가 올라가고, 배워야할 영역이 늘어나면서

학원을 찾는 경우가 많지만 C++같은 경우는

애초에 잘 배우시는게 중요하다고 생각합니다.

 

기초가 되어야하는 언어들을 배워야 하는 것도 있으니

하나를 알더라도 제대로 아는것이 중요합니다.

 

프로그래밍을 배우고싶고 전문가가 되어보고싶다면

하단의 이미지를 클릭해주세요. 상담은 무료이니

부담없이 말 걸어주시면 친절하게 원하시는 방향으로 이끌어드리겠습니다.

클릭해주시면 바로 상담 가능합니다.

+ Recent posts