IT 자격증 정보의 모든 것


페어 프로그래밍이란?


페어 프로그래밍은 요즘 떠오르는 IT회사라면 다들 적용한다는

애자일 소프트웨어 개발 방법론 중 하나인데요.

두 명의 개발자가 한 컴퓨터를 사용하여 코드를 작성하는 개발 방법을 뜻합니다.

두 명의 개발자가 프로그램의 설계, 알고리즘, 코딩, 테스트 등을

함께 작성해 나가는 과정을 뜻하는 것이죠.




이러한 방식 때문에 

페어 프로그래밍은 흔히 운전(drive)에 많이 비교되는데요.

자동차를 운전하는 행위가 코드 작성이라고 할 경우,

한 명은 운전대를 잡고 직접 핸들을 조작하고,

나머지 한 명은 조수석에서 내비게이션을 조작하거나

운전자가 집중할 수 있도록 주변의 사소한 것들을 처리하죠.


바로 이러한 과정을 페어 프로그래밍이라고 합니다!

직접 운전대를 잡은 사람, 즉 키보드를 이용하여 코드를 작성하는 사람을

드라이버라고 하고,

조수석에서 운전자를 도와주는 역할을 하는 사람을

네비게이터 혹은 옵저버라고 해요.




페어 프로그래밍을 통해 업무를 진행하면 


1. 집중력이 향상된다

2. 버그가 감소한다

3. 자신이 작성한 코드에 만족감이 생긴다,

4. 성장하는 자신의 모습을 되돌아 볼 수 있다.


이러한 장점을 갖습니다!




반면에 페어 프로그래밍 방법을 통해

소프트웨어를 개발할 때 단점으로는


1. 생산성이 떨어진다.

2. 감시받는 느낌에 압박감과 스트레스가 생긴다.

3. 팀원과의 관계가 나빠진다.

이러한 단점들이 생긴답니다.


어떠한 방법이든 장점과 단점은 모두 존재하니

직접 경험해보는 것이 가장

좋은 방법이 될 것 같네요!


안녕하세요!

프로그래밍 언어를 배우려고 할 때,

C언어는 뭐고 C++는 뭔지 헷갈린 분들 많죠?

오늘은 C++가 무엇인지 알아보려고 합니다!






C++란 C언어의 확장판으로 만들어진 객체지향형 프로그래밍 언어인데요.

대규모 응용 프로그램을 만드는 데 최적의 프로그래밍 언어로 간주되고 있어요!


1980년대까지 전세계적으로 가장 많은 사람들에게 사랑을 받고 가장 널리 사용된

프로그래밍 전문 언어는 C죠~

하지만 C언어 역시 한계에 부딪히게 되었고 

이에 따라 고도로 복잡한 프로그램을 관리하기 위하여 C++가 탄생하게 되었답니다.






C++는 처음 소개된 이후로 1985년과 1989년, 

그리고 C++에 ANSI표준을 적용하기 시작한 시기 등 3번에 걸쳐

개정되었는데요.

1994년에 최초로 표준안이 발표되었으며 

ANSI C++위원회는 사실상 스트루스트럽(C개발자)이 설정한 모든 사양을

그대로 수용하고 그외의 약간의 사양을 덧붙였습니다.

그렇기 때문에 C++는 C프로그래머가 쉽게 C++를 사용할 수 있다는

관련성에서 큰 장점이 있어요.






C++는 흔히 객체지향적 언어라고 불리는데요~

객체 지향 프로그래밍은 새로운 방식의 프로그래밍 접근 방법으로

프로그래밍이 탄생한 이후로 그 방식은 많은 변화를 겪었는데,

프로그래밍이 현저하게 다른 변화를 겪을 때마다 새로운 접근 방식이 나타나

프로그래머가 그 전 단계보다 훨씬 더 복잡해진

프로그램을 처리할 수 있도록 도왔어요


예전의 구조적인 프로그래밍은 복잡한 프로그램 작성 시 

프로그램의 규모가 일정 한계를 넘으면 가끔 실패하는 경우를

제외하고 상당히 우수한 기능을 해왔지만

그보다 좀 더 복잡한 프로그램을 쓸 수 있는 새로운 프로그래밍 방식이 필요했던 것!






그래서 탄생한 것이 바로 객체 지향 프로그래밍이에요.

객체지향 프로그래밍은 구조적인 프로그래밍에 사용되는 개념들을

최대한 활용하여 종전과는 다른 방식으로 이러한 개념을 엮어내는 역할을 한답니다.


C의 대부분의 특징을 C++는 포함하고 있고,

시스템 프로그래밍에 적합할 뿐만 아니라

클래스, 연산자 중복, 가상 함수 등과 같은 특징을

갖추고 있어 객체 지향 프로그래밍에 적합해요.

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

되는데 도움을 주었답니다.



안녕하세요! 오늘은 프로그래머가 갖춰야 하는

필수역량에 대해서 알아보려고 합니다.

4차 산업혁명으로 IT직무의 취업 전망이 밝아지면서

많은 분들이 IT직무로 취업을 희망하고 있는데요.

그렇다면 프로그래머로서 갖춰야 하는 필수역량은 무엇일까요?




1. 프로그래머가 갖춰야 하는 필수 역량 - 커뮤니케이션 능력



사실 프로그래머에 국한되는 이야기는 아니죠!

모든 직무에서 필요한 역량이 아닌가 싶은데요

특히 프로그래머는 팀 프로젝트로 업무를 수행하는 일이

많다보니 반드시 팀원간의 커뮤니케이션 능력이

중요하답니다.

프로그래머가 성공적으로 프로젝트를 마치기 위해선

기획자, 개발자, 디자이너 간의 원활한 커뮤니케이션이 필요해요!






2. 프로그래머가 갖춰야 하는 필수 역량 - 학습 능력



IT 기술의 순환 속도는 매우 짧은 편이죠!

기술 변화의 속도가 굉장히 빠르기 때문인데요.

따라서 새로운 기술에 대한 학습이 부족하면

금방 새로운 인재들에게 뒤 따라잡히는 일이 발생한답니다.

그러므로 프로그래머는 꾸준한 공부와 지식 관리가 필요해요!

이론적 지식을 그저 쌓기 보다는 

실무 능력을 함께 키우는 것이 중요하답니다.






3. 프로그래머가 갖춰야 하는 필수 역량 - 관리 능력


개발자는 경력과 경험이 쌓이면 직접 개발하기 보단

점점 팀을 관리하는 관리자의 역할이 커지기 마련인데요.

이런 경우에 개발자로서만 활동을 해온 사람들은

관리자의 역할을 이해하지 못하고 팀을 잘 이끌어나가지 못하게 돼요.

따라서 개발팀의 리더로서 성과에 직접 영향을 주는 제품의

기술 요소를 정의하고, 팀의 목표를 설정하여 팀원을 이끌어나갈 수 있는

능력을 키우는 것도 중요합니다!



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

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

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


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

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


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





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




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

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


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

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

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



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



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

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

구성하는데에 적합해요.

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

많이 사용된답니다.







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

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

코딩도 쉽다는 점인데요.



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

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

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

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








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

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

부담이 되지 않구요!


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

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








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

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



안녕하세요!

오늘은 풀스택 개발자에 대해서 알아보아요.


채용 소식이나 뉴스들을 살펴보면

간간히 풀스택 개발자라는 용어가 돋보이는데요.

어떤 의미인지 알고 계신가요?


설령 알고계신다 해도!

우리나라에서 통용되는 풀스택 개발자의 의미가

원래는 다른 의미라는 것..!


때문에 처음부터 차근차근

풀스택 개발자는 어떤 의미인지, 어떤 역할을 하는

개발자인지 알아봅시다!






풀스택 개발자, 무슨 뜻인가요?


우리나라 채용시장에서 이해되는

'풀스택 개발자'는 단말, 서버, 웹, 데이터베이스 등 모든 것을

다~~~~다룰 줄 아는 개발자를 뜻합니다.

여기까진 좋지만,

간혹가다 2명분의 개발자가 할 일을

1명의 풀스택 개발자가 해낼 수 있다는 잘못된 이해가

문제가 되는 것이죠 ㅠㅜ


그렇다면 '풀스택 개발자'의 원래 의미는 무엇일까요?


풀스택 개발자를 이해하기 위해선

프론트엔드 개발자와 백엔드 개발자를

알아둘 필요가 있어요.


프론트엔드 개발자는 웹을 사용하는 유저들에게

보여지는 화면을 만드는 개발자들을 뜻합니다.

즉, 눈에 보이는 화면을 만드는 기술을 갖고 있는 사람이죠

기본적으로 HTML+CSS 웹표준코딩은 물론 HTML5 최신버전 및

자바스크립트는 필수 능력이랍니다.


백엔드 개발자는 눈에 보이지 않는 서버에서 작용하는 기술을

개발하는 사람입니다.

자바를 기반으로 Spring프레임워크도 많이 사용한답니다.



이 두 직군을 보니 뭔가 느낌이 오죠?

풀스택 개발자는 프론트엔드 개발자와 백엔드 개발자를 합친 것이라 보면 되는데요.

프론트엔드 기술 영역과 밴엔드 기술영역을 모두 활용할 수 있는 사람입니다.







풀스택 개발자, 어떻게 해야 될 수 있을까?



풀스택 개발자 역량은 사실 쉽게 갖출 수 있는 역량이 아니에요.

하지만 기업에서는 단연 풀스택 개발자를 선호하기 때문에

많은 개발 직무 지원자들이

풀스택 개발자를 꿈꾸고 있습니다.


풀스택 개발자는 운영체제나 데이터베이스 그리고 웹 서버에 대한

이해도까지 요구되기 때문에

모든 분야를 다룰 수 있는 능력이 필요해요.


일단 가장 먼저, 프론트엔드 개발자와 백엔드 개발자의

공통분모인 자바스크립트를 마스터하는 것이

가장 기본이 아닐까 생각되네요!